Patents by Inventor Allan D. Knies

Allan D. Knies 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: 10409763
    Abstract: Various different embodiments of the invention are described including: (1) a method and apparatus for intelligently allocating threads within a binary translation system; (2) data cache way prediction guided by binary translation code morphing software; (3) fast interpreter hardware support on the data-side; (4) out-of-order retirement; (5) decoupled load retirement in an atomic OOO processor; (6) handling transactional and atomic memory in an out-of-order binary translation based processor; and (7) speculative memory management in a binary translation based out of order processor.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: September 10, 2019
    Assignee: INTEL CORPORATION
    Inventors: Patrick P. Lai, Ethan Schuchman, David Keppel, Denis M. Khartikov, Polychronis Xekalakis, Joshua B. Fryman, Allan D. Knies, Naveen Neelakantam, Gregor Stellpflug, John H. Kelm, Mirem Hyuseinova Seidahmedova, Demos Pavlou, Jaroslaw Topp
  • Patent number: 10089239
    Abstract: Provided are methods, systems, and apparatus for managing and controlling memory caches, in particular, system level caches outside of those closest to the CPU. The processes and representative hardware structures that implement the processes are designed to allow for detailed control over the behavior of such system level caches. Caching policies are developed based on policy identifiers, where a policy identifier corresponds to a collection of parameters that control the behavior of a set of cache management structures. For a given cache, one policy identifier is stored in each line of the cache.
    Type: Grant
    Filed: May 26, 2016
    Date of Patent: October 2, 2018
    Assignee: Google LLC
    Inventors: Allan D. Knies, Shinye Shiu, Chih-Chung Chang, Vyacheslav Vladimirovich Malyugin, Santhosh Rao
  • Publication number: 20160350232
    Abstract: Provided are methods, systems, and apparatus for managing and controlling memory caches, in particular, system level caches outside of those closest to the CPU. The processes and representative hardware structures that implement the processes are designed to allow for detailed control over the behavior of such system level caches. Caching policies are developed based on policy identifiers, where a policy identifier corresponds to a collection of parameters that control the behavior of a set of cache management structures. For a given cache, one policy identifier is stored in each line of the cache.
    Type: Application
    Filed: May 26, 2016
    Publication date: December 1, 2016
    Applicant: GOOGLE INC.
    Inventors: Allan D. KNIES, Shinye SHIU, Chih-Chung CHANG, Vyacheslav Vladimirovich MALYUGIN, Santhosh RAO
  • Patent number: 9477628
    Abstract: A collective communication apparatus and method for parallel computing systems. For example, one embodiment of an apparatus comprises a plurality of processor elements (PEs); collective interconnect logic to dynamically form a virtual collective interconnect (VCI) between the PEs at runtime without global communication among all of the PEs, the VCI defining a logical topology between the PEs in which each PE is directly communicatively coupled to a only a subset of the remaining PEs; and execution logic to execute collective operations across the PEs, wherein one or more of the PEs receive first results from a first portion of the subset of the remaining PEs, perform a portion of the collective operations, and provide second results to a second portion of the subset of the remaining PEs.
    Type: Grant
    Filed: September 28, 2013
    Date of Patent: October 25, 2016
    Assignee: Intel Corporation
    Inventors: Allan D. Knies, David Pardo Keppel, Dong Hyuk Woo, Joshua B. Fryman
  • Patent number: 9459871
    Abstract: A method, system, and computer program product for identifying loop information corresponding to a plurality of loop instructions. The loop instructions are stored into a queue. The loop instructions are replayed from the queue for execution. Loop iteration is counted based on the identified loop information. A determination is made of whether the last iteration of the loop is done. If the last iteration is not done, then embodiments continue replaying the loop instructions, until the last iteration is done.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: October 4, 2016
    Assignee: Intel Corporation
    Inventors: Masha Lipshits, Lihu Rappaport, Shantanu Gupta, Franck Sala, Naveen Kumar, Allan D. Knies
  • Publication number: 20150378731
    Abstract: Various different embodiments of the invention are described including: (1) a method and apparatus for intelligently allocating threads within a binary translation system; (2) data cache way prediction guided by binary translation code morphing software; (3) fast interpreter hardware support on the data-side; (4) out-of-order retirement; (5) decoupled load retirement in an atomic OOO processor; (6) handling transactional and atomic memory in an out-of-order binary translation based processor; and (7) speculative memory management in a binary translation based out of order processor.
    Type: Application
    Filed: June 30, 2014
    Publication date: December 31, 2015
    Inventors: PATRICK P. LAI, ETHAN SCHUCHMAN, DAVID KEPPEL, DENIS M. KHARTIKOV, POLYCHRONIS XEKALAKIS, JOSHUA B. FRYMAN, ALLAN D. KNIES, NAVEEN NEELAKANTAM, GREGOR STELLPFLUG, JOHN H. KELM, MIREM HYUSEINOVA, DEMOS PAVLOU, JAROSLAW TOPP
  • Patent number: 9195465
    Abstract: Responsive to execution of a computer instruction in a current translation window, state indicators associated with a cache line accessed for the execution may be modified. The state indicators may include: a first indicator to indicate whether the computer instruction is a load instruction moved from a subsequent translation window into the current translation window, a second indicator to indicate whether the cache line is modified in a cache responsive to the execution of the computer instruction, a third indicator to indicate whether the cache line is speculatively modified in the cache responsive to the execution of the computer instruction, a fourth indicator to indicate whether the cache line is speculatively loaded by the computer instruction, a fifth indicator to indicate whether a core executing the computer instruction exclusively owns the cache line, and a sixth indicator to indicate whether the cache line is invalid.
    Type: Grant
    Filed: December 28, 2012
    Date of Patent: November 24, 2015
    Assignee: Intel Corporation
    Inventors: Varun K. Mohandru, Fernando Latorre, Li-Gao Zei, Allan D. Knies, Rami May, Lutz Naethke
  • Publication number: 20150095542
    Abstract: A collective communication apparatus and method for parallel computing systems. For example, one embodiment of an apparatus comprises a plurality of processor elements (PEs); collective interconnect logic to dynamically form a virtual collective interconnect (VCI) between the PEs at runtime without global communication among all of the PEs, the VCI defining a logical topology between the PEs in which each PE is directly communicatively coupled to a only a subset of the remaining PEs; and execution logic to execute collective operations across the PEs, wherein one or more of the PEs receive first results from a first portion of the subset of the remaining PEs, perform a portion of the collective operations, and provide second results to a second portion of the subset of the remaining PEs.
    Type: Application
    Filed: September 28, 2013
    Publication date: April 2, 2015
    Inventors: Allan D. Knies, David Pardo Keppel, Dong Hyuk Woo, Joshua B. Fryman
  • Patent number: 8832505
    Abstract: Methods and apparatus to provide failure detection are disclosed herein. An example method includes executing, via a plurality of computing nodes, first fenced computing operations; storing a count of issued data operations resulting from the first fenced computing operations; and determining whether a failure condition exists in the plurality of computing nodes by comparing the count of issued data operations to the count of performed data operations resulting from the first fenced computing operations.
    Type: Grant
    Filed: June 29, 2012
    Date of Patent: September 9, 2014
    Assignee: Intel Corporation
    Inventors: Joshua Bruce Fryman, Allan D. Knies
  • Publication number: 20140189253
    Abstract: Responsive to execution of a computer instruction in a current translation window, state indicators associated with a cache line accessed for the execution may be modified. The state indicators may include: a first indicator to indicate whether the computer instruction is a load instruction moved from a subsequent translation window into the current translation window, a second indicator to indicate whether the cache line is modified in a cache responsive to the execution of the computer instruction, a third indicator to indicate whether the cache line is speculatively modified in the cache responsive to the execution of the computer instruction, a fourth indicator to indicate whether the cache line is speculatively loaded by the computer instruction, a fifth indicator to indicate whether a core executing the computer instruction exclusively owns the cache line, and a sixth indicator to indicate whether the cache line is invalid.
    Type: Application
    Filed: December 28, 2012
    Publication date: July 3, 2014
    Inventors: Varun K. MOHANDRU, Fernando LATORRE, Li-Gao ZEI, Allan D. KNIES, Rami MAY, Lutz NAETHKE
  • Publication number: 20140189331
    Abstract: An method may include identifying loop information corresponding to a plurality of loop instructions. The loop instructions are stored into a queue. The loop instructions are replayed from the queue for execution. Loop iteration is counted based on the identified loop information. A determination of whether the last iteration of the loop is done. If the last iteration is not done, then continue replaying the loop instructions, until the last iteration is done.
    Type: Application
    Filed: December 31, 2012
    Publication date: July 3, 2014
    Inventors: Maria Lipshits, Lihu Rappoport, Shantanu Gupta, Franck Sala, Naveen Kumar, Allan D. Knies
  • Publication number: 20140006870
    Abstract: Methods and apparatus to provide failure detection are disclosed herein. An example method includes executing, via a plurality of computing nodes, first fenced computing operations; storing a count of issued data operations resulting from the first fenced computing operations; and determining whether a failure condition exists in the plurality of computing nodes by comparing the count of issued data operations to the count of performed data operations resulting from the first fenced computing operations.
    Type: Application
    Filed: June 29, 2012
    Publication date: January 2, 2014
    Inventors: Joshua Bruce Fryman, Allan D. Knies
  • Patent number: 7143270
    Abstract: A processor comprising a feature indicator associated with at least one of a first sequence of one or more instructions, a first register, a second register, and an execution core is provided. The execution core is configured to execute a second instruction to cause the first register to be set to a first value using the feature indicator and to cause the second register to be set to a second value using the feature indicator. The execution core is configured to execute the first sequence of one or more instructions to cause a function to be performed in response to the first value in the first register indicating a true condition, and the execution core is configured to execute a second sequence of one or more instructions to cause the function to be performed in response to the second value in the second register indicating the true condition.
    Type: Grant
    Filed: January 30, 2004
    Date of Patent: November 28, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Kevin W. Rudd, Allan D. Knies, Dale C. Morris, James M. Hull