Concurrency Control Using Slotted Read-Write Locks
    11.
    发明申请
    Concurrency Control Using Slotted Read-Write Locks 有权
    使用开槽读写锁的并发控制

    公开(公告)号:US20100332770A1

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

    申请号:US12492613

    申请日:2009-06-26

    IPC分类号: G06F12/10

    CPC分类号: G06F9/526 G06F2209/523

    摘要: A system and method for concurrency control may use slotted read-write locks. A slotted read-write lock is a lock data structure associated with a shared memory area, wherein the slotted read-write lock indicates whether any thread has a read-lock and/or a write-lock for the shared memory area. Multiple threads may concurrently have the read-lock but only one thread can have the write-lock at any given time. The slotted read-write lock comprises multiple slots, each associated with a single thread. To acquire the slotted read-write lock for reading, a thread assigned to a slot performs a store operation to the slot and then attempts to determine that no other thread holds the slotted read-write lock for writing. To acquire the slotted read-write lock for writing, a thread assigned to a slot sets its write-bit and then attempts to determine that the write-lock is not held.

    摘要翻译: 用于并发控制的系统和方法可以使用时隙读写锁。 时隙读写锁是与共享存储器区域相关联的锁定数据结构,其中,时隙读写锁定指示任何线程是否具有针对共享存储器区域的读锁定和/或写锁定。 多个线程可以同时具有读锁定,但只有一个线程可以在任何给定时间具有写锁定。 时隙读写锁定包括多个时隙,每个时隙与单个线程相关联。 为了获取读取时隙读写锁,分配给时隙的线程对该时隙执行存储操作,然后尝试确定没有其他线程保持用于写入的时隙读写锁。 要获取用于写入的时隙读写锁,分配给时隙的线程设置其写入位,然后尝试确定写锁定不被保持。

    Quickly reacquirable locks
    12.
    发明授权
    Quickly reacquirable locks 有权
    快速可取锁

    公开(公告)号:US07814488B1

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

    申请号:US10669948

    申请日:2003-09-24

    IPC分类号: G06F9/46 G06F17/00 G06F13/00

    摘要: Techniques are provided for quickly reacquiring mutual exclusion locks (QRLs), such as in the case in which a single process repeatedly acquires and releases the lock and in which no other process attempts to acquire the same lock. When the first holder of a QRL first acquires the lock, it biases the lock to itself. Bias may be directed in different way or at different times in some realizations. Biasing may involve a one-time compare-and-swap instruction. Thereafter, this bias-holder can reacquire and release the lock free of atomic read-modify-write operations. If a second process attempts to acquire a QRL, then the lock may revert to a “default lock”. Any standard mutual exclusion lock may be used as the default lock. A QRL lock may be reinitialized so that it can be rebiased. Rebiasing may be valuable in the case of migratory data access patterns.

    摘要翻译: 提供了用于快速重新获取互斥锁(QRL)的技术,例如在单个进程重复获取和释放锁定的情况下,其中没有其他进程尝试获取相同的锁。 当QRL的第一个持有者首先获得锁定时,它将锁定偏向自身。 在某些实现中,偏差可以以不同的方式或在不同的时间被引导。 偏移可能涉及一次一次性的交换和交换指令。 此后,该偏置保持器可以重新获取和释放锁,而不需要进行原子读取 - 修改 - 写入操作。 如果第二个进程尝试获取QRL,则锁可能会恢复为“默认锁定”。 任何标准互斥锁都可用作默认锁。 QRL锁可能会被重新初始化,以便可以重新定义。 在迁移数据访问模式的情况下,重做可能是有价值的。

    Method and System for Reducing Abort Rates in Speculative Lock Elision using Contention Management Mechanisms
    13.
    发明申请
    Method and System for Reducing Abort Rates in Speculative Lock Elision using Contention Management Mechanisms 有权
    使用竞争管理机制减少投机锁定中断中止率的方法和系统

    公开(公告)号:US20100169623A1

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

    申请号:US12345162

    申请日:2008-12-29

    申请人: David Dice

    发明人: David Dice

    IPC分类号: G06F9/318

    摘要: Hardware-based transactional memory mechanisms, such as Speculative Lock Elision (SLE), may allow multiple threads to concurrently execute critical sections protected by the same lock as speculative transactions. Such transactions may abort due to contention or due to misidentification of code as a critical section. In various embodiments, speculative execution mechanisms may be augmented with software and/or hardware contention management mechanisms to reduce abort rates. Speculative execution hardware may send a hardware interrupt signal to notify software components of a speculative execution event (e.g., abort). Software components may respond by implementing concurrency-throttling mechanisms and/or by determining a mode of execution (e.g., speculative, non-speculative) for a given section and communicating that determination to the hardware speculative execution mechanisms, e.g., by writing it into a lock predictor cache. Subsequently, hardware speculative execution mechanisms may determine a preferred mode of execution for the section by reading the corresponding entry from the lock predictor cache.

    摘要翻译: 基于硬件的事务性存储机制(如推测锁定Elision(SLE))可能允许多个线程同时执行由与投机事务相同锁定的关键部分。 此类交易可能由于争用或由于将代码误认为关键部分而中止。 在各种实施例中,可以用软件和/或硬件争用管理机制来增强推测执行机制,以减少中止率。 推测执行硬件可以发送硬件中断信号以通知软件组件推测执行事件(例如,中止)。 软件组件可以通过实现并发调节机制和/或通过确定给定部分的执行模式(例如,推测性,非推测性)来进行响应,并将该确定传达给硬件推测执行机制,例如通过将其写入 锁定预测器缓存。 随后,硬件推测执行机制可以通过从锁定预测器高速缓存读取相应的条目来确定该部分的优选执行模式。

    Methods and apparatus to implement parallel transactions

    公开(公告)号:US07640402B2

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

    申请号:US11699802

    申请日:2007-01-30

    IPC分类号: G06F13/00

    摘要: The present disclosure describes a unique way for each of multiple processes to operate in parallel and use the same shared data without causing corruption to the shared data. For example, during a commit phase, a corresponding transaction can attempt to increment a globally accessible version information variable and store a current value of the globally accessible version information variable for updating version information associated with modified data regardless of whether an associated attempt by the corresponding transaction to modify the globally accessible version information variable was successful. As an alternative mode, a corresponding transaction can merely read and store a current value of the globally accessible version information variable without attempting to update the globally accessible version information variable before such use. In yet another application, a parallel processing environment implements a combination of both aforementioned modes depending on a self-abort rate of the transaction.

    System and Method for Utilizing Available Best Effort Hardware Mechanisms for Supporting Transactional Memory
    15.
    发明申请
    System and Method for Utilizing Available Best Effort Hardware Mechanisms for Supporting Transactional Memory 有权
    使用可用的支持事务性存储器的最佳努力硬件机制的系统和方法

    公开(公告)号:US20090282386A1

    公开(公告)日:2009-11-12

    申请号:US12250409

    申请日:2008-10-13

    IPC分类号: G06F9/44

    CPC分类号: G06F9/466

    摘要: Systems and methods for managing divergence of best effort transactional support mechanisms in various transactional memory implementations using a portable transaction interface are described. This interface may be implemented by various combinations of best effort hardware features, including none at all. Because the features offered by this interface may be best effort, a default (e.g., software) implementation may always be possible without the need for special hardware support. Software may be written to the interface, and may be executable on a variety of platforms, taking advantage of best effort hardware features included on each one, while not depending on any particular mechanism. Multiple implementations of each operation defined by the interface may be included in one or more portable transaction interface libraries. Systems and/or application software may be written as platform-independent and/or portable, and may call functions of these libraries to implement the operations for a targeted execution environment.

    摘要翻译: 描述了使用便携式事务接口来管理各种事务存储器实现中的尽力而为事务支持机制的分歧的系统和方法。 该接口可以通过尽力而为的硬件特征的各种组合来实现,包括根本没有。 由于此接口提供的功能可能是最大的努力,默认(例如,软件)实现可能始终是可能的,而不需要特殊的硬件支持。 可以将软件写入接口,并且可以在各种平台上执行,利用包括在每个平台上的尽力而为的硬件特征,而不依赖于任何特定的机制。 由接口定义的每个操作的多个实现可以包括在一个或多个便携式事务接口库中。 系统和/或应用软件可以被写为独立于平台的和/或可移植的,并且可以调用这些库的功能来实现针对性的执行环境的操作。

    System and method for maintaining data synchronization
    16.
    发明授权
    System and method for maintaining data synchronization 有权
    用于维护数据同步的系统和方法

    公开(公告)号:US07200846B2

    公开(公告)日:2007-04-03

    申请号:US10212509

    申请日:2002-08-05

    IPC分类号: G06F9/00

    摘要: When a thread of program execution on a computer system is executing a critical code section, i.e., a code section whose preemption could result in inconsistency, it asserts an indicator of that fact. When the system's scheduler reschedules the thread for execution, it determines whether the indicator is asserted. If the indicator is asserted, the scheduler does not cause the thread immediately to resume execution where the thread left off when it was preempted. Instead, the scheduler has the thread's signal handler execute in such a manner that the thread performs inconsistency-avoiding operations.

    摘要翻译: 当计算机系统上的程序执行线程正在执行关键代码部分,即其抢占可能导致不一致的代码部分时,它断言该事实的指示符。 当系统的调度器重新排列线程以执行时,它确定指示符是否被断言。 如果指示器被断言,则调度程序不会在线程被抢占时线程立即恢复执行。 相反,调度器以线程执行不一致避免操作的方式执行线程的信号处理程序。

    Methods and apparatus for creating and transforming graphical constructs
    17.
    发明授权
    Methods and apparatus for creating and transforming graphical constructs 有权
    用于创建和转换图形结构的方法和设备

    公开(公告)号:US07024633B1

    公开(公告)日:2006-04-04

    申请号:US09855968

    申请日:2001-05-15

    IPC分类号: G06F3/00 G06F9/00 G06F17/00

    CPC分类号: G06F8/34

    摘要: Mechanisms and techniques provide a system for composing a complex constructs for use on a graphical display of a computerized device. The system receives a selection of basic constructor objects for use in the complex object. The basic constructor objects are chosen from a set of basic constructor object types including a button object type, a dial object type, an edit object type, and a container object type. The systems also receives a selection of one or more personalities to assign to the basic constructor objects. The personalities define extensions to basic constructor object operation and define a view for the object when rendered on an interface. The system combines the personalities and the basic constructor objects to define complex constructs such as menus, a scrollbars and the like. Personalities can be modified to alter the complex construct from one operational state to another.

    摘要翻译: 机制和技术提供了一种用于组合复杂构造以在计算机化设备的图形显示上使用的系统。 系统接收用于复杂对象的基本构造函数对象的选择。 基本构造函数对象从一组基本构造函数对象类型中选择,包括按钮对象类型,拨号对象类型,编辑对象类型和容器对象类型。 系统还接收一个或多个个性的选择以分配给基本构造函数对象。 个性定义对基本构造函数对象操作的扩展,并在对接口进行呈现时定义对象的视图。 该系统结合了个性和基本构造函数对象来定义复杂的构造,如菜单,滚动条等。 可以修改个性以将复杂构造从一个操作状态改变为另一个。

    Multi-threaded garbage collector employing cascaded memory arrays of task identifiers to implement work stealing queues for task identification and processing
    18.
    发明授权
    Multi-threaded garbage collector employing cascaded memory arrays of task identifiers to implement work stealing queues for task identification and processing 有权
    多线程垃圾收集器采用任务标识符的级联存储器阵列来实现任务识别和处理的工作窃取队列

    公开(公告)号:US07016923B2

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

    申请号:US10287851

    申请日:2002-11-05

    IPC分类号: G06F12/00

    摘要: A computer system employing a plurality of concurrent threads to perform tasks that dynamically identify further similar tasks employs a double-ended queue (“deque”) to list the dynamically identified tasks. If a thread's deque runs out of tasks while other threads' deques have tasks remaining, the thread whose deque has become empty will remove one or more entries from another thread's deque and perform the tasks thereby identified. When a thread's deque becomes too full, it may allocate space for another deque, transfer entries from its existing deque, place an identifier of the existing deque into the new deque, and adopt the new deque as the one that it uses for storing and retrieving task identifiers. Alternatively, it may transfer some of the existing deque's entries into a newly allocated array and place an identifier of that array into the existing deque. The thread thereby deals with deque overflows without introducing additional synchronization requirements or restricting the deque's range of use.

    摘要翻译: 采用多个并行线程来执行动态地识别进一步类似任务的任务的计算机系统采用双端队列(“deque”)列出动态识别的任务。 如果一个线程的deque用完了任务,而其他线程的deques有剩余的任务,则其deque已经变空的线程将从另一个线程的deque中删除一个或多个条目,然后执行这样识别的任务。 当一个线程的deque变得太满时,它可以为另一个deque分配空间,从现有deque传输条目,将现有deque的标识符放置到新deque中,并采用新的deque作为它用于存储和检索的deque 任务标识符。 或者,它可以将一些现有deque的条目转移到新分配的数组中,并将该数组的标识符放置到现有deque中。 因此,线程处理德克尔溢出,而不引入额外的同步要求或限制德克的使用范围。

    Methods and apparatus for performing a memory management technique
    19.
    发明授权
    Methods and apparatus for performing a memory management technique 有权
    用于执行存储器管理技术的方法和装置

    公开(公告)号:US06862674B2

    公开(公告)日:2005-03-01

    申请号:US10163677

    申请日:2002-06-06

    IPC分类号: G06F12/02 G06F12/00

    摘要: Mechanisms and techniques operate in a computerized device to perform a memory management technique such as garbage collection. The mechanisms and techniques operate to detect, within a storage structure associated with a thread, general memory references that reference storage locations in a general memory area such as a heap. The storage structure may be a stack utilized by the thread, which may be, for example, a Java thread, during operation of the thread in the computerized device. The system maintains a reference structure containing an association to the general memory area for each detected general memory reference within the storage structure. The system then operates a memory management technique on the general memory area for locations in the general memory area other than those for which an association to the general memory area is maintained in the reference structure, thus increasing the performance of the memory management technique.

    摘要翻译: 机制和技术在计算机化设备中运行,以执行诸如垃圾收集之类的存储器管理技术。 机制和技术操作以在与线程相关联的存储结构内检测引用诸如堆的通用存储器区域中的存储位置的一般存储器引用。 存储结构可以是在计算机化设备中的线程的操作期间由线程使用的栈,其可以是例如Java线程。 系统维护包含与存储结构内的每个检测到的通用存储器引用的一般存储器区域的关联的参考结构。 然后,系统在通用存储器区域中对存储器管理技术中的存储器管理技术进行操作,该存储器管理技术在通用存储器区域中的位置之外,而与在一般存储器区域的关联保持在参考结构中的位置不同,从而增加了存储器管理技术的

    System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system
    20.
    发明授权
    System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system 有权
    用于在数字计算机系统中自动选择性地将对象变量提升到方法字段和变量的系统和方法

    公开(公告)号:US06308315B1

    公开(公告)日:2001-10-23

    申请号:US09172153

    申请日:1998-10-14

    IPC分类号: G06F945

    摘要: A code generating system generates, from code in a program, native code that is executable by a computer system. The computer system includes a memory subsystem including a heap in which objects are stored and a stack in which method variables are stored. The code generating system may be included in a just-in-time compiler used to generate native code that is executable by a computer system, from a program in Java Byte Code form, and specifically determines, in response to Java Byte Code representative of an operator for enabling instantiation of a new object, whether the object to be instantiated contains a variable to be used in processing of the received program code portion which can be promoted to a method variable, and, if so, generates native code to enable said variable to be instantiated on the stack.

    摘要翻译: 代码生成系统从程序中的代码生成可由计算机系统执行的本地代码。 计算机系统包括存储子系统,该存储器子系统包括存储对象的堆以及存储方法变量的堆栈。 代码生成系统可以被包括在用于生成可由计算机系统执行的本地代码的即时编译器中,从Java字节代码形式的程序中,并且具体地确定响应于代表代码的Java字节代码 运算符用于启用新对象的实例化,是否要被实例化的对象包含要被用于处理接收到的程序代码部分的变量,可以被提升为方法变量,并且如果是,则生成本地代码以使得所述变量 要在堆栈上实例化。