Commitment Control Or Register Bypass Patents (Class 712/218)
  • Patent number: 7765387
    Abstract: A program counter control method controls instructions by an out-of-order method using a branch prediction mechanism and controls an architecture having delay instructions for branching. The method includes the steps of simultaneously committing a plurality of instructions including a branch instruction, when a branch prediction is successful and the branch instruction branches, and simultaneously updating a program counter and a next program counter depending on a number of committed instructions.
    Type: Grant
    Filed: January 28, 2003
    Date of Patent: July 27, 2010
    Assignee: Fujitsu Limited
    Inventors: Ryuichi Sunayama, Kuniki Morita, Aiichiro Inoue
  • Patent number: 7761691
    Abstract: A method for scheduling instructions for clustered digital signal processors comprising a plurality of clusters, each cluster including at least two functional units and a first register file having a first unit, a second unit and a single set of access ports shared by the functional units comprises steps of checking whether executing one instruction needs data to be read from the first unit and the second unit of the first register file, generating a copying instruction to transfer data from the first unit to the second unit of the first register file, checking whether there is a prior operation cycle available to perform the copying instruction, scheduling the copying instruction in the prior operation cycle, and scheduling the instruction after the copying instruction.
    Type: Grant
    Filed: October 27, 2005
    Date of Patent: July 20, 2010
    Assignee: National Tsing Hua University
    Inventors: Chung-Lin Tang, Yung-Chia Lin, Jenq-Kuen Lee
  • Patent number: 7757066
    Abstract: There is disclosed a data processor that executes variable latency load operations using bypass circuitry that allows load word operations to avoid stalls caused by shifting circuitry.
    Type: Grant
    Filed: December 29, 2000
    Date of Patent: July 13, 2010
    Assignees: STMicroelectronics, Inc., Hewlett-Packard Company
    Inventors: Anthony X. Jarvis, Paolo Faraboschi
  • Patent number: 7752423
    Abstract: A device is presented including a first processor and a second processor. A number of memory devices are connected to the first processor and the second processor. A register buffer is connected to the first processor and the second processor. A trace buffer is connected to the first processor and the second processor. A number of memory instruction buffers are connected to the first processor and the second processor. The first processor and the second processor perform single threaded applications using multithreading resources. A method is also presented where a first thread is executed from a first processor. The first thread is also executed from a second processor as directed by the first processor. The second processor executes instructions ahead of the first processor.
    Type: Grant
    Filed: June 28, 2001
    Date of Patent: July 6, 2010
    Assignee: Intel Corporation
    Inventors: Haitham Akkary, Sebastien Hily
  • Patent number: 7747841
    Abstract: A technique known as checkpointed early load retirement, combines register checkpointing load-value prediction to manage long-latency loads. When a long-latency load reaches the retirement stage unresolved, the processor enters Clear mode by (1) taking a Checkpoint of the architectural registers, (2) supplying a load-value prediction to consumers, and (3) early-retiring the long-latency load. This unclogs retirement, thereby “clearing the way” for subsequent instructions to retire, and also allowing instructions dependent on the long-latency load to execute sooner. When the actual value returns from memory, it is compared against the prediction. A misprediction causes the processor to roll back to the checkpoint, discarding all subsequent computation.
    Type: Grant
    Filed: September 26, 2006
    Date of Patent: June 29, 2010
    Assignee: Cornell Research Foundation, Inc.
    Inventors: Jose F. Martinez, Meyrem Kirman, Nevin Kirman
  • Patent number: 7730284
    Abstract: An instruction processing device has a of pipe-line stage with a functional unit for executing a command from an instruction. A first register unit is coupled to the functional unit for storing a result of execution of the command when the command has reached a first one of the pipeline stages, and for supplying bypass operand data to the functional unit. A register file is coupled to the functional unit for storing the result when the command has reached a second one of the pipeline stages, downstream from the first one of the pipeline stages, and for supplying operand data to the functional unit. A disable circuit is coupled to selectively disable storing of the results in the register file under control of the instructions.
    Type: Grant
    Filed: March 17, 2004
    Date of Patent: June 1, 2010
    Assignee: Koninklijke Philips Electronics N.V.
    Inventors: Balakrishnan Srinivasan, Ramanathan Sethuraman, Carlos Antonio Alba Pinto
  • Patent number: 7730285
    Abstract: A data processing system includes a plurality of functional units that selectively execute instructions. A register file includes a plurality of registers that store data corresponding to the instructions. A reorder buffer communicates with the register file and stores the data, includes at least one bypassable buffer location, and includes at least one non-bypassable buffer location.
    Type: Grant
    Filed: August 2, 2006
    Date of Patent: June 1, 2010
    Assignee: Marvell International Ltd.
    Inventors: Hong-Yi Chen, Richard Lee, Geoffrey K. Yung, Jensen Tjeng
  • Patent number: 7725687
    Abstract: This invention makes each register bypass forwarding register explicitly addressable in software. Software chooses whether to access the forwarding register immediately eliminating the need for complex automatic detection. Each instruction executes and always writes its result into the forwarding register. Writing this data into the register file in the next cycle is optional as selected by the destination register file number. This invention separates registers storing predication data from the register file. This separation removes the speed problem by enabling scheduling of the predication computation out of the critical path.
    Type: Grant
    Filed: June 27, 2007
    Date of Patent: May 25, 2010
    Assignee: Texas Instruments Incorporated
    Inventors: Amitabh Menon, David J. Hoyle
  • Patent number: 7725686
    Abstract: Systems and methods for determining whether to retire a data entry from a buffer using multiple retirement logic units. In one embodiment, each retirement unit concurrently evaluates retirement conditions for one of the buffer entries in an associated subset (e.g., even or odd) of the buffer. Selection logic coupled to the retirement units alternately selects the first or second retirement unit for retirement of one of the entries in the associated subset. Because the aggregate number of entries retired by the combined retirement logic units is divided by the number of retirement logic units, each retirement logic unit has more time to process the retirement conditions for corresponding queue entries. The buffer may be any of a variety of different types of buffers and may comprise a single buffer, or multiple buffers.
    Type: Grant
    Filed: July 24, 2006
    Date of Patent: May 25, 2010
    Assignees: Habushiki Kaisha Toshiba, International Business Machines Corporation
    Inventors: Takeki Osanai, Brian D. Barrick
  • Patent number: 7721076
    Abstract: Method, apparatus and system embodiments provide a register to track the oldest exception event or sticky event in a processor. The processor may be an out-of-order processor. Dispatched instructions (or micro-ops) may be maintained in a queue, such as a reorder buffer (ROB), for in-order retirement. For at least one embodiment, event information is maintained only in the register and is not maintained in a ROB. For at least one other embodiment, event information is maintained in a ROB entry for some events and in the register for others. For such latter embodiment, a retire engine takes the contents of both the ROB entry and the register into account when determining whether to take an exception or otherwise initiate a handling sequence during in-order instruction retirement. Other embodiments are also described and claimed.
    Type: Grant
    Filed: December 18, 2006
    Date of Patent: May 18, 2010
    Assignee: Intel Corporation
    Inventors: Avinash Sodani, Vijaykumar B. Kadgi, Zeev Sperber
  • Patent number: 7712091
    Abstract: A method and system for optimizing the execution of a software loop is provided. The method involves the determination of an edge in a critical recurrence cycle in the software loop. The edge is a dependency link between two instructions and contains a dependee and a dependent. The dependee is an instruction that produces a result, and the dependent is an instruction that uses the result. The method further involves performing predicate promotion of at least one of the dependee and the dependent if one or more pre-determined conditions are met.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: May 4, 2010
    Assignee: Intel Corporation
    Inventors: Kalyan Muthukumar, Robyn A. Sampson, Daniel Lavery
  • Patent number: 7698693
    Abstract: A technique for run-time tracking changes to variables and memory locations during code execution to increase efficiency of execution of the code and to facilitate in debugging the code. In one example embodiment, this is achieved by determining whether a received instruction in a trackable instruction during code execution. The trackable instructions can include one or more trackable variables. The trackable instruction is then decoded and a track instruction cache and a track variable cache are then updated with associated decoded trackable instruction and the one or more trackable variables, respectively.
    Type: Grant
    Filed: September 2, 2005
    Date of Patent: April 13, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Venkata Seshu Kumar Kurapati
  • Patent number: 7698537
    Abstract: A data processing apparatus processes a stream of instructions from an instruction set. The instruction set includes exception instructions and non-exception instructions. Exception instructions may cause a break in an instruction flow, and non-exception instructions execute in a statically determinable way. At least two processing blocks process instructions from the stream of instructions. A first processing block has a set of physical registers associated with it for storing data values being processed by the first processing block. Renaming circuitry associated with the first processing block maps architectural registers specified in instructions to be processed by the first processing block to physical registers within the set of physical registers. A second processing block has a set of physical registers associated with it for storing data values being processed by the second processing block. The second processing block and registers do not support renaming.
    Type: Grant
    Filed: December 20, 2006
    Date of Patent: April 13, 2010
    Assignee: ARM Limited
    Inventors: Cédric Denis Robert Airaud, Melanie Emanuelle Lucie Vincent, Luc Orion, Norbert Bernard Eugene Lataille
  • Patent number: 7698536
    Abstract: A register file is disclosed. The register file includes a plurality of registers and a decoder. The decoder may be configured to receive an address for any one of the registers, and disable a read operation to the addressed register if data in the addressed register is invalid.
    Type: Grant
    Filed: August 10, 2005
    Date of Patent: April 13, 2010
    Assignee: QUALCOMM Incorporated
    Inventors: James Norris Dieffenderfer, Thomas Andrew Sartorius, Jeffrey Todd Bridges, Michael Scott McIlvaine, Gregory Christopher Burda
  • Publication number: 20100088491
    Abstract: A processing unit includes a plurality of thread execution units each provided with a performance analysis circuit for measuring various types of events resulting from execution of instructions and a commit stack entry unit for controlling the completion of executed instructions and each executing a thread having a plurality of instructions, a commit scope register for storing instructions of completion candidates stored in each commit stack entry unit by execution by each thread execution unit and performing processing for completion of instructions included in the thread, and a thread selecting means for sending commit events of the instructions to a performance analysis circuit provided in each thread execution unit corresponding to the instructions when performing commit processing for instructions stored in the commit scope register.
    Type: Application
    Filed: December 8, 2009
    Publication date: April 8, 2010
    Applicant: Fujitsu Limited
    Inventors: Atsushi FUSEJIMA, Takashi Suzuki, Toshio Yoshida, Yasunobu Akizuki
  • Patent number: 7694113
    Abstract: A method for use by a host microprocessor which translates sequences of instructions from a target instruction set for a target processor to sequences of instructions for the host microprocessor including the steps of beginning execution of a speculative sequence of target instructions by committing state of the target processor and storing memory stores previously generated by execution at a point in the execution of instructions at which state of the target processor is known, executing the speculative sequence of host instructions until another point in the execution of target instructions at which state of the target processor is known, rolling back to last committed state of the target processor and discarding the memory stores generated by the speculative sequence of host instructions if execution fails, and beginning execution of a next sequence of target instructions if execution succeeds.
    Type: Grant
    Filed: February 28, 2005
    Date of Patent: April 6, 2010
    Inventors: Linus Torvalds, Robert Bedichek, Stephen Johnson
  • Patent number: 7673120
    Abstract: A VLIW processor has a hierarchy of functional unit clusters that communicate through explicit control in the instruction stream and store data in register files at each level of the hierarchy. Explicit instructions transfer values between sub-clusters through a cluster level switch network. Transfer instructions issue in dedicated instruction issue slots in parallel with instructions that perform computation in functional units. The switch network can perform permutations on the data being moved. The switch network enables for operands to be broadcast between the sub-clusters, global register file and memory.
    Type: Grant
    Filed: June 27, 2007
    Date of Patent: March 2, 2010
    Assignee: Texas Instruments Incorporated
    Inventors: David J. Hoyle, Amitabh Menon
  • Patent number: 7669038
    Abstract: A method is provided for evaluating two or more instructions in an out of order issue queue during a particular cycle of the queue, to select an instruction for issue during the next following cycle. If an instruction was previously designated to issue during the particular cycle, one or more instructions in the queue are evaluated to determine if any of them are dependent on the designated instruction. For the evaluation, each instruction placed into the queue is accompanied by corresponding logic elements that provide destination to source compares for the instruction. In an embodiment comprising a method, the oldest ready instruction in the queue during a particular cycle is identified.
    Type: Grant
    Filed: May 2, 2008
    Date of Patent: February 23, 2010
    Assignee: International Business Machines Corporation
    Inventors: William Elton Burky, Raymond Cheung Yeung
  • Patent number: 7663631
    Abstract: A single-instruction multiple-data processor comprises at least two multiply-accumulator units and associated coefficient memories and data memories. Coefficient memory addresses are formed from a base address and data samples stored in the data memories.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: February 16, 2010
    Assignee: Analog Devices, Inc.
    Inventors: Vladimir Friedman, Michael Hennedy
  • Patent number: 7647475
    Abstract: A processor includes a coprocessor interface unit that couples a coprocessor that executes instructions in-program order to an execution unit that executes instructions out-of-program order. The coprocessor interface unit includes a coprocessor store data queue. If data stored in a register of the coprocessor is to be stored in a register file of the execution unit, the data is transferred from the coprocessor to the coprocessor store data queue. A graduation unit coupled to the coprocessor is also provided. The graduation unit provides a signal to the coprocessor that determines whether an instruction executed by the coprocessor is permitted to alter an architectural state of the processor.
    Type: Grant
    Filed: September 6, 2006
    Date of Patent: January 12, 2010
    Assignee: MIPS Technologies, Inc.
    Inventors: Kjeld Svendsen, Maria Ukanwa
  • Patent number: 7647480
    Abstract: A data processing apparatus and method of handling conditional instructions in such a data processing apparatus are provided. The data processing apparatus has a pipelined processing unit for executing instructions including at least one conditional instruction from a set of conditional instructions, and a register file having a plurality of registers operable to store data values for access by the pipelined processing unit when executing the instructions. A register specified by an instruction may be either a source register holding a source data value for that instruction or a destination register into which is stored a result data value generated by execution of that instruction. The register file has a predetermined number of read ports via which data values can be read from registers of the register file.
    Type: Grant
    Filed: July 27, 2004
    Date of Patent: January 12, 2010
    Assignee: ARM Limited
    Inventors: Simon Andrew Ford, Andrew Christopher Rose
  • Patent number: 7640419
    Abstract: Embodiments of the present invention relate to a memory management scheme and apparatus that enables efficient memory renaming. The method includes computing a store address, writing the store address in a first storage, writing data associated with the store address to a memory, and de-allocating the store address from the first storage, allocating the store address in a second storage, predicting a load instruction to be memory renamed, computing a load store source index, computing a load address, disambiguating the memory renamed load instruction, and retiring the memory renamed load instruction, if the store instruction is still allocated in at least one of the first storage and the second storage and should have effectively provided to the load the full data. The method may also include re-executing the load instruction without memory renaming, if the store instruction is not in at the first storage or in the second storage.
    Type: Grant
    Filed: December 23, 2003
    Date of Patent: December 29, 2009
    Assignee: Intel Corporation
    Inventors: Sebastien Hily, Per H. Hammarlund
  • Patent number: 7634641
    Abstract: One embodiment of the present invention provides a system which performs simultaneous speculative threading. The system staffs by executing instructions in normal execution mode using a first thread. Upon encountering a data-dependent stall condition, the first thread generates an architectural checkpoint and commences execution of instructions in execute-ahead mode. During execute-ahead mode, the first thread executes instructions that can be executed and defers instructions that cannot be executed into a deferred queue. When the data dependent stall condition has been resolved, the first thread generates a speculative checkpoint and continues execution in execute-ahead mode. At the same time, the second thread commences execution in a deferred mode. During execution in the deferred mode, the second thread executes instructions deferred by the first thread.
    Type: Grant
    Filed: April 24, 2006
    Date of Patent: December 15, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Marc Tremblay, Paul Caprioli
  • Patent number: 7627804
    Abstract: In some embodiments, a chip includes a memory core, error detection circuitry, and a control unit. The error detection circuitry determines the validity of error detection signals associated with speculative and non-speculative commands received by the chip and to provide validity signals indicative of the determined validity. The control unit provides the speculative commands to the memory core to be acted on before the control unit receives the associated validity signals and to provide the non-speculative commands to the memory core to be acted on only after receiving associated validity signals that indicate the associated error detection signals are valid. Other embodiments are described and claimed.
    Type: Grant
    Filed: June 30, 2006
    Date of Patent: December 1, 2009
    Assignee: Intel Corporation
    Inventor: Kuljit S. Bains
  • Patent number: 7624254
    Abstract: A processor pipeline is segmented into an upper portion—prior to instructions going out of program order—and one or more lower portions beyond the upper portion. The upper pipeline is flushed upon detecting that a branch instruction was mispredicted, minimizing the delay in fetching of instructions from the correct branch target address. The lower pipelines may continue execution until the mispredicted branch instruction confirms, at which time all uncommitted instructions are flushed from the lower pipelines. Existing exception pipeline flushing mechanisms may be utilized, by adding a mispredicted branch identifier, reducing the complexity and hardware cost of flushing the lower pipelines.
    Type: Grant
    Filed: January 24, 2007
    Date of Patent: November 24, 2009
    Assignee: QUALCOMM Incorporated
    Inventors: Rodney Wayne Smith, James Norris Dieffenderfer, Michael Scott McIlvaine, Thomas Andrew Sartorius
  • Patent number: 7613908
    Abstract: Controlling a reorder buffer (ROB) to selectively perform functional hardware lock disabling (HLD) is described. One apparatus embodiment includes a unit to enable an ROB to selectively disable a lock upon Identifying a lock acquire operation (LAO) associated with a critical section (CS) entry point, a unit to selectively retire the LAO, a unit to cause the ROB to selectively disable the lock, and a unit to snoop a buffer. The apparatus may, based on the snooping, selectively abort a transaction associated with the CS.
    Type: Grant
    Filed: February 23, 2007
    Date of Patent: November 3, 2009
    Assignee: Intel Corporation
    Inventors: Shlomo Raikin, Gad Sheaffer, Doron Orenstien
  • Patent number: 7613906
    Abstract: Systems and methods for performing re-ordered computer instructions are disclosed. A computer processor loads a first value from a first memory address, and records both the first value and the second value in a table or queue. The processor stores a second value to the same memory address, and either evicts the previous table entry, or adds the second value to the previous table entry. Upon subsequently detecting the evicted table entry or inconsistent second value, the processor generates an exception that triggers recovery of speculative use of the first value.
    Type: Grant
    Filed: August 12, 2005
    Date of Patent: November 3, 2009
    Assignee: QUALCOMM Incorporated
    Inventor: Bohuslav Rychlik
  • Patent number: 7613905
    Abstract: A data processing apparatus includes a register file and a plurality of functional units. At least one and not all the plurality of the functional units is a critical functional unit. Each critical functional unit supplies its output to a pipeline register. A comparator and multiplexer select a register input for each functional unit or the output of a corresponding pipeline register dependent. In the preferred embodiment, each critical functional unit has a throughput delay time longer than the average of throughput delay times of all functional units.
    Type: Grant
    Filed: April 2, 2007
    Date of Patent: November 3, 2009
    Assignee: Texas Instruments Incorporated
    Inventors: Ajit Deepak Gupte, Abhay Golecha
  • Publication number: 20090249035
    Abstract: A method of reducing latency in instruction processing in a system, includes calculating a result of a first execution unit, storing the result of the first execution unit in a register file, forwarding the result of the first execution unit, through the bypass unit, to a second execution unit, the second execution unit conducting an instruction dependent on the result, forwarding the result of the first execution unit, from the bypass unit, to a third execution unit, without accessing the register file, the third execution unit conducting an instruction dependent on the result, wherein the execution units can extract the result of the first execution unit through the bypass unit until the new result is calculated, wherein after the new result is calculated, the execution units can access the result of the first execution unit through the register file.
    Type: Application
    Filed: March 28, 2008
    Publication date: October 1, 2009
    Applicant: International Business Machines Corporation
    Inventors: Harry Barowski, Tobias Gemmeke, Nicolas Maeding, Tim Niggemeier
  • Publication number: 20090240920
    Abstract: An execution unit supports data dependent conditional write instructions that write data to a target only when a particular condition is met. In one implementation, a data dependent conditional write instruction identifies a condition as well as data to be tested against that condition. The data is tested against that condition, and the result of the test is used to selectively enable or disable a write to a target associated with the data dependent conditional write instruction. Then, a write is attempted while the write to the target is enabled or disabled such that the write will update the contents of the target only when the write is selectively enabled as a result of the test. By doing so, dependencies are typically avoided, as is use of an architected condition register that might otherwise introduce branch prediction mispredict penalties, enabling improved performance with z-buffer test and similar types of algorithms.
    Type: Application
    Filed: March 18, 2008
    Publication date: September 24, 2009
    Inventors: Adam James Muff, Matthew Ray Tubbs
  • Publication number: 20090235051
    Abstract: In a particular embodiment, a method is disclosed that includes receiving an instruction packet including a first instruction and a second instruction that is dependent on the first instruction at a processor having a plurality of parallel execution pipelines, including a first execution pipeline and a second execution pipeline. The method further includes executing in parallel at least a portion of the first instruction and at least a portion of the second instruction. The method also includes selectively committing a second result of executing the at least a portion of the second instruction with the second execution pipeline based on a first result related to execution of the first instruction with the first execution pipeline.
    Type: Application
    Filed: March 11, 2008
    Publication date: September 17, 2009
    Applicant: QUALCOMM INCORPORATED
    Inventors: Lucian Codrescu, Robert Allan Lester, Charles Joseph Tabony, Erich James Plondke, Mao Zeng, Suresh Venkumahanti, Ajay Anant Ingle
  • Patent number: 7590827
    Abstract: A latest register update buffer which stores latest register update data is allocated and prepared every general register for storing source data. A latest register update processing unit stores a value in the general register as latest register update data into the latest register update buffer when a register update instruction is not speculatively executed, and overwrites a result of the speculative execution when the instruction is speculatively executed. Upon instruction decoding, a matching processing unit reads out the latest register update data from the latest register update allocation buffer and stores it into a data area in a reservation station.
    Type: Grant
    Filed: January 21, 2003
    Date of Patent: September 15, 2009
    Assignee: Fujitsu Limited
    Inventor: Toshio Yoshida
  • 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: 7581083
    Abstract: As shown in FIG. 1, an operation-processing device of the present invention comprises a register array (11) having plural registers for holding an arbitrary value based on a write address Aw and a write control signal Sw and outputting this value based on a read address Ar, an ALU (12) for performing operations on this value, a decoder (13) for decoding an operation instruction from an operation program AP for operating this ALU (12), and an instruction-execution-controlling portion (50) for controlling the register array (11) and the ALU (12) in order to execute this operation instruction, wherein this instruction-execution-controlling portion (50) selects one of the registers based on the operation instruction and performs register-to-register addressing processing that, based on a value held by this selected register, selects another register.
    Type: Grant
    Filed: March 26, 2003
    Date of Patent: August 25, 2009
    Assignee: Sony Corporation
    Inventor: Tomohisa Shiga
  • Publication number: 20090204793
    Abstract: The present invention provides a system, apparatus, and method for detecting and resolving read-after-write hazards encountered in processors following the dispatch of instructions requiring one or more implicit reads in a processor.
    Type: Application
    Filed: February 7, 2008
    Publication date: August 13, 2009
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Frank Lehnert, Guenter Gerwig, Karin Rebmann, Michael Cremer, Ulrich Mayer
  • 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: 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: 7555632
    Abstract: The high-performance, RISC core based microprocessor architecture includes an instruction fetch unit for fetching instruction sets from an instruction store and an execution unit that implements the concurrent execution of a plurality of instructions through a parallel array of functional units. The fetch unit generally maintains a predetermined number of instructions in an instruction buffer. The execution unit includes an instruction selection unit, coupled to the instruction buffer, for selecting instructions for execution, and a plurality of functional units for performing instruction specified functional operations. A unified instruction scheduler, within the instruction selection unit, initiates the processing of instructions through the functional units when instructions are determined to be available for execution and for which at least one of the functional units implementing a necessary computational function is available.
    Type: Grant
    Filed: December 27, 2005
    Date of Patent: June 30, 2009
    Assignee: Seiko Epson Corporation
    Inventors: Le Trong Nguyen, Derek J. Lentz, Yoshiyuki Miyayama, Sanjiv Garg, Yasuaki Hagiwara, Johannes Wang, Te-Li Lau, Sze-Shun Wang, Quang H. Trang
  • Patent number: 7543134
    Abstract: An apparatus and method for extending a microprocessor instruction set is provided. The apparatus includes translation logic and extended execution logic. The translation logic translates an extended instruction into corresponding micro instructions. The extended instruction has an extended prefix and an extended instruction tag. The extended prefix directs that an architectural extension be employed in the execution of an operation prescribed by the extended instruction. The extended instruction tag indicates the extended instruction prefix, where the extended instruction tag is an otherwise architecturally specified opcode within the microprocessor instruction set. The extended execution logic is coupled to the translation logic, and receives the corresponding micro instructions, and employs the architectural extension in the execution of the operation.
    Type: Grant
    Filed: December 1, 2004
    Date of Patent: June 2, 2009
    Assignee: IP-First, LLC
    Inventors: G. Glenn Henry, Rodney E. Hooker, Terry Parks
  • Patent number: 7536432
    Abstract: In the basic form of merge processing, that is sort processing, two sorted partial data string pairs are input, and one series of sorted data string is output as a whole. Conventionally, high parallelism of this processing has been considered difficult. A method for dividing a sorted partial data string pair into a plurality of segment pairs, if invented, would allow an advanced parallel merge processing to be performed even in a homogeneous configuration parallel computer system, such as a tightly coupled multi-processor sharing a main storage. The basis of merge processing is processing to input a pair of two sorted partial data strings and to output one sorted data string. A method for sub-dividing this input data string pair into arbitrary data string pairs from the first part of both data strings of the input data string pair, while considering the magnitude of the key value, has been invented.
    Type: Grant
    Filed: April 25, 2003
    Date of Patent: May 19, 2009
    Assignee: Nihon University School Juridical Person
    Inventor: Noboru Yamamoto
  • Patent number: 7529913
    Abstract: Embodiments of the present invention relate to a method and system for providing virtual identifiers corresponding to physical registers in a computer processor. According to the embodiments, the virtual identifiers may be used to represent the physical registers during operations in a pipeline of the processor.
    Type: Grant
    Filed: December 23, 2003
    Date of Patent: May 5, 2009
    Assignee: Intel Corporation
    Inventors: Avinash Sodani, Per H. Hammarlund, Stephan J. Jourdan
  • Patent number: 7523296
    Abstract: An system and method for retiring instructions in a superscalar microprocessor which executes a program comprising a set of instructions having a predetermined program order, the retirement system for simultaneously retiring groups of instructions executed in or out of order by the microprocessor. The retirement system comprises a done block for monitoring the status of the instructions to determine which instruction or group of instructions have been executed, a retirement control block for determining whether each executed instruction is retirable, a temporary buffer for storing results of instructions executed out of program order, and a register array for storing retirable-instruction results.
    Type: Grant
    Filed: June 10, 2005
    Date of Patent: April 21, 2009
    Assignee: Seiko Epson Corporation
    Inventors: Johannes Wang, Sanjiv Garg, Trevor Deosaran
  • Patent number: 7523295
    Abstract: An interleaved multithreading pipeline operating method comprises reading an instruction packet containing at least two instructions, steering a first instruction of the instruction packet to a first execution unit for execution and generating a first result, steering a second instruction of the instruction packet to a second execution unit for execution using the first result and generating a second result, and storing the second result.
    Type: Grant
    Filed: March 21, 2005
    Date of Patent: April 21, 2009
    Assignee: QUALCOMM Incorporated
    Inventors: Lucian Codrescu, Erich Plondke, Muhammad Ahmed, Sujat Jamil, William C. Anderson
  • Patent number: 7519794
    Abstract: In one embodiment, the present invention includes an apparatus that has a plurality of buffers to store data resulting from operations of a processor pipeline, a pointer storage to store pointers, where each of the pointers is to point to one of the buffers, and one or more resources coupled to the buffers to receive the data stored in the buffers. Other embodiments are described and claimed.
    Type: Grant
    Filed: June 29, 2005
    Date of Patent: April 14, 2009
    Assignee: Intel Corporation
    Inventor: Sridharan Ranganathan
  • Patent number: 7516302
    Abstract: A data processing method for processing a sequence of platform independent instructions on a data processing apparatus comprising a CPU and at least one further processor is disclosed.
    Type: Grant
    Filed: December 19, 2006
    Date of Patent: April 7, 2009
    Assignee: ARM Limited
    Inventor: Wilkinson Graham Peter
  • Patent number: 7516305
    Abstract: An system and method for retiring instructions in a superscalar microprocessor which executes a program comprising a set of instructions having a predetermined program order, the retirement system for simultaneously retiring groups of instructions executed in or out of order by the microprocessor. The retirement system comprises a done block for monitoring the status of the instructions to determine which instruction or group of instructions have been executed, a retirement control block for determining whether each executed instruction is retirable, a temporary buffer for storing results of instructions executed out of program order, and a register array for storing retirable-instruction results.
    Type: Grant
    Filed: December 21, 2006
    Date of Patent: April 7, 2009
    Assignee: Seiko Epson Corporation
    Inventors: Johannes Wang, Sanjiv Garg, Trevor Deosaran
  • Patent number: 7506140
    Abstract: A return data selector is disclosed. A pipelined microprocessor includes N functional units that request to return data to the pipeline. In a given selection cycle, some of the functional units may not be requesting to return data. The return data selector includes a circuit for selecting one of functional units in a round-robin fashion. The circuit 1-bit left rotatively increments a first addend by a second addend to generate a sum that is ANDed with the inverse of the first addend to generate a 1-hot vector indicating which of the functional units is selected next. The first addend is an N-bit vector where each bit is false if the corresponding functional unit is requesting to return a result to the pipeline. The second addend is a 1-hot vector indicating the last selected functional unit.
    Type: Grant
    Filed: March 22, 2005
    Date of Patent: March 17, 2009
    Assignee: MIPS Technologies, Inc.
    Inventor: Michael Gottlieb Jensen
  • Publication number: 20090070561
    Abstract: Illustrative embodiments provide a method for improved link stack misprediction resolution using a rename structure for tracking the link stack processing, in order to quickly resolve link stack corruption from mispredicted function returns. The method comprises establishing a set of physical data structures forming a common pool and an operation control table. Maintaining, within the common pool, a plurality of entries for a plurality of speculative instructions and a plurality of non-speculative instructions. And determining one speculative instruction to be a bad prediction speculative entry, identifying related entries to form a collection, and discarding the collection.
    Type: Application
    Filed: September 10, 2007
    Publication date: March 12, 2009
    Inventor: Gregory W. Alexander
  • Patent number: 7500086
    Abstract: One embodiment of the present invention supports execution of a start transactional execution (STE) instruction, which marks the beginning of a block of instructions to be executed transactionally. Upon encountering the STE instruction during execution of a program, the system commences transactional execution of the block of instructions following the STE instruction. Changes made during this transactional execution are not committed to the architectural state of the processor until the transactional execution successfully completes.
    Type: Grant
    Filed: December 6, 2005
    Date of Patent: March 3, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Marc Tremblay, Shailender Chaudhry, Quinn A. Jacobson
  • Patent number: 7496721
    Abstract: A mechanism receives memory reads and writes from a packet processing engine, each memory access having an associated packet identifier or sequence number. The mechanism is placed between the packet processing engine and a memory system such that write data is buffered and information based upon both reads and writes is recorded. Information is maintained allowing the detection of memory conflicts. Both a strict and alternate packet ordering are evaluated, such that the semantic ordering of packets is delayed until necessary to ensure that a consistent order exists. Such a late order binding mechanism is used to allow packets to be defined in any order so long as they obey a consistent order, thereby reducing the number of packet restarts and increasing overall efficiency.
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: February 24, 2009
    Assignee: Teplin Application Limited
    Inventor: Stephen Waller Melvin