Patents by Inventor John Gregory Favor

John Gregory Favor 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: 7849292
    Abstract: A method and apparatus for optimizing a sequence of operations adapted for execution by a processor is disclosed to include locating an operation, if any, that is next within the sequence of operations and setting a current operation to be that operation. The current operation is processed as follows: a) de-activating, if not already de-activated, a consumed indicator associated with the current operation; and b) when the current operation is of the producer type, then activating, if not already activated, a producer indicator associated with the current operation, and locating a first set of operations, if any, that i) are earlier in the sequence of operations than the current operation, ii) have their associated producer indicator activated, and iii) have their associated consumed indicator de-activated, and then de-activating the producer indicator associated with each operation in the first set.
    Type: Grant
    Filed: November 16, 2007
    Date of Patent: December 7, 2010
    Assignee: Oracle America, Inc.
    Inventors: Matthew William Ashcraft, John Gregory Favor, Christopher Patrick Nelson, Ivan Pavle Radivojevic, Joseph Byron Rowlands, Richard Win Thaik
  • 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: 7802073
    Abstract: The present disclosure provides methods and systems adapted for use with a processor having one or more physical cores. The methods and systems include a virtual core management component adapted to map one or more virtual cores to at least one of the physical cores to enable execution of one or more programs by the at least one physical core. The one or more virtual cores include one or more logical states associated with the execution of the one or more programs. The methods and systems may include a memory component adapted to store the one or more virtual cores. The virtual core management component may be adapted to transfer the one or more virtual cores from the memory component to the at least one physical core.
    Type: Grant
    Filed: July 23, 2007
    Date of Patent: September 21, 2010
    Assignee: Oracle America, Inc.
    Inventors: Yu Qing Cheng, John Gregory Favor, Carlos Puchol, Seungyoon Peter Song, Peter Glaskowsky, Laurent Moll, Joe Rowlands, Donald Alpert
  • Patent number: 7797517
    Abstract: Reference architecture instructions are translated into target architecture operations. Sequences of operations, in a predicted execution order in some embodiments, form traces. In some embodiments, a trace is based on a plurality of basic blocks. In some embodiments, a trace is committed or aborted as a single entity. Sequences of operations are optimized by fusing collections of operations; fused operations specify a same observable function as respective collections, but advantageously enable more efficient processing. In some embodiments, a collection comprises multiple register operations. Fusing a register operation with a branch operation in a trace forms a fused reg-op/branch operation. In some embodiments, branch instructions translate into assert operations. Fusing an assert operation with another operation forms a fused assert operation. In some embodiments, fused operations only set architectural state, such as high-order portions of registers, that is subsequently read before being written.
    Type: Grant
    Filed: November 17, 2006
    Date of Patent: September 14, 2010
    Assignee: Oracle America, Inc.
    Inventor: John Gregory Favor
  • Patent number: 7797512
    Abstract: A virtual core management system including one or more physical cores and one or more virtual cores. Each virtual core respectively includes a collection of logical states associated with execution of a corresponding program. The virtual core management system further includes one or more interrupt controllers configured to send one or more interrupt signals to interrupt execution of a corresponding program associated with at least one of the one or more virtual cores, and a virtual core management component configured to map the at least one virtual core to one of the one or more physical cores and route the one or more interrupt signals to the corresponding physical core.
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: September 14, 2010
    Assignee: Oracle America, Inc.
    Inventors: Yu Qing Cheng, John Gregory Favor, Peter N. Glaskowsky, Laurent R. Moll, Carlos Puchol, Seungyoon Peter Song
  • Patent number: 7788473
    Abstract: Prediction of data values to be read from memory by a microprocessor for load operations. In one aspect, a method for predicting a data value that will result from a load operation to be executed by the microprocessor includes accessing an entry in a load value prediction table that stores a predicted data value corresponding to the load operation. The predicted data value is stored in a physical storage destination of the microprocessor to be available as a result of the load operation without waiting for execution of the load operation to complete. The storage destination is the destination for a loaded data value resulting from executing the load operation.
    Type: Grant
    Filed: December 26, 2006
    Date of Patent: August 31, 2010
    Assignee: Oracle America, Inc.
    Inventors: Chris Nelson, Matthew Ashcraft, John Gregory Favor, Seungyoon Peter Song
  • Patent number: 7783863
    Abstract: A method of handling a trace to be aborted includes receiving an indication of a trace to be aborted and an indication of an abort reason corresponding to an execution of the trace to be aborted. The trace to be aborted has a trace type associated therewith and includes a sequence of the operations, and represents a sequence of at least two of the instructions. The method further includes identifying a corrective action based at least in part on the type of the trace to be aborted and on the abort reason, not taking into account a correspondence between the at least one operation that caused the execution to be aborted and the at least one instruction that the at least one operation at least in part represents. A next trace and its trace type is determined for execution, where the determining is based on the trace to be aborted and on the corrective action.
    Type: Grant
    Filed: October 24, 2007
    Date of Patent: August 24, 2010
    Assignee: Oracle America, Inc.
    Inventors: Christopher Patrick Nelson, John Gregory Favor, Richard Win Thaik, Matthew William Ashcraft
  • Patent number: 7779307
    Abstract: An embodiment of the present invention includes a circuit for tracking memory operations with trace-based execution. Each trace includes a sequence of operations that includes zero or more of the memory operations. The memory operations being executed form a set of active memory operations that have a predefined program order among them and corresponding ordering constraints. At least some of the active memory operations access the memory in an execution order that is different from the program order. Checkpoint entries are associated with each trace. There is a one-to-one correspondence between checkpoint entries and memory operation ordering entries. Each checkpoint entry refers to a checkpoint location. Rollback requests cause the circuit to overwrite checkpoint entries associated with the corresponding trace.
    Type: Grant
    Filed: February 13, 2008
    Date of Patent: August 17, 2010
    Assignee: Oracle America, Inc.
    Inventors: John Gregory Favor, Paul G. Chan, Graham Ricketson Murphy, Joseph Byron Rowlands
  • Patent number: 7681019
    Abstract: Reference architecture instructions are translated into target architecture operations. In some embodiments, an execution unit of a processor executes a function determined from a collection of operations, the function specifying functionality based on instructions, the collection selected from operations translated from the instructions. In further embodiments, the function is specified as a fused operation. Sequences of operations are optimized by fusing collections of operations; fused operations specify a same observable function as respective collections, but advantageously enable more efficient processing. In some embodiments, a collection comprises multiple register operations. Sequences of operations, in a predicted execution order in some embodiments, form traces. In some embodiments, fusing operations requires setting only final architectural state, such as final flag state; intermediate architectural state is used implicitly in a fused operation.
    Type: Grant
    Filed: November 17, 2006
    Date of Patent: March 16, 2010
    Assignee: Sun Microsystems, Inc.
    Inventor: John Gregory Favor
  • Patent number: 7673122
    Abstract: Software hints embedded in branch instructions direct selection of one of a plurality of branch predictors to use when processing the branch instructions, leading to improved branch prediction (i.e. fewer mis-predictions) over conventional schemes. A software agent assembles branch instructions having associated respective branch predictor control fields compatible with a branch predictor selector and a plurality of branch predictors. Each branch predictor control field is used to perform branch predictor selection, branch predictor control, or both. Branch predictor selection enables selective branch prediction according to an appropriate one of the branch predictors as determined by the software agent by examining context surrounding the branch instruction. Branch predictor control enables control of operation of one or more of the branch predictors.
    Type: Grant
    Filed: December 16, 2005
    Date of Patent: March 2, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Seungyoon Peter Song, John Gregory Favor, Richard W. Thaik
  • Patent number: 7663961
    Abstract: A reduced-power memory (such as for a cache memory system of a processor or a microprocessor) provides per-sector power/ground control and early address to advantageously reduce power consumption. Selective power control of sectors comprised in the reduced-power memory is responsive to a subset of address bits used to access the memory. The selective power control individually powers-up a selected one of the sectors in response to an access, and then powers-down the selected sector when the access is complete. The power-up is via an increase of differential between power and ground levels from a retention differential to an access differential. Time needed to vary the differential is masked by providing address information used by the selective power control in advance of providing other address information. For example, in a cache, a tag access is overlapped with power-up of a selected sector, thus masking latency of powering up the selected sector.
    Type: Grant
    Filed: April 26, 2007
    Date of Patent: February 16, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Joseph B. Rowlands, Laurent R. Moll, John Gregory Favor, Daniel Fung
  • Patent number: 7587585
    Abstract: Managing speculative execution via groups of one or more actions corresponding to atomic traces enables efficient processing of flag-related actions, as atomic traces advantageously enable single checkpoints of flag values at atomic trace boundaries. Checkpointing flags during atomic trace renaming in a processor system uses a flag checkpoint table to store a plurality of flag checkpoints, each corresponding to an atomic trace. The table is selectively accessed to provide flag information to restore speculative flags when an atomic trace is aborted. A corresponding flag checkpoint is stored when an atomic trace is renamed. An action that updates flags updates all entries in the table corresponding to younger atomic traces. If the atomic trace is aborted, then the corresponding flag checkpoint is used for restoration of flag state.
    Type: Grant
    Filed: October 26, 2006
    Date of Patent: September 8, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Seungyoon Peter Song, Christopher P. Nelson
  • Patent number: 7568089
    Abstract: Managing speculative execution via groups of actions corresponding to atomic traces enables efficient processing of flag-related actions, as atomic traces advantageously enable single checkpoints of flags at trace boundaries. Flag restoration from checkpoints for trace aborts uses a flag checkpoint table to store flag checkpoints, each corresponding to an atomic trace. The table is accessed for flag restoration in response to a trace abort. In a first technique, a corresponding flag checkpoint is stored in response to trace renaming, and the flag checkpoints are updated as flags are modified. Flags are restored from the flag checkpoint corresponding to an aborted atomic trace. In a second technique, a corresponding flag checkpoint is allocated to an invalid state in response to trace renaming, and initialized on-demand when flags are first modified in accordance with the atomic trace. Flags are restored from the oldest flag checkpoint starting from an aborted atomic trace.
    Type: Grant
    Filed: October 26, 2006
    Date of Patent: July 28, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Seungyoon Peter Song, Christopher P. Nelson
  • Patent number: 7568088
    Abstract: Managing speculative execution via groups of one or more actions corresponding to atomic traces enables efficient processing of flag-related actions, as atomic traces advantageously enable single checkpoints of flag values at atomic trace boundaries. Checkpointing flags on-demand for atomic traces in a processor system uses a flag checkpoint table to store a plurality of flag checkpoints, each corresponding to an atomic trace. The table is selectively accessed to provide flag information to restore speculative flags when an atomic trace is aborted. A corresponding flag checkpoint is allocated to an invalid state when an atomic trace is renamed. An action that updates flags initializes the corresponding flag checkpoint (if invalid). If the atomic trace is aborted, then the table is searched according to program order starting with the entry corresponding to the aborted atomic trace. The first (if any) valid checkpoint found is used for flag restoration.
    Type: Grant
    Filed: October 26, 2006
    Date of Patent: July 28, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Seungyoon Peter Song, Christopher P. Nelson
  • Patent number: 7533242
    Abstract: A software agent assembles prefetch hint instructions or prefixes defined in an instruction set architecture, the instructions/prefixes conveying prefetch hint information to a processor enabled to execute instructions according to the instruction set architecture. The prefetch hints are directed to control operation of one or more hardware memory prefetcher units included in the processor, providing for increased efficiency in memory prefetching operations. The hints may optionally provide any combination of parameters describing a memory reference traffic pattern to search for, when to begin searching, when to terminate prefetching, and how aggressively to prefetch. Thus the hardware prefetchers are enabled to make improved traffic prediction, providing more accurate results using reduced hardware resources. The hints may include any combination of specific pattern hints (one/two/N-dimensional strides, indirect, and indirect-stride), modifiers including sparse and region, and a prefetch-stop directive.
    Type: Grant
    Filed: April 15, 2006
    Date of Patent: May 12, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Laurent R. Moll, Jorel D. Hartman, Peter N. Glaskowsky, Seungyoon Peter Song, John Gregory Favor
  • Patent number: 7493471
    Abstract: A method for synchronized renaming between a master processor and a coprocessor includes sending from the master processor an operation for execution by the coprocessor along with an identifier, at the coprocessor, renaming the operation for execution, including assigning a resource and associating the resource with the identifier, and at a subsequent time, sending the identifier from the master processor to the coprocessor to be used in conjunction with the execution of the renamed operation.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: February 17, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Christopher P. Nelson
  • Patent number: 7490223
    Abstract: An apparatus and a method dynamically reassign resources in a coprocessor among master processors that require service from the coprocessor. The method includes each processor, in each processor cycle, keeping track of a number of resource units required for executing operations sent to the coprocessor in that processor cycle and receiving from the coprocessor a number of resource units released during the processor cycle. When the resources need to be reassigned, the coprocessor asserts a signal to the resource yielding processor to cause it to reduce its expectation of resources to zero and ceasing sending service requests to the coprocessor. The coprocessor then moves resources from the yielding processor to the resource receiving processor. Resources are then released to both processors over time to their respective adjusted resource allocations. Such resources may be the number of operations that is allowed to be executing in the coprocessor simulataneously.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: February 10, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Christopher P. Nelson
  • Patent number: 7490225
    Abstract: Synchronized register renaming between a master processor and a coprocessor that receives operations from the master enables efficient implementation of register renaming and operation execution in the processors. An ideal and an external register allocation map are implemented in the coprocessor. When registers are no longer allocated according to the ideal allocation map and the registers are currently allocated according to the external allocation map, the registers are deallocated in the external map and the number of freed registers is reported to the master. The master increments a free register credit count accordingly, and decrements the credit count by one for each operation issued to the coprocessor. An operation is not issued to the coprocessor unless at least a register is free according to the credit count. The master also throttles coprocessor operation issue based on a credit count corresponding to free scheduler entries available in the coprocessor.
    Type: Grant
    Filed: October 31, 2006
    Date of Patent: February 10, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: John Gregory Favor, Christopher P. Nelson
  • Patent number: 7443759
    Abstract: A reduced-power memory (such as for a cache memory system of a processor or a microprocessor) provides per-sector ground control to advantageously reduce power consumption. Selective power control of a plurality of sectors comprised in the reduced-power memory is responsive to a subset of address bits for accessing the memory. The selective power control individually powers-up a selected one of the sectors in response to an access, and then powers-down the selected sector when the access is complete. The power-up is via a decrease in ground potential from a retention level to an access level. Time needed to vary the ground potential is optionally masked by providing address information used by the selective power control in advance of providing other address information. For example, in a cache, a tag access is overlapped with power-up of a selected sector, thus masking latency of powering up the selected sector.
    Type: Grant
    Filed: April 26, 2007
    Date of Patent: October 28, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Joseph B. Rowlands, Laurent R. Moll, John Gregory Favor, Daniel Fung
  • Patent number: 7389403
    Abstract: An Adaptive Computing Ensemble (ACE) includes a plurality of flexible computation units as well as an execution controller to allocate the units to Computing Ensembles (CEs) and to assign threads to the CEs. The units may be any combination of ACE-enabled units, including instruction fetch and decode units, integer execution and pipeline control units, floating-point execution units, segmentation units, special-purpose units, reconfigurable units, and memory units. Some of the units may be replicated, e.g. there may be a plurality of integer execution and pipeline control units. Some of the units may be present in a plurality of implementations, varying by performance, power usage, or both. The execution controller dynamically alters the allocation of units to threads in response to changing performance and power consumption observed behaviors and requirements.
    Type: Grant
    Filed: March 29, 2006
    Date of Patent: June 17, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Donald B. Alpert, John Gregory Favor, Peter N. Glaskowsky, Seungyoon Peter Song