Patents by Inventor Joseph Duffy

Joseph Duffy 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).

  • Publication number: 20090007070
    Abstract: Various technologies and techniques are disclosed for implementing retrying transactions in a transactional memory system. The system allows a transaction to execute a retry operation. The system registers for waits on every read in a read set of the retrying transaction. The retrying transaction waits for notification that something in the read set has changed. A transaction knows if notification is required in one of two ways. If the transactional memory word contained a waiters bit during write lock acquisition, then during release the transactional memory word is looked up in an object waiters map, and waiting transactions are signaled. If a writing transaction finds a global count of waiting transactions to be greater than zero after releasing write locks, a transaction waiters map is used to determine which waiting transactions need to be signaled. In each case, the write lock is released using a normal store operation.
    Type: Application
    Filed: June 27, 2007
    Publication date: January 1, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael M. Magruder, David Detlefs, John Joseph Duffy, Goetz Graefe, Vinod K. Grover
  • Publication number: 20090006404
    Abstract: Various technologies and techniques are disclosed for detecting falsely doomed parent transactions of nested children in transactional memory systems. When rolling back nested transactions, a release count is tracked each time that a write lock is released due to rollback for a given nested transaction. For example, a write abort compensation map can be used to track the release count for each nested transaction. The number of times the nested transactions releases a write lock is recorded in their respective write abort compensation map. The release counts can be used during a validation of a parent transaction to determine if a failed optimistic read is really valid. If an aggregated release count for the nested children transactions accounts for the difference in version numbers exactly, then the optimistic read is valid.
    Type: Application
    Filed: June 27, 2007
    Publication date: January 1, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael M. Magruder, David Detlefs, John Joseph Duffy, Goetz Graefe, Vinod K. Grover
  • Publication number: 20090007116
    Abstract: Various technologies and techniques are disclosed for handling data parallel operations. Data parallel operations are composed together to create a more complex data parallel operation. A fusion plan process is performed on a particular complex operation dynamically at runtime. As part of the fusion plan process, an analysis is performed of a structure of the complex operation and input data. One particular algorithm that best preserves parallelism is chosen from multiple algorithms. The structure of the complex operation is revised based on the particular algorithm chosen. A nested complex operation can also be fused, by inlining its contents into an outer complex operation so that parallelism is preserved across nested operation boundaries.
    Type: Application
    Filed: June 27, 2007
    Publication date: January 1, 2009
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, David Callahan
  • Publication number: 20090006407
    Abstract: Various technologies and techniques are disclosed for supporting parallel nested transactions in a transactional memory system. For example, pessimistic reads are supported. A pessimistic duplication detection data structure is created for a parallel nested transaction. An entry is made into the data structure for each pessimistic read in the parallel nested transaction. When committing the parallel nested transaction, new pessimistic read locks are passed to an immediate parent, and an entry is made into a separate pessimistic duplication detection data structure of the immediate parent with synchronization between sibling transactions. The pessimistic duplication detection data structures can also be used for upgrades from pessimistic reads to write locks. Retry operations are supported with parallel nested transactions. Write abort compensation maps can be used with parallel nested transactions to detect and handle falsely doomed parent transactions.
    Type: Application
    Filed: September 18, 2007
    Publication date: January 1, 2009
    Applicant: Microsoft Corporation
    Inventors: Michael M. Magruder, David Detlefs, John Joseph Duffy, Goetz Graefe, Vinod K. Grover
  • Publication number: 20090006405
    Abstract: Various technologies and techniques are disclosed for providing type stability techniques to enhance contention management. A reference counting mechanism is provided that enables transactions to safely examine states of other transactions. Contention management is facilitated using the reference counting mechanism. When a conflict is detected between two transactions, owning transaction information is obtained. A reference count of the owning transaction is incremented. The system ensures that the correct transaction was incremented. If the owning transaction is still a conflicting transaction, then a contention management decision is made to determine proper resolution. When the decision is made, the reference count on the owning transaction is decremented by the conflicting transaction. When each transaction completes, the reference counts it holds to itself is decremented. Data structures cannot be deallocated until their reference count is zero.
    Type: Application
    Filed: June 29, 2007
    Publication date: January 1, 2009
    Applicant: Microsoft Corporation
    Inventors: David Detlefs, Michael M. Magruder, John Joseph Duffy
  • Publication number: 20080320291
    Abstract: Various technologies and techniques are disclosed for providing concurrent exception handling. When one or more exceptions are received from concurrent workers, one or more exception handler functions are supplied. For each respective exception in the exception results, determine if the respective exception is one of a kind of exceptions handled by the one or more exception handler functions. If the respective exception is one of a kind handled by the exception handler functions, then run a particular handler of the exception handler functions and mark the respective exception as handled. Any unhandled exceptions are then processed appropriately. In one implementation, a collection of input data is processed to produce a collection of output results, with the exceptions being interleaved with other output results. In another implementation, a particular exception is selected that represents the multiple exceptions. The selected one particular exception is then thrown.
    Type: Application
    Filed: June 25, 2007
    Publication date: December 25, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, David Callahan, David Detlefs, Vance Morrison, Brian Grunkemeyer, Eric Dean Tribble
  • Publication number: 20080320275
    Abstract: Various technologies and techniques are disclosed for providing concurrent exception handling. Exceptions that occur in concurrent workers are caught. The caught exceptions are then forwarded from the concurrent workers to a coordination worker. The caught exceptions are finally aggregated into an aggregation structure, such as an aggregate exception object. This aggregation structure is rethrown and the individual caught exceptions may then be handled at a proper time.
    Type: Application
    Filed: June 25, 2007
    Publication date: December 25, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, David Callahan, David Detlefs, Vance Morrison, Brian Grunkemeyer, Eric Dean Tribble
  • Publication number: 20080319997
    Abstract: Various technologies and techniques are disclosed that improve implementation of concurrency control modes in a transactional memory system. A transactional memory word is provided for each piece of data. The transactional memory word includes a version number, a reader indicator, and an exclusive writer indicator. The transactional memory word is analyzed to determine if the particular concurrency control mode is proper. Using the transactional memory word to help with concurrency control allows multiple combinations of operations to be performed against the same memory location simultaneously and/or from different transactions. For example, a pessimistic read operation and an optimistic read operation can be performed against the same memory location.
    Type: Application
    Filed: August 22, 2008
    Publication date: December 25, 2008
    Applicant: MICROSOFT CORPORATION
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs, Vinod K. Grover
  • Publication number: 20080256073
    Abstract: Various technologies and techniques are disclosed that support buffered writes and enforced serialization order in a software transactional memory system. A buffered write process is provided that performs writes to shadow copies of objects and writes content back to the objects after validating a respective transaction during commit. When a write lock is first obtained for a particular transaction, a shadow copy is made of a particular object. Writes are performed to and reads from the shadow copy. After validating the particular transaction during commit, content is written from the shadow copy to the particular object. A transaction ordering process is provided that ensures that an order in which the transactions are committed matches an abstract serialization order of the transactions. Transactions are not allowed to commit until their ticket number matches a global number that tracks the next transaction that should commit.
    Type: Application
    Filed: April 11, 2007
    Publication date: October 16, 2008
    Applicant: Microsoft Corporation
    Inventors: David Detlefs, John Joseph Duffy, Michael M. Magruder, Goetz Graefe, Vinod K. Grover, Timothy Lawrence Harris
  • Patent number: 7434010
    Abstract: Various technologies and techniques are disclosed that improve implementation of concurrency control modes in a transactional memory system. A transactional memory word is provided for each piece of data. The transactional memory word includes a version number, a reader indicator, and an exclusive writer indicator. The transactional memory word is analyzed to determine if the particular concurrency control mode is proper. Using the transactional memory word to help with concurrency control allows multiple combinations of operations to be performed against the same memory location simultaneously and/or from different transactions. For example, a pessimistic read operation and an optimistic read operation can be performed against the same memory location.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: October 7, 2008
    Assignee: Microsoft Corporation
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs, Vinod K. Grover
  • Publication number: 20080147757
    Abstract: Various technologies and techniques are disclosed for providing a software transactional memory system that supports allocation and use of finalizable objects inside transactions. By supporting such finalizable object usage inside a software transactional memory system, correct behavior is maintained when a garbage collector must determine when a particular one or more of the objects are eligible for finalization. A to-be-finalized set is provided for a transaction. An object is placed into the to-be-finalized set for the transaction whenever a finalizable object is allocated within the transaction. A finalize indicator is set for each object in the to-be-finalized set at an appropriate time to indicate that the objects are eligible for finalization. For example, if the transaction is ready to commit and the transaction is an open transaction, then the to-be-finalized set is traversed and a finalize indicator is set for each object to indicate they are eligible for finalization.
    Type: Application
    Filed: December 14, 2006
    Publication date: June 19, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, David Detlefs, Michael M. Magruder
  • Publication number: 20080127150
    Abstract: Various technologies and techniques facilitate stack read and write operations in a software transactional memory system. If the compiler determines that an address for a variable in a code segment is a stack location, the stack location is live on entry, and the address of the variable has not been taken and passed to another thread, the code is changed to ensure failure atomicity. One example includes modifying the code so a shadow copy is saved for local variables that are live on entry. If the same prior criteria are true except the stack location is not live on entry, the code is optimized by ensuring code for logging and software transactional memory operations are not included. If the compiler does not know the address is the stack location or that the address is not passed to another thread, the code is changed to ensure failure and concurrency atomicity.
    Type: Application
    Filed: August 4, 2006
    Publication date: May 29, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs
  • Publication number: 20080120300
    Abstract: Various technologies and techniques are disclosed for handling exceptions in sequential statements that are executed in parallel. A transactional memory system is provided with a contention manager. The contention manager is responsible for managing exceptions that occur within statements that were designed to be executed in an original sequential order, and that were transformed into ordered transactions for speculative execution in parallel. The contention manager ensures that any exceptions that are thrown from one or more speculatively executed blocks while the statements are being executed speculatively in parallel are handled in the original sequential order.
    Type: Application
    Filed: June 20, 2007
    Publication date: May 22, 2008
    Applicant: Microsoft Corporation
    Inventors: David Detlefs, John Joseph Duffy, Goetz Graefe, Vinod K. Grover, Michael M. Magruder, Lingli Zhang
  • Publication number: 20080120484
    Abstract: Various technologies and techniques are disclosed for applying ordering to transactions in a software transactional memory system. A software transactional memory system is provided with a feature to allow a pre-determined commit order to be specified for a plurality of transactions. The pre-determined commit order is used at runtime to aid in determining an order in which to commit the transactions in the software transactional memory system. A contention management process is invoked when a conflict occurs between a first transaction and a second transaction. The pre-determined commit order is used in the contention management process to aid in determining whether the first transaction or the second transaction should win the conflict and be allowed to proceed.
    Type: Application
    Filed: November 17, 2006
    Publication date: May 22, 2008
    Applicant: Microsoft Corporation
    Inventors: Lingli Zhang, Vinod K. Grover, Michael M. Magruder, David Detlefs, John Joseph Duffy, Goetz Graefe
  • Publication number: 20080120299
    Abstract: Various technologies and techniques are disclosed for transforming a sequential loop into a parallel loop for use with a transactional memory system. A transactional memory system is provided. A first section of code containing an original sequential loop is transformed into a second section of code containing a parallel loop that uses transactions to preserve an original input to output mapping. For example, the original sequential loop can be transformed into a parallel loop by taking each iteration of the original sequential loop and generating a separate transaction that follows a pre-determined commit order process. At least some of the separate transactions are executed in different threads. When an unhandled exception is detected that occurs in a particular transaction while the parallel loop is executing, state modifications made by the particular transaction and predecessor transactions are committed, and state modifications made by successor transactions are discarded.
    Type: Application
    Filed: June 4, 2007
    Publication date: May 22, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, Jan Gray, Yosseff Levanoni
  • Publication number: 20080120298
    Abstract: Various technologies and techniques are disclosed for transforming a sequential loop into a parallel loop for use with a transactional memory system. Open ended and/or closed ended sequential loops can be transformed to parallel loops. For example, a section of code containing an original sequential loop is analyzed to determine a fixed number of iterations for the original sequential loop. The original sequential loop is transformed into a parallel loop that can generate transactions in an amount up to the fixed number of iterations. As another example, an open ended sequential loop can be transformed into a parallel loop that generates a separate transaction containing a respective work item for each iteration of a speculation pipeline. The parallel loop is then executed using the transactional memory system, with at least some of the separate transactions being executed on different threads.
    Type: Application
    Filed: June 4, 2007
    Publication date: May 22, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, Jan Gray, Yosseff Levanoni
  • Publication number: 20080034359
    Abstract: Various technologies and techniques are disclosed that provide software transactional protection of managed pointers. A software transactional memory system interacts with and/or includes a compiler. At compile time, the compiler determines that there are one or more reference arguments in one or more code segments being compiled whose source cannot be recovered. The compiler executes a procedure to select one or more appropriate techniques or combinations thereof for communicating the sources of the referenced variables to the called code segments to ensure the referenced variables can be recovered when needed. Some examples of these techniques include a fattened by-ref technique, a static fattening technique, a dynamic ByRefInfo type technique, and others. One or more combinations of these techniques can be used as appropriate.
    Type: Application
    Filed: August 4, 2006
    Publication date: February 7, 2008
    Applicant: Microsoft Corporation Microsoft Patent Group
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs
  • Publication number: 20080034172
    Abstract: Various technologies and techniques are disclosed that improve implementation of concurrency control modes in a transactional memory system. A transactional memory word is provided for each piece of data. The transactional memory word includes a version number, a reader indicator, and an exclusive writer indicator. The transactional memory word is analyzed to determine if the particular concurrency control mode is proper. Using the transactional memory word to help with concurrency control allows multiple combinations of operations to be performed against the same memory location simultaneously and/or from different transactions. For example, a pessimistic read operation and an optimistic read operation can be performed against the same memory location.
    Type: Application
    Filed: August 4, 2006
    Publication date: February 7, 2008
    Applicant: Microsoft Corporation
    Inventors: John Joseph Duffy, Michael M. Magruder, Goetz Graefe, David Detlefs, Vinod K. Grover
  • Publication number: 20080027093
    Abstract: The present invention is directed to novel cyclohexylalanine derivatives which are inhibitors of the dipeptidyl peptidase-IV enzyme (“DP-IV inhibitors”) and which are useful in the treatment or prevention of diseases in which the dipeptidyl peptidase-IV enzyme is involved, such as diabetes and particularly type 2 diabetes. The invention is also directed to pharmaceutical compositions comprising these compounds and the use of these compounds and compositions in the prevention or treatment of such diseases in which the dipeptidyl peptidase-IV enzyme is involved.
    Type: Application
    Filed: May 13, 2005
    Publication date: January 31, 2008
    Inventors: Joseph Duffy, David Kaelin, Ann Weber, Brian Kirk
  • Patent number: 7273876
    Abstract: The present invention addresses substituted thiophene derivatives, as well as compositions containing such compounds and methods of treatment. The compounds in the present invention are glucagon antagonists. The compounds block the action of glucagon at its receptor and thereby decrease the levels of plasma glucose providing a treatment of diabetes.
    Type: Grant
    Filed: September 8, 2003
    Date of Patent: September 25, 2007
    Assignee: Merck & Co., Inc.
    Inventors: Joseph Duffy, Elizabeth Louise Campbell, Rui Liang, Zenon Konteatis