-
公开(公告)号:US08719515B2
公开(公告)日:2014-05-06
申请号:US12819499
申请日:2010-06-21
申请人: Sukhdeep S. Sodhi , Yosseff Levanoni , David L. Detlefs , Lingli Zhang , Weirong Zhu , Dana Groff , Michael M. Magruder , Charles David Callahan, II
发明人: Sukhdeep S. Sodhi , Yosseff Levanoni , David L. Detlefs , Lingli Zhang , Weirong Zhu , Dana Groff , Michael M. Magruder , Charles David Callahan, II
IPC分类号: G06F13/00
摘要: A software transactional memory (STM) system allows the composition of traditional lock based synchronization with transactions in STM code. The STM system acquires each traditional lock the first time that a corresponding traditional lock acquire is encountered inside a transaction and defers all traditional lock releases until a top level transaction in a transaction nest commits or aborts. The STM system maintains state information associated with traditional lock operations in transactions and uses the state information to eliminate deferred traditional lock operations that are redundant. The STM system integrates with systems that implement garbage collection.
摘要翻译: 软件事务存储器(STM)系统允许以STM代码的事务组合传统的基于锁的同步。 STM系统首次在交易中遇到相应的传统锁获取时,获取每个传统锁,并延迟所有传统的锁定版本,直到事务嵌套中的顶级事务提交或中止。 STM系统维护与事务中的传统锁定操作相关的状态信息,并使用状态信息来消除冗余的延迟传统锁定操作。 STM系统与实施垃圾收集的系统集成。
-
公开(公告)号:US08627292B2
公开(公告)日:2014-01-07
申请号:US12370742
申请日:2009-02-13
申请人: Yosseff Levanoni , David L. Detlefs , Weirong Zhu , Timothy L. Harris , Michael M. Magruder , Matthew B. Tolton
发明人: Yosseff Levanoni , David L. Detlefs , Weirong Zhu , Timothy L. Harris , Michael M. Magruder , Matthew B. Tolton
CPC分类号: G06F9/466 , G06F11/141
摘要: A software transactional memory system is provided with overflow handling. The system includes a global version counter with an epoch number and a version number. The system accesses the global version counter prior to and subsequent to memory accesses of transactions to validate read accesses of the transaction. The system includes mechanisms to detect global version number overflow and may allow some or all transactions to execute to completion subsequent to the global version number overflowing. The system also provides publication, privatization, and granular safety properties.
摘要翻译: 软件事务内存系统提供溢出处理。 该系统包括具有时代号和版本号的全局版本计数器。 系统在事务的内存访问之前和之后访问全局版本计数器,以验证事务的读取访问。 该系统包括检测全局版本号溢出的机制,并且可允许一些或所有事务在全球版本号码溢出之后执行完成。 该系统还提供出版物,私有化和粒状安全属性。
-
公开(公告)号:US08601456B2
公开(公告)日:2013-12-03
申请号:US11499191
申请日:2006-08-04
IPC分类号: G06F9/45
CPC分类号: G06F9/466 , G06F8/434 , G06F8/4441 , G06F9/4484
摘要: Various technologies and techniques are disclosed that provide software transactional protection of managed pointers. A software transactional memory system interacts with and/or includes a compiler. At compile time, the compiler determines that there are one or more reference arguments in one or more code segments being compiled whose source cannot be recovered. The compiler executes a procedure to select one or more appropriate techniques or combinations thereof for communicating the sources of the referenced variables to the called code segments to ensure the referenced variables can be recovered when needed. Some examples of these techniques include a fattened by-ref technique, a static fattening technique, a dynamic ByRefInfo type technique, and others. One or more combinations of these techniques can be used as appropriate.
摘要翻译: 公开了提供管理指针的软件事务保护的各种技术和技术。 软件事务内存系统与编译器交互和/或包含编译器。 在编译时,编译器确定在一个或多个代码段中有一个或多个引用参数被编译,其源无法恢复。 编译器执行一个过程以选择一个或多个适当的技术或其组合,用于将被引用变量的源传送到被调用代码段,以确保在需要时可以恢复所引用的变量。 这些技术的一些例子包括肥胖的补充技术,静态育肥技术,动态ByRefInfo类型技术等。 可以适当地使用这些技术的一种或多种组合。
-
公开(公告)号:US08271465B2
公开(公告)日:2012-09-18
申请号:US13027938
申请日:2011-02-15
IPC分类号: G06F17/30
CPC分类号: G06F9/467 , G06F17/30356 , G06F17/30359 , G06F17/30362
摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Multiple closed nested transactions are created for a single parent transaction, and the closed nested transactions are executed concurrently as parallel nested transactions. Various techniques are used to ensure effects of the parallel nested transactions are hidden from other transactions outside the parent transaction until the parent transaction commits. For example, versioned write locks are used with parallel nested transactions. When a transactional memory word changes from a write lock to a versioned write lock, an entry is made in a global versioned write lock map to store a pointer to a write log entry that the versioned write lock replaced. When the versioned write lock is encountered during transaction processing, the global versioned write lock map is consulted to translate the versioned write lock to the pointer to the write log entry.
摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 为单个父事务创建多个封闭的嵌套事务,并且封闭的嵌套事务将作为并行嵌套事务并发执行。 使用各种技术来确保并行嵌套事务对父事务之外的其他事务的影响,直到父事务提交为止。 例如,版本化的写锁与并行嵌套事务一起使用。 当事务性内存单词从写入锁定更改为版本化写入锁定时,将在全局版本化写入锁定映射中创建一个条目,以存储指向版本化写入锁定替换的写入日志条目的指针。 当在事务处理期间遇到版本化的写锁时,请参考全局版本的写入锁定映射,以将版本化的写锁定转换为写入日志条目的指针。
-
公开(公告)号:US08271464B2
公开(公告)日:2012-09-18
申请号:US12913596
申请日:2010-10-27
IPC分类号: G06F17/30
CPC分类号: G06F17/30362 , G06F17/30368
摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Releasing a duplicate write lock for rollback is supported. During rollback processing of a parallel nested transaction, a write log entry is encountered that represents a write lock. If the write lock is a duplicate, a global lock is used to synchronize access to a global versioned write lock map. Optimistic read validation is supported. During validation, if a versioned write lock indicates a sibling conflict, consult information to determine if a parallel nested transaction should be doomed. Write lock acquisition is supported. Upon attempting to acquire a write lock for a parallel nested transaction, a transactional memory word is analyzed to determine if the write lock can be obtained. If the transactional memory word indicates a versioned write lock, retrieve a write log entry pointer from a global versioned write lock map.
摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 支持释放重复的写入锁回滚。 在并行嵌套事务的回滚处理期间,遇到表示写入锁定的写入日志条目。 如果写入锁是重复的,则使用全局锁来同步对全局版本的写锁定映射的访问。 支持乐观阅读验证。 在验证期间,如果版本控制的写锁定表示兄弟冲突,请咨询信息以确定并行嵌套事务是否应注定。 支持写入锁定。 在尝试获取并行嵌套事务的写入锁定时,分析事务存储器字以确定是否可以获得写入锁定。 如果事务内存字指示版本化的写锁定,则从全局版本的写锁定映射中检索写入日志条目指针。
-
公开(公告)号:US20110040738A1
公开(公告)日:2011-02-17
申请号:US12913596
申请日:2010-10-27
IPC分类号: G06F17/30
CPC分类号: G06F17/30362 , G06F17/30368
摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Releasing a duplicate write lock for rollback is supported. During rollback processing of a parallel nested transaction, a write log entry is encountered that represents a write lock. If the write lock is a duplicate, a global lock is used to synchronize access to a global versioned write lock map. Optimistic read validation is supported. During validation, if a versioned write lock indicates a sibling conflict, consult information to determine if a parallel nested transaction should be doomed. Write lock acquisition is supported. Upon attempting to acquire a write lock for a parallel nested transaction, a transactional memory word is analyzed to determine if the write lock can be obtained. If the transactional memory word indicates a versioned write lock, retrieve a write log entry pointer from a global versioned write lock map.
摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 支持释放重复的写入锁回滚。 在并行嵌套事务的回滚处理期间,遇到表示写入锁定的写入日志条目。 如果写入锁是重复的,则使用全局锁来同步对全局版本的写锁定映射的访问。 支持乐观阅读验证。 在验证期间,如果版本控制的写锁定表示兄弟冲突,请咨询信息以确定并行嵌套事务是否应注定。 支持写入锁定。 在尝试获取并行嵌套事务的写入锁定时,分析事务存储器字以确定是否可以获得写入锁定。 如果事务内存字指示版本化的写锁定,则从全局版本的写锁定映射中检索写入日志条目指针。
-
公开(公告)号:US07890472B2
公开(公告)日:2011-02-15
申请号:US11901647
申请日:2007-09-18
IPC分类号: G06F17/30
CPC分类号: G06F9/467 , G06F17/30356 , G06F17/30359 , G06F17/30362
摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. Multiple closed nested transactions are created for a single parent transaction, and the closed nested transactions are executed concurrently as parallel nested transactions. Various techniques are used to ensure effects of the parallel nested transactions are hidden from other transactions outside the parent transaction until the parent transaction commits. For example, versioned write locks are used with parallel nested transactions. When a transactional memory word changes from a write lock to a versioned write lock, an entry is made in a global versioned write lock map to store a pointer to a write log entry that the versioned write lock replaced. When the versioned write lock is encountered during transaction processing, the global versioned write lock map is consulted to translate the versioned write lock to the pointer to the write log entry.
摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 为单个父事务创建多个封闭的嵌套事务,并且封闭的嵌套事务将作为并行嵌套事务并发执行。 使用各种技术来确保并行嵌套事务对父事务之外的其他事务的影响,直到父事务提交为止。 例如,版本化的写锁与并行嵌套事务一起使用。 当事务性内存单词从写入锁定更改为版本化写入锁定时,将在全局版本化写入锁定映射中创建一个条目,以存储指向版本化写入锁定替换的写入日志条目的指针。 当在事务处理期间遇到版本化的写锁时,请参考全局版本的写入锁定映射,以将版本化的写锁定转换为写入日志条目的指针。
-
公开(公告)号:US20090006407A1
公开(公告)日:2009-01-01
申请号:US11901483
申请日:2007-09-18
IPC分类号: G06F17/30
CPC分类号: G06F17/30356 , G06F17/30362
摘要: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. For example, pessimistic reads are supported. A pessimistic duplication detection data structure is created for a parallel nested transaction. An entry is made into the data structure for each pessimistic read in the parallel nested transaction. When committing the parallel nested transaction, new pessimistic read locks are passed to an immediate parent, and an entry is made into a separate pessimistic duplication detection data structure of the immediate parent with synchronization between sibling transactions. The pessimistic duplication detection data structures can also be used for upgrades from pessimistic reads to write locks. Retry operations are supported with parallel nested transactions. Write abort compensation maps can be used with parallel nested transactions to detect and handle falsely doomed parent transactions.
摘要翻译: 公开了用于支持事务存储器系统中的并行嵌套事务的各种技术和技术。 例如,支持悲观的读取。 为并行嵌套事务创建悲观重复检测数据结构。 在并行嵌套事务中,每个悲观读取的数据结构都会被输入。 在提交并行嵌套事务时,新的悲观读锁传递给一个直接的父类,并且一个条目被做成一个独立的悲观重复检测数据结构的直接父母同步的兄弟交易。 悲观的重复检测数据结构也可用于从悲观读取到写入锁的升级。 并行嵌套事务支持重试操作。 写入中止补偿映射可以与并行嵌套事务一起使用,以检测和处理错误注销的父事务。
-
公开(公告)号:US20090006405A1
公开(公告)日:2009-01-01
申请号:US11824353
申请日:2007-06-29
CPC分类号: G06F9/467
摘要: Various technologies and techniques are disclosed for providing type stability techniques to enhance contention management. A reference counting mechanism is provided that enables transactions to safely examine states of other transactions. Contention management is facilitated using the reference counting mechanism. When a conflict is detected between two transactions, owning transaction information is obtained. A reference count of the owning transaction is incremented. The system ensures that the correct transaction was incremented. If the owning transaction is still a conflicting transaction, then a contention management decision is made to determine proper resolution. When the decision is made, the reference count on the owning transaction is decremented by the conflicting transaction. When each transaction completes, the reference counts it holds to itself is decremented. Data structures cannot be deallocated until their reference count is zero. Dedicated type-stable allocation pools can be reduced using an unstable attribute.
摘要翻译: 公开了用于提供类型稳定性技术以增强争用管理的各种技术和技术。 提供了引用计数机制,使得事务能够安全地检查其他事务的状态。 使用参考计数机制促进竞争管理。 当在两个事务之间检测到冲突时,获得拥有交易信息。 拥有交易的参考计数增加。 系统确保正确的事务增加。 如果拥有交易仍然是冲突交易,则进行争用管理决定以确定适当的分辨率。 当作出决定时,拥有交易的引用计数由冲突交易减少。 当每个事务完成时,它对自身的引用计数递减。 数据结构在引用计数为零之前不能被释放。 可以使用不稳定属性来减少专用类型稳定的分配池。
-
公开(公告)号:US20090006404A1
公开(公告)日:2009-01-01
申请号:US11823162
申请日:2007-06-27
IPC分类号: G06F17/30
CPC分类号: G06F17/30356 , G06F9/467 , G06F17/30362
摘要: Various technologies and techniques are disclosed for detecting falsely doomed parent transactions of nested children in transactional memory systems. When rolling back nested transactions, a release count is tracked each time that a write lock is released due to rollback for a given nested transaction. For example, a write abort compensation map can be used to track the release count for each nested transaction. The number of times the nested transactions releases a write lock is recorded in their respective write abort compensation map. The release counts can be used during a validation of a parent transaction to determine if a failed optimistic read is really valid. If an aggregated release count for the nested children transactions accounts for the difference in version numbers exactly, then the optimistic read is valid.
摘要翻译: 公开了各种技术和技术,用于检测事务记忆系统中嵌套子女的错误注定的父事务。 当回滚嵌套事务时,每次释放写锁定是由于给定嵌套事务的回滚而被释放的。 例如,写入中止补偿映射可用于跟踪每个嵌套事务的发布计数。 嵌套事务释放写入锁定的次数记录在它们各自的写中止补偿映射中。 发布计数可以在验证父事务时使用,以确定失败的乐观读取是否真的有效。 如果嵌套子代交易的汇总发行计数正好说明了版本号的差异,则乐观读取有效。
-
-
-
-
-
-
-
-
-