Patent US2624735A successfully refreshed from Google Patents.
Patent US5564034A successfully refreshed from Google Patents.
US5564034A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Cache memory with a write buffer indicating way selection
Assignee: Panasonic Holdings Corp
•
Filing: 1993-09-22
•
Granted: 1996-10-08
•
Expires: 2013-09-22
Abstract
Abstract The present invention discloses a 2-way set-associative cache memory incorporating thereinto a write buffer. Tag entries corresponding to data entries within each bank are added valid bits and write reserve bits. The write reserve bit is set when a write request occurs and is reset when the requested write operation is completed. When a cache miss occurs, a replacement controller selects one of two data entries as a candidate for replacement (i.e., a data entry to which a corresponding write reserve bit is not set).
Inventors
- 👤 Jiro Miyake
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-10 02:31
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0844; G06F12/0855; G06F12/0864
Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
387 words
A set-associative cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of banks, each including: a plurality of data entries, each for storing data; a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; and a plurality of write reserve bits, each corresponding to one of said plurality of data entries; means for setting, when a tag part of a write address provided in association with a write access request and a tag read out from one tag entry selected according to the index part of the write address from said plurality of tag entries are in conformity with each other in one of said plurality of banks, one write reserve bit selected according to the index part of the write address from said plurality of write reserve bits in the one bank, and for resetting the thus selected write reserve bit when the write access request is fulfilled; means for setting, when the tag part of the first write address provided in association with the write access request and the tag read out from the one tag entry selected according to the index part of the write address from said plurality of tag entries are not in conformity with each other in any of said plural banks, one write reserve bit selected according to the index part of the write address from said plural write reserve bits in one of said plural banks which is selected as a bank to be replaced for the write access request, and for resetting the thus selected write reserve bit when the write access request is fulfilled; and means for selecting, when a tag part of an address provided in association with a different access request and a tag read out from one tag entry selected according to an index part of the provided address from said plurality of tag entries are not in conformity with each other in any of said plurality of banks, one bank in which one write reserve bit read out according to the index part of the provided address from said plurality of write reserve bits is not set, as a bank to be replaced for the different access request.
Claim 2
Dependent Claim
387 words
A set-associative cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of banks, each including: a plurality of data entries, each for storing data; a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; and a plurality of write reserve bits, each corresponding to one of said plurality of data entries; means for setting, when a tag part of a write address provided in association with a write access request and a tag read out from one tag entry selected according to the index part of the write address from said plurality of tag entries are in conformity with each other in one of said plurality of banks, one write reserve bit selected according to the index part of the write address from said plurality of write reserve bits in the one bank, and for resetting the thus selected write reserve bit when the write access request is fulfilled; means for setting, when the tag part of the first write address provided in association with the write access request and the tag read out from the one tag entry selected according to the index part of the write address from said plurality of tag entries are not in conformity with each other in any of said plural banks, one write reserve bit selected according to the index part of the write address from said plural write reserve bits in one of said plural banks which is selected as a bank to be replaced for the write access request, and for resetting the thus selected write reserve bit when the write access request is fulfilled; and means for selecting, when a tag part of an address provided in association with a different access request and a tag read out from one tag entry selected according to an index part of the provided address from said plurality of tag entries are not in conformity with each other in any of said plurality of banks, one bank in which one write reserve bit read out according to the index part of the provided address from said plurality of write reserve bits is not set, as a bank to be replaced for the different access request.
Claim 3
Dependent Claim
40 words
The cache memory of claim 1, wherein each of said plurality of banks further comprises, a plurality of valid bits, each indicative of whether data stored in a corresponding data entry out of said plurality of data entries is valid.
Claim 4
Dependent Claim
34 words
The cache memory of claim 2, wherein said plurality of write reserve bits are arranged within a memory array which is common to said plurality of tag entries and said plurality of valid bits.
Claim 5
Dependent Claim
34 words
The cache memory of claim 2, wherein said plurality of write reserve bits are arranged within a memory array other than that of said plurality of tag entries and said plurality of valid bits.
Claim 6
Dependent Claim
243 words
A set-associative cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of banks, each including: a plurality of data entries, each for storing data; and a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; a write buffer for holding an identifier signal indicative of one bank out of said plurality of banks into which data is to be written in response to a first write access request, an index part of a first write address provided in association with the first write access request, and write data provided in association with the first write access request; and means for selecting one bank from said plurality of banks using said identifier signal held in said write buffer, for selecting one data entry from said plurality of data entries in the thus selected bank using the index part held in said write buffer and for writing the write data held in said write buffer into the thus selected data entry, during the time when the conformity is checked between a tag part of a second write address provided in association with a second write access request and a tag read out from one tag entry selected according to an index part of the second write address from said plurality of tag entries in any of said plurality of banks.
Claim 7
Dependent Claim
243 words
A set-associative cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of banks, each including: a plurality of data entries, each for storing data; and a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; a write buffer for holding an identifier signal indicative of one bank out of said plurality of banks into which data is to be written in response to a first write access request, an index part of a first write address provided in association with the first write access request, and write data provided in association with the first write access request; and means for selecting one bank from said plurality of banks using said identifier signal held in said write buffer, for selecting one data entry from said plurality of data entries in the thus selected bank using the index part held in said write buffer and for writing the write data held in said write buffer into the thus selected data entry, during the time when the conformity is checked between a tag part of a second write address provided in association with a second write access request and a tag read out from one tag entry selected according to an index part of the second write address from said plurality of tag entries in any of said plurality of banks.
Claim 8
Dependent Claim
40 words
The cache memory of claim 5, wherein each of said plurality of banks further includes, a plurality of valid bits, each indicative of whether data stored in a corresponding data entry out of said plurality of data entries is valid.
Claim 9
Dependent Claim
73 words
The cache memory of claim 5, further comprising: means for supplying an index part of a provided address to each of said plurality of tag entries in said plurality of banks; and means for selecting one of the index parts of the provided address and the index part held In said write buffer to supply the thus selected index part to each of said plurality of data entries in said plurality of banks.
Claim 10
Dependent Claim
362 words
The cache memory of claim 5, wherein each of said plurality of banks further includes, a plurality of write reserve bits, each corresponding to one of said plurality of data entries, and wherein said cache memory further comprises: means for setting, when a tag part of the first write address provided in association with the first write access request and a tag read out from one tag entry selected according to the index part of the first write address from said plurality of tag entries are in conformity with each other in one of said plurality of banks, one write reserve bit selected according to the index part of the first write address from said plurality of write reserve bits in the one bank, and for resetting the thus selected write reserve bit when the first write access request is fulfilled; means for setting, when the tag part of the first write address provided in association with the first write access request and the tag read out from the one tag entry selected according to the index part of the first write address from said plurality of tag entries are not in conformity with each other in any of said plurality of banks, one write reserve bit selected according to the index part of the first write address from said plurality of write reserve bits in one of said plurality of banks which is selected as a bank to be replaced for the first write access request, and for resetting the thus selected write reserve bit when the first write access request is fulfilled; and means for selecting, when a tag part of an address provided in association with a different access request and a tag read out from one tag entry selected according to an index part of the provided address from said plurality of tag entries are not in conformity with each other in any of said plurality of banks, one bank in which one write reserve bit read out according to the index part of the provided address from said plurality of write reserve bits is not set, as a bank to be replaced for the different access request.
Claim 11
Dependent Claim
173 words
The cache memory of claim 5, further comprising: means for setting, when a tag part of the first write address provided in association with the first write access request and a tag read out from one tag entry selected according to the index part of the first write address from said plurality of tag entries are in conformity with each other in one of said plurality of banks, a signal for specifying the one bank as the identifier signal into said write buffer; and means for setting, when the tag part of the first write address provided in association with the first write access request and the tag read out from the one tag entry selected according to the index part of the first write address from said plurality of tag entries are not in conformity with each other in any of the plurality of banks, a signal for specifying one bank selected as a bank to be replaced for the first write access request as the identifier signal into said write buffer.
Claim 12
Dependent Claim
117 words
The cache memory of claim 9, further comprising: means for keeping, when an index part of a read address provided in association with a read access request and the index part held in said write buffer are in conformity with each other and a signal for specifying a bank, in which a tag part of the read address and a tag read out from one tag entry selected according to the index part of the read address from said plurality of tag entries are in conformity with each other, and the identifier signal held in said write buffer are in conformity with each other, the read access request waiting until the first write access request is fulfilled.
Claim 13
Dependent Claim
68 words
The cache memory of claim 9, further comprising: means for selecting, when an index part of an address provided in association with a different access request and the index part held in said write buffer are in conformity with each other, one bank different from the bank indicated by the identifier signal held in said write buffer as a bank to be replaced for the different access request.
Claim 14
Dependent Claim
293 words
A cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of data entries, each for storing data; a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; a plurality of write reserve bits, each corresponding to one of said plurality of data entries: means for writing, when a tag part of a write address provided in association with a write access request and a tag read out from one tag entry selected according to an index part of the write address from said plural tag entries are in conformity with each other, the tag part of the write address into the tag entry selected according to the index part of the write address; means for setting one write reserve bit selected according to the index part of the write address provided in association with the write access request from said plurality of write reserve bits, and for resetting the thus selected write reserve bit when the write request is fulfilled; a write buffer for holding write data provided in association with the write access request; and means for supplying, when a tag part of a read address provided in association with a read access request and a tag read out from one tag entry selected according to an index part of the read address from said plurality of tag entries are not in conformity with each other and one write reserve bit read out according to the index part of the read address from said plurality of write reserve bits is set, the write data held in said write buffer as responsive data for the read access request.
Claim 15
Dependent Claim
293 words
A cache memory for preferentially dealing with access requests using addresses having a tag part and an index part, comprising: a plurality of data entries, each for storing data; a plurality of tag entries, each for storing a tag corresponding to a single data entry out of said plurality of data entries; a plurality of write reserve bits, each corresponding to one of said plurality of data entries: means for writing, when a tag part of a write address provided in association with a write access request and a tag read out from one tag entry selected according to an index part of the write address from said plural tag entries are in conformity with each other, the tag part of the write address into the tag entry selected according to the index part of the write address; means for setting one write reserve bit selected according to the index part of the write address provided in association with the write access request from said plurality of write reserve bits, and for resetting the thus selected write reserve bit when the write request is fulfilled; a write buffer for holding write data provided in association with the write access request; and means for supplying, when a tag part of a read address provided in association with a read access request and a tag read out from one tag entry selected according to an index part of the read address from said plurality of tag entries are not in conformity with each other and one write reserve bit read out according to the index part of the read address from said plurality of write reserve bits is set, the write data held in said write buffer as responsive data for the read access request.
Claim 16
Dependent Claim
33 words
The cache memory of claim 12, further comprising: a plurality of valid bits, each indicative of whether data stored in a corresponding data entry out of said plurality of data entries is valid.
Claim 17
Dependent Claim
70 words
The cache memory of claim 12, wherein said write buffer further has a function of holding the index part of the write address provided in association with the write access request, and wherein said cache memory further comprises: means for writing the write data held in said write buffer into one data entry selected according to the index part held in said write buffer from said plurality of data entries.
Claim 18
Dependent Claim
22 words
The cache memory of claim 12, wherein said write buffer comprises a plurality of write request entries each for holding write data.
Claim 19
Dependent Claim
27 words
The cache memory of claim 15, wherein each of said plurality of write reserve bits is set to specify one of said plurality of write request entries.
References Cited (Backward Citations)
JPH0266652A
Cited
US5155824A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1999-10-08 | 2000-04-08 | 2000-10-08 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2003-10-08 | 2004-04-08 | 2004-10-08 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2007-10-08 | 2008-04-08 | 2008-10-08 | $7700.00 | Window Closed / Lapsed |