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

Cache memory system having secondary cache integrated with primary cache for use with VLSI circuits

Assignee: Hewlett Packard Development Co LP
•
Filing: 1995-10-23
•
Granted: 1997-07-15
•
Expires: 2015-10-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A cache memory system with a secondary cache integrated with a direct mapped primary cache in a single structure preferably constructed on a VLSI chip. The secondary cache uses the same output data bitlines, sense amplifiers, and bus drivers as the direct mapped cache. In a first machine cycle, input address tags are simultaneously compared to tag bits in the primary cache and the secondary cache. If the comparison results in a miss in the primary cache and a hit in the secondary cache, the secondary cache data is fed to the microprocessor in the next machine cycle, precluding the need for a main memory access. Thus, allowing data to be read directly from the secondary cache without using an extra machine cycle to load it first into the direct cache. The secondary cache comprises a miss cache which is loaded from main memory with data missing from the primary cache in the first machine cycle. Alternatively, the secondary cache comprises a victim cache which is loaded with a line of the primary cache which is replaced after loading missed data from main memory.

Inventors

  • 👤 Rajendra Kumar
  • 👤 Paul G. Emerson

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 17:16
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0893; G06F12/0897; G06F12/0862

Claims Analysis

Total Claims: 28
Claim 1
Independent Claim 214 words
A multi-level cache memory system, comprising: bus interface logic; bitlines connected to the bus interface logic; an array of substantially identical memory cells arranged in lines and columns, the array of memory cells being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines; a direct-mapped primary cache comprising the primary store, primary comparing means for comparing an address input to the primary store with address data stored in the primary store, and means for generating a primary cache hit signal in response to a match and otherwise for generating a primary cache miss signal; and a fully-associative secondary cache comprising the secondary store, secondary comparing means for comparing an address input to the secondary store with address data stored in the secondary store simultaneously with the primary comparing means, and means for generating a secondary cache hit signal in response to a match and otherwise for generating a secondary cache miss signal.
Claim 2
Dependent Claim 214 words
A multi-level cache memory system, comprising: bus interface logic; bitlines connected to the bus interface logic; an array of substantially identical memory cells arranged in lines and columns, the array of memory cells being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines; a direct-mapped primary cache comprising the primary store, primary comparing means for comparing an address input to the primary store with address data stored in the primary store, and means for generating a primary cache hit signal in response to a match and otherwise for generating a primary cache miss signal; and a fully-associative secondary cache comprising the secondary store, secondary comparing means for comparing an address input to the secondary store with address data stored in the secondary store simultaneously with the primary comparing means, and means for generating a secondary cache hit signal in response to a match and otherwise for generating a secondary cache miss signal.
Claim 3
Dependent Claim 75 words
The memory system of claim 1, wherein: the memory cells of the primary store comprise static random access memory (SRAM) cells; the primary comparing means comprises address decoding means for selecting one of the SRAM cells in response to an address input; and the means for generating the primary cache hit signal is for generating the primary cache hit signal in response to a match between the address input and one of the storage cells.
Claim 4
Dependent Claim 71 words
The memory system of claim 2, coupled to a microprocessor for executing instructions in a succession of discrete processing cycles, the system further comprising: means for simultaneously activating the primary comparing means and the secondary comparing means in a first processing cycle of the microprocessor; and hit reading means, operative in a second processing cycle, for selectively reading data from the secondary cache store in response to the cache hit signals.
Claim 5
Dependent Claim 18 words
The memory system of claim 3 additionally comprising means for interfacing the bitlines to an external data bus.
Claim 6
Dependent Claim 18 words
The memory system of claim 3, wherein the processing cycles comprise two single consecutive cycles of the microprocessor.
Claim 7
Dependent Claim 69 words
The memory system of claim 1, further comprising: at least one instruction buffer integrally coupled to the primary and secondary stores for simultaneous access thereto; a write instruction bus integrally coupled to the primary gore for loading the primary store with instructions; and a read instruction bus integrally coupled to the instruction buffer for transferring instructions from the primary and secondary stores to an execution unit in a microprocessor.
Claim 8
Dependent Claim 54 words
The memory system of claim 6, wherein: the instruction buffer comprises a general instruction buffer and a branch target buffer; and the memory system additionally comprises means for alternately loading instructions from the primary cache to either one of the general instruction buffer and the branch target buffer in response to a branch instruction.
Claim 9
Dependent Claim 50 words
The memory system of claim 1, further comprising: a main memory coupled to the primary cache; and means responsive to the primary cache miss signal for loading miss data from the main memory to both a storage cell of the secondary cache and a storage cell of the primary cache.
Claim 10
Dependent Claim 37 words
The memory system of claim 1, further comprising means, responsive to the primary cache miss signal, for selecting a victim line from the primary store, for transferring the contents of the victim line to the secondary store.
Claim 11
Dependent Claim 23 words
The memory system of claim 1, additionally comprising a common set of write buffers shared by both the primary store and secondary store.
Claim 12
Dependent Claim 35 words
The memory system of claim 10, additionally comprising a common set of sense amplifiers connected to the bitlines, the common set of sense amplifiers being shared by both the primary store and the secondary store.
Claim 13
Dependent Claim 73 words
The memory system of claim 11, wherein: the memory system further comprises an instruction buffer including branch target cells, the branch target cells being integral with both the primary cache and the secondary cache, the branch target cells sharing a second set of bitlines; and a write data line produced by the corresponding one of the sense amplifiers is coupled to one of the bitlines by one of the second set of bitlines.
Claim 14
Dependent Claim 318 words
In a multilevel cache memory system that includes plural instruction buffers, bitlines connected to the instruction buffers, an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines, a direct-mapped primary cache including the primary store, and primary comparing means for comparing an address input to the primary cache with address data stored in the primary cache, a fully-associative secondary cache including the secondary store and secondary comparing means for comparing the address input to the secondary cache with address data stored in the secondary cache, a write instruction bus coupled to the primary cache for loading the primary cache with instructions, and a read instruction bus coupled to the instruction buffers for transferring instructions from the primary cache to an execution unit in a microprocessor, a data processing method comprising steps of: (a) providing an address input to the primary comparing means and the secondary comparing means; (b) using the primary comparing means, testing whether the address input matches the address data stored in the primary cache, and generating a primary cache hit signal in response to a match; (c) using the secondary comparing means, concurrently with step (b), testing whether the address input matches the address data stored in the secondary cache, and generating a secondary cache hit signal in response to a match; and (d) selectively loading instructions to the read instruction bus from one of the primary cache and the secondary cache in response to steps (b) and (c).
Claim 15
Dependent Claim 318 words
In a multilevel cache memory system that includes plural instruction buffers, bitlines connected to the instruction buffers, an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines, a direct-mapped primary cache including the primary store, and primary comparing means for comparing an address input to the primary cache with address data stored in the primary cache, a fully-associative secondary cache including the secondary store and secondary comparing means for comparing the address input to the secondary cache with address data stored in the secondary cache, a write instruction bus coupled to the primary cache for loading the primary cache with instructions, and a read instruction bus coupled to the instruction buffers for transferring instructions from the primary cache to an execution unit in a microprocessor, a data processing method comprising steps of: (a) providing an address input to the primary comparing means and the secondary comparing means; (b) using the primary comparing means, testing whether the address input matches the address data stored in the primary cache, and generating a primary cache hit signal in response to a match; (c) using the secondary comparing means, concurrently with step (b), testing whether the address input matches the address data stored in the secondary cache, and generating a secondary cache hit signal in response to a match; and (d) selectively loading instructions to the read instruction bus from one of the primary cache and the secondary cache in response to steps (b) and (c).
Claim 16
Dependent Claim 43 words
The method of claim 13, further comprising steps of: writing at least one new instruction to the secondary cache; and loading the new instruction from the secondary cache to the primary cache in response to the primary cache hit signal indicating a miss.
Claim 17
Dependent Claim 31 words
The method of claim 14, further comprising a step of loading the new instruction to one of the instruction buffers in response to the primary cache hit signal indicating a hit.
Claim 18
Dependent Claim 28 words
The method of claim 13, further comprising a step of loading instructions to the read instruction bus by alternately reading the instruction buffers upon loading a branch instruction.
Claim 19
Dependent Claim 220 words
A multi-level cache memory system, comprising: an instruction buffer; bitlines connected to the instruction buffers; an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines; a primary cache comprising the primary store, the primary store storing address data, primary comparing means for comparing an address input to the primary cache, and means for generating a primary cache hit signal in response to a match in the primary cache and for otherwise generating a primary cache miss signal; a secondary cache comprising the secondary store, the secondary store storing address data, secondary comparing means, concurrently with said primary comparing means for comparing the address input to the secondary cache, and means for generating a secondary cache hit signal in response to a match in the secondary cache; and a branch target buffer, integral with the secondary cache, for storing target instructions after a branch instruction.
Claim 20
Dependent Claim 220 words
A multi-level cache memory system, comprising: an instruction buffer; bitlines connected to the instruction buffers; an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines; a primary cache comprising the primary store, the primary store storing address data, primary comparing means for comparing an address input to the primary cache, and means for generating a primary cache hit signal in response to a match in the primary cache and for otherwise generating a primary cache miss signal; a secondary cache comprising the secondary store, the secondary store storing address data, secondary comparing means, concurrently with said primary comparing means for comparing the address input to the secondary cache, and means for generating a secondary cache hit signal in response to a match in the secondary cache; and a branch target buffer, integral with the secondary cache, for storing target instructions after a branch instruction.
Claim 21
Dependent Claim 21 words
The memory system of claim 17, wherein the primary store and the secondary store share a common set of sense amplifiers.
Claim 22
Dependent Claim 33 words
The memory system of claim 18, wherein the secondary comparing means compares the address input to the secondary cache simultaneously with the primary comparing means comparing the address input to the primary cache.
Claim 23
Independent Claim 226 words
A method for operating a multi-level cache memory system that includes an instruction buffer, bitlines connected to the instruction buffer, an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines, a primary cache including the primary store, and a secondary cache including the secondary store, the method comprising steps of: (a) providing an address input to the primary cache and the secondary cache; (b) determining whether the address input matches a line of the primary cache and generating a primary cache hit signal in response to a match; (c) determining, concurrently with step (b), whether the address input matches a line of the secondary cache and generating a secondary cache hit signal in response to a match; and (d) selectively reading output data on the bitlines from one of the primary cache and the secondary cache in response to the primary cache hit signal and the secondary cache hit signal.
Claim 24
Independent Claim 226 words
A method for operating a multi-level cache memory system that includes an instruction buffer, bitlines connected to the instruction buffer, an array of substantially identical memory cells arranged in lines and columns, the array being divided into a primary store and a secondary store, the primary store including the memory cells in first ones of the lines, the secondary store including the memory cells in second ones of the lines, the memory cells in each one of the columns in the primary store and the memory cells in the one of the columns in the secondary store being coupled to a common one of the bitlines, a primary cache including the primary store, and a secondary cache including the secondary store, the method comprising steps of: (a) providing an address input to the primary cache and the secondary cache; (b) determining whether the address input matches a line of the primary cache and generating a primary cache hit signal in response to a match; (c) determining, concurrently with step (b), whether the address input matches a line of the secondary cache and generating a secondary cache hit signal in response to a match; and (d) selectively reading output data on the bitlines from one of the primary cache and the secondary cache in response to the primary cache hit signal and the secondary cache hit signal.
Claim 25
Dependent Claim 70 words
The method of claim 20, wherein: the memory system further comprises a main memory coupled to the primary cache; and the method further comprises steps of: generating a primary cache miss signal if the address input fails to match a line of the primary cache, and loading miss dam from the main memory to both the secondary cache and the primary cache in response to the primary cache miss signal.
Claim 26
Dependent Claim 73 words
The method of claim 20, wherein: the memory system further comprises a main memory coupled to the primary cache; and the method further comprises steps of: generating a primary cache miss signal if the address input fails to match a line of the primary cache, selecting a victim line from the primary store, and transferring the contents of the victim line to the secondary store in response to the primary cache miss signal.
Claim 27
Dependent Claim 82 words
The method of claim 20, wherein: the memory system is coupled to a microprocessor, the microprocessor executing instructions in a succession of discrete processing cycles; steps (b) and (c) are carried out in a first processing cycle of the microprocessor; and step (d) comprises the substep of reading output data from the secondary cache during a second processing cycle of the microprocessor in response to the primary cache hit signal indicating a miss and the secondary cache hit signal indicating a hit.
Claim 28
Dependent Claim 14 words
The method of claim 23, wherein the first and second processing cycles are consecutive.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-07-14 2001-01-13 2001-07-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-07-14 2005-01-13 2005-07-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-07-14 2009-01-13 2009-07-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag