Patents by Inventor Leonard Eric Shar

Leonard Eric Shar 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: 8037285
    Abstract: An instruction processing circuit includes a decoder circuit operable to receive a sequence of instructions and to decode the received sequence of instructions into a first type of sequence of operations, and a trace builder circuit operable to receive at least a portion of the sequence of operations of the first type and to generate, based thereon, a second type of sequence of operations, where the at least a portion of the sequence of operations of the first type represents a first portion of the sequence of instructions, where the first portion of the sequence of instructions includes at most one conditional control transfer instruction that, when present, ends the first portion of the sequence of instructions, and where the sequence of operations of the second type also represents the first portion of the sequence of instructions.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: October 11, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar, Matthew William Ashcraft, Ivan Pavle Radivojevic
  • Patent number: 8015359
    Abstract: An instruction processing circuit for a processor is disclosed. The instruction processing circuit is adapted to provide one or more sequence of operations, based on one or more sequence of instructions, to an execution unit of the processor. The instruction processing circuit comprises at least one cache circuit and the processing circuit includes a sequencer and a page translation buffer coupled to the sequencer for trace verification and maintaining coherency between a memory and the at least one cache.
    Type: Grant
    Filed: July 24, 2007
    Date of Patent: September 6, 2011
    Assignee: Oracle America, Inc.
    Inventors: John Gregory Favor, Joseph Rowlands, Leonard Eric Shar, Richard Thaik
  • Patent number: 7987342
    Abstract: An instruction processing circuit for a processor, where the instruction processing circuit is adapted to provide one or more sequence of operations, based on one or more sequence of instructions, to an execution circuit of the processor. The instruction processing circuit includes a cache circuit operable to store a second type of sequence of operations that represents at least a portion of a first type of sequence of operations, where the sequence of operations of the second type includes at most one control transfer that, when present, ends a first portion of a sequence of instructions, where the cache circuit is further configured to store a third type of sequence of operations that represents a set of at least two sequences of operations.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: July 26, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar
  • Patent number: 7966479
    Abstract: An instruction processing circuit includes a decoder circuit, a basic block builder circuit, a multi-block builder circuit, first and second predictor circuits, and a sequencer circuit, where the sequencer circuit is operable, in a first environment, to cause the first predictor circuit to generate a prediction for a particular conditional branch op concurrently with the second predictor circuit generating a prediction for another particular conditional branch op, where the sequencer circuit is also operable, in a second environment, to cause the first predictor circuit to generate a prediction for the particular conditional branch op sequentially with the second predictor circuit generating a prediction for the another particular conditional branch operation.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: June 21, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar
  • Patent number: 7953961
    Abstract: An instruction processing circuit for a processor includes a decoder circuit, a cache circuit, a sequencer circuit operable to select a next sequence of operations, and an operations fetch circuit operable to convey the next sequence of operations to an execution circuit, receive an indication that a sequencing action of the sequencer circuit is sequencing ahead of the execution circuit, and switch, based on the indication, a source of the operations fetch circuit between the cache circuit and the decoder circuit.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: May 31, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar
  • Patent number: 7953933
    Abstract: An instruction processing circuit includes an instruction cache, a decoder configured to receive at least one of the instructions and to generate, based thereon, a decoder sequence of at least one operation. The circuit includes a basic block cache that includes a basic block sequence of at least one of the operations. The basic block sequence is derived from at least one of the decoder sequences and includes at most one conditional control transfer operation. The circuit includes a multi-block cache that includes a multi-block sequence consisting of at least one of the operations derived from two or more smaller op sequences. A sequencer is configured to generate a prediction for the result of a conditional control transfer operation, select the next sequence of operations, and provide an indication of the next sequence to the instructions cache, the basic block cache, and the multi-block cache.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: May 31, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar
  • Patent number: 7949854
    Abstract: An instruction processing unit includes a trace builder circuit operable to (i) receive at least a portion of a first type of sequence of operations and to generate, based thereon, a second type of sequence of operations, where the portion includes at most one control transfer instruction that, when present, ends the portion, (ii) receive sets of at least two sequences of operations and to generate, based thereon, a plurality of third type of sequences of operations, where a sequence of operations of the third type includes one or more interior control transfer instructions and is generated from the sequence of operations of the second type and another sequence of operations of the third type, and (iii) retrieve the sequence of operations of the second type and the another sequence of operations of the third type from a cache circuit.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: May 24, 2011
    Assignee: Oracle America, Inc.
    Inventors: Richard Win Thaik, John Gregory Favor, Joseph Byron Rowlands, Leonard Eric Shar
  • Patent number: 7814298
    Abstract: A method, system and computer program product for promoting a trace in an instruction processing circuit is disclosed. They comprise determining if a current trace is promotable and determining if a next trace is appendable to the current trace. They include promoting the current trace and the next trace if the current trace is promotable and the next trace is appendable.
    Type: Grant
    Filed: November 16, 2007
    Date of Patent: October 12, 2010
    Assignee: Oracle America, Inc.
    Inventors: Richard Thaik, John Gregory Favor, Joseph Rowlands, Leonard Eric Shar, Matthew Ashcraft
  • Patent number: 7676634
    Abstract: Selective trace cache invalidation for self-modifying code via memory aging advantageously retains some of the entries in a trace cache even during self-modifying code events. Instructions underlying trace cache entries are monitored for modification in groups, enabling advantageously reduced hardware. Associated with each trace cache entry are translation ages that are determined when the entry is built by sampling current ages of memory blocks underlying the entry. When the entry is accessed and micro-operations therein processed, the translation ages of the accessed entry are compared with the current ages of the memory blocks underlying the accessed entry. If any of the age comparisons fail, then the micro-operations are aborted and the entry is invalidated. When any portion of a memory block is modified, the current age of the modified memory block is incremented. If one of the current ages overflows, then the entire trace cache is flushed.
    Type: Grant
    Filed: September 27, 2006
    Date of Patent: March 9, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Leonard Eric Shar, Kevin Paul Lawton
  • Patent number: 7606975
    Abstract: A trace cache for efficient self-modifying code processing enables selective invalidation of entries of the trace cache, advantageously retaining some of the entries in the trace cache even during self-modifying code events. Instructions underlying trace cache entries are monitored for modification in groups, enabling advantageously reduced hardware. Associated with trace cache entries are one or more translation ages, determined when the entry is built by sampling current ages of memory blocks underlying the entry. When the entry is accessed and micro-operations therein are processed, each of the translation ages of the accessed entry are compared with the current ages of the memory blocks underlying the accessed entry. If any of the age comparisons fail, then the micro-operations are aborted and the entry is invalidated. When any portion of a memory block is modified, the current age of the modified memory block is incremented.
    Type: Grant
    Filed: September 27, 2006
    Date of Patent: October 20, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Leonard Eric Shar, Kevin Paul Lawton
  • Patent number: 7546420
    Abstract: Efficient trace cache management during self-modifying code processing enables selective invalidation of entries of the trace cache, advantageously retaining some of the entries in the trace cache even during self-modifying code events. Instructions underlying trace cache entries are monitored for modification in groups, enabling advantageously reduced hardware. One or more translation ages are associated with each trace cache entry, and are determined when the entry is built by sampling current ages of memory blocks underlying the entry. When the entry is accessed and micro-operations therein are processed, the translation ages of the accessed entry are compared with the current ages of the memory blocks underlying the accessed entry. If any of the age comparisons fail, then the micro-operations are aborted and the entry is invalidated. When any portion of a memory block is modified, the current age of the modified memory block is incremented.
    Type: Grant
    Filed: September 27, 2006
    Date of Patent: June 9, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Leonard Eric Shar, Kevin Paul Lawton