Facilitating transactional execution through feedback about misspeculation
    31.
    发明授权
    Facilitating transactional execution through feedback about misspeculation 有权
    通过关于错配的反馈促进交易执行

    公开(公告)号:US08225139B2

    公开(公告)日:2012-07-17

    申请号:US12493447

    申请日:2009-06-29

    CPC classification number: G06F9/30087 G06F9/3842 G06F9/3865 G06F12/0817

    Abstract: One embodiment provides a system that facilitates the execution of a transaction for a program in a hardware-supported transactional memory system. During operation, the system records a misspeculation indicator of the transaction during execution of the transaction using hardware transactional memory mechanisms. Next, the system detects a transaction failure associated with the transaction. Finally, the system provides the recorded misspeculation indicator to the program to facilitate a response to the transaction failure by the program.

    Abstract translation: 一个实施例提供了一种便于在硬件支持的事务存储器系统中执行程序的事务的系统。 在操作期间,系统使用硬件事务存储器机制在执行事务期间记录事务的错误指示符。 接下来,系统检测与事务相关联的事务失败。 最后,系统向程序提供记录的错误指示符,以便程序响应交易失败。

    METHOD AND SYSTEM FOR PROVIDING A CURRENT TIME VALUE
    32.
    发明申请
    METHOD AND SYSTEM FOR PROVIDING A CURRENT TIME VALUE 有权
    提供当前时间价值的方法和系统

    公开(公告)号:US20120084593A1

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

    申请号:US12898371

    申请日:2010-10-05

    CPC classification number: G06F1/14

    Abstract: A method for providing applications with a current time value includes receiving a trap for an application to access a time memory page, creating, in a memory map corresponding to the application, a mapping between an address space of the application and the time memory page in response to the trap, accessing, based on the trap, a hardware clock to obtain a time value, and updating the time memory page with the time value. The application reads the time value from the time memory page using the memory map.

    Abstract translation: 用于向当前时间值提供应用的方法包括接收应用程序访问时间存储器页面的陷阱,在与应用程序相对应的存储器映射中创建应用程序的地址空间与时间存储器页面之间的映射 响应陷阱,根据陷阱访问硬件时钟以获取时间值,并使用时间值更新时间存储器页面。 应用程序使用存储器映射从时间存储器页面读取时间值。

    Adaptive spin-then-block mutual exclusion in multi-threaded processing
    33.
    发明授权
    Adaptive spin-then-block mutual exclusion in multi-threaded processing 有权
    多线程处理中自适应自旋随后块互斥

    公开(公告)号:US08046758B2

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

    申请号:US12554116

    申请日:2009-09-04

    Applicant: David Dice

    Inventor: David Dice

    CPC classification number: G06F9/526 G06F9/461

    Abstract: Adaptive modifications of spinning and blocking behavior in spin-then-block mutual exclusion include limiting spinning time to no more than the duration of a context switch. Also, the frequency of spinning versus blocking is limited to a desired amount based on the success rate of recent spin attempts. As an alternative, spinning is bypassed if spinning is unlikely to be successful because the owner is not progressing toward releasing the shared resource, as might occur if the owner is blocked or spinning itself. In another aspect, the duration of spinning is generally limited, but longer spinning is permitted if no other threads are ready to utilize the processor. In another aspect, if the owner of a shared resource is ready to be executed, a thread attempting to acquire ownership performs a “directed yield” of the remainder of its processing quantum to the other thread, and execution of the acquiring thread is suspended.

    Abstract translation: 旋转和阻塞互斥中的旋转和阻塞行为的自适应修改包括将旋转时间限制为不超过上下文切换的持续时间。 此外,基于最近的旋转尝试的成功率,旋转与阻塞的频率被限制到期望的量。 作为替代方案,如果旋转不太可能成功,则旋转是绕过的,因为所有者不会在释放共享资源方面发展,如果所有者被阻塞或旋转本身,则会发生旋转。 在另一方面,旋转的持续时间通常是有限的,但如果没有其他线程准备好利用处理器,则允许更长的旋转。 在另一方面,如果共享资源的所有者准备好被执行,则尝试获得所有权的线程向其他线程执行其处理量子剩余部分的“定向收益”,并且暂停执行获取线程。

    Fast and Efficient Reacquisition of Locks for Transactional Memory Systems
    34.
    发明申请
    Fast and Efficient Reacquisition of Locks for Transactional Memory Systems 有权
    快速有效地重新获取事务内存系统的锁

    公开(公告)号:US20110138135A1

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

    申请号:US12634640

    申请日:2009-12-09

    CPC classification number: G06F9/467

    Abstract: A system and method is disclosed for fast lock acquisition and release in a lock-based software transactional memory system. The method includes determining that a group of shared memory areas are likely to be accessed together in one or more atomic memory transactions executed by one or more threads of a computer program in a transactional memory system. In response to determining this, the system associates the group of memory areas with a single software lock that is usable by the transactional memory system to coordinate concurrent transactional access to the group of memory areas by the threads of the computer program. Subsequently, a thread of the program may gain access to a plurality of the memory areas of the group by acquiring the single software lock.

    Abstract translation: 公开了一种用于在基于锁的软件事务存储器系统中快速锁定获取和释放的系统和方法。 该方法包括确定一组共享存储器区域可能一起被访问在由事务存储器系统中的计算机程序的一个或多个线程执行的一个或多个原子存储器事务中。 响应于确定这一点,系统将该组存储器区域与由事务存储器系统可用的单个软件锁相关联,以协调由计算机程序的线程对存储器区域的并发事务访问。 随后,程序的线程可以通过获取单个软件锁来访问该组的多个存储区域。

    Optimistic semi-static transactional memory implementations
    35.
    发明授权
    Optimistic semi-static transactional memory implementations 有权
    乐观的半静态事务内存实现

    公开(公告)号:US07904668B2

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

    申请号:US11967395

    申请日:2007-12-31

    CPC classification number: G06F9/526 G06F9/466 G06F2209/521 G06F2209/523

    Abstract: A lock-based software transactional memory (STM) implementation may determine whether a transaction's write-set is static (e.g., known in advance not to change). If so, and if the read-set is not static, the STM implementation may execute, or attempt to execute, the transaction as a semi-static transaction. A semi-static transaction may involve obtaining, possibly after incrementing, a reference version value against which to subsequently validate that memory locations, such as read-set locations, have not been modified concurrently with the semi-static transaction. The read-set locations may be validated while locks are held for the locations to be written (e.g., the write-set locations). After committing the modifications to the write-set locations and as part of releasing the locks, versioned write-locks associated with the write-set locations may be updated to reflect the previously obtained, or newly incremented, reference version value.

    Abstract translation: 基于锁的软件事务存储器(STM)实现可以确定事务的写入组是否是静态的(例如,事先知道不会改变)。 如果是这样,并且如果读取集不是静态的,则STM实现可以作为半静态事务来执行或尝试执行该事务。 半静态事务可能包括获得(可能在递增之后)参考版本值,随后验证该存储器位置(诸如读取位置)尚未与半静态事务同时修改。 在为要写入的位置(例如,写入位置)保持锁定的同时可以验证读取位置。 在对写入位置进行修改之后并且作为释放锁的一部分,可以更新与写入位置相关联的版本化的写锁定以反映先前获得的或新增加的参考版本值。

    Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs
    36.
    发明授权
    Method and apparatus for switching between per-thread and per-processor resource pools in multi-threaded programs 有权
    用于在多线程程序中在每线程和每处理器资源池之间切换的方法和装置

    公开(公告)号:US07882505B2

    公开(公告)日:2011-02-01

    申请号:US11090398

    申请日:2005-03-25

    CPC classification number: G06F9/5016 G06F2209/507

    Abstract: In a multi-processor multi-threaded computer system, resources are dynamically assigned during program operation to either threads or processors in such a manner that resource usage is maximized. In one embodiment, the choice of whether to assign resources to threads or processors is dependent on the number of threads versus the number of processors. In another embodiment, when the system is operating in one assignment mode, the amount of wasted resources is measured and when this measured amount exceeds a predetermined threshold based on the maximum resources that could be wasted were the system operating in the other assignment mode, the assignment is switched to the other assignment mode.

    Abstract translation: 在多处理器多线程计算机系统中,在程序操作期间以资源使用最大化的方式将资源动态地分配给线程或处理器。 在一个实施例中,是否向线程或处理器分配资源的选择取决于线程的数量与处理器的数量。 在另一个实施例中,当系统在一个分配模式下操作时,测量浪费的资源量,并且当系统以另一分配模式运行时,基于可浪费的最大资源,该测量量超过预定阈值时, 分配切换到其他分配模式。

    Bulk Synchronization in Transactional Memory Systems
    37.
    发明申请
    Bulk Synchronization in Transactional Memory Systems 有权
    事务内存系统中的批量同步

    公开(公告)号:US20100333095A1

    公开(公告)日:2010-12-30

    申请号:US12492627

    申请日:2009-06-26

    CPC classification number: G06F9/3004 G06F9/30087 G06F9/467 G06F2209/523

    Abstract: A method and system for acquiring multiple software locks in bulk is disclosed. When multiple locks need to be acquired, such as for atomic transactions in transactional memory systems, the disclosed techniques may be applied to consolidate computationally expensive memory barrier operations across the lock acquisitions. A system may acquire multiple locks in bulk, at least in part, by modifying values in one or more fields of multiple locks and by then performing a memory barrier operation to ensure that the modified values in the multiple locks are visible to other application threads. The technique may be repeated for locks that the system fails to acquire during earlier iterations until all required locks are acquired. The described technique may be applied to various scenarios including static and/or dynamic transactional locking protocols.

    Abstract translation: 公开了一种用于批量获取多个软件锁的方法和系统。 当需要获取多个锁定时,诸如在事务存储器系统中的原子事务时,所公开的技术可以被应用于整合锁获取的计算上昂贵的存储器屏障操作。 系统可以批量获取多个锁,至少部分地通过修改多个锁的一个或多个字段中的值,然后执行存储器障碍操作来确保多个锁中的修改值对于其他应用程序线程是可见的。 对于在早期迭代期间系统无法获取的锁,可以重复该技术,直到获取所有所需的锁。 所描述的技术可以应用于各种场景,包括静态和/或动态事务锁定协议。

    Methods and apparatus providing non-blocking access to a resource
    38.
    发明授权
    Methods and apparatus providing non-blocking access to a resource 有权
    向资源提供非阻塞访问的方法和设备

    公开(公告)号:US07844973B1

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

    申请号:US11008500

    申请日:2004-12-09

    Applicant: David Dice

    Inventor: David Dice

    CPC classification number: G06F9/52

    Abstract: A system to control access to a resource by a group of threads requiring access to the resource provides exclusive access to the resource within a computerized device on behalf of a first thread by allowing the first thread exclusive access of a monitor associated with the resource. An entry list of threads is maintained that are awaiting access to the monitor using block-free list joining mechanisms including a thread chaining technique, a push/pop technique, and a detach, modify, reattach technique to allow threads to join the entry list of threads without blocking operation of the threads. Upon completion of access to the resource by the first thread, the system operates the first thread to manipulate the entry list of threads to identify a successor thread as being a candidate thread to obtain exclusive access of the monitor to gain exclusive access to the resource.

    Abstract translation: 通过允许访问资源的线程组来控制对资源的访问的系统通过允许与资源相关联的监视器的第一线程独占访问来代表第一线程提供对计算机化设备内的资源的独占访问。 维护线程的条目列表,其等待使用无块列表连接机制访问监视器,包括线程链接技术,推/弹技术以及分离,修改,重新连接技术,以允许线程加入条目列表 线程无阻塞线程操作。 在完成由第一线程对资源的访问之后,系统操作第一线程以操纵线程的入口列表,以将后续线程标识为候选线程,以获得监视器的独占访问以获得对资源的独占访问。

    Method of mixed lock-free and locking synchronization
    39.
    发明授权
    Method of mixed lock-free and locking synchronization 有权
    混合锁定和锁定同步方法

    公开(公告)号:US07747996B1

    公开(公告)日:2010-06-29

    申请号:US11420354

    申请日:2006-05-25

    Applicant: David Dice

    Inventor: David Dice

    CPC classification number: G06F9/526 G06F8/72

    Abstract: A method to enabling interoperability of a locking synchronization method with a lock-free synchronization method in a multi-threaded environment is presented. The method examines a class file for mutable fields contained in critical code sections. The mutable fields are transferred to a shadow record and a pointer is substituted in the class field for each transferred mutable field. Code is altered so that the lock-free synchronization method is used if a lock is not held on the object. Atomic compare and swap operations are employed after mutable fields are updated during execution of the lock-free synchronization method.

    Abstract translation: 提出了一种在多线程环境中实现锁定同步方法与无锁定同步方法的互操作性的方法。 该方法检查关键代码段中包含的可变字段的类文件。 可变字段被转移到阴影记录,并且在每个传输的可变字段的类字段中替换指针。 代码被更改,以便如果对象上没有锁定,则使用无锁同步方法。 在执行无锁同步方法的可变字段更新之后,采用原子比较和交换操作。

    Techniques for accessing a shared resource using an improved synchronization mechanism
    40.
    发明授权
    Techniques for accessing a shared resource using an improved synchronization mechanism 有权
    使用改进的同步机制访问共享资源的技术

    公开(公告)号:US07644409B2

    公开(公告)日:2010-01-05

    申请号:US10861795

    申请日:2004-06-04

    CPC classification number: G06F9/52

    Abstract: A technique for accessing a shared resource of a computerized system involves running a first portion of a first thread within the computerized system, the first portion (i) requesting a lock on the shared resource and (ii) directing the computerized system to make operations of a second thread visible in a correct order. The technique further involves making operations of the second thread visible in the correct order in response to the first portion of the first thread running within the computerized system, and running a second portion of the first thread within the computerized system to determine whether the first thread has obtained the lock on the shared resource. Such a technique alleviates the need for using a MEMBAR instruction in the second thread.

    Abstract translation: 用于访问计算机化系统的共享资源的技术包括运行计算机化系统内的第一线程的第一部分,第一部分(i)请求锁定共享资源,以及(ii)引导计算机化系统使 第二个线程以正确的顺序可见。 该技术还涉及使第二线程的操作响应于在计算机化系统内运行的第一线程的第一部分以正确的顺序可见,并且在计算机化系统内运行第一线程的第二部分以确定第一线程 已获得共享资源上的锁定。 这种技术减轻了在第二线程中使用MEMBAR指令的需要。

Patent Agency Ranking