← Back to Patent Explorer
US5778245A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for dynamic allocation of multiple buffers in a processor

Assignee: Intel Corp
•
Filing: 1994-03-01
•
Granted: 1998-07-07
•
Expires: 2014-03-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for dynamically allocating entries of microprocessor resources to particular instructions in an efficient manner to efficiently utilize buffer size and resources. The pipelined and superscalar microprocessor is capable of speculatively executing instructions and also out-of-order processing. Resources within the microprocessor include a store buffer, a load buffer, a reorder buffer and a reservation station. The reorder buffer contains a larger set of physical registers and also contains information related to speculative instructions and the reservation station comprises information related to instructions pending execution. The load buffer is only allocated to load instructions and is valid for an instruction from allocation pipestage to instruction retirement. The store buffer is only allocated to store instructions and is valid for an instruction from allocation to store performance. The reservation station is allocated to most instructions and is valid for an instruction from allocation to instruction dispatch. The reorder buffer is allocated to all instructions and is valid for a given instruction from allocation to retirement. The load buffer, store buffer, and reorder buffer are sequentially allocated while the reservation station is not. Resource allocation is performed dynamically (as needed by the operation) rather than as a full set of resources attached to each operation. Using the above allocation scheme, efficient usage of the microprocessor resources is accomplished.

Inventors

  • 👤 David B. Papworth
  • 👤 Andrew F. Glew
  • 👤 Glenn J. Hinton
  • 👤 Robert P. Colwell
  • 👤 Michael A. Fetterman
  • 👤 Shantanu R. Gupta
  • 👤 James S. Griffith

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 09:51
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F9/30; G06F9/38; G06F9/3836; G06F9/3838; G06F9/384; G06F9/3854; G06F9/3856; G06F9/3858; G06F9/3885

Claims Analysis

Total Claims: 25
Claim 1
Independent Claim 104 words
A pipelined processor comprising: a reorder buffer containing result information generated by speculative instructions; a reservation station coupled to said reorder buffer, said reservation station containing information associated with instructions pending execution; and an allocator coupled to said reorder buffer and said reservation station, said allocator allocating entries of said reorder buffer and said reservation station during an allocation pipestage of said pipelined processor, said allocation pipestage following a decode pipestage of said pipelined processor and preceding a dispatch pipestage of said pipelined processor, said allocator locating entries of said reservation station for each pending instruction except for one or more register exchange instructions.
Claim 2
Dependent Claim 104 words
A pipelined processor comprising: a reorder buffer containing result information generated by speculative instructions; a reservation station coupled to said reorder buffer, said reservation station containing information associated with instructions pending execution; and an allocator coupled to said reorder buffer and said reservation station, said allocator allocating entries of said reorder buffer and said reservation station during an allocation pipestage of said pipelined processor, said allocation pipestage following a decode pipestage of said pipelined processor and preceding a dispatch pipestage of said pipelined processor, said allocator locating entries of said reservation station for each pending instruction except for one or more register exchange instructions.
Claim 3
Dependent Claim 58 words
The processor of claim 1 further comprising: a load buffer containing information associated with load instructions; a store buffer containing information associated with store instructions; and wherein said allocator allocates entries of said load buffer to said load instructions during said allocation pipestage and allocates entries of said store buffer to said store instructions during said allocation pipestage.
Claim 4
Dependent Claim 39 words
The processor of claim 2 wherein said allocator comprises: sequential allocation means for sequentially allocating entries of said reorder buffer, said load buffer and said store buffer; and nonsequential allocation means for nonsequentially allocating entries of said reservation station.
Claim 5
Dependent Claim 39 words
The processor of claim 3 wherein said reorder buffer, said load buffer and said store buffer each comprise a circular buffer having a tail pointer indicating a last valid entry and a head pointer indicating a first valid entry.
Claim 6
Dependent Claim 32 words
The processor of claim 2 wherein said reorder buffer includes a plurality of physical registers for containing said result information and said reorder buffer expands a register set associated with said processor.
Claim 7
Dependent Claim 44 words
The processor of claim 2 wherein said allocator comprises instruction allocation means for allocating a full set of instructions to said reorder buffer, a subset of instructions to said reservation station, load instructions to said load buffer and store instructions to said store buffer.
Claim 8
Dependent Claim 30 words
The processor of claim 2 further comprising means for stalling said processor from issuing instructions provided entries are unavailable within said reorder buffer, said reservation station, or said load buffer.
Claim 9
Dependent Claim 27 words
The processor of claim 2 further comprising a bus coupled to said processor and wherein said store instructions are executed when committed to memory over said bus.
Claim 10
Dependent Claim 143 words
A computer system comprising: a bus for communicating information; a memory storage unit coupled to said bus for storing information; a first processor coupled to said bus; and a second processor coupled to the bus, the second processor being a pipelined processor comprising: a reorder buffer containing result information generated by speculative instructions; a reservation station coupled to said reorder buffer, said reservation station containing information associated with instructions pending execution; and an allocator coupled to said reorder buffer and said reservation station, said allocator allocating entries of said reorder buffer and said reservation station during an allocation pipestage of said pipelined processor, said allocation pipestage following a decode pipestage of said pipelined processor and preceding a dispatch pipestage of said pipelined processor, said allocator allocating entries of said reservation station for each pending instruction except for one or more register exchange instructions.
Claim 11
Dependent Claim 143 words
A computer system comprising: a bus for communicating information; a memory storage unit coupled to said bus for storing information; a first processor coupled to said bus; and a second processor coupled to the bus, the second processor being a pipelined processor comprising: a reorder buffer containing result information generated by speculative instructions; a reservation station coupled to said reorder buffer, said reservation station containing information associated with instructions pending execution; and an allocator coupled to said reorder buffer and said reservation station, said allocator allocating entries of said reorder buffer and said reservation station during an allocation pipestage of said pipelined processor, said allocation pipestage following a decode pipestage of said pipelined processor and preceding a dispatch pipestage of said pipelined processor, said allocator allocating entries of said reservation station for each pending instruction except for one or more register exchange instructions.
Claim 12
Dependent Claim 43 words
The computer system of claim 9 wherein the second processor further comprises a store buffer for containing information associated with store instructions, wherein entries of said store buffer are allocated during said allocation pipestage and remain allocated until said store instructions are executed.
Claim 13
Dependent Claim 15 words
The computer system of claim 10 wherein said allocator allocates entries of said store buffer.
Claim 14
Dependent Claim 48 words
The computer system of claim 11 wherein said allocator comprises: sequential allocation logic to sequentially allocate vacant entries of said store buffer to instructions provided by said issue unit; and nonsequential allocation logic to nonsequentially allocate entries of said reservation station to instructions provided by said issue unit.
Claim 15
Dependent Claim 75 words
The computer system of claim 10 further comprising: a load buffer comprising a plurality of entries for containing information associated with load instructions, wherein entries of said load buffer are allocated during said allocation pipestage and remain allocated until said retirement pipestage; and wherein said reorder buffer, said load buffer and said store buffer each comprise circular buffers having a tail pointer indicating a last valid entry and a head pointer indicating a first entry.
Claim 16
Dependent Claim 21 words
The computer system of claim 9 wherein said reorder buffer comprises a plurality of physical registers for containing said operand information.
Claim 17
Dependent Claim 117 words
In a pipeline processor having a pipeline comprising allocation, dispatch and retirement pipestages, a method of dynamically allocating resources in said processor, said method comprising the steps of: (a) allocating entries of a first buffer to instructions during said allocation pipestage and until said retirement pipestage for said instructions, wherein said first buffer contains information associated with speculative instructions; (b) allocating entries of a reservation station to instructions during said allocation pipestage and until said dispatch pipestage, wherein said reservation station contains information associated with instructions pending execution; and wherein said step (b) of allocating entries of a reservation station is performed for each instruction processed by said processor except for one or more register exchange instructions.
Claim 18
Dependent Claim 117 words
In a pipeline processor having a pipeline comprising allocation, dispatch and retirement pipestages, a method of dynamically allocating resources in said processor, said method comprising the steps of: (a) allocating entries of a first buffer to instructions during said allocation pipestage and until said retirement pipestage for said instructions, wherein said first buffer contains information associated with speculative instructions; (b) allocating entries of a reservation station to instructions during said allocation pipestage and until said dispatch pipestage, wherein said reservation station contains information associated with instructions pending execution; and wherein said step (b) of allocating entries of a reservation station is performed for each instruction processed by said processor except for one or more register exchange instructions.
Claim 19
Dependent Claim 57 words
The method of claim 15 further comprising the steps of: (c) allocating entries of a load buffer to load instructions during said allocation pipestage and until said retirement pipestage; (d) allocating entries of a store buffer to store instructions during said allocation pipestage and until said store instructions are performed over a bus coupled to said processor.
Claim 20
Dependent Claim 53 words
The method of claim 15 further comprising the steps of: (c) allocating entries of a load buffer to load instructions during said allocation pipestage and until said retirement pipestage; (d) allocating entries of a store buffer to store instructions during said allocation pipestage and until a time period subsequent to said retirement pipestage.
Claim 21
Dependent Claim 17 words
The method of claim 15 wherein step (a) is performed sequentially and step (b) is performed nonsequentially.
Claim 22
Dependent Claim 17 words
The method of claim 15 wherein step (a) is performed for each instruction processed by said processor.
Claim 23
Dependent Claim 20 words
The method of claim 19 wherein the one or more register exchange instructions include a floating point register exchange instruction.
Claim 24
Dependent Claim 28 words
The method of claim 15 further comprising the step of stalling said processor from issuing instructions if entries within said first buffer or said load buffer are unavailable.
Claim 25
Dependent Claim 32 words
The method of claim 16 further comprising the step of stalling said processor from issuing instructions if entries within said first buffer, reservation station, load buffer or said store buffer are unavailable.

References Cited (Backward Citations)

US5511172A Cited
US5519864A Cited
US5524263A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-07-06 2002-01-05 2002-07-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-07-06 2006-01-05 2006-07-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-07-06 2010-01-05 2010-07-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag