Patents by Inventor Daniel M. Lavery

Daniel M. Lavery 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: 10061609
    Abstract: A method and system uses exceptions for code specialization in a system that supports transactions. The method and system includes inserting one or more branchless instructions into a sequence of computer instructions. The branchless instructions include one or more instructions that are executable if a commonly occurring condition is satisfied and include one or more instructions that are configured to raise an exception if the commonly occurring condition is not satisfied.
    Type: Grant
    Filed: October 31, 2016
    Date of Patent: August 28, 2018
    Assignee: Intel Corporation
    Inventors: Arvind Krishnaswamy, Daniel M. Lavery
  • Publication number: 20170046165
    Abstract: A method and system uses exceptions for code specialization in a system that supports transactions. The method and system includes inserting one or more branchless instructions into a sequence of computer instructions. The branchless instructions include one or more instructions that are executable if a commonly occurring condition is satisfied and include one or more instructions that are configured to raise an exception if the commonly occurring condition is not satisfied.
    Type: Application
    Filed: October 31, 2016
    Publication date: February 16, 2017
    Inventors: Arvind Krishnaswamy, Daniel M. Lavery
  • Patent number: 9483275
    Abstract: A method and system uses exceptions for code specialization in a system that supports transactions. The method and system includes inserting one or more branchless instructions into a sequence of computer instructions. The branchless instructions include one or more instructions that are executable if a commonly occurring condition is satisfied and include one or more instructions that are configured to raise an exception if the commonly occurring condition is not satisfied.
    Type: Grant
    Filed: December 16, 2011
    Date of Patent: November 1, 2016
    Assignee: Intel Corporation
    Inventors: Arvind Krishnaswamy, Daniel M Lavery
  • Publication number: 20160285958
    Abstract: Systems, apparatuses and methods may provide for isolating native information from non-native information, wherein the native information is associated with a mobile application running in a managed runtime environment. Additionally, the native information may be checkpointed and transferred from a first device to a second device in response to a live migration event. In one example, the native information includes native code and native state data and isolating the native information from the non-native information includes dispatching one or more native function calls to a binary translation (BT) container that manages a memory pool dedicated to the native information.
    Type: Application
    Filed: March 27, 2015
    Publication date: September 29, 2016
    Inventors: Abhinav Das, Saurabh Shukla, Wei Li, Daniel M. Lavery
  • Patent number: 9141362
    Abstract: A method and system to support scheduling of memory store instructions across atomic regions in binary translation in a processing unit or processor. In one embodiment of the invention, the processing unit has a store buffer that allows store instructions to be issued in different order than the source binary program order but still retire in source binary program order. This facilitates a small atomic region that maps to each iteration of a source binary code and these atomic regions are joined together into a pipelined region. In one embodiment of the invention, the processing unit executes commit instruction(s) once every loop iteration instead of executing the commit instruction(s) once after the loop exit.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: September 22, 2015
    Assignee: Intel Corporation
    Inventors: Guokai Ma, Yihua Jin, Daniel M. Lavery, Jianhui Li
  • Publication number: 20140282437
    Abstract: A method and system to support scheduling of memory store instructions across atomic regions in binary translation in a processing unit or processor. In one embodiment of the invention, the processing unit has a store buffer that allows store instructions to be issued in different order than the source binary program order but still retire in source binary program order. This facilitates a small atomic region that maps to each iteration of a source binary code and these atomic regions are joined together into a pipelined region. In one embodiment of the invention, the processing unit executes commit instruction(s) once every loop iteration instead of executing the commit instruction(s) once after the loop exit.
    Type: Application
    Filed: September 27, 2012
    Publication date: September 18, 2014
    Inventors: Guokai Ma, Yihua Jin, Daniel M. Lavery, Jianhui Li
  • Patent number: 8612949
    Abstract: Methods and apparatuses for compiler-created helper thread for multi-threading are described herein. In one embodiment, exemplary process includes identifying a region of a main thread that likely has one or more delinquent loads, the one or more delinquent loads representing loads which likely suffer cache misses during an execution of the main thread, analyzing the region for one or more helper threads with respect to the main thread, and generating code for the one or more helper threads, the one or more helper threads being speculatively executed in parallel with the main thread to perform one or more tasks for the region of the main thread. Other methods and apparatuses are also described.
    Type: Grant
    Filed: December 31, 2009
    Date of Patent: December 17, 2013
    Assignee: Intel Corporation
    Inventors: Shih-wei Liao, Xinmin Tian, Gerolf F. Hoflehner, Hong Wang, Daniel M. Lavery, Perry Wang, Dongkeun Kim, Milind Girkar, John P. Shen
  • Publication number: 20130305024
    Abstract: A method and system uses exceptions for code specialization in a system that supports transactions. The method and system includes inserting one or more branchless instructions into a sequence of computer instructions. The branchless instructions include one or more instructions that are executable if a commonly occurring condition is satisfied and include one or more instructions that are configured to raise an exception if the commonly occurring condition is not satisfied.
    Type: Application
    Filed: December 16, 2011
    Publication date: November 14, 2013
    Inventors: Arvind Krishnaswamy, Daniel M Lavery
  • Patent number: 8522220
    Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.
    Type: Grant
    Filed: February 1, 2010
    Date of Patent: August 27, 2013
    Assignee: Intel Corporation
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Geolf F. Hoflehner, Daniel M. Lavery, John P. Shen
  • Patent number: 8095920
    Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.
    Type: Grant
    Filed: September 17, 2002
    Date of Patent: January 10, 2012
    Assignee: Intel Corporation
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen
  • Publication number: 20100281471
    Abstract: Methods and apparatuses for compiler-created helper thread for multi-threading are described herein. In one embodiment, exemplary process includes identifying a region of a main thread that likely has one or more delinquent loads, the one or more delinquent loads representing loads which likely suffer cache misses during an execution of the main thread, analyzing the region for one or more helper threads with respect to the main thread, and generating code for the one or more helper threads, the one or more helper threads being speculatively executed in parallel with the main thread to perform one or more tasks for the region of the main thread. Other methods and apparatuses are also described.
    Type: Application
    Filed: December 31, 2009
    Publication date: November 4, 2010
    Inventors: Shih-Wei Liao, Xinmin Tian, Gerolf F. Hoflehner, Hong Wang, Daniel M. Lavery, Perry Wang, Dongkeun Kim, Milind Girkar, John P. Shen
  • Publication number: 20100211940
    Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.
    Type: Application
    Filed: February 1, 2010
    Publication date: August 19, 2010
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen
  • Patent number: 7774766
    Abstract: Various embodiments of the present invention relate to methods and systems for optimizing an intermediate code in a compilation logic. The intermediate code is optimized by performing reassociation in software loops. The intermediate code includes at least one critical recurrence cycle. The performance of reassociation in software loops can reduce a critical recurrence cycle in them, which can speed up their execution. The subject method can include the determination of one or more critical recurrence cycles in a software loop. The method can also include the determination of at least one edge in a critical recurrence cycle, with respect to which reassociation can be performed, if one or more pre-determined criteria are met. The method can further include performing reassociation of a dependee and a dependent of an edge. In an embodiment, when one or more pre-determined criteria are met, the logic of the software loop is maintained after performing reassociation of the dependee and the dependent of the edge.
    Type: Grant
    Filed: September 29, 2005
    Date of Patent: August 10, 2010
    Assignee: Intel Corporation
    Inventors: Kalyan Muthukumar, Daniel M Lavery
  • Patent number: 7617495
    Abstract: Disclosed are embodiments of a compiler, methods, and system for resource-aware scheduling of instructions. A list scheduling approach is augmented to take into account resource constraints when determining priority for scheduling of instructions. Other embodiments are also described and claimed.
    Type: Grant
    Filed: March 24, 2004
    Date of Patent: November 10, 2009
    Assignee: Intel Corporation
    Inventors: Kalyan Muthukumar, Daniel M. Lavery, Gerolf F. Hoflehner, Chu-cheow Lim, Jean-Francois Collard
  • Patent number: 7398521
    Abstract: Methods and apparatuses for thread management for multi-threading are described herein. In one embodiment, exemplary process includes selecting, during a compilation of code having one or more threads executable in a data processing system, a current thread having a most bottom order, determining resources allocated to one or more child threads spawned from the current thread, and allocating resources for the current thread in consideration of the resources allocated to the current thread's one or more child threads to avoid resource conflicts between the current thread and its one or more child threads. Other methods and apparatuses are also described.
    Type: Grant
    Filed: February 13, 2004
    Date of Patent: July 8, 2008
    Assignee: Intel Corporation
    Inventors: Gerolf F. Hoflehner, Shih-wei Liao, Xinmin Tian, Hong Wang, Daniel M. Lavery, Perry Wang, Dongkeun Kim, Milind Girkar, John P. Shen
  • Patent number: 7243342
    Abstract: Methods and apparatus are disclosed for determining if a user-defined software function is a memory allocation function during compile-time. The methods and apparatus determine if a user-defined function returns a new memory object every time the user-defined function is invoked. In addition, the methods and apparatus determine if the memory objects created by the user-defined function are available outside the scope of the user defined function. If the user-defined function returns a new memory object every time the user-defined function is invoked, and the memory objects created by the user-defined function are not available outside the scope of the user defined function, then the user-defined function is determined to be a memory allocation function. Otherwise, the user-defined function is determined to be a non-memory allocation function.
    Type: Grant
    Filed: June 11, 2002
    Date of Patent: July 10, 2007
    Assignee: Intel Corporation
    Inventors: Rakesh Ghiya, Daniel M. Lavery, David C. Sehr
  • Patent number: 7051193
    Abstract: Instruction-level parallelism in software pipelined loops is exploited by predicting future register rotations. A processor includes an architected current frame marker register and at least one unarchitected frame marker register. Register rotation prediction is achieved by setting the register rotation of future iterations of a software loop to be a function of the unarchitected frame marker registers. True data dependencies remain, but the dependencies caused solely by register renaming are removed. Dynamic predication is used to predicate instructions from future iterations, allowing them to be squashed if dependencies are later found. The register renaming that results from the prediction can be included in instructions in a buffer, or a renaming stage in an execution pipeline can perform the renaming.
    Type: Grant
    Filed: March 28, 2001
    Date of Patent: May 23, 2006
    Assignee: Intel Corporation
    Inventors: Hong Wang, Christopher J. Hughes, Ralph Kling, Yong-Fong Lee, Daniel M. Lavery, John Shen, Jamison Collins
  • Publication number: 20040205740
    Abstract: A memory disambiguation method and system that provides accurate memory disambiguation and is efficient in compile time and memory usage. The method preserves high-level and intermediate-level semantics and other information necessary for disambiguation in a new structure called a disam token. The disam token and a symbolic memory reference representation associated with it are also the means by which the various memory disambiguation modules and their clients communicate, forming the basis of a complete memory disambiguation system. The method includes an algorithm for creating and maintaining the disam tokens and disambiguation information and an algorithm for applying various disambiguation rules that utilize the information during program and/or module compilation.
    Type: Application
    Filed: March 29, 2001
    Publication date: October 14, 2004
    Inventors: Daniel M. Lavery, David C. Sehr, Rakesh Ghiya
  • Publication number: 20040078789
    Abstract: Methods and apparatus are disclosed for determining if a user-defined software function is a memory allocation function during compile-time. The methods and apparatus determine if a user-defined function returns a new memory object every time the user-defined function is invoked. In addition, the methods and apparatus determine if the memory objects created by the user-defined function are available outside the scope of the user defined function. If the user-defined function returns a new memory object every time the user-defined function is invoked, and the memory objects created by the user-defined function are not available outside the scope of the user defined function, then the user-defined function is determined to be a memory allocation function. Otherwise, the user-defined function is determined to be a non-memory allocation function.
    Type: Application
    Filed: June 11, 2002
    Publication date: April 22, 2004
    Inventors: Rakesh Ghiya, Daniel M. Lavery, David C. Sehr
  • Publication number: 20040054990
    Abstract: The latencies associated with cache misses or other long-latency instructions in a main thread are decreased through the use of a simultaneous helper thread. The helper thread is a speculative prefetch thread to perform a memory prefetch for the main thread. The instructions for the helper thread are dynamically incorporated into the main thread binary during post-pass operation of a compiler.
    Type: Application
    Filed: September 17, 2002
    Publication date: March 18, 2004
    Inventors: Steve Shih-wei Liao, Perry H. Wang, Hong Wang, Gerolf F. Hoflehner, Daniel M. Lavery, John P. Shen