Register stack engine having speculative load/store modes

Electrical computers and digital processing systems: memory – Storage accessing and control – Control technique

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C711S154000

Reexamination Certificate

active

06631452

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Technical Field
The present invention relates to microprocessors and, in particular, to mechanisms for managing data in a register file.
2. Background Art
Modern processors include extensive execution resources to support concurrent processing of multiple instructions. A processor typically includes one or more integer, floating point, branch, and memory execution units to implement integer, floating point, branch, and load/store instructions, respectively. In addition, integer and floating point units typically include register files to maintain data relatively close to the processor core.
A register file is a high speed storage structure that is used to temporarily store information close to the execution resources of the processor. The operands on which instructions operate are preferentially stored in the entries (“registers”) of the register file, since they can be accessed more quickly from these locations. Data stored in larger, more remote storage structures such as caches or main memory, may take longer to access. The longer access times can reduce the processor's performance. Register files thus serve as a primary source of data for the processor's execution resources, and high performance processors provide large register files to take advantage of their low access latency.
Register files take up relatively large areas on the processor's die. While improvements in semiconductor processing have reduced the size of the individual storage elements in a register, the wires that move data in and out of these storage elements have not benefited to the same degree. These wires are responsible for a significant portion of the register file's die area, particularly in the case of multi-ported register files. The die area impact of register files limits the size of the register files (and the number of registers) that can be used effectively on a given processor. Although the number of registers employed on succeeding processor generations has increased, so has the amount of data processors handle. For example, superscalar processors include multiple instruction execution pipelines, each of which must be provided with data. In addition, these instruction execution pipelines operate at ever greater speeds. The net result is that the register files remain a relatively scare resource, and processors must manage the movement of data in and out of these register files carefully to operate at their peak efficiencies.
Typical register management techniques empty registers to and load registers from higher latency storage devices, respectively, to optimize register usage. The data transfers are often triggered when control of the processor passes from one software procedure to another. For example, data from the registers used by a first procedure that is currently inactive may be emptied or “spilled” to a backing store if an active procedure requires more registers than are currently available in the register file. When control is returned to the first procedure, registers are reallocated to the procedure and loaded or “filled” with the associated data from the backing store.
The store and load operations that transfer data between the register file and backing store may have relatively long latencies. This is particularly true if the data sought is only available in one of the large caches or main memory or if significant amounts of data must be transferred from anywhere in the memory hierarchy. In these cases, execution of the newly activated procedure is stalled while the data transfers are implemented. Execution stalls halt the progress of instructions through the processor's execution pipeline, degrading the processor's performance.
The present invention addresses these and other problems related to register file management.


REFERENCES:
patent: 5142635 (1992-08-01), Saini
patent: 5420991 (1995-05-01), Konigsfeld et al.
patent: 5463745 (1995-10-01), Vidwans et al.
patent: 5479633 (1995-12-01), Wells et al.
patent: 5522051 (1996-05-01), Sharangpani
patent: 5535397 (1996-07-01), Durante et al.
patent: 5574935 (1996-11-01), Vidwans et al.
patent: 5640582 (1997-06-01), Hays et al.
patent: 5680640 (1997-10-01), Ofek et al.
patent: 5751996 (1998-05-01), Glew et al.
patent: 5778245 (1998-07-01), Papworth et al.
patent: 5852726 (1998-12-01), Lin et al.
patent: 5867602 (1999-02-01), Zandi et al.
patent: 5974525 (1999-10-01), Lin et al.
patent: 6006318 (1999-12-01), Hansen et al.
patent: 6035389 (2000-03-01), Grochowski et al.
patent: 6065114 (2000-05-01), Zahir et al.
patent: 6202204 (2001-03-01), Wu et al.
patent: 6219783 (2001-04-01), Zahir et al.
patent: 6243668 (2001-06-01), Le et al.
patent: 6314513 (2001-11-01), Ross et al.
patent: 6321328 (2001-11-01), Karp et al.
patent: 6367005 (2002-04-01), Zahir et al.
patent: 6453388 (2002-09-01), Gonzales et al.
patent: 6487630 (2002-11-01), Bui
patent: 2002/0056024 (2002-05-01), Bui

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Register stack engine having speculative load/store modes does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Register stack engine having speculative load/store modes, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Register stack engine having speculative load/store modes will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-3154151

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.