System and Method for Performing Memory Management Using Hardware Transactions
    1.
    发明申请
    System and Method for Performing Memory Management Using Hardware Transactions 有权
    使用硬件交易执行内存管理的系统和方法

    公开(公告)号:US20120310987A1

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

    申请号:US13167606

    申请日:2011-06-23

    IPC分类号: G06F17/30

    摘要: The systems and methods described herein may be used to implement a shared dynamic-sized data structure using hardware transactional memory to simplify and/or improve memory management of the data structure. An application (or thread thereof) may indicate (or register) the intended use of an element of the data structure and may initialize the value of the data structure element. Thereafter, another thread or application may use hardware transactions to access the data structure element while confirming that the data structure element is still part of the dynamic data structure and/or that memory allocated to the data structure element has not been freed. Various indicators may be used determine whether memory allocated to the element element can be freed.

    摘要翻译: 本文描述的系统和方法可以用于使用硬件事务存储器实现共享的动态大小的数据结构,以简化和/或改善数据结构的存储器管理。 应用程序(或其线程)可以指示(或注册)数据结构的元素的预期用途,并且可以初始化数据结构元素的值。 此后,另一个线程或应用程序可以使用硬件事务来访问数据结构元素,同时确认数据结构元素仍然是动态数据结构的一部分,和/或分配给数据结构元素的存储器尚未被释放。 可以使用各种指示器来确定分配给元素元素的内存是否可以被释放。

    System and method for performing memory management using hardware transactions
    2.
    发明授权
    System and method for performing memory management using hardware transactions 有权
    使用硬件事务执行内存管理的系统和方法

    公开(公告)号:US09043363B2

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

    申请号:US13167606

    申请日:2011-06-23

    IPC分类号: G06F17/30 G06F9/46

    摘要: The systems and methods described herein may be used to implement a shared dynamic-sized data structure using hardware transactional memory to simplify and/or improve memory management of the data structure. An application (or thread thereof) may indicate (or register) the intended use of an element of the data structure and may initialize the value of the data structure element. Thereafter, another thread or application may use hardware transactions to access the data structure element while confirming that the data structure element is still part of the dynamic data structure and/or that memory allocated to the data structure element has not been freed. Various indicators may be used determine whether memory allocated to the element can be freed.

    摘要翻译: 本文描述的系统和方法可以用于使用硬件事务存储器实现共享的动态大小的数据结构,以简化和/或改善数据结构的存储器管理。 应用程序(或其线程)可以指示(或注册)数据结构的元素的预期用途,并且可以初始化数据结构元素的值。 此后,另一个线程或应用程序可以使用硬件事务来访问数据结构元素,同时确认数据结构元素仍然是动态数据结构的一部分,和/或分配给数据结构元素的存储器尚未被释放。 可以使用各种指标来确定分配给元素的内存是否可以被释放。

    System and Method for Committing Results of a Software Transaction Using a Hardware Transaction
    3.
    发明申请
    System and Method for Committing Results of a Software Transaction Using a Hardware Transaction 有权
    使用硬件交易提交软件交易结果的系统和方法

    公开(公告)号:US20110246725A1

    公开(公告)日:2011-10-06

    申请号:US12750908

    申请日:2010-03-31

    IPC分类号: G06F12/00 G06F9/46 G06F12/16

    CPC分类号: G06F11/141 G06F9/467

    摘要: The system and methods described herein may exploit hardware transactional memory to improve the performance of a software or hybrid transactional memory implementation, even when an entire user transaction cannot be executed within a hardware transaction. The user code of an atomic transaction may be executed within a software transaction, which may collect read and write sets and/or other information about the atomic transaction. A single hardware transaction may be used to commit the atomic transaction by validating the transaction's read set and applying the effects of the user code to memory, reducing the overhead associated with commitment of software transactions. Because the hardware transaction code is carefully controlled, it may be less likely to fail to commit. Various remedial actions may be taken before retrying hardware transactions following some failures. If a transaction exceeds the constraints of the hardware, it may be committed by the software transactional memory alone.

    摘要翻译: 本文描述的系统和方法可以利用硬件事务存储器来改善软件或混合事务性存储器实现的性能,即使在硬件事务中不能执行整个用户事务。 原子事务的用户代码可以在软件事务中执行,其可以收集关于原子事务的读取和写入集合和/或其他信息。 可以使用单个硬件事务来通过验证事务的读取集合并将用户代码的效果应用于存储器来提交原子事务,从而减少与承诺的软件事务相关的开销。 由于硬件事务代码被严格控制,所以可能不太可能无法提交。 在出现某些故障之后重试硬件事务之前,可能会采取各种补救措施。 如果事务超出了硬件的限制,则可能仅由软件事务内存提交。

    Delayed breakpoints
    4.
    发明授权
    Delayed breakpoints 有权
    延迟断点

    公开(公告)号:US07840947B2

    公开(公告)日:2010-11-23

    申请号:US11552907

    申请日:2006-10-25

    IPC分类号: G06F9/44 G06F17/00

    CPC分类号: G06F11/3644 G06F11/3632

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. Unfortunately, conventional debugging programs are often inadequate when employed in relation to code that employs transactional memory and new or modified techniques are needed. Implementations of delayed breakpoints are described that provide programmers with the benefits of breakpoints in transactional code, while minimizing the side-effects of breakpoints placed inside atomic block.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 不幸的是,传统的调试程序在采用事务性存储器的代码方面经常是不足够的,需要新的或修改的技术。 描述了延迟断点的实现,为程序员提供事务代码中的断点的好处,同时最小化放置在原子块内的断点的副作用。

    WATCHPOINTS ON TRANSACTIONAL VARIABLES
    5.
    发明申请
    WATCHPOINTS ON TRANSACTIONAL VARIABLES 有权
    对交易变量的看法

    公开(公告)号:US20080127035A1

    公开(公告)日:2008-05-29

    申请号:US11552903

    申请日:2006-10-25

    IPC分类号: G06F9/44

    CPC分类号: G06F11/362

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. However, various features and capabilities that would be desirable for debugging programs executed using transactional memory are absent from conventional debuggers. Because transactional memory implementations provide the “illusion” of multiple memory locations changing value atomically, while in fact they do not, there can be significant challenges involved with integrating debuggers with such programs to provide the user with a coherent view of program execution. We describe use of transactional memory access tracking mechanism for implementations of watchpoints on memory locations that correspond to transactional variables.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 然而,常规调试器中不存在用于使用事务性存储器执行的调试程序所需的各种功能和功能。 因为事务性存储器实现提供了多个存储器位置以原子方式改变值的“错觉”,而实际上它们并不存在,因此将调试器与这些程序集成可能会带来重大挑战,从而向用户提供程序执行的一致的视图。 我们描述了使用事务性内存访问跟踪机制来实现对应于事务变量的内存位置上的观察点。

    System and method for supporting multiple alternative methods for executing transactions
    6.
    发明授权
    System and method for supporting multiple alternative methods for executing transactions 有权
    支持执行交易的多种替代方法的系统和方法

    公开(公告)号:US07921407B2

    公开(公告)日:2011-04-05

    申请号:US11591919

    申请日:2006-11-02

    IPC分类号: G06F9/44 G06F9/45 G06F12/00

    摘要: Transaction code written by the programmer may be translated, replaced or transformed into a code that is configured to implement transactions according to any of various techniques. A compiler may replace programmer written transaction code into code allowing multiple compatible transaction implementation techniques to be used in the same program, and at the same time. A programmer may write transaction code once using familiar coding styles, but the transaction to be effected according to one of a number of compatible alternative implementation techniques. The compiler may enable the implementation of multiple, alternative transactional memory schemes. The particular technique implemented for each transaction may not be decided until runtime. At runtime, any of the various implemented techniques may be used to effect the transaction and if a first technique fails or is inappropriate for a particular transaction, one or more other techniques may be attempted.

    摘要翻译: 由程序员编写的事务代码可以被翻译,替换或变换为被配置为根据各种技术中的任何一种实现事务的代码。 编译器可以将程序员的书面交易代码替换为允许在同一程序中同时使用多个兼容的事务实现技术的代码。 程序员可以使用熟悉的编码风格一次写入交易代码,但是根据许多兼容的替代实现技术之一进行交易。 编译器可以实现多个替代事务存储器方案。 对于每个事务实现的特定技术可能不会在运行时间之前决定。 在运行时,可以使用各种实现的技术中的任一种来实现事务,并且如果第一技术失败或不适合于特定事务,则可以尝试一种或多种其他技术。

    System and Method for Performing Visible and Semi-Visible Read Operations In a Software Transactional Memory
    7.
    发明申请
    System and Method for Performing Visible and Semi-Visible Read Operations In a Software Transactional Memory 有权
    在软件事务性存储器中执行可见和半可读取操作的系统和方法

    公开(公告)号:US20110078385A1

    公开(公告)日:2011-03-31

    申请号:US12570591

    申请日:2009-09-30

    IPC分类号: G06F12/00 G06F9/46

    CPC分类号: G06F9/467

    摘要: The software transactional memory system described herein may implement a revocable mechanism for managing read ownership in a shared memory. In this system, write ownership may be revoked by readers or writers at any time other than when a writer transaction is in a commit state, wherein its write ownership is irrevocable. An ownership record associated with one or more locations in the shared memory may include an indication of whether the memory locations are owned for writing, and an identifier of the latest writer. A read ownership array may record data indicating which, if any, threads currently own the memory locations for reading. The system may provide an efficient read-validation operation, in which a full read-set validation is avoided unless a change in a global read-write conflict counter value indicates a potential conflict. The system may support a wide range of contention management policies, and may provide implicit privatization.

    摘要翻译: 本文描述的软件事务存储器系统可以实现用于管理共享存储器中的读取所有权的可撤销机制。 在该系统中,写入所有权可以在写入器交易处于提交状态之外的任何时候被读者或作者撤销,其中写入所有权是不可撤销的。 与共享存储器中的一个或多个位置相关联的所有权记录可以包括存储器位置是否拥有用于写入的指示以及最新写入器的标识符。 读取所有权阵列可以记录指示线程当前拥有哪个(如果有的话)拥有用于读取的存储器位置的数据。 系统可以提供有效的读取验证操作,其中避免完全读取确认,除非全局读写冲突计数器值的改变表示潜在的冲突。 该系统可以支持广泛的争用管理策略,并可能提供隐含的私有化。

    VIEWING AND MODIFYING TRANSACTIONAL VARIABLES
    8.
    发明申请
    VIEWING AND MODIFYING TRANSACTIONAL VARIABLES 有权
    查看和修改交易变量

    公开(公告)号:US20070288901A1

    公开(公告)日:2007-12-13

    申请号:US11552895

    申请日:2006-10-25

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3612

    摘要: Transactional programming promises to substantially simplify the development and maintenance of correct, scalable, and efficient concurrent programs. Designs for supporting transactional programming using transactional memory implemented in hardware, software, and a mixture of the two have emerged recently. However, various features and capabilities for debugging programs executed using transactional memory are absent from conventional debuggers. Because transactional memory implementations provide the “illusion” of multiple memory locations changing value atomically, there are challenges involved with integrating debuggers with such programs to provide the user with a coherent view of program execution. For instance, when execution is halted for debugging, a user may request to view a transactional variable or memory location. The transactional variable or memory location may have a pre-transaction value and a tentative value. Allowing a user to only view one of the values reduces the capacity of a user to reason about the behavior of the code.

    摘要翻译: 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 然而,常规调试器中不存在用于使用事务性存储器执行的调试程序的各种功能和功能。 由于事务性存储器实现提供了以原子方式改变值的多个存储器位置的“幻觉”,所以将调试器与这些程序集成存在挑战,以向用户提供程序执行的一致的视图。 例如,当执行停止调试时,用户可以请求查看事务变量或内存位置。 事务变量或存储器位置可以具有事务前值和临时值。 允许用户仅查看其中一个值可以降低用户对代码行为的理解能力。

    System and method for committing results of a software transaction using a hardware transaction
    9.
    发明授权
    System and method for committing results of a software transaction using a hardware transaction 有权
    使用硬件事务提交软件交易结果的系统和方法

    公开(公告)号:US08402227B2

    公开(公告)日:2013-03-19

    申请号:US12750908

    申请日:2010-03-31

    IPC分类号: G06F12/00 G06F9/46

    CPC分类号: G06F11/141 G06F9/467

    摘要: The system and methods described herein may exploit hardware transactional memory to improve the performance of a software or hybrid transactional memory implementation, even when an entire user transaction cannot be executed within a hardware transaction. The user code of an atomic transaction may be executed within a software transaction, which may collect read and write sets and/or other information about the atomic transaction. A single hardware transaction may be used to commit the atomic transaction by validating the transaction's read set and applying the effects of the user code to memory, reducing the overhead associated with commitment of software transactions. Because the hardware transaction code is carefully controlled, it may be less likely to fail to commit. Various remedial actions may be taken before retrying hardware transactions following some failures. If a transaction exceeds the constraints of the hardware, it may be committed by the software transactional memory alone.

    摘要翻译: 本文描述的系统和方法可以利用硬件事务存储器来改善软件或混合事务性存储器实现的性能,即使在硬件事务中不能执行整个用户事务。 原子事务的用户代码可以在软件事务中执行,其可以收集关于原子事务的读取和写入集合和/或其他信息。 可以使用单个硬件事务来通过验证事务的读取集合并将用户代码的效果应用于存储器来提交原子事务,从而减少与承诺的软件事务相关的开销。 由于硬件事务代码被严格控制,所以可能不太可能无法提交。 在出现某些故障之后重试硬件事务之前,可能会采取各种补救措施。 如果事务超出了硬件的限制,则可能仅由软件事务内存提交。

    Method and apparatus for improving transactional memory interactions by tracking object visibility
    10.
    发明授权
    Method and apparatus for improving transactional memory interactions by tracking object visibility 有权
    通过跟踪对象可视性来改善事务记忆交互的方法和装置

    公开(公告)号:US08117605B2

    公开(公告)日:2012-02-14

    申请号:US11311506

    申请日:2005-12-19

    IPC分类号: G06F9/45

    CPC分类号: G06F9/466

    摘要: In a multi-threaded computer system that uses transactional memory, object fields accessed by only one thread are accessed by regular non-transactional read and write operations. When an object may be visible to more than one thread, access by non-transactional code is prevented and all accesses to the fields of that object are performed using transactional code. In one embodiment, the current visibility of an object is stored in the object itself. This stored visibility can be checked at runtime by code that accesses the object fields or code can be generated to check the visibility prior to access during compilation.

    摘要翻译: 在使用事务内存的多线程计算机系统中,只有一个线程访问的对象字段通过常规的非事务性读写操作进行访问。 当一个对象可能对多个线程可见时,将阻止非事务代码的访问,并使用事务代码执行对该对象的字段的所有访问。 在一个实施例中,对象的当前可视性被存储在对象本身中。 可以在运行时通过访问对象字段的代码检查存储的可见性,或者可以生成代码以在编译期间访问之前检查可见性。