High-performance, superscalar-based computer system with out-of-order instruction execution
First Claim
1. A microprocessor, comprising:
- an instruction fetch unit, including a prefetch buffer comprising a plurality of storage locations, each of said plurality of storage locations adapted to store an instruction set comprising a plurality of instructions;
prefetch control logic that issues a plurality of requests to an instruction store in a predetermined order, each of said plurality of requests including a unique identifier, and stores a plurality of instruction sets returned from said instruction store in said prefetch buffer, each of said plurality of instruction sets corresponding to a respective one of said plurality of requests, wherein said prefetch control logic associates each of said plurality of instruction sets with a unique identifier from said corresponding one of said plurality of requests, and wherein said prefetch control logic stores at least one of said plurality of instruction sets in said prefetch buffer out-of-order with respect to said predetermined order;
a branch decoder that decodes said plurality of instruction sets in an order specified by said unique identifiers associated with said plurality of instruction sets, wherein said order specified by said unique identifiers associated with said plurality of instruction sets is consistent with said predetermined order; and
a first in first out (FIFO) buffer that receives and stores said plurality of instruction sets decoded by said branch decoder in the order in which said plurality of instruction sets was decoded; and
an instruction execution unit that receives and executes said plurality of instruction sets stored in said FIFO buffer.
0 Assignments
0 Petitions
Accused Products
Abstract
A high-performance, superscalar-based computer system with out-of-order instruction execution for enhanced resource utilization and performance throughput. The computer system fetches a plurality of fixed length instructions with a specified, sequential program order (in-order). The computer system includes an instruction execution unit including a register file, a plurality of functional units, and an instruction control unit for examining the instructions and scheduling the instructions for out-of-order execution by the functional units. The register file includes a set of temporary data registers that are utilized by the instruction execution control unit to receive data results generated by the functional units. The data results of each executed instruction are stored in the temporary data registers until all prior instructions have been executed, thereby retiring the executed instruction in-order.
111 Citations
39 Claims
-
1. A microprocessor, comprising:
-
an instruction fetch unit, including a prefetch buffer comprising a plurality of storage locations, each of said plurality of storage locations adapted to store an instruction set comprising a plurality of instructions;
prefetch control logic that issues a plurality of requests to an instruction store in a predetermined order, each of said plurality of requests including a unique identifier, and stores a plurality of instruction sets returned from said instruction store in said prefetch buffer, each of said plurality of instruction sets corresponding to a respective one of said plurality of requests, wherein said prefetch control logic associates each of said plurality of instruction sets with a unique identifier from said corresponding one of said plurality of requests, and wherein said prefetch control logic stores at least one of said plurality of instruction sets in said prefetch buffer out-of-order with respect to said predetermined order;
a branch decoder that decodes said plurality of instruction sets in an order specified by said unique identifiers associated with said plurality of instruction sets, wherein said order specified by said unique identifiers associated with said plurality of instruction sets is consistent with said predetermined order; and
a first in first out (FIFO) buffer that receives and stores said plurality of instruction sets decoded by said branch decoder in the order in which said plurality of instruction sets was decoded; and
an instruction execution unit that receives and executes said plurality of instruction sets stored in said FIFO buffer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A microprocessor, comprising:
-
an instruction fetch unit, including a prefetch buffer comprising a plurality of storage locations, each of said plurality of storage locations adapted to store an instruction set comprising a plurality of instructions;
prefetch control logic that issues a plurality of requests to an instruction store in a predetermined order, each of said plurality of requests including a unique identifier, and stores a plurality of instruction sets returned from said instruction store in said prefetch buffer, each of said plurality of instruction sets corresponding to a respective one of said plurality of requests, wherein said prefetch control logic associates each of said plurality of instruction sets with a unique identifier from said corresponding one of said plurality of requests, and wherein said prefetch control logic stores at least one of said plurality of instruction sets in said prefetch buffer out-of-order with respect to said predetermined order;
a branch decoder that decodes said plurality of instruction sets in an order specified by said unique identifiers associated with said plurality of instruction sets, wherein said order specified by said unique identifiers associated with said plurality of instruction sets is consistent with said predetermined order; and
a buffer that receives and stores said plurality of instruction sets decoded by said branch decoder in the order in which said plurality of instruction sets was decoded; and
an instruction execution unit that receives and executes said plurality of instruction sets after storage in said buffer. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
-
27. A computer system, comprising:
-
a microprocessor;
a memory;
a bus coupling said microprocessor to said memory, said microprocessor comprising;
an instruction fetch unit, including a prefetch buffer comprising a plurality of storage locations, each of said plurality of storage locations adapted to store an instruction set comprising a plurality of instructions;
prefetch control logic that issues a plurality of requests to an instruction store in a predetermined order, each of said plurality of requests including a unique identifier, and stores a plurality of instruction sets returned from said instruction store in said prefetch buffer, each of said plurality of instruction sets corresponding to a respective one of said plurality of requests, wherein said prefetch control logic associates each of said plurality of instruction sets with a unique identifier from said corresponding one of said plurality of requests, and wherein said pre fetch control logic stores at least one of said plurality of instruction sets in said prefetch buffer out-of-order with respect to said predetermined order;
a branch decoder that decodes said plurality of instruction sets in an order specified by said unique identifiers associated with said plurality of instruction sets, wherein said order specified by said unique identifiers associated with said plurality of instruction sets is consistent with said predetermined order; and
a buffer that receives and stores said plurality of instruction sets decoded by said branch decoder in the order in which said plurality of instruction sets was decoded; and
an instruction execution unit that receives and executes said plurality of instruction sets after storage in said buffer. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
Specification