Method and apparatus for improving transactional memory interactions by tracking object visibility
    1.
    发明授权
    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.

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

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

    公开(公告)号:US20070150509A1

    公开(公告)日:2007-06-28

    申请号:US11311506

    申请日:2005-12-19

    IPC分类号: G06F17/00

    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.

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

    System and method for executing nested atomic blocks using split hardware transactions
    3.
    发明授权
    System and method for executing nested atomic blocks using split hardware transactions 有权
    使用分割硬件事务执行嵌套原子块的系统和方法

    公开(公告)号:US07516366B2

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

    申请号:US11840439

    申请日:2007-08-17

    IPC分类号: G06F11/00

    CPC分类号: G06F9/466 G06F11/1405

    摘要: Split hardware transaction techniques may support execution of serial and parallel nesting of code within an atomic block to an arbitrary nesting depth. An atomic block including child code sequences nested within a parent code sequence may be executed using separate hardware transactions for each child, but the execution of the parent code sequence, the child code sequences, and other code within the atomic block may appear to have been executed as a single transaction. If a child transaction fails, it may be retried without retrying the parent code sequence or other child code sequences. Before a child transaction is executed, a determination of memory consistency may be made. If a memory inconsistency is detected, the child transaction may be retried or control may be returned to its parent. Memory inconsistencies between parallel child transactions may be resolved by serializing their execution before retrying at least one of them.

    摘要翻译: 分割硬件事务技术可以支持将原子块内的代码的串行和并行嵌套执行到任意的嵌套深度。 包含嵌套在父代码序列中的子代码序列的原子块可以使用针对每个子代的单独的硬件事务执行,但是原子块中的父代码序列,子代码序列和其他代码的执行可能看起来已经被 作为单个事务执行。 如果子事务失败,则可以重试该子事务而不重试父代码序列或其他子代码序列。 在执行子事务之前,可以确定内存一致性。 如果检测到内存不一致,则可能会重试子进程,或者可以将控制权返回给其父进程。 并行子事务之间的内存不一致可以通过在重新执行其中的至少一个之前对其执行进行序列化来解决。

    System and Method for Executing Nested Atomic Blocks Using Split Hardware Transactions
    4.
    发明申请
    System and Method for Executing Nested Atomic Blocks Using Split Hardware Transactions 有权
    使用拆分硬件事务执行嵌套原子块的系统和方法

    公开(公告)号:US20090031310A1

    公开(公告)日:2009-01-29

    申请号:US11840439

    申请日:2007-08-17

    IPC分类号: G06F9/46

    CPC分类号: G06F9/466 G06F11/1405

    摘要: Split hardware transaction techniques may support execution of serial and parallel nesting of code within an atomic block to an arbitrary nesting depth. An atomic block including child code sequences nested within a parent code sequence may be executed using separate hardware transactions for each child, but the execution of the parent code sequence, the child code sequences, and other code within the atomic block may appear to have been executed as a single transaction. If a child transaction fails, it may be retried without retrying the parent code sequence or other child code sequences. Before a child transaction is executed, a determination of memory consistency may be made. If a memory inconsistency is detected, the child transaction may be retried or control may be returned to its parent. Memory inconsistencies between parallel child transactions may be resolved by serializing their execution before retrying at least one of them.

    摘要翻译: 分割硬件事务技术可以支持将原子块内的代码的串行和并行嵌套执行到任意的嵌套深度。 包含嵌套在父代码序列中的子代码序列的原子块可以使用针对每个子代的单独的硬件事务执行,但是原子块中的父代码序列,子代码序列和其他代码的执行可能看起来已经被 作为单个事务执行。 如果子事务失败,则可以重试该子事务而不重试父代码序列或其他子代码序列。 在执行子事务之前,可以确定内存一致性。 如果检测到内存不一致,则可能会重试子进程,或者可以将控制权返回给其父进程。 并行子事务之间的内存不一致可以通过在重新执行其中的至少一个之前对其执行进行序列化来解决。

    Scalable reader-writer lock
    5.
    发明授权
    Scalable reader-writer lock 有权
    可扩展读写器锁

    公开(公告)号:US08504540B2

    公开(公告)日:2013-08-06

    申请号:US12406890

    申请日:2009-03-18

    IPC分类号: G06F17/30

    CPC分类号: G06F9/52

    摘要: A reader-writer lock is provided that scales to accommodate multiple readers without contention. The lock comprises a hierarchical C-SNZI (Conditioned Scalable Non-Zero Indicator) structure that scales with the number readers seeking simultaneous acquisition of the lock. All readers that have joined the C-SNZI structure share concurrent acquisition, and additional readers may continue to join until the structure is disabled. The lock may be disabled by a writer, at which time subsequent readers will wait (e.g., in a wait queue) until the lock is again available. The C-SNZI structure may be implemented in a lockword or in reader entries within a wait queue. If implemented in reader entries of a wait queue, the lockword may be omitted, and new readers arriving at the queue may be able join an existing reader entry even if the reader entry is not at the tail of the queue.

    摘要翻译: 提供了读写器锁,可以扩展以适应多个读卡器而无需争用。 该锁包括分级C-SNZI(条件可扩展非零指示符)结构,其数字读取器寻求同时获取锁定。 加入C-SNZI结构的所有读者都会共享并购,另外读者也可以继续加入,直到结构被禁用。 锁可以被写入器禁用,随后的读取器将等待(例如,在等待队列中),直到锁再次可用。 C-SNZI结构可以以锁字或者在等待队列内的读取器条目中实现。 如果在等待队列的读取器条目中实现,则可以省略锁字,并且即使读取器条目不在队列的尾部,到达队列的新读取器也可以加入现有的读取器条目。

    Atomic groups for debugging
    6.
    发明授权
    Atomic groups for debugging 有权
    用于调试的原子组

    公开(公告)号:US08307346B2

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

    申请号:US11552890

    申请日:2006-10-25

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3632

    摘要: Transactional memory implementations provide the “illusion” of multiple memory locations changing value atomically, while in fact they do not. Techniques that employ transactional memory may allow a debug user to define a group of variables as an atomic group and may ensure coherent or consistent access to variables of the atomic group. These techniques may facilitate the debugging of programs that are executed using transactional memory. Unlike conventional debuggers, debuggers that employ these techniques may be adapted to provide a coherent or consistent view of variables in a system that employs transactional memory. The atomic group may be accessed for viewing and/or modifying during debugging using a transaction, regardless of whether all or less than all of the variables in the atomic group are modified.

    摘要翻译: 事务性存储器实现提供了多个内存位置错误地改变原子角度的错觉,而实际上它们并不是这样。 使用事务性存储器的技术可能允许调试用户将一组变量定义为原子组,并且可以确保对原子组的变量的一致或一致的访问。 这些技术可以促进使用事务性存储器执行的程序的调试。 与常规调试器不同,使用这些技术的调试器可以被调整以提供使用事务性存储器的系统中变量的一致或一致的视图。 可以使用事务在调试期间访问原子组以进行查看和/或修改,而不管原子组中的所有或全部变量是否被修改。

    System and Method for Committing Results of a Software Transaction Using a Hardware Transaction
    7.
    发明申请
    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
    8.
    发明授权
    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
    9.
    发明申请
    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.

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

    Gel filled mobile phone case
    10.
    发明申请
    Gel filled mobile phone case 审中-公开
    凝胶填充手机壳

    公开(公告)号:US20060172765A1

    公开(公告)日:2006-08-03

    申请号:US11337926

    申请日:2006-01-24

    申请人: Yosef Lev

    发明人: Yosef Lev

    IPC分类号: H04M1/00

    CPC分类号: H04B1/3888 H04M1/0283

    摘要: A decorative carrying case for mobile telephones, personal digital assistants (PDAs), cameras, and other portable electronic devices that incorporates outwardly-visible reservoirs of cohesive gel therein for a striking aesthetic effect, with or without discrete ornaments that float in the gel to pronounce the effect. The gel reservoirs also provide padding and insulation to protect the mobile phone while providing a useful and unique aesthetic structure.

    摘要翻译: 用于移动电话,个人数字助理(PDA),照相机和其他便携式电子设备的装饰性手提箱,其中包含向内可见的粘性凝胶储存器,用于具有惊人的美学效果,具有或不具有漂浮在凝胶中的分立饰品 效果。 凝胶储存器还提供填充和绝缘以保护移动电话,同时提供有用且独特的美学结构。