Efficient and consistent software transactional memory
    1.
    发明授权
    Efficient and consistent software transactional memory 有权
    高效一致的软件事务内存

    公开(公告)号:US08060482B2

    公开(公告)日:2011-11-15

    申请号:US11648012

    申请日:2006-12-28

    IPC分类号: G06F7/00 G06F17/00 G06F17/30

    摘要: A method and apparatus for efficient and consistent validation/conflict detection in a Software Transactional Memory (STM) system is herein described. A version check barrier is inserted after a load to compare versions of loaded values before and after the load. In addition, a global timestamp (GTS) is utilized to track a latest committed transaction. Each transaction is associated with a local timestamp (LTS) initialized to the GTS value at the start of a transaction. As a transaction commits it updates the GTS to a new value and sets versions of modified locations to the new value. Pending transactions compare versions determined in read barriers to their LTS. If the version is greater than their LTS indicating another transaction has committed after the pending transaction started and initialized the LTS, then the pending transaction validates its read set to maintain efficient and consistent transactional execution.

    摘要翻译: 这里描述了用于在软件事务存储器(STM)系统中有效且一致的验证/冲突检测的方法和装置。 在加载之后插入版本检查障碍,以便在加载之前和之后比较加载值的版本。 此外,使用全局时间戳(GTS)来跟踪最近提交的事务。 每个事务与在事务开始时初始化为GTS值的本地时间戳(LTS)相关联。 作为事务提交,将GTS更新为新值,并将修改的位置的版本设置为新值。 待处理的交易将比较其在LTS阅读障碍中确定的版本。 如果版本大于其LTS,指示在挂起事务启动并初始化LTS之后另一个事务已经提交,则挂起的事务会验证其读取集合以保持有效且一致的事务执行。

    Efficient and consistent software transactional memory
    2.
    发明申请
    Efficient and consistent software transactional memory 有权
    高效一致的软件事务内存

    公开(公告)号:US20080163220A1

    公开(公告)日:2008-07-03

    申请号:US11648012

    申请日:2006-12-28

    IPC分类号: G06F9/46

    摘要: A method and apparatus for efficient and consistent validation/conflict detection in a Software Transactional Memory (STM) system is herein described. A version check barrier is inserted after a load to compare versions of loaded values before and after the load. In addition, a global timestamp (GTS) is utilized to track a latest committed transaction. Each transaction is associated with a local timestamp (LTS) initialized to the GTS value at the start of a transaction. As a transaction commits it updates the GTS to a new value and sets versions of modified locations to the new value. Pending transactions compare versions determined in read barriers to their LTS. If the version is greater than their LTS indicating another transaction has committed after the pending transaction started and initialized the LTS, then the pending transaction validates its read set to maintain efficient and consistent transactional execution.

    摘要翻译: 这里描述了用于在软件事务存储器(STM)系统中有效且一致的验证/冲突检测的方法和装置。 在加载之后插入版本检查障碍,以便在加载之前和之后比较加载值的版本。 此外,使用全局时间戳(GTS)来跟踪最近提交的事务。 每个事务与在事务开始时初始化为GTS值的本地时间戳(LTS)相关联。 作为事务提交,将GTS更新为新值,并将修改的位置的版本设置为新值。 待处理的交易将比较其在LTS阅读障碍中确定的版本。 如果版本大于其LTS,指示在挂起事务启动并初始化LTS之后另一个事务已经提交,则挂起的事务会验证其读取集合以保持有效且一致的事务执行。

    Mechanism for software transactional memory commit/abort in unmanaged runtime environment
    3.
    发明申请
    Mechanism for software transactional memory commit/abort in unmanaged runtime environment 有权
    在非托管运行时环境中软件事务内存提交/中止的机制

    公开(公告)号:US20080162885A1

    公开(公告)日:2008-07-03

    申请号:US11648005

    申请日:2006-12-28

    IPC分类号: G06F9/30

    摘要: A method and apparatus for ensuring integrity of transaction exit functions is herein described. Dead local data in a transaction is prevented from overwriting local variables associated with a transaction exit function. In a write-buffering Software Transactional Memory (STM) system, a commit function is associated with a private stack to store local variables to ensure write-back of local dead data in a write-buffer does not corrupt the commit function. Similarly, in a roll-back STM, an abort function is associated with a private stack to store local variables to ensure the roll-back of a program stack with local dead data from a write log does not corrupt the abort function. Alternatively, one stack may be used for the transaction including a first function and an exit function. Here, local dead variables are detected and prevented from overwriting local variables of the exit function.

    摘要翻译: 这里描述了用于确保交易退出功能的完整性的方法和装置。 防止事务中的死地方数据覆盖与事务退出功能相关联的局部变量。 在写缓冲软件事务内存(STM)系统中,提交函数与专用堆栈相关联,以存储局部变量,以确保写缓冲区中的本地死数据的写回不会损坏提交函数。 类似地,在回滚STM中,中止功能与专用堆栈相关联以存储局部变量,以确保来自写入日志的本地死亡数据的程序堆栈的回滚不会破坏中止功能。 或者,可以将一个堆栈用于包括第一功能和退出功能的交易。 这里,检测并防止局部死变量覆盖退出函数的局部变量。

    Mechanism for software transactional memory commit/abort in unmanaged runtime environment
    4.
    发明授权
    Mechanism for software transactional memory commit/abort in unmanaged runtime environment 有权
    在非托管运行时环境中软件事务内存提交/中止的机制

    公开(公告)号:US08132158B2

    公开(公告)日:2012-03-06

    申请号:US11648005

    申请日:2006-12-28

    IPC分类号: G06F9/44

    摘要: A method and apparatus for ensuring integrity of transaction exit functions is herein described. Dead local data in a transaction is prevented from overwriting local variables associated with a transaction exit function. In a write-buffering Software Transactional Memory (STM) system, a commit function is associated with a private stack to store local variables to ensure write-back of local dead data in a write-buffer does not corrupt the commit function. Similarly, in a roll-back STM, an abort function is associated with a private stack to store local variables to ensure the roll-back of a program stack with local dead data from a write log does not corrupt the abort function. Alternatively, one stack may be used for the transaction including a first function and an exit function. Here, local dead variables are detected and prevented from overwriting local variables of the exit function.

    摘要翻译: 这里描述了用于确保交易退出功能的完整性的方法和装置。 防止事务中的死地方数据覆盖与事务退出功能相关联的局部变量。 在写缓冲软件事务内存(STM)系统中,提交函数与专用堆栈相关联,以存储局部变量,以确保写缓冲区中的本地死数据的写回不会损坏提交函数。 类似地,在回滚STM中,中止功能与专用堆栈相关联以存储局部变量,以确保来自写入日志的本地死亡数据的程序堆栈的回滚不会破坏中止功能。 或者,可以将一个堆栈用于包括第一功能和退出功能的交易。 这里,检测并防止局部死变量覆盖退出函数的局部变量。

    Mechanisms for strong atomicity in a transactional memory system
    5.
    发明授权
    Mechanisms for strong atomicity in a transactional memory system 有权
    事务记忆系统中强原子性的机制

    公开(公告)号:US08706982B2

    公开(公告)日:2014-04-22

    申请号:US11967231

    申请日:2007-12-30

    IPC分类号: G06F12/12

    摘要: A method and apparatus for providing efficient strong atomicity is herein described. Optimized strong operations may be inserted at non-transactional read accesses to provide efficient strong atomicity. A global transaction value is copied at a beginning of a non-transactional function to a local transaction value; essentially creating a local timestamp of the global transaction value. At a non-transactional memory access within the function, a counter value or version value is compared to the LTV to see if a transaction has started updating memory locations, or specifically the memory location accessed. If memory locations have not been updated by a transaction, execution is accelerated by avoiding a full set of slowpath strong atomic operations to ensure validity of data accessed. In contrast, the slowpath operations may be executed to resolve contention between a transactional and non-transaction access contending for the same memory location.

    摘要翻译: 这里描述了提供有效的强原子性的方法和装置。 可以在非事务性读访问中插入优化的强操作,以提供有效的强原子性。 全局事务值在非事务函数的开头被复制到本地事务值; 基本上创建了全局事务值的本地时间戳。 在功能内的非事务性存储器访问中,将计数器值或版本值与LTV进行比较,以查看事务是否开始更新存储器位置,或具体地访问存储器位置。 如果事务没有更新存储器位置,则通过避免一整套的慢路强原子操作来加速执行,以确保访问的数据的有效性。 相比之下,可以执行慢路操作来解决争用相同内存位置的事务和非事务访问之间的争用。

    Hardware acceleration of strongly atomic software transactional memory
    6.
    发明授权
    Hardware acceleration of strongly atomic software transactional memory 有权
    强力原子软件交易内存的硬件加速

    公开(公告)号:US08065490B2

    公开(公告)日:2011-11-22

    申请号:US11906175

    申请日:2007-09-28

    IPC分类号: G06F9/312

    摘要: In accordance with some embodiments, software transactional memory may be used for both managed and unmanaged environments. If a cache line is resident in a cache and this is not the first time that the cache line has been read since the last write, then the data may be read directly from the cache line, improving performance. Otherwise, a normal read may be utilized to read the information. Similarly, write performance can be accelerated in some instances to improve performance.

    摘要翻译: 根据一些实施例,软件事务存储器可以用于被管理的和非管理的环境。 如果高速缓存行驻留在缓存中,并且这不是自上次写入以来第一次读取高速缓存行,则可以直接从高速缓存行读取数据,从而提高性能。 否则,可以使用正常读取来读取信息。 同样,在某些情况下,写入性能可以加快,以提高性能。

    MECHANISMS FOR STRONG ATOMICITY IN A TRANSACTIONAL MEMORY SYSTEM
    7.
    发明申请
    MECHANISMS FOR STRONG ATOMICITY IN A TRANSACTIONAL MEMORY SYSTEM 有权
    在一个交互式存储系统中强大的原理机制

    公开(公告)号:US20090172317A1

    公开(公告)日:2009-07-02

    申请号:US11967231

    申请日:2007-12-30

    IPC分类号: G06F12/12

    摘要: A method and apparatus for providing efficient strong atomicity is herein described. Optimized strong operations may be inserted at non-transactional read accesses to provide efficient strong atomicity. A global transaction value is copied at a beginning of a non-transational function to a local transaction value; essentially creating a local timestamp of the global transaction value. At a non-transactional memory access within the function, a counter value or version value is compared to the LTV to see if a transaction has started updating memory locations, or specifically the memory location accessed. If memory locations have not been updated by a transaction, execution is accelerated by avoiding a full set of slowpath strong atomic operations to ensure validity of data accessed. In contrast, the slowpath operations may be executed to resolve contention between a transactional and non-transaction access contending for the same memory location.

    摘要翻译: 这里描述了提供有效的强原子性的方法和装置。 可以在非事务性读访问中插入优化的强操作,以提供有效的强原子性。 全局事务值在非转换函数的开头被复制到本地事务值; 基本上创建了全局事务值的本地时间戳。 在功能内的非事务性存储器访问中,将计数器值或版本值与LTV进行比较,以查看事务是否开始更新存储器位置,或具体地访问存储器位置。 如果事务没有更新存储器位置,则通过避免一整套的慢路强原子操作来加速执行,以确保访问的数据的有效性。 相比之下,可以执行慢路操作来解决争用相同内存位置的事务和非事务访问之间的争用。

    Hardware acceleration of strongly atomic software transactional memory
    8.
    发明申请
    Hardware acceleration of strongly atomic software transactional memory 有权
    强力原子软件交易内存的硬件加速

    公开(公告)号:US20090089520A1

    公开(公告)日:2009-04-02

    申请号:US11906175

    申请日:2007-09-28

    IPC分类号: G06F12/00

    摘要: In accordance with some embodiments, software transactional memory may be used for both managed and unmanaged environments. If a cache line is resident in a cache and this is not the first time that the cache line has been read since the last write, then the data may be read directly from the cache line, improving performance. Otherwise, a normal read may be utilized to read the information. Similarly, write performance can be accelerated in some instances to improve performance.

    摘要翻译: 根据一些实施例,软件事务存储器可以用于被管理的和非管理的环境。 如果高速缓存行驻留在缓存中,并且这不是自上次写入以来第一次读取高速缓存行,则可以直接从高速缓存行读取数据,从而提高性能。 否则,可以使用正常读取来读取信息。 同样,在某些情况下,写入性能可以加快,以提高性能。

    HANDLING PRECOMPILED BINARIES IN A HARDWARE ACCELERATED SOFTWARE TRANSACTIONAL MEMORY SYSTEM
    9.
    发明申请
    HANDLING PRECOMPILED BINARIES IN A HARDWARE ACCELERATED SOFTWARE TRANSACTIONAL MEMORY SYSTEM 有权
    在硬件加速软件交易存储系统中处理预先确定的二进制

    公开(公告)号:US20150040111A1

    公开(公告)日:2015-02-05

    申请号:US14271024

    申请日:2014-05-06

    摘要: A method and apparatus for enabling a Software Transactional Memory (STM) with precompiled binaries is herein described. Upon encountering an access operation in a transaction, an annotation field associated with a memory location referenced by the access is checked. In response to the memory location representing a previous similar access within the transaction, the access is performed without access barriers. However, if the annotation field is in a default state representing no previous access during a pendancy of the transaction, then a mode of the processor is determined. If the processor mode is in implicit mode, an access handler/barrier is asynchronously executed. Conversely, in an explicit mode, a flag is set instead of asynchronously executing the handler. In addition, during compilation convert explicit and convert implicit instructions are inserted to intelligently convert modes for precompiled and newly compiled binaries. Furthermore, new versions of newly compiled functions may be inserted to provide strong atomicity between previously and newly compiled functions.

    摘要翻译: 这里描述了使用预编译二进制文件实现软件事务存储器(STM)的方法和装置。 在事务中遇到访问操作时,检查与由访问引用的存储器位置相关联的注释字段。 响应于表示事务内先前类似访问的存储器位置,访问被执行而没有访问障碍。 然而,如果注释字段处于表示在事务的挂起期间没有先前访问的默认状态,则确定处理器的模式。 如果处理器模式处于隐式模式,则异步执行访问处理程序/障碍。 相反,在显式模式下,设置标志而不是异步执行处理程序。 此外,在编译期间,转换显式和转换隐式指令将被智能地转换为预编译和新编译的二进制文件的模式。 此外,可以插入新版本的新编译的函数,以便在先前和新编译的函数之间提供强大的原子性。