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

Multilevel instruction cache

Assignee: Adelante Technologies BV
•
Filing: 1994-04-08
•
Granted: 1995-12-05
•
Expires: 2014-04-08
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache memory for use between a processing unit and a main memory includes a prefetch buffer, a use buffer, and a head buffer. The prefetched buffer is a FIFO or LRU register which prefetches instructions from contiguous memory locations after the address specified by the program counter. The head buffer is a FIFO or LRU register which is utilized to store instructions from the tops of the program blocks which are accessed from main memory following recent cache misses. The use buffer is a relatively large, inexpensive buffer, preferably a directly mapped buffer, which stores recent hits from the prefetched buffer as well as selected instructions from main memory following cache misses.

Inventors

  • 👤 Chi-Hung Chi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 19:53
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0893; G06F12/0897; G06F12/0862; G06F12/0888; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3802; G06F9/3808; G06F9/381; G06F9/3814; G06F9/3824; G06F9/383; G06F2212/00; G06F2212/60; G06F2212/6022; G06F2212/6028

Claims Analysis

Total Claims: 34
Claim 1
Independent Claim 247 words
A cache memory system for implementing the transfer of instruction codes from a main memory to a processing unit, said processing unit including a program counter the contents of which specify an address in the main memory which contains a next instruction code to be executed by said processing unit, comprising: prefetch buffer means connected to prefetch and store instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; a head buffer; a use buffer; and instruction transfer control means responsive to the contents of the program counter, the prefetch buffer means, the head buffer, and the use buffer, which function so that: a) if an instruction code specified by the program counter is in the prefetch buffer, said code is transmitted to the processing unit and is also stored in use buffer, b) if the instruction code specified by the program counter is in the head buffer or the use buffer, said code is transmitted to the processing unit; or c) if the instruction code specified by the program counter is not in any of the prefetch buffer means, the head buffer, or the use buffer, said code is fetched from the main memory, transmitted to the processing unit and also 1) stored in the head buffer if the contents of the program counter satisfy a predetermined test or 2) stored in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 2
Dependent Claim 247 words
A cache memory system for implementing the transfer of instruction codes from a main memory to a processing unit, said processing unit including a program counter the contents of which specify an address in the main memory which contains a next instruction code to be executed by said processing unit, comprising: prefetch buffer means connected to prefetch and store instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; a head buffer; a use buffer; and instruction transfer control means responsive to the contents of the program counter, the prefetch buffer means, the head buffer, and the use buffer, which function so that: a) if an instruction code specified by the program counter is in the prefetch buffer, said code is transmitted to the processing unit and is also stored in use buffer, b) if the instruction code specified by the program counter is in the head buffer or the use buffer, said code is transmitted to the processing unit; or c) if the instruction code specified by the program counter is not in any of the prefetch buffer means, the head buffer, or the use buffer, said code is fetched from the main memory, transmitted to the processing unit and also 1) stored in the head buffer if the contents of the program counter satisfy a predetermined test or 2) stored in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 3
Dependent Claim 35 words
The system of claim 1 wherein the instruction transfer control means further function to remove the code specified by the program counter from the prefetch buffer after said code is stored in the use buffer.
Claim 4
Dependent Claim 28 words
The system of claim 1 or 2 wherein the instruction transfer control means are responsive to an actual memory address specified by the contents of the program counter.
Claim 5
Dependent Claim 39 words
The system of claim 1 or 2 wherein the predetermined test is met if the memory address specified by the contents of the program counter is non-sequential with the address of the instruction last executed by the processing unit.
Claim 6
Dependent Claim 51 words
The system of claim 4 wherein the predetermined test is met if the memory address specified by the contents of the program counter is absolutely displaced from the address of the instruction last executed by the processing unit by an amount which is greater than the size of the use buffer.
Claim 7
Dependent Claim 51 words
The system of claim 4 wherein the predetermined test is met if the memory address specified by the contents of the program counter is negatively displaced from the address of the instruction last executed by the processing unit by an amount which is greater than the size of the use buffer.
Claim 8
Dependent Claim 23 words
The system of claim 1 or 2 wherein the prefetch buffer means continuously prefetches instruction codes from sequential addresses in the main memory.
Claim 9
Dependent Claim 56 words
The system of claim 1 or 2 further comprising prefetch control means connected to the prefetch buffer means, the head buffer and the use buffer which inhibit prefetching of instruction codes from main memory addresses if a requested instruction code is already in any of the prefetch buffer means, the head buffer or the use buffer.
Claim 10
Dependent Claim 18 words
The system of claim 1 or 2 wherein the prefetch buffer means is organized as a first-in-first-out buffer.
Claim 11
Dependent Claim 17 words
The system of claim 1 or 2 wherein the prefetch buffer is organized as a least-recently-used buffer.
Claim 12
Dependent Claim 17 words
The system of claim 1 or 2 wherein the head buffer is organized as a first-in-first-out buffer.
Claim 13
Dependent Claim 17 words
The system of claim 1 or 2 wherein the head buffer is organized as a least-recently-used buffer.
Claim 14
Dependent Claim 18 words
The system of claim 1 or 2 wherein the use buffer is organized as a direct-mapped cache buffer.
Claim 15
Dependent Claim 18 words
The system of claim 1 or 2 wherein the use buffer is organized as a associative cache buffer.
Claim 16
Dependent Claim 22 words
The system of claim 1 or 2 wherein the use buffer is larger than the prefetch buffer and than the head buffer.
Claim 17
Dependent Claim 36 words
The system of claim 1 or 2 further comprising cache freezing means which controllably inhibit data transfer into the use buffer and the head buffer in response to predefined instruction codes processed by the processing unit.
Claim 18
Dependent Claim 79 words
The system of claim 15 in combination with instruction compiler means which generate instruction code loops as: first a first block of sequential instructions which specify a first iteration of a loop, then a freeze instruction code which inhibits transfer into the use buffer and the head buffer, then a second block of instructions which implement further iterations of the loop, and then an unfreeze instruction code which permits data transfer into the use buffer and the head buffer.
Claim 19
Independent Claim 228 words
A method for operating a computer for implementing the transfer of instruction codes from a main memory to a processing unit, said processing unit including a program counter the contents of which specify an address in the main memory which contains a next instruction code to be executed by said processing unit, comprising: providing a cache with a prefetch buffer, a head buffer and a use buffer; prefetching and storing in the prefetch buffer, instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; if an instruction code specified by the program counter is in the prefetch buffer, transmitting said code to the processing unit and also storing said code in the use buffer, if the instruction code specified by the program counter is in the head buffer or the use buffer, transmitting said code to the processing unit; if the instruction code specified by the program counter is not in any of the prefetch buffer, the head buffer, and the use buffer, fetching said code from the main memory, transmitting said code to the processing unit and also 1) storing said code in the head buffer if the contents of the program counter satisfy a predetermined test or 2) storing said code in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 20
Independent Claim 228 words
A method for operating a computer for implementing the transfer of instruction codes from a main memory to a processing unit, said processing unit including a program counter the contents of which specify an address in the main memory which contains a next instruction code to be executed by said processing unit, comprising: providing a cache with a prefetch buffer, a head buffer and a use buffer; prefetching and storing in the prefetch buffer, instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; if an instruction code specified by the program counter is in the prefetch buffer, transmitting said code to the processing unit and also storing said code in the use buffer, if the instruction code specified by the program counter is in the head buffer or the use buffer, transmitting said code to the processing unit; if the instruction code specified by the program counter is not in any of the prefetch buffer, the head buffer, and the use buffer, fetching said code from the main memory, transmitting said code to the processing unit and also 1) storing said code in the head buffer if the contents of the program counter satisfy a predetermined test or 2) storing said code in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 21
Dependent Claim 42 words
The method of claim 18 wherein, if the instruction code specified by the program counter is in the prefetch buffer the method further comprises the step of removing said code from the prefetch buffer after it is stored in the use buffer.
Claim 22
Dependent Claim 39 words
The method of claim 18 or 19 wherein the predetermined test is met if the memory address specified by the contents of the program counter is non-sequential with the address of the instruction last executed by the processing unit.
Claim 23
Dependent Claim 52 words
The method of claim 18 or 19 wherein the predetermined test is met if the memory address specified by the contents of the program counter is displaced from the address of the instruction last executed by the processing unit by an amount which is greater than the size of the use buffer.
Claim 24
Dependent Claim 51 words
The method of claim 21 wherein the predetermined test is met if the memory address specified by the contents of the program counter is negatively displaced from the address of the instruction last executed by the processing unit by an amount which is greater than the size of the use buffer.
Claim 25
Dependent Claim 24 words
The method of claim 18 or 19 wherein the step of prefetching comprises continuously prefetching instruction codes from sequential addresses in the main memory.
Claim 26
Dependent Claim 42 words
The method of claim 18 or 19 further comprising the step of inhibiting prefetching of instruction codes from main memory addresses if a requested instruction code is already in any of the prefetch buffer means, the head buffer or the use buffer.
Claim 27
Dependent Claim 24 words
The method of claim 18 or 19 wherein prefetching includes the step of replacing the contents of the prefetch buffer on a first-in-first-out basis.
Claim 28
Dependent Claim 28 words
The system of claim 18 or 19 wherein the step of storing code in the head buffer comprises replacing data in the head buffer on a first-in,-.first-out basis.
Claim 29
Dependent Claim 35 words
The method of claim 18 or 19 further comprising the step of controllably inhibiting data transfer into the use buffer and the head buffer in response to predefined instruction codes processed by the processing unit.
Claim 30
Dependent Claim 28 words
The method of claim 18 or 19 wherein the step of storing code in the head buffer comprises replacing data in the head buffer on a least-recently-used basis.
Claim 31
Dependent Claim 26 words
The method of claim 18 wherein the step of replacing code in the prefetch buffer comprises replacing code in the prefetch buffer on a least-recently-used basis.
Claim 32
Dependent Claim 230 words
A microprocessor integrated circuit including a cache memory system for implementing the transfer of instruction codes from a main memory which contains a next instruction code to be executed the processing unit, comprising: prefetch buffer means connected to prefetch and store instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; a head buffer; a use buffer; and instruction transfer control means responsive to the contents of the program counter, the prefetch buffer means, the head buffer and the user buffer, which function so that: a) if an instruction code specified by the program counter is in the prefetch buffer, the code is transmitted to the processing unit and is also stored in the use buffer, b) if the instruction code specified by the program counter is in the head buffer or the use buffer, the code is transmitted to the processing unit; or c) if the instruction code specified by the program counter is not in any of the prefetch buffer means, the head buffer or the use buffer, the code is fetched from the main memory, transmitted to the processing unit and also 1) stored in the head buffer if the contents of the program counter satisfy a predetermined test or 2) stored in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 33
Dependent Claim 230 words
A microprocessor integrated circuit including a cache memory system for implementing the transfer of instruction codes from a main memory which contains a next instruction code to be executed the processing unit, comprising: prefetch buffer means connected to prefetch and store instruction codes from addresses in the main memory which sequentially follow the addresses contained in the program counter; a head buffer; a use buffer; and instruction transfer control means responsive to the contents of the program counter, the prefetch buffer means, the head buffer and the user buffer, which function so that: a) if an instruction code specified by the program counter is in the prefetch buffer, the code is transmitted to the processing unit and is also stored in the use buffer, b) if the instruction code specified by the program counter is in the head buffer or the use buffer, the code is transmitted to the processing unit; or c) if the instruction code specified by the program counter is not in any of the prefetch buffer means, the head buffer or the use buffer, the code is fetched from the main memory, transmitted to the processing unit and also 1) stored in the head buffer if the contents of the program counter satisfy a predetermined test or 2) stored in the use buffer if the contents of the program counter do not meet the predetermined test.
Claim 34
Dependent Claim 37 words
The microprocessor integrated circuit of claim 30, wherein the instruction transfer control means further function to remove the code specified by the program counter from the prefetch buffer after the code is stored in the use buffer.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1998-12-04 1999-06-05 1999-12-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2002-12-04 2003-06-05 2003-12-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2006-12-04 2007-06-05 2007-12-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag