Scalable method for producer and consumer elimination
    1.
    发明申请
    Scalable method for producer and consumer elimination 有权
    消除生产者和消费者的可扩展方法

    公开(公告)号:US20060123156A1

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

    申请号:US11325150

    申请日:2006-01-04

    IPC分类号: G06F13/28

    摘要: Producers and consumer processes may synchronize and transfer data using a shared data structure. After locating a potential transfer location that indicates an EMPTY status, a producer may store data to be transferred in the transfer location. A producer may use a compare-and-swap (CAS) operation to store the transfer data to the transfer location. A consumer may subsequently read the transfer data from the transfer location and store, such as by using a CAS operation, a DONE status indicator in the transfer location. The producer may notice the DONE indication and may then set the status location back to EMPTY to indicate that the location is available for future transfers, by the same or a different producer. The producer may also monitor the transfer location and time out if no consumer has picked up the transfer data.

    摘要翻译: 生产者和消费者流程可以使用共享数据结构来同步和传输数据。 在找到指示EMPTY状态的潜在转移位置之后,生产者可以将要传送的数据存储在传送位置。 生产者可以使用比较和交换(CAS)操作来将转移数据存储到传送位置。 消费者随后可以从传送位置读取传送数据,例如通过使用CAS操作存储传送位置中的DONE状态指示符。 生产者可以注意到DONE指示,然后可以将状态位置设置回EMPTY,以指示该位置可用于由相同或不同的生产者进行将来的转移。 如果没有消费者拿起传输数据,生产者也可以监控传送位置和超时。

    Scalable and lock-free first-in-first-out queue implementation
    2.
    发明授权
    Scalable and lock-free first-in-first-out queue implementation 有权
    可扩展和无锁的先进先出队列实现

    公开(公告)号:US07836228B1

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

    申请号:US10966465

    申请日:2004-10-15

    IPC分类号: G06F3/00

    CPC分类号: G06F9/544 G06F9/526

    摘要: A scalable first-in-first-out queue implementation adjusts to load on a host system. The scalable FIFO queue implementation is lock-free and linearizable, and scales to large numbers of threads. The FIFO queue implementation includes a central queue and an elimination structure for eliminating enqueue-dequeue operation pairs. The elimination mechanism tracks enqueue operations and/or dequeue operations and eliminates without synchronizing on the FIFO queue implementation.

    摘要翻译: 可扩展的先进先出队列实现调整为在主机系统上加载。 可扩展的FIFO队列实现是无锁的和线性化的,并且可以扩展到大量的线程。 FIFO队列实现包括用于消除排队出队操作对的中心队列和消除结构。 消除机制跟踪排队操作和/或出队操作,并消除了在FIFO队列实现上没有同步的情况。

    Efficient Non-Blocking K-Compare-Single-Swap Operation
    3.
    发明申请
    Efficient Non-Blocking K-Compare-Single-Swap Operation 有权
    高效的非阻塞K比较单互换操作

    公开(公告)号:US20080077748A1

    公开(公告)日:2008-03-27

    申请号:US11864624

    申请日:2007-09-28

    IPC分类号: G06F12/00

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    摘要翻译: 使用单一位置同步原语(例如比较和交换(CAS))的非阻塞链接数据结构的设计是一种复杂的事情,通常需要对指针使用方式的严格限制。 解决这个问题的一个方法是提供更强大的同步操作,例如,在同时验证其他内容的同时原子地修改一个存储器位置的同步操作。 我们提供了这样一个操作的简单而高效的非阻塞实现:原子k字比较单交换操作(KCSS)。 我们的实施是无障碍的。 因此,在无争议的情况下效率高,依靠竞争管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。

    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.

    Efficient Non-Blocking K-Compare-Single-Swap Operation

    公开(公告)号:US20080109608A1

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

    申请号:US11864667

    申请日:2007-09-28

    IPC分类号: G06F12/16 G06F12/02 G06F9/30

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    Efficient Non-Blocking K-Compare-Single-Swap Operation

    公开(公告)号:US20080077775A1

    公开(公告)日:2008-03-27

    申请号:US11864649

    申请日:2007-09-28

    IPC分类号: G06F9/312 G06F9/455

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    Methods and apparatus to implement parallel transactions
    7.
    发明申请
    Methods and apparatus to implement parallel transactions 有权
    实现并行交易的方法和设备

    公开(公告)号:US20070239943A1

    公开(公告)日:2007-10-11

    申请号:US11699802

    申请日:2007-01-30

    IPC分类号: G06F12/00

    CPC分类号: G06F9/466

    摘要: 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.

    摘要翻译: 本公开描述了多个进程中的每一个并行操作并使用相同的共享数据而不会对共享数据造成损坏的唯一方式。 例如,在提交阶段期间,相应的事务可以尝试增加全局可访问的版本信息变量并存储全局可访问版本信息变量的当前值,用于更新与经修改的数据相关联的版本信息,而不管相关联的尝试是否相应 修改全局可访问版本信息变量的事务成功。 作为替代模式,相应的事务只能读取和存储全局可访问版本信息变量的当前值,而不尝试在此类使用之前更新全局可访问版本信息变量。 在另一个应用中,并行处理环境根据交易的自我中止率实现两种上述模式的组合。

    Globally incremented variable or clock based methods and apparatus to implement parallel transactions
    8.
    发明授权
    Globally incremented variable or clock based methods and apparatus to implement parallel transactions 有权
    全局增量的可变或基于时钟的方法和装置来实现并行事务

    公开(公告)号:US08028133B2

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

    申请号:US11699802

    申请日:2007-01-30

    IPC分类号: G06F13/00

    CPC分类号: G06F9/466

    摘要: 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.

    摘要翻译: 本公开描述了多个进程中的每一个并行操作并使用相同的共享数据而不会对共享数据造成损坏的唯一方式。 例如,在提交阶段期间,相应的事务可以尝试增加全局可访问的版本信息变量并存储全局可访问版本信息变量的当前值,用于更新与经修改的数据相关联的版本信息,而不管相关联的尝试是否相应 修改全局可访问版本信息变量的事务成功。 作为替代模式,相应的事务只能读取和存储全局可访问版本信息变量的当前值,而不尝试在此类使用之前更新全局可访问版本信息变量。 在另一个应用中,并行处理环境根据交易的自我中止率实现两种上述模式的组合。

    Efficient Non-Blocking K-Compare-Single-Swap Operation

    公开(公告)号:US20080034166A1

    公开(公告)日:2008-02-07

    申请号:US11864574

    申请日:2007-09-28

    IPC分类号: G06F12/00

    摘要: The design of nonblocking linked data structures using single-location synchronization primitives such as compare-and-swap (CAS) is a complex affair that often requires severe restrictions on the way pointers are used. One way to address this problem is to provide stronger synchronization operations, for example, ones that atomically modify one memory location while simultaneously verifying the contents of others. We provide a simple and highly efficient nonblocking implementation of such an operation: an atomic k-word-compare single-swap operation (KCSS). Our implementation is obstruction-free. As a result, it is highly efficient in the uncontended case and relies on contention management mechanisms in the contended cases. It allows linked data structure manipulation without the complexity and restrictions of other solutions. Additionally, as a building block of some implementations of our techniques, we have developed the first nonblocking software implementation of load-linked/store-conditional that does not severely restrict word size.

    Ensuring progress in a system that supports execution of obstruction-free operations
    10.
    发明申请
    Ensuring progress in a system that supports execution of obstruction-free operations 有权
    确保在支持执行无障碍操作的系统中取得进展

    公开(公告)号:US20070157202A1

    公开(公告)日:2007-07-05

    申请号:US11325062

    申请日:2006-01-03

    IPC分类号: G06F9/46

    CPC分类号: G06F9/52

    摘要: One embodiment of the present invention provides a system that ensures that progress is made in an environment that supports execution of obstruction-free operations. During execution, when a process pi invokes an operation, the system checks a panic flag, which indicates whether a progress-ensuring mechanism is to be activated. If the panic flag is set, the progress-ensuring mechanism is activated, which causes the system to attempt to perform the operation by coordinating actions between processes to ensure that progress is made in spite of contention between the processes. On the other hand, if the panic flag is not set, the system attempts to perform the operation essentially as if the progress-ensuring mechanism were not present. In this case, if there is an indication that contention between processes is impeding progress, the system sets the panic flag, which causes the progress-ensuring mechanism to be activated so that processes will coordinate their actions to ensure that progress is made.

    摘要翻译: 本发明的一个实施例提供一种确保在支持执行无障碍操作的环境中进行的系统。 在执行期间,当进程p 调用操作时,系统检查紧急标志,该标志指示进程保证机制是否被激活。 如果设置了恐慌标志,则会启动进度保证机制,从而使系统尝试通过协调进程之间的动作来尝试执行操作,以确保进程尽可能在进程之间发生争用。 另一方面,如果不设置紧急状态标志,则系统试图执行操作,基本上就像进度保证机制不存在一样。 在这种情况下,如果存在进程之间的争用妨碍进展的指示,则系统设置紧急标志,这导致进程确保机制被激活,以便进程将协调其动作以确保进行进展。