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
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.
References Cited (Backward Citations)
US4521850A
Cited
US4503501A
Cited
US4430712A
Cited
EP0118828A2
Cited
US4701844A
Cited
US4807110A
Cited
US4937738A
Cited
US4691277A
Cited
US4783736A
Cited
US4881170A
Cited
US4933837A
Cited
US4980823A
Cited
US4860197A
Cited
US4943908A
Cited
US4876642A
Cited
US4905141A
Cited
US5093778A
Cited
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 |