Electrical computers and digital processing systems: processing – Dynamic instruction dependency checking – monitoring or...
Reexamination Certificate
1999-06-10
2002-08-27
Coleman, Eric (Department: 2183)
Electrical computers and digital processing systems: processing
Dynamic instruction dependency checking, monitoring or...
C712S225000
Reexamination Certificate
active
06442677
ABSTRACT:
BACKGROUND OF THE INVENTION
1. Field of the Invention
This invention relates generally to the field of microprocessors and, more particularly, to execution units within microprocessors.
2. Description of the Related Art
Microprocessors are typically designed with a number of “execution units” that are each optimized to perform a particular set of functions or instructions. For example, one or more execution units within a microprocessor may be optimized to perform memory accesses, i.e., load and store operations. Other execution units may be optimized to perform general arithmetic and logic functions, e.g., shifts and compares. Many microprocessors also have specialized execution units configured to perform more complex floating-point arithmetic operations including multiplication and reciprocal operations. These specialized execution units typically comprise hardware that is optimized to perform one or more floating-point arithmetic functions.
Many instructions in a microprocessor are configured to perform a function based on one or more operands. These operands may originate from a variety of sources including registers, a cache, or a main memory. Operands that originate from a cache or main memory often involve operand latencies in obtaining the operands from the cache or main memory. The operand latencies can translate into instruction latencies for instructions that depend on the operand. It is generally desirable to reduce these operand and instruction latencies in a microprocessor to achieve increased processor efficiency.
Instructions that are configured to load data into a destination operand are often referred to as load instructions. Load instructions typically specify a memory location as a source operand and copy data from the memory location into a destination operand. At times, the destination operand of a load instruction will be used as a source operand of an instruction subsequent to the load instruction. The source operand of the subsequent instruction can create a dependency on the destination register of the load instruction. As a result, the subsequent instruction may be required to wait until the load instruction executes or completes to access the contents of the destination register of the load instruction. The time that the instruction waits for the load instruction to execute or complete can result in an instruction latency. It would be desirable to reduce the latencies associated with instructions that specify source operands that depend on the destination operand of a load instruction.
SUMMARY
The problems outlined above are in large part solved by an apparatus and method in described herein. Generally speaking, an apparatus and method for superforwarding load operands in a microprocessor are provided. An execution unit in a microprocessor is configured to receive a load instruction and a subsequent instruction. If the load instruction corresponds to a simple load instruction, a destination operand of the load instruction can be superforwarded to a subsequent instruction if the subsequent instruction specifies a source operand that depends on the destination operand of the load instruction. The subsequent instruction is not required to wait until the load instruction executes or completes and can be scheduled and/or executed prior to or at the same time as the load instruction. Consequently, latencies associated with operand dependencies may be reduced.
REFERENCES:
patent: 5058048 (1991-10-01), Gupta et al.
patent: 5467473 (1995-11-01), Kahle et al.
patent: 5646875 (1997-07-01), Taborn et al.
patent: 5784586 (1998-07-01), Simone et al.
patent: 5802588 (1998-09-01), Ramagopal et al.
patent: 5872990 (1999-02-01), Luick
patent: 5881307 (1999-03-01), Park et al.
patent: 5903479 (1999-05-01), Schwarz et al.
patent: 5940311 (1999-08-01), Dao et al.
patent: 6035394 (2000-03-01), Ray et al.
patent: 6070238 (2000-05-01), Feiste et al.
patent: 6256726 (2001-07-01), Hotta
patent: 6260190 (2001-07-01), Ju
patent: 6275838 (2001-08-01), Blomgren et al.
patent: 6286095 (2001-09-01), Morris
Kumar, A “The HP-8000 RiSC CPU” IEEE Micro Mar./Apr. 1997 pp. 27-32.*
US patent application Ser. No. 09/265230.*
US patent application Ser. No. 09/329718.
Juffa Norbert
Meier Stephan G.
Meyer Derrick R.
Advanced Micro Devices , Inc.
Coleman Eric
Conley Rose & Tayon PC
Kivlin B. Noäl
LandOfFree
Apparatus and method for superforwarding load operands in a... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Apparatus and method for superforwarding load operands in a..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Apparatus and method for superforwarding load operands in a... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2955330