Scoreboarding, Reservation Station, Or Aliasing Patents (Class 712/217)
  • Patent number: 7631167
    Abstract: A facility is provided for managing register maps for map-based indirect register file access within a processor. The management facility includes a register mapping including a set of maps, each map of the set of maps having a plurality of map registers. A set of actual registers is indirectly accessed by the processor via map entries of the set of maps. The number of actual registers in the set of actual registers is greater than the number of map entries in the set of maps, and the map entries of the set of maps reference only a subset of the set of actual registers at any given time. The facility includes managing updates to multiple entries of the set of maps of the register mapping by updating multiple map entries of at least one map of the set of maps responsive to executing a single update instruction.
    Type: Grant
    Filed: January 15, 2008
    Date of Patent: December 8, 2009
    Assignee: International Business Machines Corporation
    Inventors: Peter G. Capek, Jeffrey H. Derby, Robert K. Montoye
  • 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: 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
  • 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: 7587532
    Abstract: A method and apparatus for adaptive buffer sizing adjusts the size of the buffer at different levels using a “high water mark” to different levels for different system conditions. The high water mark is used by the buffer logic as an indication of when to assert the buffer “Full” flag. In turn, the full flag is used by the instruction fetch logic as an indication of when to stop fetching further instructions.
    Type: Grant
    Filed: January 31, 2005
    Date of Patent: September 8, 2009
    Assignee: Texas Instruments Incorporated
    Inventors: Jeffrey L. Nye, Sam B. Sandbote
  • Patent number: 7577825
    Abstract: Devices, systems, and methods may perform micro-operation processing with data validity tracking to determine fast or slow mode processing at a reservation station. A method includes determining whether a condition related to validity of data in a reorder buffer of an out-of-order subsystem of a processor core is met, based on a criterion other than a valid data indication from said reorder buffer. In one embodiment, in a fast mode a reservation station may dispatch micro-operations to execution and in a slow mode the reservation station may wait for a valid indication from the reorder buffer prior to dispatching the micro-operation.
    Type: Grant
    Filed: February 28, 2006
    Date of Patent: August 18, 2009
    Assignee: Intel Corporation
    Inventors: Guillermo Savransky, Nicolas Worms
  • Patent number: 7571302
    Abstract: A data dependence table in RAM relates physical register addresses to instructions such that for each instruction, the registers on whose data the instruction depends are identified. The table is updated for each instruction added to the pipeline. For a branch instruction, the table identifies the registers relevant to the branch instruction for branch prediction.
    Type: Grant
    Filed: February 4, 2005
    Date of Patent: August 4, 2009
    Inventors: Lei Chen, David Albonesi, Steve Dropsho
  • Patent number: 7565511
    Abstract: A technique for operating a computing apparatus includes allocating a working register file entry corresponding to a register in a working register file when an instruction referencing the register proceeds through a particular stage of the computing apparatus. The technique maintains the working register file entry until at least a predetermined number of subsequent instructions have similarly proceeded through the particular stage.
    Type: Grant
    Filed: June 22, 2006
    Date of Patent: July 21, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Shailender Chaudhry, Quinn A. Jacobson, Marc Tremblay
  • Patent number: 7558945
    Abstract: A system and method for performing register renaming of source registers in a processor having a variable advance instruction window for storing a group of instructions to be executed by the processor, wherein a new instruction is added to the variable advance instruction window when a location becomes available. A tag is assigned to each instruction in the variable advance instruction window. The tag of each instruction to leave the window is assigned to the next new instruction to be added to it. The results of instructions executed by the processor are stored in a temp buffer according to their corresponding tags to avoid output and anti-dependencies. The temp buffer therefore permits the processor to execute instructions out of order and in parallel. Data dependency checks for input dependencies are performed only for each new instruction added to the variable advance instruction window and register renaming is performed to avoid input dependencies.
    Type: Grant
    Filed: September 27, 2005
    Date of Patent: July 7, 2009
    Assignee: Seiko Epson Corporation
    Inventors: Trevor A. Deosaran, Sanjiv Garg, Kevin R. Iadonato
  • Publication number: 20090150653
    Abstract: In one embodiment, the present invention includes logic to detect a soft error occurring in certain stages of a core and recover from such error if detected. One embodiment may include logic to determine if a lapsed time from a last instruction to issue from an issue stage of a pipeline exceeds a threshold and if so to reset a dispatch table, as well as to determine if a parity error is detected in an entry of the dispatch table associated with an enqueued instruction and if so to prevent the enqueued instruction from issuance. Other embodiments are described and claimed.
    Type: Application
    Filed: December 7, 2007
    Publication date: June 11, 2009
    Inventors: Pedro Chaparro Monferrer, Xavier Vera, Jaume Abella, Javier Carretero Casado
  • Patent number: 7543109
    Abstract: A method for caching data in a blade computing complex includes providing a storage blade that includes a disk operative to store pages of data and a cache memory operative to store at least one of the pages. A processor blade is provided that includes a first memory area to store at least one of the pages and a second memory area configured to store an address of each of the pages and a hint value that is assigned to each of the pages. An address of each of the pages is stored in the second memory area, and a hint is assigned to each of the pages, where the hint is one of: likely to be accessed, may be accessed, and unlikely to be accessed. The page is then stored in storage blade cache memory based on the hint.
    Type: Grant
    Filed: May 16, 2008
    Date of Patent: June 2, 2009
    Assignee: International Business Machines Corporation
    Inventors: Robert H. Bell, Jr., Jose R. Escalera, Octavian F. Herescu, Vernon W. Miller, Michael D. Roll
  • Patent number: 7539850
    Abstract: In an enhanced virtual renaming scheme within a processor, multiple logical registers may be mapped to a single physical register. A value cache determines whether a new value generated pursuant to program instructions matches values associated with previously executed instructions. If so, the logical register associated with the newly executed instruction shares the physical register. Also, deadlock preventatives measures may be integrated into a register allocation unit in a manner that “steals” a physical register from a younger executed instruction when a value from an older instruction is generated-in a processor core.
    Type: Grant
    Filed: January 27, 2003
    Date of Patent: May 26, 2009
    Assignee: Intel Corporation
    Inventors: Stephan J. Jourdan, Ronny Ronen, Michael Bekerman
  • 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: 7508396
    Abstract: A pixel processing system includes a register-collecting mechanism and a pixel shader. The register-collecting mechanism corrects a first program to a second program. The first program requires a number of first registers. The second program requires a portion of the first registers of the first program. The pixel shader executes the second program. A method for register-collecting mechanism comprises the steps of: scanning the first instructions of the first program; decoding the first instructions to obtaining a plurality of first register numbers of busy register group of the first program; correcting the first program to a second program which only occupies the busy register group. As a result, the idle register group of the first program is available to be reallocated to the additional piled in pixels. Thus the pixel processing system can process more pixels in a batch using a given number of registers, and longer texture load latency can be hidden.
    Type: Grant
    Filed: September 28, 2005
    Date of Patent: March 24, 2009
    Assignee: Silicon Integrated Systems Corp.
    Inventor: R-Ming Hsu
  • Patent number: 7506139
    Abstract: A method for implementing a register renaming scheme for a digital data processor using a plurality of physical register files for supporting out-of-order execution of a plurality of instructions from one or more threads, the method comprising: using a DEF table to store the instruction dependencies between the plurality of instructions using the instruction tags, the DEF table being indexed by a logical register name and including one entry per logical register; using a rename USE table indexed by the instruction tags to store logical-to-physical register mapping information shared by multiple sets of different types of non-architected copies of logical registers used by multiple threads; using a last USE table to transfer data of the multiple sets of different types of non-architected copies of logical registers into the first set of architected registered files, the last USE table being indexed by a physical register name in the second set of rename registered files; and performing the register renaming sc
    Type: Grant
    Filed: July 12, 2006
    Date of Patent: March 17, 2009
    Assignee: International Business Machines Corporation
    Inventors: William E. Burky, Krishnan K. Kailas, Balaram Sinharoy
  • Patent number: 7496734
    Abstract: There is disclosed a data processor comprising 1) a register stack comprising a plurality of architectural registers that stores operands required by instructions executed by the data processor; 2) an instruction execution pipeline comprising N processing stages, where each processing stage performs one of a plurality of execution steps associated with a pending instruction being executed by the instruction execution pipeline; and 3) at least one mapping register associated with at least one of the N processing stages, wherein the at least one mapping register stores mapping data that may be used to determine a physical register associated with an architectural stack register accessed by the pending instruction.
    Type: Grant
    Filed: April 28, 2000
    Date of Patent: February 24, 2009
    Assignee: STMicroelectronics, Inc.
    Inventors: Nicholas J. Richardson, Lun Bin Huang
  • Patent number: 7496735
    Abstract: Method and hardware apparatus are disclosed for reducing the rollback penalty on exceptions in a microprocessor executing traces of scheduled instructions. Speculative state is committed to the architectural state of the microprocessor at a series of commit points within a trace, rather than committing the state as a single atomic operation at the end of the trace.
    Type: Grant
    Filed: November 22, 2004
    Date of Patent: February 24, 2009
    Assignee: Strandera Corporation
    Inventors: Matt T Yourst, Kanad Ghose
  • 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: 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: 7490226
    Abstract: A method and related apparatus is provided for a processor having a number of registers, wherein instructions are sequentially issued to move through a sequence of execution stages, from an initial stage to a final write back stage. As a method, an embodiment includes the step of issuing a first instruction, such as an FMA instruction, to move through the sequence of execution stages, the first instruction being directed to a specified one of the registers. The method further includes issuing a second instruction to move through the execution stages, the second instruction being issued after the first instruction has issued, but before the first instruction reaches the final write back stage. The second instruction is likewise directed to the specified register, and comprises either a store instruction or a load instruction, selectively.
    Type: Grant
    Filed: February 9, 2005
    Date of Patent: February 10, 2009
    Assignee: International Business Machines Corporation
    Inventors: Hung Qui Le, Dung Quoc Nguyen, Raymond Cheung Yeung
  • Publication number: 20090037698
    Abstract: A method and device for adaptively allocating reservation station entries to an instruction set with variable operands in a microprocessor. The device includes logic for determining free reservation station queue positions in a reservation station. The device allocates an issue queue to an instruction and writes the instruction into the issue queue as an issue queue entry. The device reads an operand corresponding to the instruction from a general purpose register and writes the operand into a reservation station using one of the free reservations station positions as a write address. The device writes each reservation station queue position corresponding to said instruction into said issue queue entry. When the instruction is ready for issue to an execution unit, the device reads out the instruction from the issue queue entry the reservation station queue positions to the execution unit.
    Type: Application
    Filed: August 3, 2007
    Publication date: February 5, 2009
    Inventor: DUNG Q. NGUYEN
  • Patent number: 7487336
    Abstract: The present disclosure relates to the allocation of registers the scheduling of instructions, and, more specifically, to the classifying of operands and allocation of registers to local operands.
    Type: Grant
    Filed: December 12, 2003
    Date of Patent: February 3, 2009
    Assignee: Intel Corporation
    Inventors: Jayashankar Bharadwaj, Tatiana Shpeisman, Ali-Reza Adl-Tabatabai
  • Patent number: 7487337
    Abstract: Embodiments of the present invention relate to a system and method for comparatively increasing processor throughput and relieving pressure on the processor's scheduler and register file by diverting instructions dependent on long-latency operations from a flow of the processor pipeline and re-introducing the instructions into the flow when the long-latency operations are completed. In this way, the instructions do not tie up resources and overall instruction throughput in the pipeline is comparatively increased. Before the instructions are diverted from the pipeline, they may undergo a conventional process to map logical registers of the instructions to physical registers. Before the instructions are re-introduced into the pipeline, the physical registers mapped according to the conventional process may be re-mapped to other physical registers, thereby efficiently preserving correct program sequence information.
    Type: Grant
    Filed: September 30, 2004
    Date of Patent: February 3, 2009
    Assignee: Intel Corporation
    Inventors: Haitham Akkary, Ravi Rajwar, Srikanth T. Srinivasan
  • Patent number: 7484069
    Abstract: A data processing system incorporating watchpoint registers is provided. The memory accesses to be detected may be unaligned memory accesses. The watchpoint may operate in a normal mode and also in a guard mode. In the guard mode of operation a watchpoint comparator generates a match signal if the upper N bits of the memory address match the upper end bits of the watchpoint address and the length of the memory access L is such that the memory access extends to include a memory address having a different upper N bits but located at a predetermined address offset P from the watchpoint address W.
    Type: Grant
    Filed: September 28, 2006
    Date of Patent: January 27, 2009
    Assignee: ARM Limited
    Inventor: Michael John Williams
  • Patent number: 7475224
    Abstract: Embodiments of this invention relate to sharing resources on a semiconductor between multiple functional units to reduce the number of register rename mappers and particularly to providing a way to share a CAM mapper between two distinct physical register files. In one embodiment the physical register files correspond to architectural function units. In another embodiment the physical registers correspond to thread clusters.
    Type: Grant
    Filed: January 3, 2007
    Date of Patent: January 6, 2009
    Assignee: International Business Machines Corporation
    Inventor: Michael Karl Gschwind
  • Patent number: 7475226
    Abstract: A method of data processing includes fetching a sequence of instructions, assigning each instruction within the sequence a respective unique instruction tag, and associating a respective destination vector with each instruction. The destination vectors, which are of uniform size, identify which of a plurality of possible destinations for execution results are targeted by the associated instructions. Data dependency between instructions in the sequence is managed by reference to the destination vectors associated with the instructions.
    Type: Grant
    Filed: September 20, 2006
    Date of Patent: January 6, 2009
    Assignee: International Business Machines Corporation
    Inventors: Hung Q. Le, Dung Q. Nguyen
  • Publication number: 20080313435
    Abstract: A data processing apparatus and method are provided for executing complex instructions. The data processing apparatus executes instructions defining operations to be performed by the data processing apparatus, those instructions including at least one complex instruction defining a sequence of operations to be performed. The data processing apparatus comprises a plurality of execution pipelines, each execution pipeline having a plurality of pipeline stages and arranged to perform at least one associated operation. Issue circuitry interfaces with the plurality of execution pipelines and is used to schedule performance of the operations defined by the instructions. For the at least one complex instruction, the issue circuitry is arranged to schedule a first operation in the sequence, and to issue control signals to one of the execution pipelines with which that first operation is associated, those control signals including an indication of each additional operation in the sequence.
    Type: Application
    Filed: June 12, 2007
    Publication date: December 18, 2008
    Applicant: ARM Limited
    Inventors: Luc Orion, Cedric Denis Robert Airaud, Boris Sira Alvarez-Heredia
  • Patent number: 7464242
    Abstract: A method, an apparatus, and a computer program product are provided for detecting load/store dependency in a memory system by dynamically changing the address width for comparison. An incoming load/store operation must be compared to the operations in the pipeline and the queues to avoid address conflicts. Overall, the present invention introduces a cache hit or cache miss input into the load/store dependency logic. If the incoming load operation is a cache hit, then the quadword boundary address value is used for detection. If the incoming load operation is a cache miss, then the cacheline boundary address value is used for detection. This invention enhances the performance of LHS and LHR operations in a memory system.
    Type: Grant
    Filed: February 3, 2005
    Date of Patent: December 9, 2008
    Assignee: International Business Machines Corporation
    Inventors: Brian David Barrick, Dwain Alan Hicks, Takeki Osanai, David Scott Ray
  • Publication number: 20080301412
    Abstract: According to one embodiment, a high speed multiplexer includes a number of data inputs, a number of hot code select inputs, and a final data output. In one embodiment, the high speed multiplexer utilizes a number of intermediate multiplexers, each receiving respective hot code select inputs and providing an intermediate data output. In one embodiment, each intermediate multiplexer has a critical delay path comprising a first NAND gate and a second NAND gate. In one implementation a four-to-one intermediate multiplexer comprises a first two-input NAND gate and a second four-input NAND gate. In one embodiment, a 32-to-1 high speed multiplexer comprises four four-to-one intermediate multiplexers. According to one implementation of this embodiment, the 32-to-1 multiplexer has a critical delay path from any of the data inputs to the final data output comprising a first NAND gate, a second NAND gate, a NOR gate, and a third NAND gate.
    Type: Application
    Filed: May 30, 2007
    Publication date: December 4, 2008
    Inventor: Paul Penzes
  • Publication number: 20080288754
    Abstract: A method for performing parallel operations in a computer system when one or more memory hazards may be present, which may be implemented by a processor, is described. During operation, the processor receives instructions for detecting conflict between memory addresses in vectors when operations are performed in parallel using at least a portion of the vectors, and generating one or more stop indicators corresponding to any detected conflict between the memory addresses, where a given stop indicator indicates a memory hazard. Next, the processor executes the instructions for detecting the conflict between the memory addresses and generating the one or more stop indicators.
    Type: Application
    Filed: July 11, 2008
    Publication date: November 20, 2008
    Applicant: APPLE INC.
    Inventors: Jeffry E. Gonion, Keith E. Diefendorff
  • Patent number: 7454598
    Abstract: A method and system of controlling out of order execution pipelines using issue tags is disclosed. The issue tags are used to dynamically calculate pipeline skew parameters that track the relative position of a load/store instruction in a load/store pipeline and a simultaneously issued integer instruction in a variable length integer pipeline. The issue tags and pipeline skew parameters are used to improve data hazard detection, pipeline stalling, and instruction cancellation.
    Type: Grant
    Filed: May 16, 2005
    Date of Patent: November 18, 2008
    Assignee: Infineon Technologies AG
    Inventor: Neil S. Hastie
  • Publication number: 20080276076
    Abstract: A method and apparatus for register renaming are provides in the illustrative embodiments. A mapper receives a request for a data in a logical register. The mapper searches an in-flight map table and a set of architected map tables for the data in the logical register. The mapper identifies an entry in one of the in-flight map table and an architected map table in the set of architected map tables that corresponds with the logical register in the request. The mapper returns a location of a physical register, which holds the requested data.
    Type: Application
    Filed: May 1, 2007
    Publication date: November 6, 2008
    Inventors: Christopher Michael Abernathy, William Elton Burky, Jens Leenstra, Nicolas Maeding
  • Publication number: 20080263331
    Abstract: A universal register rename mechanism for instructions with multiple targets using a common destination tag. For each instruction that updates multiple destinations, a single rename entry is allocated to handle all destinations associated with it. A rename entry now consists of a DTAG and a vector to indicate the type of destination(s) that is/are being updated by such a particular instruction. For example, a common DTAG can be assigned to a fixed point unit instruction (FXU) that updates general purpose register (GPR), fixed point exception register (XER), and condition code register (CR) destinations. During flush time, the DTAGs in the recovery link may be used to restore the information indicating that the youngest instruction updates a particular architected register. By using a single, universal rename structure for all types of destinations, a large saving in silicon and power can be realized without the need to sacrifice performance.
    Type: Application
    Filed: April 18, 2007
    Publication date: October 23, 2008
    Inventors: Hung Q. Le, Dung Q. Nguyen, Balaram Sinharoy
  • Publication number: 20080256340
    Abstract: Embodiments provide a distributed file fuzzing environment. In an embodiment, a number of computing devices can be used as part of a distributing fuzzing system. Fuzzing operations can be distributed to the number of computing devices and processed accordingly. A group or team can be defined to process particular fuzzing operations that may be best suited to the group. The time required to perform a fuzzing operation can be reduced by distributing the fuzzing work to the number of computing devices. A client can be associated with each computing device and used in conjunction with fuzzing operations.
    Type: Application
    Filed: April 13, 2007
    Publication date: October 16, 2008
    Applicant: Microsoft Corporation
    Inventors: David Jon Conger, Kumar Srinivasamurthy, Robert Scott Cooper
  • Patent number: 7434032
    Abstract: A scoreboard memory for a processing unit has separate memory regions allocated to each of the multiple threads to be processed. For each thread, the scoreboard memory stores register identifiers of registers that have pending writes. When an instruction is added to an instruction buffer, the register identifiers of the registers specified in the instruction are compared with the register identifiers stored in the scoreboard memory for that instruction's thread, and a multi-bit value representing the comparison result is generated. The multi-bit value is stored with the instruction in the instruction buffer and may be updated as instructions belonging to the same thread complete their execution. Before the instruction is issued for execution, this multi-bit value is checked. If this multi-bit value indicates that none of the registers specified in the instruction have pending writes, the instruction is allowed to issue for execution.
    Type: Grant
    Filed: December 13, 2005
    Date of Patent: October 7, 2008
    Assignee: NVIDIA Corporation
    Inventors: Brett W. Coon, Peter C. Mills, Stuart F. Oberman, Ming Y. Siu
  • Patent number: 7434031
    Abstract: RAW aliasing can be predicted with register bypassing based at least in part on execution displacement alias prediction. Repeated aliasing between read and write operations (e.g., within a loop), can be reliably predicted based on displacement between the aliasing operations. Performing register bypassing for predicted to alias operations facilitates faster RAW bypassing and mitigates the performance impact of aliasing read operations. The repeated aliasing between operations is tracked along with register information of the aliasing write operations. After exceeding a confidence threshold, an instance of a read operation is predicted to alias with an instance of a write operation in accordance with the previously observed repeated aliasing. Based on displacement between the instances of the operations, the register information of the write operation instance is used to bypass data to the read operation instance.
    Type: Grant
    Filed: April 12, 2004
    Date of Patent: October 7, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Lawrence A. Spracklen, Santosh G. Abraham, Stevan Vlaovic
  • Patent number: 7430654
    Abstract: Method and system for controlling the dynamic latency of an arithmetic logic unit (ALU). In one embodiment, the identification of the destination operand of an instruction is stored in a temporary register ID/thread control ID pair pipeline if the destination operand is a temporary register. Furthermore, each source operand of an instruction is checked against the identifications stored in a group of temporary register ID/thread control ID pipelines. If a source operand is matched to an identification stored in the temporary register ID/thread control ID pipelines, the ALU does not execute the instruction until the matched identification is no longer matched in the pipelines.
    Type: Grant
    Filed: July 9, 2003
    Date of Patent: September 30, 2008
    Assignee: VIA Technologies, Inc.
    Inventors: Hsilin Huang, Kuoyin Weng, Yijung Su
  • Patent number: 7428631
    Abstract: An apparatus and method are provided for renaming a logical register for which bit accesses of varying lengths are permitted, such as a predicate register. Rename logic supports renaming for both partial-bit accesses and bulk-bit accesses to bits of the register. Rename logic utilizes a rename map table associated with the logical register to be renamed and also includes a plurality of physical rename registers. They physical rename registers include a set of skinny physical rename registers to be used for renaming for partial-bit writes. The physical rename registers also include a set of fat physical rename registers to be used for renaming for bulk-bit writes. Additional sizes of physical rename registers may also be employed. The entries of the single physical rename map table may point to either fat or skinny physical rename registers.
    Type: Grant
    Filed: July 31, 2003
    Date of Patent: September 23, 2008
    Assignee: Intel Corporation
    Inventors: Jeffrey P. Rupley, II, Edward A. Brekelbaum, Bryan P. Black
  • Patent number: 7424595
    Abstract: Configuration management information having circuit configuration information for altering a circuit configuration of an FPGA (12) is stored in a memory (13), the configuration management information according to information related to an instruction group, which is supplied by a configuration management unit (11) from the outside via a signal line group (14), is read from the memory (13), and the circuit configuration of the FPGA (12) is altered according to the read configuration management information to execute processing of the instruction group so that information processing by software is replaced by information processing by hardware in real time, which increases execution speed of information processing and shortens verification time of software, enabling software development in a shorter period and with higher efficiency.
    Type: Grant
    Filed: June 6, 2001
    Date of Patent: September 9, 2008
    Inventors: Tadahiro Ohmi, Tatsuo Morimoto, Akira Nakada, Shigetoshi Sugawa
  • Patent number: 7421566
    Abstract: There are provided methods and computer program products for implementing instruction set architectures with non-contiguous register file specifiers. A method for processing instruction code includes processing a fixed-width instruction of a fixed-width instruction set using a non-contiguous register specifier of a non-contiguous register specification. The fixed-width instruction includes the non-contiguous register specifier.
    Type: Grant
    Filed: June 2, 2006
    Date of Patent: September 2, 2008
    Assignee: International Business Machines Corporation
    Inventors: Michael Karl Gschwind, Robert Kevin Montoye, Brett Olsson, John-David Wellman
  • Patent number: 7418575
    Abstract: A system for adding reconfigurable computational instructions to a computer, the system comprising a processor operable to execute a set of instructions of a computer program comprising a set of computational instructions and long instruction word instructions with at least one of the long instruction word instructions comprising an instruction extension, an extension adapter coupled to the processor and operable to detect the execution of the instruction extension, and programmable logic coupled to the extension adapter and operable to receive configuration data for defining the instruction extension and execute the instruction extension.
    Type: Grant
    Filed: May 12, 2005
    Date of Patent: August 26, 2008
    Assignee: Stretch, Inc.
    Inventors: Ricardo E. Gonzalez, Scott Johnson, Derek Taylor
  • Patent number: 7412592
    Abstract: The branch instruction control apparatus of the present invention is a control apparatus in which a plurality of entries in which data required for the implementation control of the branch instructions is stored in order of decoding successively from the top entry, and said apparatus comprises a mechanism which, when one or more entries are successively released in order of older decoding from the top entry among the entries whose implementation control of the corresponding branch instruction has been completed, moves the contents of the remaining entries in a direction toward the top entry by the number of entries released, and a unit for storing data required for the implementation control of newly decoded branch instructions in one or more empty entries which are near the top entry including the entries which become empty by the movement, in the same cycle as in the movement of the said contents.
    Type: Grant
    Filed: November 23, 2004
    Date of Patent: August 12, 2008
    Assignee: Fujitsu Limited
    Inventor: Ryuichi Sunayama
  • Patent number: 7409503
    Abstract: Multi-processor systems and methods are provided. One embodiment relates to a multi-processor system that may comprise a multi-processor system with a processor having a processor pipeline that executes program instructions with data from speculative fills that are provided in response to source requests. The multi-processor system may comprise a first register file that retains register values associated with program instruction employing data from speculative fills, and a second register file that retains register values associated with data from speculative fills that have been determined to be coherent.
    Type: Grant
    Filed: January 13, 2004
    Date of Patent: August 5, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Simon C. Steely, Jr., Gregory Edward Tierney
  • Patent number: 7409500
    Abstract: Multi-processor systems and methods are disclosed. One embodiment may comprise a multi-processor system with a processor having a processor pipeline that executes program instructions with data from speculative data fills that are provided in response to source requests. The multi-processor system may comprise a first cache that retains cache data associated with program instructions employing data from speculative data fills, and a second cache that retains cache data associated with data from speculative data fills that have been determined to be coherent.
    Type: Grant
    Filed: January 13, 2004
    Date of Patent: August 5, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Simon C. Steely, Jr., Gregory Edward Tierney
  • Publication number: 20080184012
    Abstract: Systems, methods, and apparatuses including computer program products for speculative throughput computing are disclosed. Speculative throughput computing is used to reduce a number of miss-speculations during execution of program segments in parallel.
    Type: Application
    Filed: January 30, 2008
    Publication date: July 31, 2008
    Applicant: NEMA LABS AB
    Inventors: Alexander Busck, Mikael Engbom, Per Stenstrom, Fredrik Warg
  • Patent number: 7406587
    Abstract: A processor includes an active list to buffer instructions and their associated condition codes for processing. A mapping table in the processor maps a logical register associated with the instruction to a selected one of a plurality of unique physical registers. The selected unique physical register is used to hold a result according to execution of the instruction. An indication is provided to the mapping table when the selected unique physical register contains the result. The result is then moved to a fixed status register. The selected unique physical register is then returned for later reuse and the next consecutive physical register is selected for the next instruction such that physical registers are used in order. An indication is provided for output to inform whether the result is in the selected unique physical register or has been moved to the fixed status register.
    Type: Grant
    Filed: July 31, 2002
    Date of Patent: July 29, 2008
    Assignee: Silicon Graphics, Inc.
    Inventors: David X. Zhang, Kenneth C. Yeager
  • Patent number: 7406565
    Abstract: Multi-processor systems and methods are disclosed. One embodiment may comprise a multi-processor system comprising a processor having a processor pipeline that executes program instructions with data from a speculative fill that is provided in response to a source request, and a backup system that retains information associated with a previous processor execution state corresponding to an instruction associated with the speculative fill. The backup system may initiate a backup of the processor pipeline to the previous processor execution state if the speculative fill is determined to be non-coherent, and the processor pipeline may continue execution of program instructions if the speculative fill is determined to be coherent.
    Type: Grant
    Filed: January 13, 2004
    Date of Patent: July 29, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Simon C. Steely, Jr., Gregory Edward Tierney
  • Publication number: 20080177983
    Abstract: A register renaming unit 8 has mapping control circuitry 24 which serves to suppress unnecessary mapping operations in dependence upon a detected current state of the data processing system 2. One example of circumstances which can be detected from the current state and in which mapping can be suppressed and the existing mapping reused are that in respect of the existing physically mapped register there are no pending writes, no pending reads and no pending requirement for that physically mapped register to be preserved as a recovery register. Another example of a current state in which a mapping can be reused is adjacent program instructions having mutually exclusive condition codes and sharing a destination register such that only one of those adjacent instructions will every be executed.
    Type: Application
    Filed: January 24, 2007
    Publication date: July 24, 2008
    Applicant: ARM Limited
    Inventors: Frederic Claude Marie Piry, Norbert Bernard Eugene Lataille
  • Patent number: 7398375
    Abstract: The present invention provides a dynamic scheduling scheme that uses reservation stations having at least one station that stores an at least two operand instruction. An allocator portion determines that the instruction, entering the pipeline, has one ready operand and one not-ready operand, and accordingly places it in a station having only one comparator. The one comparator then compares the not-ready operand with tags broadcasted on a result tag bus to determine when the not-ready operand becomes ready. Once ready, execution is requested to the corresponding functional unit.
    Type: Grant
    Filed: April 3, 2003
    Date of Patent: July 8, 2008
    Assignee: The Regents of the University of Michigan
    Inventors: Daniel J. Ernst, Todd M. Austin
  • Publication number: 20080148022
    Abstract: The present application discloses register renaming circuitry for mapping registers from an architectural set of registers to registers within a physical set of registers, said architectural set of registers being registers specified by instructions within an instruction set and said physical set of registers being registers within a processor for processing instructions of said instruction set, said instruction set comprising exception instructions and non-exception instructions, exception instructions being instructions that may generate an exception and non-exception instructions being instructions that execute in a statically determinable way, said register renaming circuitry comprising: a first data store for storing a future renaming table, said future renaming table comprising renaming values for mapping registers from said architectural set of registers to registers in said physical set of registers for instructions that are to be executed or are currently being executed by said processor; a second da
    Type: Application
    Filed: December 13, 2006
    Publication date: June 19, 2008
    Applicant: ARM Limited
    Inventors: Frederic Claude Marie Piry, Melanie Emanuelle Lucie Vincent, Florent Begon, Gilles Eric Grandou, Norbert Bernard Eugene Lataille