Patents by Inventor Mark S. Moir

Mark S. Moir has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 8281185
    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 failure state 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 an advice state associated with the recorded failure state to the program to facilitate a response to the transaction failure by the program.
    Type: Grant
    Filed: June 30, 2009
    Date of Patent: October 2, 2012
    Assignee: Oracle America, Inc.
    Inventors: Daniel S. Nussbaum, David Dice, Martin Karlsson, Mark S. Moir
  • Patent number: 8244990
    Abstract: We introduce obstruction-freedom—a new non-blocking condition for shared data structures that weakens the progress requirements of traditional nonblocking conditions, and as a result admits solutions that are significantly simpler and more efficient in the typical case of low contention. We demonstrate the merits of obstruction-freedom by showing how to implement an obstruction-free double-ended queue that has better properties than any previous nonblocking deque implementation of which we are aware. The beauty of obstruction-freedom is that we can modify and experiment with the contention management mechanisms without needing to modify (and therefore reverify) the underlying non-blocking algorithm. In contrast, work on different mechanisms for guaranteeing progress in the context of lock-free and wait-free algorithms has been hampered by the fact that modifications to the “helping” mechanisms has generally required the proofs for the entire algorithm to be done again.
    Type: Grant
    Filed: July 16, 2003
    Date of Patent: August 14, 2012
    Assignee: Oracle America, Inc.
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
  • Patent number: 8239635
    Abstract: 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.
    Type: Grant
    Filed: September 30, 2009
    Date of Patent: August 7, 2012
    Assignee: Oracle America, Inc.
    Inventors: Yosef Lev, Daniel S. Nussbaum, Mark S. Moir
  • Patent number: 8230421
    Abstract: 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.
    Type: Grant
    Filed: September 28, 2007
    Date of Patent: July 24, 2012
    Assignee: Oracle America, Inc.
    Inventors: Nir N. Shavit, Mark S. Moir, Victor M. Luchangco
  • Patent number: 8225139
    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.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: July 17, 2012
    Assignee: Oracle America, Inc.
    Inventors: Daniel S. Nussbaum, David Dice, Martin Karlsson, Mark S. Moir
  • Patent number: 8214833
    Abstract: Systems and methods may reduce overhead associated with read set consistency validation in software transactional memory implementations. These systems and methods may employ an inconsistency-aware compiler-library technique, in which an inconsistency-aware compiler communicates to various inconsistency-aware library functions knowledge about whether a given transaction has read consistent values to date. The inconsistency-aware library functions may exploit this information to avoid the need to validate the transaction, or portions thereof. If read set values are known to be consistent prior to the function call, the compiler may pass a parameter value to the function indicating as much. Otherwise, it may pass a value indicating that the read set values may be inconsistent. An inconsistency-aware function may determine that it will not perform a dangerous action, even though its parameters may not be consistent.
    Type: Grant
    Filed: September 30, 2008
    Date of Patent: July 3, 2012
    Assignee: Oracle America, Inc.
    Inventors: Mark S. Moir, Daniel S. Nussbaum
  • Patent number: 8176264
    Abstract: We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. An interesting feature of our obstruction-free STM implementation is its ability to use of modular contention managers to ensure progress in practice.
    Type: Grant
    Filed: February 18, 2011
    Date of Patent: May 8, 2012
    Assignee: Oracle International Corporation
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
  • Patent number: 8140497
    Abstract: Systems and methods for implementing and using nonblocking zero-indirection software transactional memory (NZSTM) are disclosed. NZSTM systems implement object-based software transactional memory that eliminates all levels of indirection except in the uncommon case of a conflict with an unresponsive thread. Shared data is co-located with a header in an NZObject, and is addressable at a fixed offset from the header. Conflicting transactions are requested to abort themselves without being forced to abort. NZObjects are modified in place when there are no conflicts, and when a conflicting transaction acknowledges the abort request. In the uncommon case, NZObjects are inflated to introduce a locator and some levels of indirection, and are restored to their un-inflated form following resolution of the conflict.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: March 20, 2012
    Assignee: Oracle America, Inc.
    Inventors: James R. Goodman, Mark S. Moir, Fu'ad W. F. Al Tabba′, Cong Wang
  • Patent number: 8117605
    Abstract: In a multi-threaded computer system that uses transactional memory, object fields accessed by only one thread are accessed by regular non-transactional read and write operations. When an object may be visible to more than one thread, access by non-transactional code is prevented and all accesses to the fields of that object are performed using transactional code. In one embodiment, the current visibility of an object is stored in the object itself. This stored visibility can be checked at runtime by code that accesses the object fields or code can be generated to check the visibility prior to access during compilation.
    Type: Grant
    Filed: December 19, 2005
    Date of Patent: February 14, 2012
    Assignee: Oracle America, Inc.
    Inventors: Yosef Lev, Jan-Willem Maessen, Mark S. Moir
  • Publication number: 20120005461
    Abstract: Systems and methods described herein for performing incremental register checkpointing may employ a special register to indicate which registers have already been checkpointed. This register may include one bit per register. These systems may also include a special pointer register whose value identifies a location in user memory or in dedicated on-chip storage at which a copy of a register's value should be saved by a checkpointing operation. Only registers modified during speculative execution or execution of a transaction may be checkpointed (e.g., when register modifying instructions are encountered) and subsequently restored (e.g., due to misspeculation or transaction abort), rather than all of the registers of the processor. Each register may be checkpointed at most once for a given speculative episode or atomic transaction. Setting a bit in the special register may prevent checkpointing of the corresponding register. Setting all of the bits in the special register may disable checkpointing.
    Type: Application
    Filed: June 30, 2010
    Publication date: January 5, 2012
    Inventors: Mark S. Moir, David Dice, Daniel S. Nussbaum, James R. Goodman
  • Patent number: 8074030
    Abstract: By exploiting an early release facility that may be provided by certain transactional memory designs, we facilitate transaction software constructs that operate on dynamically-sized data structures and/or other data structures for which traversal may be data dependent. Absent exploitation of such a facility, the act of traversing the data structure would typically introduce corresponding locations into the read set of a transaction, and a subsequent modification of any of the previously traversed locations would result in abortion of the traversing transaction. By exploiting an early release facility such as described herein, a transaction may release the locations that it has previously read in traversal and thereby eliminate such read locations as a source of conflict with other concurrently executing computations or transactions. In this way, concurrency may be enhanced while still employing a conceptually simple and convenient coordination facility.
    Type: Grant
    Filed: July 20, 2004
    Date of Patent: December 6, 2011
    Assignee: Oracle America, Inc.
    Inventors: Mark S. Moir, Maurice Herlihy
  • Publication number: 20110246725
    Abstract: The system and methods described herein may exploit hardware transactional memory to improve the performance of a software or hybrid transactional memory implementation, even when an entire user transaction cannot be executed within a hardware transaction. The user code of an atomic transaction may be executed within a software transaction, which may collect read and write sets and/or other information about the atomic transaction. A single hardware transaction may be used to commit the atomic transaction by validating the transaction's read set and applying the effects of the user code to memory, reducing the overhead associated with commitment of software transactions. Because the hardware transaction code is carefully controlled, it may be less likely to fail to commit. Various remedial actions may be taken before retrying hardware transactions following some failures. If a transaction exceeds the constraints of the hardware, it may be committed by the software transactional memory alone.
    Type: Application
    Filed: March 31, 2010
    Publication date: October 6, 2011
    Inventors: Mark S. Moir, Yosef Lev, Daniel S. Nussbaum
  • Publication number: 20110246993
    Abstract: The transactional memory system described herein may implement parallel co-transactions that access a shared memory such that at most one of the co-transactions in a set will succeed and all others will fail (e.g., be aborted). Co-transactions may improve the performance of programs that use transactional memory by attempting to perform the same high-level operation using multiple algorithmic approaches, transactional memory implementations and/or speculation options in parallel, and allowing only the first to complete to commit its results. If none of the co-transactions succeeds, one or more may be retried, possibly using a different approach and/or transactional memory implementation. The at-most-one property may be managed through the use of a shared “done” flag. Conflicts between co-transactions in a set and accesses made by transactions or activities outside the set may be managed using lazy write ownership acquisition and/or a priority-based approach.
    Type: Application
    Filed: March 31, 2010
    Publication date: October 6, 2011
    Inventors: Mark S. Moir, Robert E. Cypher, Daniel S. Nussbaum
  • Publication number: 20110246724
    Abstract: The system and methods described herein may reduce read/write fence latencies and cache pressure related to STM metadata accesses. These techniques may leverage locality information (as reflected by the value of a respective locale guard) associated with each of a plurality of data partitions (locales) in a shared memory to elide various operations in transactional read/write fences when transactions access data in locales owned by their threads. The locale state may be disabled, free, exclusive, or shared. For a given memory access operation of an atomic transaction targeting an object in the shared memory, the system may implement the memory access operation using a contention mediation mechanism selected based on the value of the locale guard associated with the locale in which the target object resides. For example, a traditional read/write fence may be employed in some memory access operations, while other access operations may employ an optimized read/write fence.
    Type: Application
    Filed: March 31, 2010
    Publication date: October 6, 2011
    Inventors: Virendra J. Marathe, Mark S. Moir
  • Patent number: 8019785
    Abstract: We explore techniques for designing nonblocking algorithms that do not require advance knowledge of the number of processes that participate, whose time complexity and space consumption both adapt to various measures, rather than being based on predefined worst-case scenarios, and that cannot be prevented from future memory reclamation by process failures. These techniques can be implemented using widely available hardware synchronization primitives. We present our techniques in the context of solutions to the well-known Collect problem. We also explain how our techniques can be exploited to achieve other results with similar properties; these include long-lived renaming and dynamic memory management for nonblocking data structures.
    Type: Grant
    Filed: May 30, 2008
    Date of Patent: September 13, 2011
    Assignee: Oracle America, Inc.
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy
  • Publication number: 20110202907
    Abstract: In modern multi-threaded environments, threads often work cooperatively toward providing collective or aggregate throughput for an application as a whole. Optimizing in the small for “thread local” common path latency is often but not always the best approach for a concurrent system composed of multiple cooperating threads. Some embodiments provide a technique for augmenting traditional code emission with thread-aware policies and optimization strategies for a multi-threaded application. During operation, the system obtains information about resource contention between executing threads of the multi-threaded application. The system analyzes the resource contention information to identify regions of the code to be optimized. The system recompiles these identified regions to produce optimized code, which is then stored for subsequent execution.
    Type: Application
    Filed: February 18, 2010
    Publication date: August 18, 2011
    Applicant: ORACLE INTERNATIONAL CORPORATION
    Inventors: David Dice, Virendra J. Marathe, Mark S. Moir
  • Patent number: 7984444
    Abstract: A lock implementation has properties of both backoff locks and queue locks. Such a “composite” lock is abortable and is provided with a constant number of preallocated nodes. A thread requesting the lock selects one of the nodes, attempts to acquire the selected node, and, if successful, inserts the selected node in a wait-queue for the lock. Because there is only a constant number of nodes for the wait-queue, all requesting threads may not be queued. Requesting threads unable to successfully acquire a selected node may backoff and retry selecting and acquiring a node. A node at the front of the wait-queue holds the lock.
    Type: Grant
    Filed: September 15, 2005
    Date of Patent: July 19, 2011
    Assignee: Oracle America, Inc.
    Inventors: Nir N. Shavit, Mark S. Moir, Virendra J. Marathe
  • Publication number: 20110167231
    Abstract: 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.
    Type: Application
    Filed: February 22, 2011
    Publication date: July 7, 2011
    Inventors: Mark S. Moir, Victor Luchangco, Maurice Herlihy
  • Patent number: 7966459
    Abstract: A phased transactional memory (PhTM) may support a plurality of transactional memory implementations, including software, hardware, and hybrid implementations, and may provide mechanisms for dynamically transitioning between transactional memory modes in response to changing workload characteristics; upon discovering that the current mode does not perform well, is not suitable, or does not support functionality required for particular transactions; or according to scheduled phases. A system providing PhTM may be configured to transition from a first transactional memory mode to a second transactional memory mode while ensuring that transactions executing in the first transactional memory mode do not interfere with correct execution of transactions in the second transactional memory mode.
    Type: Grant
    Filed: December 31, 2007
    Date of Patent: June 21, 2011
    Assignee: Oracle America, Inc.
    Inventors: Daniel S. Nussbaum, Mark S. Moir
  • Publication number: 20110138134
    Abstract: We propose a new form of software transactional memory (STM) designed to support dynamic-sized data structures, and we describe a novel non-blocking implementation. The non-blocking property we consider is obstruction-freedom. Obstruction-freedom is weaker than lock-freedom; as a result, it admits substantially simpler and more efficient implementations. An interesting feature of our obstruction-free STM implementation is its ability to use of modular contention managers to ensure progress in practice.
    Type: Application
    Filed: February 18, 2011
    Publication date: June 9, 2011
    Inventors: Mark S. Moir, Victor M. Luchangco, Maurice Herlihy