会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
热词
    • 11. 发明授权
    • System and method for supporting multiple alternative methods for executing transactions
    • 支持执行交易的多种替代方法的系统和方法
    • US07921407B2
    • 2011-04-05
    • US11591919
    • 2006-11-02
    • Peter C. DamronYosef LevMark S. Moir
    • Peter C. DamronYosef LevMark S. Moir
    • G06F9/44G06F9/45G06F12/00
    • G06F9/467G06F9/3004G06F9/30087G06F9/466G06F9/544G06F11/1474
    • Transaction code written by the programmer may be translated, replaced or transformed into a code that is configured to implement transactions according to any of various techniques. A compiler may replace programmer written transaction code into code allowing multiple compatible transaction implementation techniques to be used in the same program, and at the same time. A programmer may write transaction code once using familiar coding styles, but the transaction to be effected according to one of a number of compatible alternative implementation techniques. The compiler may enable the implementation of multiple, alternative transactional memory schemes. The particular technique implemented for each transaction may not be decided until runtime. At runtime, any of the various implemented techniques may be used to effect the transaction and if a first technique fails or is inappropriate for a particular transaction, one or more other techniques may be attempted.
    • 由程序员编写的事务代码可以被翻译,替换或变换为被配置为根据各种技术中的任何一种实现事务的代码。 编译器可以将程序员的书面交易代码替换为允许在同一程序中同时使用多个兼容的事务实现技术的代码。 程序员可以使用熟悉的编码风格一次写入交易代码,但是根据许多兼容的替代实现技术之一进行交易。 编译器可以实现多个替代事务存储器方案。 对于每个事务实现的特定技术可能不会在运行时间之前决定。 在运行时,可以使用各种实现的技术中的任一种来实现事务,并且如果第一技术失败或不适合于特定事务,则可以尝试一种或多种其他技术。
    • 12. 发明申请
    • System and Method for Performing Visible and Semi-Visible Read Operations In a Software Transactional Memory
    • 在软件事务性存储器中执行可见和半可读取操作的系统和方法
    • US20110078385A1
    • 2011-03-31
    • US12570591
    • 2009-09-30
    • Yosef LevDaniel S. NussbaumMark S. Moir
    • Yosef LevDaniel S. NussbaumMark S. Moir
    • G06F12/00G06F9/46
    • G06F9/467
    • The software transactional memory system described herein may implement a revocable mechanism for managing read ownership in a shared memory. In this system, write ownership may be revoked by readers or writers at any time other than when a writer transaction is in a commit state, wherein its write ownership is irrevocable. An ownership record associated with one or more locations in the shared memory may include an indication of whether the memory locations are owned for writing, and an identifier of the latest writer. A read ownership array may record data indicating which, if any, threads currently own the memory locations for reading. The system may provide an efficient read-validation operation, in which a full read-set validation is avoided unless a change in a global read-write conflict counter value indicates a potential conflict. The system may support a wide range of contention management policies, and may provide implicit privatization.
    • 本文描述的软件事务存储器系统可以实现用于管理共享存储器中的读取所有权的可撤销机制。 在该系统中,写入所有权可以在写入器交易处于提交状态之外的任何时候被读者或作者撤销,其中写入所有权是不可撤销的。 与共享存储器中的一个或多个位置相关联的所有权记录可以包括存储器位置是否拥有用于写入的指示以及最新写入器的标识符。 读取所有权阵列可以记录指示线程当前拥有哪个(如果有的话)拥有用于读取的存储器位置的数据。 系统可以提供有效的读取验证操作,其中避免完全读取确认,除非全局读写冲突计数器值的改变表示潜在的冲突。 该系统可以支持广泛的争用管理策略,并可能提供隐含的私有化。
    • 13. 发明授权
    • Value recycling facility for multithreaded computations
    • 多线程计算的价值回收设施
    • US07908441B2
    • 2011-03-15
    • US10340156
    • 2003-01-10
    • Mark S. MoirVictor LuchangcoMaurice Herlihy
    • Mark S. MoirVictor LuchangcoMaurice Herlihy
    • G06F12/14G06F9/54
    • G06F9/52Y10S707/955Y10S707/99953Y10S707/99957
    • Solutions to a value recycling problem facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). Some exploitations allow non-blocking, indeed even lock-free or wait-free, implementations of dynamic storage allocation for shared data structures. In some exploitations, our techniques provide a way to manage dynamically allocated memory in a non-blocking manner without depending on garbage collection. While exploitations of solutions to the value recycling problem that we propose include management of dynamic storage allocation wherein values managed and recycled tend to include values that encode pointers, they are not limited thereto. Indeed, the techniques are more generally applicable to management of values in a multithreaded computation. For example, value recycling techniques may be exploited, in some cases, apart from dynamic storage allocation, to allow a multithreaded computation to avoid the classic ABA hazard.
    • 价值回收问题的解决方案便于在多处理器计算机中作为多线程计算执行的计算机程序的实现,以及相关共享数据结构的实现。 一些利用可以使用标准的动态分配机制(如malloc和free)来实现非阻塞的共享数据结构。 一些剥削允许共享数据结构的动态存储分配的非阻塞,甚至无锁或无等待的实现。 在一些利用中,我们的技术提供了一种在不依赖垃圾收集的情况下以非阻塞方式管理动态分配的内存的方法。 虽然我们提出的解决价值回收问题的解决方案包括动态存储分配的管理,其中管理和再循环的值往往包括编码指针的值,但是并不限于此。 实际上,这些技术更普遍地适用于多线程计算中的值的管理。 例如,除了动态存储分配之外,还可以利用价值回收技术,在某些情况下,允许多线程计算避免经典的ABA危险。
    • 14. 发明授权
    • Space-adaptive lock-free free-list using pointer-sized single-target synchronization
    • 空间自适应锁定免费列表,使用指针大小的单目标同步
    • US07533221B1
    • 2009-05-12
    • US11026850
    • 2004-12-30
    • Simon DohertyMark S. MoirVictor LuchangcoMaurice P. Herlihy
    • Simon DohertyMark S. MoirVictor LuchangcoMaurice P. Herlihy
    • G06F12/00
    • G06F12/023G06F9/526
    • Many conventional lock-free data structures exploit techniques that are possible only because state-of-the-art 64-bit processors are still running 32-bit operating systems and applications. As software catches up to hardware, “64-bit-clean” lock-free data structures, which cannot use such techniques, are needed. We present several 64-bit-clean lock-free implementations: including load-linked/store conditional variables of arbitrary size, a FIFO queue, and a freelist. In addition to being portable to 64-bit software (or more generally full-architectural-width pointer operations), our implementations also improve on existing techniques in that they are (or can be) space-adaptive and do not require a priori knowledge of the number of threads that will access them.
    • 许多传统的无锁数据结构利用了仅仅因为最先进的64位处理器仍在运行32位操作系统和应用程序而可能的技术。 随着软件的升级,硬件需要“64位清理”的无锁数据结构,不能使用这种技术。 我们提出了几个64位无干扰的无锁实现:包括任意大小的加载链接/存储条件变量,FIFO队列和freelist。 除了可移植到64位软件(或更通常的全架构宽度指针操作)之外,我们的实现还改进了现有技术,因为它们(或可以)是空间自适应的,并且不需要先验知识 将访问它们的线程数。
    • 16. 发明授权
    • Avoiding locks by transactionally executing critical sections
    • 通过事务执行关键部分避免锁定
    • US07398355B1
    • 2008-07-08
    • US11195093
    • 2005-08-01
    • Mark S. MoirMarc TremblayShailender Chaudhry
    • Mark S. MoirMarc TremblayShailender Chaudhry
    • G06F12/00G06F13/00G06F13/28G06F9/30G06F9/40G06F15/00
    • G06F9/3004G06F9/30087G06F9/3834G06F9/3842G06F9/3859G06F9/3863G06F9/528G06F12/0815G06F12/0862
    • One embodiment of the present invention provides a system that avoids locks by transactionally executing critical sections. During operation, the system receives a program which includes one or more critical sections which are protected by locks. Next, the system modifies the program so that the critical sections which are protected by locks are executed transactionally without acquiring locks associated with the critical sections. More specifically, the program is modified so that: (1) during transactional execution of a critical section, the program first determines if a lock associated with the critical section is held by another process and if so aborts the transactional execution; (2) if the transactional execution of the critical section completes without encountering an interfering data access from another process, the program commits changes made during the transactional execution and optionally resumes normal non-transactional execution of the program past the critical section; and (3) if an interfering data access from another process is encountered during transactional execution of the critical section, the program discards changes made during the transactional execution, and attempts to re-execute the critical section zero or more times.
    • 本发明的一个实施例提供一种通过事务执行关键部分来避免锁定的系统。 在操作期间,系统接收包括被锁保护的一个或多个关键部分的程序。 接下来,系统修改程序,使得受锁保护的关键部分在事务上执行,而不获取与关键部分相关联的锁定。 更具体地说,修改程序使得:(1)在关键部分的事务执行期间,程序首先确定与关键部分相关联的锁定是否被另一进程保持,如果是这样,中止事务执行; (2)如果关键部分的事务执行完成而没有遇到来自另一进程的干扰数据访问,则该程序提交在事务执行期间所做的更改,并且可选地恢复通过关键部分的程序的正常非事务性执行; 和(3)如果在关键部分的事务执行期间遇到来自其他进程的干扰数据访问,则程序将丢弃事务执行期间所做的更改,并尝试重新执行关键部分零次或多次。
    • 17. 发明授权
    • Hybrid software/hardware transactional memory
    • 混合软件/硬件事务内存
    • US07395382B1
    • 2008-07-01
    • US10915502
    • 2004-08-10
    • Mark S. Moir
    • Mark S. Moir
    • G06F12/14G06F12/10G06F13/14
    • G06F9/466
    • A transactional memory implementation has been developed that is capable of coordinating concurrent hardware transactional memory (HTM) and software transactional memory (STM) transactions over a unified transactional memory space. Some implementations employ hardware transactional memory, if available or suitable, to improve performance. Some exploitations include a hardware transactional memory in which, or for which, hardware-mediated transactions are augmented to include within their transactional scope (or mechanism) one or more additional transactional locations that facilitate coordination with concurrently executing software-mediated transactions (if any).
    • 已经开发了一种事务存储器实现,其能够通过统一的事务存储器空间协调并行硬件事务存储器(HTM)和软件事务存储器(STM)事务。 一些实现使用硬件事务存储器(如果可用或适合的)来提高性能。 一些利用包括一个硬件事务性内存,硬件交易内存在其中被扩充,或者由硬件交互的事务增加以在其事务范围(或机制)内包含一个或多个附加的事务位置,这些位置便于与并发执行软件中介的事务(如果有的话)协调) 。
    • 18. 发明申请
    • VIEWING AND MODIFYING TRANSACTIONAL VARIABLES
    • 查看和修改交易变量
    • US20070288901A1
    • 2007-12-13
    • US11552895
    • 2006-10-25
    • Yosef LevMark S. MoirMaurice P. Herlihy
    • Yosef LevMark S. MoirMaurice P. Herlihy
    • G06F9/44
    • G06F11/3612
    • 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 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, there are challenges involved with integrating debuggers with such programs to provide the user with a coherent view of program execution. For instance, when execution is halted for debugging, a user may request to view a transactional variable or memory location. The transactional variable or memory location may have a pre-transaction value and a tentative value. Allowing a user to only view one of the values reduces the capacity of a user to reason about the behavior of the code.
    • 事务性规划将大大简化正确,可扩展和高效并发程序的开发和维护。 最近出现了使用在硬件,软件和两者的混合中实现的事务性存储来支持事务性编程的设计。 然而,常规调试器中不存在用于使用事务性存储器执行的调试程序的各种功能和功能。 由于事务性存储器实现提供了以原子方式改变值的多个存储器位置的“幻觉”,所以将调试器与这些程序集成存在挑战,以向用户提供程序执行的一致的视图。 例如,当执行停止调试时,用户可以请求查看事务变量或内存位置。 事务变量或存储器位置可以具有事务前值和临时值。 允许用户仅查看其中一个值可以降低用户对代码行为的理解能力。
    • 19. 发明授权
    • Non-blocking memory management mechanism for supporting dynamic-sized data structures
    • 用于支持动态大小的数据结构的非阻塞内存管理机制
    • US07194495B2
    • 2007-03-20
    • US10340145
    • 2003-01-10
    • Mark S. MoirVictor LuchangcoMaurice Herlihy
    • Mark S. MoirVictor LuchangcoMaurice Herlihy
    • G06F17/30G06F12/02
    • G06F9/52Y10S707/955Y10S707/99953Y10S707/99957
    • Solutions to a value recycling problem that we define herein facilitate implementations of computer programs that may execute as multithreaded computations in multiprocessor computers, as well as implementations of related shared data structures. Some exploitations of the techniques described herein allow non-blocking, shared data structures to be implemented using standard dynamic allocation mechanisms (such as malloc and free). Indeed, we present several exemplary realizations of dynamic-sized, non-blocking shared data structures that are not prevented from future memory reclamation by thread failures and which depend (in some implementations) only on widely-available hardware support for synchronization. Some exploitations of the techniques described herein allow non-blocking, indeed even lock-free or wait-free, implementations of dynamic storage allocation for shared data structures. A class of general solutions to value recycling is described in the context of an illustration we call the Repeat Offender Problem (ROP), including illustrative Application Program Interfaces (APIs) defined in terms of the ROP terminology. Furthermore, specific solutions, implementations and algorithm, including a Pass-The-Buck (PTB) implementation are described.
    • 我们在这里定义的价值回收问题的解决方案便于在多处理器计算机中作为多线程计算执行的计算机程序的实现,以及相关共享数据结构的实现。 本文描述的技术的一些利用允许使用标准动态分配机制(诸如malloc和free)来实现非阻塞的共享数据结构。 实际上,我们提出了动态大小的非阻塞共享数据结构的几个示例性实现,这些结构通过线程故障不会阻止将来的内存回收,并且仅在广泛可用的硬件支持同步上依赖(在某些实现中)。 本文描述的技术的一些利用允许用于共享数据结构的动态存储分配的非阻塞,甚至无锁或无等待的实现。 在我们称为重复违规问题(ROP)的例证的上下文中描述了一类价值回收的一般解决方案,包括根据ROP术语定义的说明性应用程序接口(API)。 此外,描述了包括通过降压(PTB)实现的具体解决方案,实现和算法。
    • 20. 发明授权
    • Efficient non-blocking K-compare-single-swap operation
    • 高效无阻塞K比较 - 单互换操作
    • US09135178B2
    • 2015-09-15
    • US13543267
    • 2012-07-06
    • Nir N. ShavitMark S. MoirVictor M. Luchangco
    • Nir N. ShavitMark S. MoirVictor M. Luchangco
    • G06F9/46G06F12/00G06F13/00G06F13/28G06F12/08G06F9/30G06F9/38G06F9/52
    • G06F12/0844G06F9/30G06F9/3004G06F9/38G06F9/466G06F9/52G06F12/00G06F12/08G06F12/0815G06F12/084G06F12/0842G06F12/0846Y10S707/99942
    • 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)。 我们的实施是无障碍的。 因此,在无争议的情况下是高效的,并且依赖于竞争案件中的争用管理机制。 它允许链接的数据结构操作,而不需要其他解决方案的复杂性和限制。 此外,作为我们技术的一些实现的构建块,我们开发了第一个不会严重限制字大小的无负载连接/存储条件的非阻塞软件实现。