Efficient Non-Blocking K-Compare-Single-Swap Operation
    1.
    发明申请
    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)。 我们的实施是无障碍的。 因此,在无争议的情况下效率高,依靠竞争管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。

    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.

    Ensuring progress in a system that supports execution of obstruction-free operations
    4.
    发明申请
    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 调用操作时,系统检查紧急标志,该标志指示进程保证机制是否被激活。 如果设置了恐慌标志,则会启动进度保证机制,从而使系统尝试通过协调进程之间的动作来尝试执行操作,以确保进程尽可能在进程之间发生争用。 另一方面,如果不设置紧急状态标志,则系统试图执行操作,基本上就像进度保证机制不存在一样。 在这种情况下,如果存在进程之间的争用妨碍进展的指示,则系统设置紧急标志,这导致进程确保机制被激活,以便进程将协调其动作以确保进行进展。

    Scalable method for producer and consumer elimination
    5.
    发明申请
    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
    6.
    发明授权
    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

    公开(公告)号: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.

    SPIROMETER APPARATUS AND METHODS USEFUL IN CONJUNCTION THEREWITH
    8.
    发明申请
    SPIROMETER APPARATUS AND METHODS USEFUL IN CONJUNCTION THEREWITH 审中-公开
    螺旋桨装置及其连接中有用的方法

    公开(公告)号:US20120136271A1

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

    申请号:US13389092

    申请日:2010-08-12

    申请人: Nir Shavit

    发明人: Nir Shavit

    IPC分类号: A61B5/087

    CPC分类号: A61B5/087 A61B2505/09

    摘要: Spirometer apparatus comprising main inhale-exhale tube having first end, main interior, and second open end, a plurality of smaller tubes intersecting said main-inhale exhale tube at first and second respective locations and having a plurality of smaller interiors respectively, the first location being closer to the first end than is the second location, wherein each of the smaller interiors are in fluid communication with the main interior solely via at least one aperture formed in each of the intersecting tubes at locations facing said second end, the intersecting tubes having first and second external cross-sections, the main tube having first and second internal cross-sections, wherein said first external cross-section is smaller than said first internal cross-section, said second external cross-section is smaller than said second internal cross-section, and wherein said second external cross-section is smaller than said first external cross-section, and a differential pressure sensor sensing the pressure drop.

    摘要翻译: 肺活量计装置包括主吸入管,其具有第一端,主内部和第二开口端,多个较小的管在第一和第二相应位置与所述主吸入呼吸管相交,并且分别具有多个较小的内部,第一位置 比第二位置更靠近第一端,其中每个较小的内部仅通过在面对所述第二端的位置处形成在每个相交管中的至少一个孔与主内部流体连通,所述交叉管具有 第一和第二外部横截面,主管具有第一和第二内部横截面,其中所述第一外部横截面小于所述第一内部横截面,所述第二外部横截面小于所述第二内部横截面 并且其中所述第二外部横截面小于所述第一外部横截面,以及差压Se 感测压降的感觉。

    Work stealing queues for parallel garbage collection
    9.
    发明申请
    Work stealing queues for parallel garbage collection 有权
    并行垃圾收集工作窃取队列

    公开(公告)号:US20050132374A1

    公开(公告)日:2005-06-16

    申请号:US10996508

    申请日:2004-11-23

    IPC分类号: G06F9/46 G06F12/02 G06F17/30

    摘要: A multiprocessor, multi-program, stop-the-world garbage collection program is described. The system initially over partitions the root sources, and then iteratively employs static and dynamic work balancing. Garbage collection threads compete dynamically for the initial partitions. Work stealing double-ended queues, where contention is reduced, are described to provide dynamic load balancing among the threads. Contention is resolved by using atomic instructions. The heap is broken into a young and an old generation where parallel semi-space copying is used to collect the young generation and parallel mark-compacting the old generation. Speed and efficiency of collection is enhanced by use of card tables and linking objects, and overflow conditions are efficiently handled by linking using class pointers. A garbage collection termination employs a global status word.

    摘要翻译: 描述了一个多处理器,多程序,停止世界的垃圾收集程序。 系统最初对根源进行分区,然后迭代地采用静态和动态的工作平衡。 垃圾收集线程可以动态竞争初始分区。 被描述为在线程之间提供动态负载平衡的工作窃取双端队列,其中争用减少。 竞争通过使用原子指令来解决。 堆被打破成一个年轻和老一代,平行的半空间复制用于收集年轻一代和平行的标记压实老一代。 通过使用卡表和链接对象来增强收集的速度和效率,并且通过使用类指针进行链接来有效地处理溢出条件。 垃圾收集终端采用全局状态字。

    Methods and apparatus to implement parallel transactions
    10.
    发明申请
    Methods and apparatus to implement parallel transactions 审中-公开
    实现并行交易的方法和设备

    公开(公告)号:US20070198979A1

    公开(公告)日:2007-08-23

    申请号:US11475716

    申请日:2006-06-27

    申请人: David Dice Nir Shavit

    发明人: David Dice Nir Shavit

    IPC分类号: G06F9/46

    摘要: For each of multiple processes executing in parallel, as long as corresponding version information associated with a respective set of one or more shared variables used for computational purposes has not changed during execution of a respective transaction, results of the respective transaction can be globally committed to memory without causing data corruption. If version information associated with one or more respective shared variables (used to produce the transaction results) happens to change during a process of generating respective results, then a respective process can identify that another process modified the one or more respective shared variables during execution and that its transaction results should not be committed to memory. In this latter case, the transaction repeats itself until it is able to commit respective results without causing data corruption.

    摘要翻译: 对于并行执行的多个进程中的每一个,只要在用于计算目的的一个或多个共享变量的相应集合相关联的对应版本信息在相应事务的执行期间没有改变时,相应的事务的结果可以被全局地承诺 内存而不会导致数据损坏。 如果与一个或多个相应的共享变量(用于产生交易结果)相关联的版本信息在生成相应结果的过程中发生变化,则相应过程可以识别另一个进程在执行期间修改了一个或多个相应的共享变量,并且 它的交易结果不应该被提交到内存。 在后一种情况下,事务重复,直到它能够提交相应的结果而不会导致数据损坏。