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

Combined queue for invalidates and return data in multiprocessor system

Assignee: Hewlett Packard Development Co LP
•
Filing: 1993-08-09
•
Granted: 1994-07-26
•
Expires: 2013-08-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A pipelined CPU executing instructions of variable length, and referencing memory using various data widths. Macroninstruction pipelining is employed (instead of microinstruction pipelining), with queuing between units of the CPU to allow flexibility in instruction execution times. A wide bandwidth is available for memory access; fetching 64-bit data blocks on each cycle. A hierarchical cache arrangement is used, increasing the likelihood of a cache hit. A writeback cache is used (instead of writethrough) and writeback is allowed to proceed even though other accesses are suppressed due to queues being full. Separate queues are provided for the return data from memory and cache invalidates, yet the order or bus transactions is maintained by a pointer arrangement. The bus protocol used by the CPU to communicate with the system bus is of the pended type, with transactions on the bus identified by an ID field specifying the originator, and arbitration for bus grant goes one simultaneously with address/data transactions on the bus.

Inventors

  • 👤 Gregg Bouchard
  • 👤 Lawrence Chisvin

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-25 14:04
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3824; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831; G06F15/00; G06F15/76; G06F15/80; G06F15/8007; G06F15/8015; G06F7/00; G06F7/38; G06F7/48; G06F7/483; G06F9/30003; G06F9/30007; G06F9/3001; G06F9/30014; G06F9/30145; G06F9/30149; G06F9/3016; G06F9/30167; G06F9/3802; G06F9/3826; G06F9/383; G06F9/3832; G06F9/3836; G06F9/3838; G06F9/3842; G06F9/3844; G06F9/3861; G06F9/3867; G06F9/3869; G06F9/3873; F; F02; F02B; F02B75/00; F02B75/02; F02B2075/022; F02B2075/025; G06F7/499; G06F7/49942; G06F7/49947

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 167 words
A method of operating a computer system of the type having a CPU and a cache associated with said CPU, and having a memory connected to said CPU by a system bus, comprising the steps of: receiving via said system bus return data items from said memory and invalidates for data in said cache; separately buffering said return data items and said invalidates in entries in first and second buffers, respectively, said first and second buffers being of different sizes; maintaining in each said entry of each one of said first and second buffers an identification of a location in either of said first and second buffers of a next entry in combined order of receipt of said data items and said invalidates; sending said entries from said first or second buffers to said CPU in an order defined in response to said identification which is in said combined order of receipt regardless of whether said next entry is in the first buffer or the second buffer.
Claim 2
Independent Claim 167 words
A method of operating a computer system of the type having a CPU and a cache associated with said CPU, and having a memory connected to said CPU by a system bus, comprising the steps of: receiving via said system bus return data items from said memory and invalidates for data in said cache; separately buffering said return data items and said invalidates in entries in first and second buffers, respectively, said first and second buffers being of different sizes; maintaining in each said entry of each one of said first and second buffers an identification of a location in either of said first and second buffers of a next entry in combined order of receipt of said data items and said invalidates; sending said entries from said first or second buffers to said CPU in an order defined in response to said identification which is in said combined order of receipt regardless of whether said next entry is in the first buffer or the second buffer.
Claim 3
Dependent Claim 32 words
A method according to claim 1 wherein said system is a multiprocessor system including additional CPUs, and including the step of accessing said memory by said additional CPUs to generate said invalidates.
Claim 4
Dependent Claim 53 words
A method according to claim 2 including the step of storing said return data entries in first multibit registers in said first buffer, and the step of storing said invalidate entries in second multibit registers in said second buffer, and wherein said first multibit registers are much larger than said second multibit registers.
Claim 5
Dependent Claim 36 words
A method according to claim 1 wherein said entries are loaded to said first and second buffers from said system bus in response to a position of separate tail pointers for said first and second buffers.
Claim 6
Dependent Claim 26 words
A method according to claim 1 wherein said step of sending includes the step of identifying the entry to be sent next by a head point.
Claim 7
Dependent Claim 27 words
A method according to claim 5 wherein said head pointer is changed to point to one of the first and second buffers in response to said identification.
Claim 8
Independent Claim 150 words
A method of operating a computer system, comprising the steps of: making read requests by a CPU to a system memory; storing a subset of said system memory in a cache operated by said CPU; receiving and buffering return data from said system memory and invalidates for data in said cache, said buffering including: separately buffering said return data and said invalidates in first and second buffers of different sizes; maintaining in each entry of said first and second buffers an identification of a location in either of said first and second buffers of a next entry in combined order of receipt; maintaining a single pointer to the combined next entry of said first and second buffers to be sent to said CPU, said pointer being set in response to said identification and referencing said next entry regardless of whether it is in said first buffer or said second buffer.
Claim 9
Independent Claim 150 words
A method of operating a computer system, comprising the steps of: making read requests by a CPU to a system memory; storing a subset of said system memory in a cache operated by said CPU; receiving and buffering return data from said system memory and invalidates for data in said cache, said buffering including: separately buffering said return data and said invalidates in first and second buffers of different sizes; maintaining in each entry of said first and second buffers an identification of a location in either of said first and second buffers of a next entry in combined order of receipt; maintaining a single pointer to the combined next entry of said first and second buffers to be sent to said CPU, said pointer being set in response to said identification and referencing said next entry regardless of whether it is in said first buffer or said second buffer.
Claim 10
Dependent Claim 32 words
A method according to claim 7 wherein said system is a multiprocessor system including additional CPUs, and including the step of accessing said memory by said additional CPUs to generate said invalidates.
Claim 11
Dependent Claim 69 words
A method according to claim 7 wherein said step of receiving and buffering includes a step of storing said return data in first multibit registers in said first buffer, and includes the step of storing said invalidates in second multibit registers in said second buffer, and wherein said first multibit registers are much larger than said second multibit registers, and said second buffer is larger than said first buffer.
Claim 12
Dependent Claim 36 words
A method according to claim 7 wherein said entries are loaded to said first and second buffers from said system bus in response to a position of separate tail pointers for said first and second buffers.
Claim 13
Dependent Claim 27 words
A method according to claim 7 wherein said head pointer is changed to point to one of the first and second buffers in response to said identification.
Claim 14
Dependent Claim 160 words
A bus interface device for connecting a CPU to a system bus, the CPU including a cache, the bus interface device receiving read data and invalidates from said system bus, comprising: a first buffer for receiving said invalidates from said system bus for forwarding to said cache, each invalidate being loaded to said first buffer as an entry; a second buffer for receiving said return data from said system bus for forwarding to said cache, each item of return data being loaded to said second buffer as an entry; each said entry in said first buffer and said second buffer storing a location of a next combined chronological entry in either said first or second buffers; and a pointer responsive to said stored location to identify a combined next one of said entries of said first or second buffers to be sent to said CPU regardless of whether said next one is in the first buffer or the second buffer.
Claim 15
Dependent Claim 160 words
A bus interface device for connecting a CPU to a system bus, the CPU including a cache, the bus interface device receiving read data and invalidates from said system bus, comprising: a first buffer for receiving said invalidates from said system bus for forwarding to said cache, each invalidate being loaded to said first buffer as an entry; a second buffer for receiving said return data from said system bus for forwarding to said cache, each item of return data being loaded to said second buffer as an entry; each said entry in said first buffer and said second buffer storing a location of a next combined chronological entry in either said first or second buffers; and a pointer responsive to said stored location to identify a combined next one of said entries of said first or second buffers to be sent to said CPU regardless of whether said next one is in the first buffer or the second buffer.
Claim 16
Dependent Claim 23 words
A device according to claim 12 wherein said system is a multiprocessor system including additional CPUs accessing said memory to generate said invalidates.
Claim 17
Dependent Claim 47 words
A device according to claim 12 wherein said return data is contained in second multibit registers in said second buffer and said invalidates are contained in first multibit registers in said first buffer, and wherein said second multibit registers are much larger than said first multibit registers.
Claim 18
Dependent Claim 16 words
A device according to claim 14 wherein said second buffer is larger than said first buffer.
Claim 19
Dependent Claim 37 words
A device according to claim 12 further comprising means for loading entries to said first and second buffers from said system bus in response to a position of separate tail pointers for said first and second buffers.
Claim 20
Dependent Claim 28 words
A device according to claim 12 including means for changing said pointer to point to one of the first and second buffers in response to said stored location.
Claim 21
Dependent Claim 200 words
An interface device for connecting a processor to a bus, the interface device receiving from said bus first data items having a first data type and receiving from said bus second data items having a second data type, said interface device forwarding said first and second data items to said processor in order of receipt, comprising: a first buffer for receiving said first data items of said first data type from said bus, each said first data item of first data type being loaded to said first buffer as an entry; a second buffer for receiving said second data items of said second data type from said bus, each said second data item of second data type being loaded to said second buffer as an entry; each one of said entries in said first buffer and in said second buffer storing a location of a combined next chronological entry in either said first or second buffers; and a pointer responsive to said stored location to identify a combined next one of said entries of said first or second buffers to be forwarded to said processor regardless of whether said next one is in the first buffer or the second buffer.
Claim 22
Dependent Claim 200 words
An interface device for connecting a processor to a bus, the interface device receiving from said bus first data items having a first data type and receiving from said bus second data items having a second data type, said interface device forwarding said first and second data items to said processor in order of receipt, comprising: a first buffer for receiving said first data items of said first data type from said bus, each said first data item of first data type being loaded to said first buffer as an entry; a second buffer for receiving said second data items of said second data type from said bus, each said second data item of second data type being loaded to said second buffer as an entry; each one of said entries in said first buffer and in said second buffer storing a location of a combined next chronological entry in either said first or second buffers; and a pointer responsive to said stored location to identify a combined next one of said entries of said first or second buffers to be forwarded to said processor regardless of whether said next one is in the first buffer or the second buffer.
Claim 23
Dependent Claim 19 words
A device according to claim 18 wherein said first data items of said first data type are cache invalidates.
Claim 24
Dependent Claim 19 words
A device according to claim 19 wherein said second data items of second data type are read data returns.

References Cited (Backward Citations)

US4543626A Cited
US4600986A Cited
US4674032A Cited
US4949301A Cited
US5133062A Cited
US4855904A Cited
US4995401A Cited
US5101486A Cited
US5058006A Cited
US5023828A Cited
US5109495A Cited
US5019965A Cited
US5107457A Cited

USPTO Annuity & Maintenance Windows

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag