US5878244A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Reorder buffer configured to allocate storage capable of storing results corresponding to a maximum number of concurrently receivable instructions regardless of a number of instructions received
Assignee: GlobalFoundries Inc
•
Filing: 1996-07-26
•
Granted: 1999-03-02
•
Expires: 2016-07-26
Abstract
Abstract A reorder buffer is configured into multiple lines of storage, wherein a line of storage includes sufficient storage for instructions results regarding a predefined maximum number of concurrently dispatchable instructions. A line of storage is allocated whenever one or more instructions are dispatched. The line of storage remains allocated until each instruction within the line is ready to retire, and then the line is deallocated as the one or more instructions are concurrently retired.
Inventors
- 👤 David B. Witt
- 👤 Thang M. Tran
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-06 03:28
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3836; G06F12/00; G06F12/02; G06F12/08; G06F12/12; G06F12/121; G06F12/126; G06F9/30003; G06F9/30007; G06F9/30036; G06F9/3818; G06F9/382; G06F9/3838; G06F9/384; G06F9/3853; G06F9/3854; G06F9/3856; G06F9/3858; G06F9/46; G06F9/52
Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
87 words
A reorder buffer comprising: an instruction storage including multiple lines of storage, wherein each of said lines of storage is configured to store a predefined maximum number of instructions concurrently receivable by said reorder buffer; and a first control unit coupled to said instruction storage, wherein said first control unit is configured to allocate one of said lines of storage to one or more concurrently received instructions, and wherein said one of said lines of storage is allocated regardless of a number of said concurrently received instructions.
Claim 2
Dependent Claim
87 words
A reorder buffer comprising: an instruction storage including multiple lines of storage, wherein each of said lines of storage is configured to store a predefined maximum number of instructions concurrently receivable by said reorder buffer; and a first control unit coupled to said instruction storage, wherein said first control unit is configured to allocate one of said lines of storage to one or more concurrently received instructions, and wherein said one of said lines of storage is allocated regardless of a number of said concurrently received instructions.
Claim 3
Dependent Claim
31 words
The reorder buffer as recited in claim 1 wherein said maximum number of concurrently receivable instructions comprises a maximum number of concurrently decodable instructions within a microprocessor employing said reorder buffer.
Claim 4
Dependent Claim
31 words
The reorder buffer as recited in claim 1 wherein said maximum number of concurrently receivable instructions comprises a maximum number of concurrently dispatchable instructions within a microprocessor employing said reorder buffer.
Claim 5
Dependent Claim
63 words
The reorder buffer as recited in claim 1 wherein said instruction storage comprises a FIFO buffer, and wherein a first one of said lines of storage is defined as a bottom of said FIFO buffer, and wherein said bottom of said FIFO buffer stores one or more instructions which are prior to instructions stored in any other line of storage in program order.
Claim 6
Dependent Claim
35 words
The reorder buffer as recited in claim 4 further comprising a second control unit coupled to said instruction storage, wherein said second control unit is configured to manage retirement of instructions from said reorder buffer.
Claim 7
Dependent Claim
23 words
The reorder buffer as recited in claim 5 wherein said second control unit concurrently retires instructions stored within a particular line of storage.
Claim 8
Dependent Claim
21 words
The reorder buffer as recited in claim 6 wherein said particular line of storage comprises said bottom of said FIFO buffer.
Claim 9
Dependent Claim
45 words
The reorder buffer as recited in claim 7 wherein said second control unit is further configured to shift a content of each line of storage to another line of storage upon retirement of instructions such that a FIFO order within said FIFO buffer is maintained.
Claim 10
Dependent Claim
37 words
The reorder buffer as recited in claim 1 wherein each of said lines of storage is divided into multiple portions, and wherein each of said concurrently received instructions is stored into a different one of said portions.
Claim 11
Dependent Claim
52 words
The reorder buffer as recited in claim 9, wherein each of said portions includes a last in buffer indication indicating, when set, that a particular concurrently received instruction stored therein is last, in program order, of instructions stored in said instruction storage to update a destination of said particular concurrently received instruction.
Claim 12
Dependent Claim
53 words
The reorder buffer as recited in claim 9, wherein each of said portions includes a last in line indication indicating, when set, that a particular concurrently received instruction stored therein is last, in program order, of instructions stored in said line of storage to update a destination of said particular concurrently received instruction.
Claim 13
Dependent Claim
27 words
The reorder buffer as recited in claim 9 wherein said reorder buffer is coupled to receive a plurality of instruction results from a plurality of functional units.
Claim 14
Dependent Claim
47 words
The reorder buffer as recited in claim 12 wherein each one of said plurality of instruction results is stored into a particular one of said portions corresponding to one of said plurality of functional units from which said one of said plurality of instruction results is conveyed.
Claim 15
Dependent Claim
49 words
The reorder buffer as recited in claim 9 wherein each one of said portions which is void of a valid instruction due to dispatch of less than said maximum number of receivable instructions when said line of storage is allocated indicates that no valid instruction information is stored therein.
Claim 16
Independent Claim
131 words
An apparatus for reordering instructions which were executed out of order, comprising: a first decode unit configured to decode and dispatch a first instruction; a second decode unit configured to decode and dispatch a second instruction concurrent with said first instruction; and a reorder buffer coupled to said first decode unit and said second decode unit, wherein said reorder buffer is configured to allocate a line of storage to store instruction results corresponding to said first instruction and said second instruction upon dispatch of said first instruction and said second instruction, and wherein said line of storage is configured to store a maximum number of concurrently dispatchable instructions, and wherein said line of storage is allocated regardless of a number of concurrently dispatched instructions provided at least one instruction is dispatched.
Claim 17
Independent Claim
131 words
An apparatus for reordering instructions which were executed out of order, comprising: a first decode unit configured to decode and dispatch a first instruction; a second decode unit configured to decode and dispatch a second instruction concurrent with said first instruction; and a reorder buffer coupled to said first decode unit and said second decode unit, wherein said reorder buffer is configured to allocate a line of storage to store instruction results corresponding to said first instruction and said second instruction upon dispatch of said first instruction and said second instruction, and wherein said line of storage is configured to store a maximum number of concurrently dispatchable instructions, and wherein said line of storage is allocated regardless of a number of concurrently dispatched instructions provided at least one instruction is dispatched.
Claim 18
Dependent Claim
42 words
The apparatus as recited in claim 15 further comprising a first reservation station coupled to a first decode unit, wherein said first reservation station is configured to store said first instruction and corresponding operand information prior to execution of said first instruction.
Claim 19
Dependent Claim
18 words
The apparatus as recited in claim 16 wherein said reorder buffer is configured to provide said operand information.
Claim 20
Dependent Claim
33 words
The apparatus as recited in claim 17 wherein said operand information comprises a tag identifying a third instruction stored within said reorder buffer if said first instruction is dependent upon said third instruction.
Claim 21
Dependent Claim
23 words
The apparatus as recited in claim 18 wherein said operand information further comprises a corresponding instruction result if said third instruction has executed.
Claim 22
Dependent Claim
45 words
The apparatus as recited in claim 18 further comprising a register file coupled to said reorder buffer, wherein said register file is configured to store values corresponding to a plurality of registers subsequent to execution of instructions which have been retired by said reorder buffer.
Claim 23
Dependent Claim
29 words
The apparatus as recited in claim 20 wherein said operand information comprises a register value from said register file if said first instruction is independent of said third instruction.
Claim 24
Dependent Claim
93 words
The apparatus as recited in claim 16 further comprising a first functional unit coupled to said first reservation station, wherein said first functional unit is configured to execute said first instruction and to provide a first instruction result corresponding to said first instruction to said reorder buffer, and wherein said first functional unit further provides a line tag indicating said line of storage within said reorder buffer, and wherein said first instruction is located within said line of storage by detecting that said first instruction result is provided by said first functional unit.
Claim 25
Dependent Claim
48 words
The apparatus as recited in claim 15 wherein said first decode unit comprises an early decode unit and an opcode decode unit, wherein said early decode unit provides operand request information to said reorder buffer, and wherein said opcode decode unit decodes an opcode of said first instruction.
References Cited (Backward Citations)
US4044338A
Cited
US4453212A
Cited
US4928223A
Cited
US4807115A
Cited
US4858105A
Cited
EP0259095A2
Cited
EP0381471A2
Cited
US5226126A
Cited
US5136697A
Cited
US5129067A
Cited
US5226130A
Cited
US5058048A
Cited
US5053631A
Cited
EP0459232A2
Cited
US5197132A
Cited
US5355457A
Cited
US5689720A
Cited
US5560032A
Cited
US5345569A
Cited
GB2263987A
Cited
GB2263985A
Cited
WO1993020505A2
Cited
GB2281422A
Cited
US5548776A
Cited
US5574935A
Cited
US5524263A
Cited
US5584038A
Cited
US5623628A
Cited
EP0679991A1
Cited
US5632023A
Cited
US5535346A
Cited
EP0724213A2
Cited
WO1997013201A1
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-03-01 | 2002-08-31 | 2003-03-02 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-03-01 | 2006-08-31 | 2007-03-02 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-03-01 | 2010-08-31 | 2011-03-02 | $7700.00 | Window Closed / Lapsed |