CA1120599A - Paired least recently used block replacement algorithm - Google Patents
Paired least recently used block replacement algorithmInfo
- Publication number
- CA1120599A CA1120599A CA000336224A CA336224A CA1120599A CA 1120599 A CA1120599 A CA 1120599A CA 000336224 A CA000336224 A CA 000336224A CA 336224 A CA336224 A CA 336224A CA 1120599 A CA1120599 A CA 1120599A
- Authority
- CA
- Canada
- Prior art keywords
- age
- block
- bits
- buffer
- degrade
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1666—Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/88—Masking faults in memories by using spares or by reconfiguring with partially good memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
Abstract
PAIRED LEAST RECENTLY USED BLOCK
REPLACEMENT ALGORITHM
ABSTRACT OF THE DISCLOSURE
A set associative cache buffer organized with 2n blocks per set requires only 2n-1 age bits for determining the replacement block within a set. When the cache buffer is addressed and the data sought is not found therein, the age bits determine which block of data in the set should be replaced with new data from the main memory. The block replaced may be either the least recently used block or one of the two least recently used blocks. The replacement logic is such that the buffer may be expanded from two to four blocks per set with minimal impact on the replacement logic.
In addition, provision is made for disabling faulty blocks thus allowing the cache buffer and main memory behind it to be utilized in a degraded mode.
REPLACEMENT ALGORITHM
ABSTRACT OF THE DISCLOSURE
A set associative cache buffer organized with 2n blocks per set requires only 2n-1 age bits for determining the replacement block within a set. When the cache buffer is addressed and the data sought is not found therein, the age bits determine which block of data in the set should be replaced with new data from the main memory. The block replaced may be either the least recently used block or one of the two least recently used blocks. The replacement logic is such that the buffer may be expanded from two to four blocks per set with minimal impact on the replacement logic.
In addition, provision is made for disabling faulty blocks thus allowing the cache buffer and main memory behind it to be utilized in a degraded mode.
Description
( ( L35~
PAIRED LEAST RECENTLY USED BLOCK
REP~ACEMENT ALGORITHM
.
BACKGROUND OF T~E INVENTION
~.
United States Patent No. 3,967,247 to Andersen et al discloses a cache memory or storage interface unit adapted to serve as a high speed buffer between plural requestor units and a relatively low speed main ~` memory in a data processing system. The cache memory provides temporary storage for a limited number of blocks of data stored in the main memory. When a particular address is requested by a reque~tor unit, a check is made to determine i that ~ddress i~ resid~nt in the high speed buffer and, i~ so, it is availab:Le to the requestor unit Eor reading or writing. If the desired adclress is not resident in the cache memoxy, a block of data ln the buffer is selected for replace-ment~ A least recently used ~LRU) algorithm is util-ized to determine block replacement. This algorithm assumes that the block of a set which has been resident in the high speed buffer for the longest period of time without being used is the least likely block of the set to be used next. Thus, two "age" bits are provided for each block of data contained in the high speed buffer and these age bits are updated each time a block is referenced, As disclosed in the aforementioned patent, the high speed buffer is capable of storing 128 sets of :
S~3~
PAIRED LEAST RECENTLY USED BLOCK
REP~ACEMENT ALGORITHM
.
BACKGROUND OF T~E INVENTION
~.
United States Patent No. 3,967,247 to Andersen et al discloses a cache memory or storage interface unit adapted to serve as a high speed buffer between plural requestor units and a relatively low speed main ~` memory in a data processing system. The cache memory provides temporary storage for a limited number of blocks of data stored in the main memory. When a particular address is requested by a reque~tor unit, a check is made to determine i that ~ddress i~ resid~nt in the high speed buffer and, i~ so, it is availab:Le to the requestor unit Eor reading or writing. If the desired adclress is not resident in the cache memoxy, a block of data ln the buffer is selected for replace-ment~ A least recently used ~LRU) algorithm is util-ized to determine block replacement. This algorithm assumes that the block of a set which has been resident in the high speed buffer for the longest period of time without being used is the least likely block of the set to be used next. Thus, two "age" bits are provided for each block of data contained in the high speed buffer and these age bits are updated each time a block is referenced, As disclosed in the aforementioned patent, the high speed buffer is capable of storing 128 sets of :
S~3~
-2-data with four data blocks per set. Thus, 12~ X 4 X 2 = 102~ bi-ts of storage are required merely to store the age bits. In accordance with the prin-ciples of the present invention, only three age bits are required for the four blocks within a set hence only 384 bits of storage are required to store the age bits. This represents a considerable saving of stor-age. Because only three age bits are used, -there is a slight increase (.014~) in the miss rate since re-placement may be made of the least recently used blockor one of the two least recently used blocks.
In the prior art various methods have been utili~ed to overcome the problems raised by faulty blocks of the buffer memory. Most of these methods require either considerable programming or additional hardware. The present invention provides a simple method of disabling faulty blocks of the buffer memory by forcing the age bits related to the faulty block or blocks to indicate a "most recently used" status. This assures that the faulty block of the buEfer or data memory will never be used.
SU~MARY OF THE INVENTION
An object of the present invention is to provide a set associative memory system for storing sets of blocks of data words and including means for storing a set of age bits for each set of blocks of h data words, there being ~ l bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words.
An object of the present invention is to provide an improved replacement means for use with a set associative memory system having a main memory, a buffer memory, a means for applying a main memory address to the buffer memory, the buffer memory having
In the prior art various methods have been utili~ed to overcome the problems raised by faulty blocks of the buffer memory. Most of these methods require either considerable programming or additional hardware. The present invention provides a simple method of disabling faulty blocks of the buffer memory by forcing the age bits related to the faulty block or blocks to indicate a "most recently used" status. This assures that the faulty block of the buEfer or data memory will never be used.
SU~MARY OF THE INVENTION
An object of the present invention is to provide a set associative memory system for storing sets of blocks of data words and including means for storing a set of age bits for each set of blocks of h data words, there being ~ l bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words.
An object of the present invention is to provide an improved replacement means for use with a set associative memory system having a main memory, a buffer memory, a means for applying a main memory address to the buffer memory, the buffer memory having
3~
means for storing blocks oE data words associatively arranged in sets, means for storing tags representiny portions of the main memory addresses for words cur-rently stored in t~e huffer memory, and means for determining if a word specified by a main memory address applied to the buffer memory is resident therein, the replacement means comprising age buffer means for storing seks of age bits, there being one set oE age bits corresponding to each set of blocks of data ~ ~ 10 words in the buffer ~emory, and ~ bits in each set : of age bits where 2n is the number of blocks in each set of blocks of data words, means for addressing the age buffer means each time the buffer memory is ad-dressed to read from the age buffer means the set of age bits corresponding to the set addressed in the buffer memory, and means responsive to the age buffer means for modifying a set of age bits read there~rom and returning the modified set of age bits to the age buffer means, the modified set of age bits designating the two least recently used blocks in the set corres-ponding to the set of modified age bits.
A further objec-t oE the invention is to provide an improved replacement means as described above fox use in a set associative memory system wherein each set compri.ses ~our blocks of data words and wherein each set of aye bits comprises three bits, a first of said age bits indicating which of two blocks of a pair of said blocks is the least recently used, a second of said age bits indicating which block of a second pair of said blocks is the least recently used of the pair, and a third of said age bits indicating which of said pairs of blocks is the least recently used.
Another object of the present invention is to provide an improved replacement means as described above wherein the logic is such that the system may be easily expanded from two to four blocks per set with ~3 minimal impact on the replacement logic.
Still another ob~ect of the invention is to provide means for storing degrade bits, one for each block in the cache memory, and means for modifying the age bits for a set in accordance with the values of said degrade bits whereby a defective block may be disabled by forcing the age bits of a set to .indicate that the defective block is the most recently used.
In accordance with an aspect of the invention there is provided in a set associative memory system having a main memory, a buffer memory, and means for applying a main memory address to the buffer memory, said buffer memory having means for storing blocks of data words associatively arranged in sets, and means for storing tags representing portions of the main memory addresses for words currently stored in said buffer memory, means for determining if a word specified by a main memory address applied to said buffer memory is resident therein, and replacement control means for replacing a block of data words in said bufEer memory with a block of data words from said main memory when said determining means determines that cl word speci.fied by a main memory address is not resident :in said buffer memory, the :improvement wherei.n said replacement comprises: age buffer means for storing sets of age bits, there bein~ one set oE age biks corresponding to each set of blocks of data words in said buffer memory, and 2 -1 bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words; means for addressing said agé buffer means each time said buffer memory is addressed to read from said age buffer means the set of age bits corresponding to the set addressed in said buffer memory; selector means responsive to said age buffer means for modifying a set of age bits read therefrom and returning said modified set of age bits to said age buffer means, said modified set of age bits designating the least recently used block in the set of
means for storing blocks oE data words associatively arranged in sets, means for storing tags representiny portions of the main memory addresses for words cur-rently stored in t~e huffer memory, and means for determining if a word specified by a main memory address applied to the buffer memory is resident therein, the replacement means comprising age buffer means for storing seks of age bits, there being one set oE age bits corresponding to each set of blocks of data ~ ~ 10 words in the buffer ~emory, and ~ bits in each set : of age bits where 2n is the number of blocks in each set of blocks of data words, means for addressing the age buffer means each time the buffer memory is ad-dressed to read from the age buffer means the set of age bits corresponding to the set addressed in the buffer memory, and means responsive to the age buffer means for modifying a set of age bits read there~rom and returning the modified set of age bits to the age buffer means, the modified set of age bits designating the two least recently used blocks in the set corres-ponding to the set of modified age bits.
A further objec-t oE the invention is to provide an improved replacement means as described above fox use in a set associative memory system wherein each set compri.ses ~our blocks of data words and wherein each set of aye bits comprises three bits, a first of said age bits indicating which of two blocks of a pair of said blocks is the least recently used, a second of said age bits indicating which block of a second pair of said blocks is the least recently used of the pair, and a third of said age bits indicating which of said pairs of blocks is the least recently used.
Another object of the present invention is to provide an improved replacement means as described above wherein the logic is such that the system may be easily expanded from two to four blocks per set with ~3 minimal impact on the replacement logic.
Still another ob~ect of the invention is to provide means for storing degrade bits, one for each block in the cache memory, and means for modifying the age bits for a set in accordance with the values of said degrade bits whereby a defective block may be disabled by forcing the age bits of a set to .indicate that the defective block is the most recently used.
In accordance with an aspect of the invention there is provided in a set associative memory system having a main memory, a buffer memory, and means for applying a main memory address to the buffer memory, said buffer memory having means for storing blocks of data words associatively arranged in sets, and means for storing tags representing portions of the main memory addresses for words currently stored in said buffer memory, means for determining if a word specified by a main memory address applied to said buffer memory is resident therein, and replacement control means for replacing a block of data words in said bufEer memory with a block of data words from said main memory when said determining means determines that cl word speci.fied by a main memory address is not resident :in said buffer memory, the :improvement wherei.n said replacement comprises: age buffer means for storing sets of age bits, there bein~ one set oE age biks corresponding to each set of blocks of data words in said buffer memory, and 2 -1 bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words; means for addressing said agé buffer means each time said buffer memory is addressed to read from said age buffer means the set of age bits corresponding to the set addressed in said buffer memory; selector means responsive to said age buffer means for modifying a set of age bits read therefrom and returning said modified set of age bits to said age buffer means, said modified set of age bits designating the least recently used block in the set of
- 4~ -blocks corresponding to the set of modified age bits; a degrade buffer for storing sets of degrade bits, there being 2n degrade bits in each set thereof; means generating degrade bits identifying blocks o~ invalid data; means for entering said degrade bits into said degrade buffer; means for addressing a set oE said degrade bits in said degrade buffer concurrently with an assoeiated set of said age bits to thereby read said degrade bits out of said degrade buffer; and means for applying said degrade bits read from said degrade buffer to said selector means.
Other objects of the invention will become apparent upon consideration of the accompanying drawings and the following description of a specific preferred embodiment.
BRIEF DESCR~PTION OF THE DRAWINGS
FIGS. lA and lB when arranged as shown in ~IG. lC
comprise a block diagram of a set associative memor~
system in combination with the degrade controls and least recently used replacement means of the present invention.
FIG. 2 is a chart illustrating the updating of age bits and bloek replacement for various match/no mateh conditions.
FIG. 3 is a logic diagram oE the circuit ~or seleeting whieh block is to be replaeed when a miss oeeurs.
FIGS. 4~ and ~B, when arranged as shown in FIG. ~C, eomprise a logic bloek diagram of the age seleetor.
DETAILED DESCRIPTION OF T~IE INVENTION
FIG. lA illustrates in block form a typical high speed buffer or eache memory system essentially as ~, ~ ( ~5~
taught in Andersen et al Patent No. 3,567,247. How-ever, the sizes of the main memory and cache memory are illustrated as being larger. R~ference may be made to the patent of Andersen et al for a complete description of the system, the following summary being for the purpose of setting the backg.round of the present in-vention. The system includes a Cache Memory 10 for storing 512 sets of blocks, there being four blocks per set and four words per block. Data words frorn a processor or a main memory (not shown) may be entered into a Buffer Write Register 12 for writing them into the cache memory. Words may be read out of Cache Memory 10 to the processor or main memory through a Block Selector 14.
For a read access, the central processor : applies a 24 bit word to an Address Register 16 for the purpose of addressing the Cache Memory 10. Bits 2-10 of the address define the set being accessed. These bits are applied to a Set Selector 18 which decodes the set bits and selects one o the 512 sets in the Cache Memory 10~ Bits 1 and 0 define which word of a set is to be accessed. These bits are applied to a Word Selector 20 which decodes the bi.ts to acces~ one of the four words of the selected set. Thus, each time an addre5s is placed in Address Register 16 four data words are read out of the Cache Memory 10 to the Block Selector 14, one word over each of the buses 22a-22d.
A Tag Buffer 24 is provided for storing tags representing the main memory address bits 23-11 of the words currently in the Cache Memory 10. The Tag Buffer j 24 has 512 addresses, there being one address cor~
responding to each of the sets in Cache Memory 10.
Each address in the tag buffer stores four tags, there being one tag for each block of words in a set. A Set I 35 Selector 26 is connected to the Address Reyister 16 for j~ the purpose of receiv.ing bits 10-2 therefrom. Set ~, ., ~
"
..
Selector 26 decodes these bits and selects one o~ the 512 addresses so that four tags are concurrently read out over buses 28a~28d to a Ma-tch Compare circuit 30.
The Match Compare circuit l30 includes four compar-ison circuits (Block A-Block D) each of which receives a tag when the Tag Buffer 24 is read out. Bit positions 23-11 of Address Register 16 are connected to the second set of inputs of each of the block comparison circuits.
If an address is entered into Address Register 16 for the purpose of reading a word from Cache Memory 10, and the word is present in the cache memory, it is read out as follows. The set and word portions of the address act through selectors 18 and 20 to select four words from four blocks (Blocks A-D) in a single set. The word from Block A
is read out over bus 22a to the Block A selector 14 while the words from Blocks B,C and D are read out over the buses 22b, 22c and 22d to the Block B, Block C, and Block D selec-tors, respectively. The set portion of the address also acts through Set Selector 26 to read out the four tags for a selected set, each of these tags being the tag for a parti-cular block within the selected set. These tags are read out over the buses 28a, 28b, 28c and 28d to the Block A, Block B, Block C and Block D comparison circuits 30. The tag portion o~ the address from Addres~ RecJister 16 i9 applied to all of the block comparison circuits and, since it is assumed that the addressed word is present in the memory there will be at least one equality upon comparison.
Depending upon whether the comparison is ~ade on the Block A, Block B, Block C or Block D tag, one of four flip-flops in the Match Compare circuit 30 will be set and a signal will appear on one of the leads 32a-32d. In addition, the signals on leads 32a-32d are applied over bus 33 to the control circuit 40. The control circuit produces the signal L Hit on lead 34 to indicate that the word being sought is present in the cache memory. The match signals on leads 32a-32d are applied through four ORs 36 to the Block A-Block D
selectors 14 to select the block to be read out through the block selectors. For example, if the Block A tag read out of the tag buffer 24 over the bus 28a compares with the tag portion of the address, then a signal on lead 32a passes . ~
' q~
throuyh one of the ORs 36 to enable the Block A selector 14 and thus yate the ~lock A word read from Cache Memory 10, over the bus 22a through ~he Block Selector 14, ana over a bus 38 to a buffer read register (not shown). If the access
Other objects of the invention will become apparent upon consideration of the accompanying drawings and the following description of a specific preferred embodiment.
BRIEF DESCR~PTION OF THE DRAWINGS
FIGS. lA and lB when arranged as shown in ~IG. lC
comprise a block diagram of a set associative memor~
system in combination with the degrade controls and least recently used replacement means of the present invention.
FIG. 2 is a chart illustrating the updating of age bits and bloek replacement for various match/no mateh conditions.
FIG. 3 is a logic diagram oE the circuit ~or seleeting whieh block is to be replaeed when a miss oeeurs.
FIGS. 4~ and ~B, when arranged as shown in FIG. ~C, eomprise a logic bloek diagram of the age seleetor.
DETAILED DESCRIPTION OF T~IE INVENTION
FIG. lA illustrates in block form a typical high speed buffer or eache memory system essentially as ~, ~ ( ~5~
taught in Andersen et al Patent No. 3,567,247. How-ever, the sizes of the main memory and cache memory are illustrated as being larger. R~ference may be made to the patent of Andersen et al for a complete description of the system, the following summary being for the purpose of setting the backg.round of the present in-vention. The system includes a Cache Memory 10 for storing 512 sets of blocks, there being four blocks per set and four words per block. Data words frorn a processor or a main memory (not shown) may be entered into a Buffer Write Register 12 for writing them into the cache memory. Words may be read out of Cache Memory 10 to the processor or main memory through a Block Selector 14.
For a read access, the central processor : applies a 24 bit word to an Address Register 16 for the purpose of addressing the Cache Memory 10. Bits 2-10 of the address define the set being accessed. These bits are applied to a Set Selector 18 which decodes the set bits and selects one o the 512 sets in the Cache Memory 10~ Bits 1 and 0 define which word of a set is to be accessed. These bits are applied to a Word Selector 20 which decodes the bi.ts to acces~ one of the four words of the selected set. Thus, each time an addre5s is placed in Address Register 16 four data words are read out of the Cache Memory 10 to the Block Selector 14, one word over each of the buses 22a-22d.
A Tag Buffer 24 is provided for storing tags representing the main memory address bits 23-11 of the words currently in the Cache Memory 10. The Tag Buffer j 24 has 512 addresses, there being one address cor~
responding to each of the sets in Cache Memory 10.
Each address in the tag buffer stores four tags, there being one tag for each block of words in a set. A Set I 35 Selector 26 is connected to the Address Reyister 16 for j~ the purpose of receiv.ing bits 10-2 therefrom. Set ~, ., ~
"
..
Selector 26 decodes these bits and selects one o~ the 512 addresses so that four tags are concurrently read out over buses 28a~28d to a Ma-tch Compare circuit 30.
The Match Compare circuit l30 includes four compar-ison circuits (Block A-Block D) each of which receives a tag when the Tag Buffer 24 is read out. Bit positions 23-11 of Address Register 16 are connected to the second set of inputs of each of the block comparison circuits.
If an address is entered into Address Register 16 for the purpose of reading a word from Cache Memory 10, and the word is present in the cache memory, it is read out as follows. The set and word portions of the address act through selectors 18 and 20 to select four words from four blocks (Blocks A-D) in a single set. The word from Block A
is read out over bus 22a to the Block A selector 14 while the words from Blocks B,C and D are read out over the buses 22b, 22c and 22d to the Block B, Block C, and Block D selec-tors, respectively. The set portion of the address also acts through Set Selector 26 to read out the four tags for a selected set, each of these tags being the tag for a parti-cular block within the selected set. These tags are read out over the buses 28a, 28b, 28c and 28d to the Block A, Block B, Block C and Block D comparison circuits 30. The tag portion o~ the address from Addres~ RecJister 16 i9 applied to all of the block comparison circuits and, since it is assumed that the addressed word is present in the memory there will be at least one equality upon comparison.
Depending upon whether the comparison is ~ade on the Block A, Block B, Block C or Block D tag, one of four flip-flops in the Match Compare circuit 30 will be set and a signal will appear on one of the leads 32a-32d. In addition, the signals on leads 32a-32d are applied over bus 33 to the control circuit 40. The control circuit produces the signal L Hit on lead 34 to indicate that the word being sought is present in the cache memory. The match signals on leads 32a-32d are applied through four ORs 36 to the Block A-Block D
selectors 14 to select the block to be read out through the block selectors. For example, if the Block A tag read out of the tag buffer 24 over the bus 28a compares with the tag portion of the address, then a signal on lead 32a passes . ~
' q~
throuyh one of the ORs 36 to enable the Block A selector 14 and thus yate the ~lock A word read from Cache Memory 10, over the bus 22a through ~he Block Selector 14, ana over a bus 38 to a buffer read register (not shown). If the access
5 of the cache memory for the purpose of reading a word from the memory, then the word on bus 38 is entered into the bu~fer read xegister.
On the other hand, if the access was for the purpose of writing a word into the Cache Memory 10 then the word, present in Buffer ~rite Register 12, is written in~o the cache memory at the address specified by the set and word portions of the address in Address Register 16. In this case, the outputs of the match compa~e circuits causes the control circuit 40 to produce one of the signals r~rite ; - 15 Block A-D on bus 35, these signals being applied to Cache Memory l~ to determine which block of the selected set is written into.
If a word being accessed is not present in the Cache ~emory 10, than it ls necessary to replace one block ; 20 of four words in the cache memory with a new block of four words from the main memory. The operation of the device is as described above up until the point where the tags are applied to the Block A~Block B Match Compare circui~s 30.
If the desired word is not residen~ in the cachc memory none of the compare circuits will produce a signal on one of t~le leads 32a-32d. Control circuit 40 senqes this condi~
tion and carries o~lt a blo~k replacement routine. In addition, the signal L Hit on lead 34 is driven to the high level to indicate a miss.
The address in Address Register 16 must be saved so on the first step of the replacement rout.ine it is copied into Miss Address Register 42. Next, the block replace select circuit 56 generates one of four signals ~Block A-Block D) on one of four leads in a bus 57. The generated signal represents the block in Cache Memory 10 which should be replaced with a new block of data from main memory, the new block containing the word which was addressed and found not present in the cache memory. In U.S. Patent No.
3,967,247 the generated signal is determined by age bits read from the Tag Buffer 24, there being two age bits stored h~
in the buffer ~or each block oE four words in the cache memory. As subsequently described in de-tail, the select circuit 56 of the present invention produces an ou-tput signal on bus 57 in response to three age bits obtained from an Age Buffer 52 through an Age Register 54. The control circuit 40 senses the absence of a compare signal on any of the leads in bus 33 (thus indicating a miss) and gates the signal on bus 57 out to a lead in a bus 44 as one of the signals Block A Replace-Block D Replace. These signals indicate which of the blocks in Cache Memory 10 is to be replaced. The Block Replace signals on bus 44 are applied to a selector on the input of a Tag Address ; Register 46 (FIG. lA). The Tag Address Register selector is also connec-ted to receive the Block A-Block D tag addresses from the Tag Buffer 24. The control circuit 40 causes the set portion of the address in Address Register 16 to act through set selector 26 to read from the Tag Buffer 24 the tags for the set containing the block being replaced.
Depending upon which of the signals Block Replace A-Block Replace D is present on bus 44, either the Block A, Block B, Block C or Block D tag is gated from Tag Buffer 24 into the Tag Address Registex ,~' 31.~ ~;i;~',S~3'~
g 46. From Tag Address R~glster ~6 the sel~cted tag is transferred over bus 48 to a BufEer Tag Address Reg-isker 50.
Following this operation the con-trol circuit 40 sends a read request to the main memory to initiate the readout of the four-word block designated by the address contained in the Miss Address Register 42. The main memory begins reading out the four words of the address block specified by the address in the Miss Address Register 42, these four words being loaded into a temporary holding register in the main memory. While this operation is taking place the block of words in Cache ~emory 10 that are ~o be replaced may be read from the memory to a temporary holding regis-ter. The control circuit 40 issues a read request to the Cache Memory 10 and on four successive cycles the four words of the block to be replaced are read out -through Block Selectox 14 to a further temporary holding register.
During this interval, one of the Block Replace signals on bus 44 is applied through one of ORs 36 to enable one of the block selectors 14 thus permitting the ~our words of the selected block to pass th~ouyh one o~ khe selectors. Control 40 may then issue a main rnemory write r~quest to cause the memory to ~nter the four words of the block beiny replac~d into the main memory ; as described in the aforementioned patent.
Next, the four words read from the memory and present in the temporary holding register are read into ; the Cache Memory 10 on four successive cycles. The tag and set portions of the address in the Miss Address Register 42 are ~a~s~e~ed through the Buffer Tag Address Reyister 50 to the Address Register 16 so that the set portion of the address may select the proper set. A Write Block signal on the bus 35 selects the block to be written while the word selector 20 is incremented on each of four cycles in order to write the four words into the selected block of the selected set~
, ' ' ( SC~':3~
As the fir.st replacement word i~ wrikten into Cache Memory 10, the tag por-tion of the address is stored in I~ag Buffer 24. The se-t portion of the address from Address Register 16 operates through set selector 26 to select one set of tags for replacement.
A Write Block signal on the bus 35 selects which of the four tags of the selected set is to be replaced. The new tag is applied directly from the Address Register 16 to the data inputs of the Tag Buffer 24 and stored at the selected position.
In the system described above, and in accord-ance with the teachings of the aforementioned patent, two age bits are provided for each block. Since there are 512 sets each containing four blocks, over 4,000 lS bits of storage are required for storing the age bits.
; These age bits are stored in the buffer memory 24 and are read out to a replacement control means which operates on a miss to determine which block should be replaced. In accordance with the present invention only three age bits are required for each set of four blocks rather than eight as in the aforementioned patent. The age bits are stored in an Aye ~uEfer 52.
i The buffer 52 is capable of storing 512 words oE four ~' bits each. The Eourth bit is utillzed Eor parity checking the aye bits and will not be dis~ussed further herein. Each time the Cache Memory lO is addressed, the set portion of the address is applied to a set selector 54 which selects a corresponding address in the Age Buffer 52. The three age bits at the selected address are read out to an Age Register 54. The Age Register 54 is enabled to receive the output of the Age Buffer 52 by a signal on either of two leads 53-a~ 55.
The signal on lead 53 occurs during each cycle that the central processor loads the Address Register 16 and makes a request. The signal on lead 55 is generated by control circuit 40 on the first of the four cycles during which a replacement block is being transferred from main memory to Cache Memory lO. The output of the Age Register is applied to the select circuit 56 and an Age Selector 58, both of which are hereinafter de-scribed in detail.
As in th~ prior art system described above, the outputs from select circuit 56 indicate which block should be replaced if the word being accessed is not present in the Cache Memory 10. In this event, control circuit 40 receives the signals Block Resident A-D from the Match Compare circuit 30 and since all of these signals are false the select signal from select circuit 56 is gated through control circuit 40 to become one of the signals Block Replace A-D. Also, in the case of a miss t,he hit signal on lead 34 is false and it enables gating means in an Age Selector 58 so that updated age bits are determined only from the prior values of the age bits received from the Age Register 54, the updated age bits then being entered into the Age Buffer 52.
On the other hand, if the word being accessed is resident in the Cache Memory 10 the Match Compare circuit 30 yene~ates one of the signals BJock Resident A-Block Resident D, and when applied to the control circuit 40 this signal inhibits the outpuk of a block replace signal on bus 44 and causes generation of the signal L Hit on lead 34. The hit signal is applied as an enabling signal to the Age Selector 58. The Age Selector 58 further receives the signals Block Resident A-D on bus 64 and, in a manner subsequently described, updates the age bits from the Age Register 54 in accordance with the block resident signals. The updated age bits are then applied to the age buffer 52 and written therein when the signal L Write Age Tag Register is generated by the control circuit 40.
One advantage of the present invention is that the memory may be operated in a degraded mode if a block of cache memory or main memory is defective.
.
S~3~
~12-This is accomplished by forciny certain of the age bits for the selected set to particular values which in-dicate that the particular block was the most recently used.
Degrade bits representing defective blocks are stored in a Degrade Buffer 66 having 512 addresses each capable of storing four degrade bits. The buffer 66 also stores additional bits for purposes not xelevant -to the present explanation. The four degrade bits for a particular set are addressed simultaneously and at the same time as the Cache Memory 10. The set portion of the address is applied from Address Register 16 to a set selector 68 which decodes the address and selects one of the addresses in the Degrade Buffer 66. The four degrade bits for the addressed set are read out simultaneously to a Degrade Valid Request (DVR) Tag Register 70~ From DVR Tag Register 70, the degrade bits are applied over a bus 71 to the Match Compare circuits 30 to disable the comparison circuit for a particular block or blocks if their associated degrade bits are set.
There is one deyrade bit associated with each block of a set. Degrade bit 00 is associated with Block A while degrade bits 01, 02, and 03 are asso ciated with Blocks B, C, and D, respectively. In order to disable a block its associated degrade bit is set to one. If more than one block of a set is defective, then more than one degrade bit may be set.
The setting of the degrade bits is accom-- 30 plished as follows. The outputs from the DVR Tag Register 70 are applied to a DV Register 72 and the output of the DV Register is connected back to the data input of the Degrade Buffer 66. When a block replace-ment routine takes place and the error checking cir-; 35 cuits detect that there is a defect in the information read from the main memor~, a signal is applied to one ~, - ~.3 -o four leads in a bus 74 dependi.ny upon which o~ the four Blocks A, B, C or D is being replaced. The degrade bits from bus 74 are logically combined with the degrade biks entered into the DV Register 72 from the DVR Tag Register 70. For example, assume that degrade bit 00 for set 0 is true and a Block D replacement takes place. The degrade bits having the value 0001 are read out of the Degrade Bufer 66 and through the DVR Tay Register 70 to the DV Regis-ter 72.
If the error detection circuit determines that the replace-mentment block D is defective, it generates a signal on alead in bus 74 that sets the fourth bit position in the DV Register so that the register contains the value 1001.
This indicates that both blocks A and D are defective.
The degrade bits then applied to the data input of the Degrade Buffer 66 so as to be written into the Degrade Buffer 66 at the same time the age bits are written into the Age Buffer 52. On a subsequent read-out of the same set, blocks A and D of the Block Comparison circuit 30 will be disabled.
The outputs from the DVR Tag Register 70 and the DV Register 72 are applied as inputs to the Age Selector 58.
If an access of the Cache Memory 10 re~ults in a hit then the contents o~ the DVR Tag Register 70 are utilized in determining the value of the updated age bits. On the other hand, i~ a miss occur~ -then the degrade bits from the DV Reyi~ter 72 (a~ter mod:LEication by any signals on bus 74) are utilized in the Age Selector 58 for the purpose of determining the value of the upgraded age bits. The exact manner in which this is accomplished will become evldent from the subsequent description of FIGS. 4A and 4B.
FIG. 2 illustrates in chart form which block of a set is replaced and how the age bits are updated for each match (hlt) or no-match (miss) condition. Column 1 shows the match/no-match condition, column 2 ~;
: ~
:
1~
shows the values o the age bits before updating to account ~or the match condition occuring in column 1, column 3 shows the values of the age bits after updating to account or the match condition of column 1, and column 4 indicates the block which is replaced. slocks A and B comprise a first pair of blocks (AB pair) and blocks C and D comprise a second pair of blocks (CD pair). Age bit 2 designates which pair of blocks contains the block that was least recently used. If Block A or Block B is used then age bit 2 is set to zero to indicate that the AB pair contai~s the most recently used block. Stated differently, age bit 2 is set to zero to indicate that the CD pair contains one of the least recently used blocks. On the other hand, if block C
or block D is used then age bit 2 is set to 1 to indicate tha-t the AB pair contains one of the least recently used Blocks.
Age bit 1 indicates which block of the CD pair is the least recently used block of that pair. If block C
is used age bit 1 i5 set to zero to indicate that block C
is the most recently used and block D is the least recently used block of the pair. On the other hand, if block D is used age bit 1 is set to 1. Age bit 0 provides an indication of which hlock of the AB pair is the least recently used block of the pair. If Block A is used age bit 0 is set to zero to indicate that Block A is the most recent:Ly used block of the pair and ~lock B is the least rece~tly used.
On l:he other hand, i~ Block B is used age bit 0 is set to 1 to indicate that Block A is the least recently used block of the pair.
The three age bits can assure that the two most recently used blocks are not replaced when a replacement is required, and only the two least recently used blocks are the candidates for replacement. If the two least recently used blocks are in the same pair, the least recently used ; 35 block is replaced.
~,~
5~
However, if the two least recently used blocks are in different pairs then the leas~ recently used block is replaced if it is not in the pair with the most re-cently used block. If the least recently used block is in the pair with the most recently used block then the second least recently used block is replaced.
FIG. 3 shows the details of the select cir-cuit 56 which determines from the age bits which block should be replaced when a miss occurs. The select circuit includes ORs 100, 102, 104 and 106 and a plurality of ANDs 108, 110, 112, 114, 116 and 118.
ANDs 108 and 110 drive OR 100 to produce the signal Block P. ANDs 112 and 114 drive the OR 102 to produce the signal Block B. AND 116 drives OR 104 to produce the signal Block C while AND 118 drives OR 106 to produce the signal Block D. The Block A-Block D
signals are applied over the bus 57 (Fig. lB) to the control circuit 40.
For the present it may be assumed that the leads 120 and 122 are permanently connected to low and high sources of voltage, respectively. Thus, the signal L Buffer Expansion permanently enc~bles one :Lnput of each of ANDs 110, 112, 116, and 118 while the signal H Buffer Expansion permanently disables ANDs 108 and 114~ The signal L Age Register 00 is derived from the I low order stage of Age Register 54 and is connected to [ one input of each of ANDs 108 and 110 while the signal j H Age Register 00 is connected to one inpu-t of each of ANDs 112 and 114. The signal L Age Register 01 is ~ 30 applied to one input of AND 116 while the slgnal H Age ¦ Register 01 is applied to one input of AND 118. The signal L Age Register 02 is applied to one input of each of the ANDs 110 and 112 while the signal H Age Register 02 is applied to one input of each of ANDs 116 and 118.
~: ;
The circuit of FIG. 3 responds to the values ~, ",,~
- 16 _ of the age bits in the Age Register 54 to produce a signal which controls replacement of one of the blocks A, B, C or D upon occurrence of a miss. At the same kime a set address is applied to the Cache Memory 10 and the Tag Buffer 24, the address is also applied through selector 54 to the Age Buffer 52. The 3-bit LR code age value is read from the Age Buffer 52 into the Age Register 54 and applied to the select circuit of FIG. 3.
Assume first that the age bits ~LR code age value) entered into the Age Register 54 and applied to the select circuit of FIG.3, have a value 00X. From FIG. 2, it is seen that under these conditions Block D should be re-placed. The signals H Age Register 01 and H Age Register 02 enable AND 118 which produces an output signal that passes through OR 106 to become the signal Block D on bus 57.
When applied to the control circuit 40, the Block D signal causes the generation of the signal Block Replace D on bus 44 if a miss condition exists.
From FIG. 2 it is seen that Block C should be replaced if the age bits 2-0 have the value 01X and no match is detected. In this case the signals H Ag~ Register 02 and L Age Register 01 are both at the low level and en-able AND 116. The output from AND 116 passes through OR
104 to become the signal Block C which is applied to control circuit 40 over bus 57.
FIG. 2 shows that if the ag~ bits 2-0 have the value lX0 then Block B shou:ld be replaced. The signals H Age Register 00 and L Age Register 02 are both at the low level and enable AND 112. The output of AND 112 passes through OR 102 to become the signal Block B.
Block A should be replaced on a no-match con-dition if the age bits 2-0 have the value lXl. The .
- - ( - ~L;2IP~5~
signals L Age Register 02 and L Age Register 00 enable AND 110. AND 110 produces an output signal tha-t passes through OR 100 to become the signal Block ~.
The Age Selector 58 is shown in FIGS. 4A and 4B. The Age Selector receives LR code age values from the Age Register and ~atch condition signals from the Match Compare circuit 30 and operates upon these signals to produce updated LR codes in accordance with the chart of FIG. 2.
The age selector comprises three stages, one for each age bit. Stage 1 includes four ANDs 130-133 for driving an OR 134. The output of OR 134 is con-nected to an AND 136 which drives an OR 138 to produce the signal L Age Selector 00. In like manner, stage 2 15 of the selector includes four ANDs 140-143 for driving an OR 144 with the output of OR 144 being connected to one input of an AND 146. AND 146 drives ~n OR 148 to produce the signal L Aye Selector 01. Stage 3 of the selector includes an AND 150 and 151 having outputs 20 connected through an OR 152 to one inpuk of an AND 154, The oukput o AND 154 passes through an OR 156 to become the siynal L Age Selector 02.
The output signals rom the Age Register 54 are applied to the Age Selector as Eollows. The signal 25 L Age Register 00 is applied to ANDs 130 and 131. The signal H Age Register 00 is applied to AND 132. The signal L Age Register 01 is applied to ANDs 140 and 141 while the signal H Age Register 01 is applied to AND
142. The signal L Age Register 02 is applied -to ANDs 30 132 and 141 while the signal H Age Register 02 is applied to ANDs 131, 142 and 151.
The block resident signals generated by the Match Compare circuit 30 are also applied to the Age Selector. The signal H FF Block A Resident is applied throu~h an OR 160 to AND 140. ~'he signal H FF Block B
Resident is applied through OR 160 to AND 140 and through an OR 162 to AND 133. The signal H FF Block C
Resident is applied through an OR 164 to AND 150. The signal H FF Block D Resident is applied through QR 164 to AND 150 and through an OR 166 to AND 143.
The hit signal generated by the con-trol ; ~ circuit 40 on lead 34 is applied to an AND 168 where it is conditioned by a signal LTl3. This signal is produced for one clock cycle following a processor request for access to Cache Memory 10. If a hit occurs - then for the duration of LTl3 AND 168 produces a low level oucput signal on lead 171 which enables one inp~t of ANDs 150, 143, 140, 133 and 130. On the other hand, if a miss occurs then the output lead 173 from AND 168 is at the low level thereby enabling one input of ANDs 151, 142, 141, 132 and 131.
When the memory is operating in a normal or non-degraded mode, the Age Selector circuits just described function to receive the LR code aye value from the Age Register 54 to generate an updated I,R code which is entered i.n~o the Aye BufEer 52. The updati.ng is accornpl.ished in accordance with the chart shown in FIG. 2.
The Age Selector also includes gating means responsive to a degrade code obtained from the DVR Tag Register 70 or the DV Register 72 for forcing certain of the age bits to particular values during the up-dating operation. For stage 00 of the Age Selector, the degrade gating means comprises two ANDs 170 and 172 having outputs connected through an OR 174 to AND 136, and two ANDS 176 and 178 having their outputs connected through an OR 180 to an AND 182. The output of AND 182 drives OR 138.
For stages 01 and 02 the degrade gating means 3q3 includes two ANDs :L84 and 186 haviny their OtltpUtS
connected to an OR 188. OR 188 has a flrst owtput connected to AND 14 6 and a second output connected to an AND 190 which in turn drives OR 156. The degrade gating means also includes ANDs 192 and 194 haviny their outputs connected through an OR 196 to the AND
190 and to an AND 198 which drives OR 148. The degrade gating means includes a further AND 200 having an output connected to AND 151 and an AND 202 having an output connected to AND 154.
As previously explained, when the memory is operating, or is to operate, in a degraded mode, one or more bits in the DV Register 72 or DVR Tag Register 70 are set. When a particular register stage is set then the signal as applied to FIGS. 4A and 4B is at the low level. If stage 00 of either the DVR Tag Register 72 or the DV Register 70 is set then the memory operates in the degraded mode with Block A disabled. Blocks B, C and/or D are disabled if stages 01, 02 and/or 03 are set.
Stages 00, 01, 02 and 03 of the DV Registex 72 are connec~ed as inputs to ~NDs 172, 178, 186 and 1~4, respectively. These ANDs ar0 all connected to the lead 173 hence the conten~s o~ the DV Register 72 can effect the age selector circuitry only if a miss occurs. Stages 00 and 01 of the DV Register 72 are applied to AND 200 and if both stages are set AND 200 produces an output signal to disable AND 151. However, if both stages are not set AND 200 enables AND 151 which is further enabled by the signal on lead 173 only if a miss occurs.
' ' The output of the DVR Tag Register 70 can effect the Age Selector outpu-t only if a hit occurs~
Stages 00, 01, 02 and 03 are connected to ANDs 170, 176, lB4 and 192, respectively. These ANDs are further S~al~
enabled by the signal on lead 171 when a hit occurs.
; In addition, stages 00 and 01 are connected to AND 202 which is also enabled by the siynal on lead 171 when a hit occurs.
As an example of the ope.ration of the Age ; Selector, assume that the memory is operating in a non-degraded mode and that an address applied to the Cache Memory 10 results in a Block A match. The Match Compare circuit 30 produces the signal H FF Block A
Resident on bus 34. This signal is also applied over h bus 33 to cause co~tr~o~l circuit 40 to issue the signal L Hit. The signal ~ t drives-the output 171 of AND
168 to the low level and t.he out lead 173 to the high level. Since it is assumed that the memory is operat~
ing in a non-degraded mode a~l signals from the DV
Register 72 and the DVR Tag Register 70 are at the high - level on buses 73 and 75. Furthermore, since it is assumed that the access has resulted in a Block A hit the signals FF Block C Resident, FF Block D Resident and FF Block B Resident are all at the low level so that the output of ORs 164, 166 and 162 a~e all at ~h~
high level. Thus, ANDs 130-133, 170, 172, 176, 178, 141-1~3, 18~, 186l 192, 194, 150, 151 ancl 202 are all blocked. The resultin-~ outputs from ORs 134 and 180 block ANDs 136 and 182 while the output~ from ORs 188 196 and 152 block ANDs 190, 198 and 15~. Thus, the signals L Age Selector 00 and L Age Selector 02 derived from the outputs of ORs 138 and 156, respectively, are both false or zero. Note that this corresponds wi-th ~0 ~IG. 2 where age selector bits 00 and 02 should both be set to zero on a Block A match.
.
FIG. 2 shows that aye bit 01 should not be changed unde.r the assumed conditions. The signal H FF
Block A Resident is inverted at OR 160 and enables AND
140. The AND is further enabled by the low level signal on lead 171~ If age bit 01 was previously a one then the signal L Age Registor 01 passes through ~ND
, 140, OR 14~, AND 146 (now enabled by the low le~el output from OR 188) and throuyh OR 148 to produce the signal L Age Selector 01. On the other hand, if age bit 01 was previously a zero then the signal L Age Register 01 is false and blocks AND 140 so that the signal L Age 5elector 01 is false. Thus, the output of OR 148 is either a zero or a one depending upon whether the previous value of the age bit was a zero or a one, respectively.
Assume now the same conditions as stated above but with the degrade bit for Block B of the h accessed set being set to disable the block. When the Degrade V~d Buffer 66 i~ read out to the DVR Tag Register 70 the degrade bit for Block B sets stage 01 of the DVR Tag Register so that the signal L DVR Tag Register 01 is at the low level. In Fig. lA, this signal disables the Block B comparison circuits. In FIG.
4B, the signal is applied to AND 176. The AND is further enabled by the low level signal on lead 171 so that the output of AND 176 passes through OR 180, AND
182 and OR 138 to genera-te the signal L Age Selector 00. The updated aye bits 1 and 2 are generated b~ the age se:lector as described above. Thus, instead o the age selector updating the age bits to 0-NC-0 on a Block A match it updates the age bits to 0~NC-1. Thus, the next time it becomes necessary to choose between Block A and Block B for replacement, the circuit will choose Block A for replacement instead of the disabled Block B.
As a further example of the operation of the Age 5elector assume that the Cache Memory 10 is opera-ting in the non-degraded mode and an address applied ~i thereto results in a miss. Assume further that the age bits 2-0 have the value 00X. From FIG. 2 it is seen that under these conditions age bits 2 and 1 should be set and there should be no change in age bit 0.
For age bit 0, the low level signal on lead 173 enables AND 131. Since it is assumed that age bit 2 is zero the signal H Age Register 02 is at the low : level to further enable AND 131. Depending upon whether age bit 0 is one or zero, the signal L Age Register 00 will be low or high~respectively. Assuming it is low, the output of AND 131 passes through OR 134, AND 136, now enabled by the low level output from OR 174, and through OR 13% to generate the signal L Age Selector 00. On the other hand, if age bit 0 is zero then the signal L Age Register 00 blocks AND 131 and the output of OR 138 is at the high level so that the updated age bit 0 is a zero.
~rom FIG. 2 it is seen that under the assumed conditions the updated age bits 1 and 2 should both be 1. The low level signal on lead 173 enables AND 142.
The signals H Age Register 02 and H Age Register 01 further enable AND 142 and it produces an output signal : that passes through OR 144 to AND 146. The other input of AND 146 is enabled at this time by a low level output from OR 188 so the output of AND 146 passes through OR 148 to generate the signal L Age Selector 01 .
; The low level signal on lead 173 enables AND
151. Since a non-degraded mode is assumed, the signals L DV ~Register 00 and L DV Register 01 are both at the high level and AND 200 produces an output to further enable AND 151. The signal H Age Register 02 is at the low level so it passes through AND 151 and OR 152 to 30 AND 154. AND 202 is blocked so its output enables AND
154. The output of AND 154 passes through OR 156 to become the signal L Age Selector 02.
As a further example of the updating of the age bits by the Age Selector on a Cache Memory access which results in a miss, assume that the Block B de-~23grade bit is already set in Degrade Buffer 66. Assume further that the select circuit 56 determines that Block A is to be replaced. The degrade bits are read out of buffer 66 to the DVR Tag Register 70, but, because of the miss condition~the output 171 of AND 16 prevents the contents of the register from affecting the Age Selector. The degrade ~its are then trans-ferred to the DV Register 72. When the replacement block is read out of main memory, it is checked for errors. Assuming an error exists, bit 00 of the DV
Register is set. Bit 01 is already set since it was assumed that Block B was already disabled. Thus, the value 0011 stands in the DV Register. On the loading of the first word of the replacement block into the Cache Memory 10, this value is loaded in b~ r 66.
Also, it is applied to the Age Selector 5~ to aid in determining the updated age bits which are entered into the Age Buffer 52.
Referring to FIGS. 4A-4B the age bi-ts from the Age Register will have the value XXl, the input~
from the DV Register wi~l be 0011, and the lead :L73 will be at the low level becau~e of the miss. Under the~e condi.tions the updated age blts, represented by L
Age Selector 02-00 will be OXl so that the next re-; 25 placement will be of Block C or Block D.
,~
;~ On alternate replacement routines, alternate Blocks C and D will be replaced because degrade bits 0 and 1 disable Blocks A and B. On a Block C or D hit, the AND 202 is enabled to block AND 154 and thus keep Age Selector bit 00 a zero, thereby indicating (falsely)that the least recently used pair is the CD pair. On a Block C or D miss the output of AND 200 blocks AND 151 to obtain the same result.
It is believed unnecessary to trace each of the circuits for each of the various possible con-ditions affecting the Age Selector and that the reader , :
-- ( 2C~
~2~~
can easily analyze the circuits after considering the foregoing examples.
The replacement or aging logic circuits of the present invention are easily modified so as to be usable in a set associative memory system having more or less than four blocks per sen.1 The Age BuEfer 52 .~, must be wide enough to store ~ age bits for each set where 2n is the number of blocks in each set. The particular embodiment described above has 2 blocks per ~ 10 set. To modify it for use in a system having two ; blocks per set the signal H Buffer ~xpansion (FIG. 4A) is tied to a low level voltage source thereby enabling ANDs 204 and 206. The outputs of these ANDs drive the outputs o~ ORs 148 and 156 to the low level thereby continuously producing a false indication that the CD
pair is the most recently used pair and the D Block was the most recently used block. Thus, the Age Selector will always indicate -that one of the blocks in the AB
pair is the next one to be replaced. The Buffer Expansion signal does not affect stage 1 of the Age Selector hence it will operate as described above.
To convert Erom a 4-b1ock to a 2-block per set system, it is al~o neaessary to reverse the po:Lar-ities o~ the Buf~er Expansion signals on leads 120 and 122 (FIG. 3). With lead 120 at the high level it blocks AND 110, 112, 116 and 118. With ANDs 116 and 118 blocked, the selector can never produce the Block C
or Block D signals to cause the replacement of these (non~existent) blocks.
A low level signal on lead 122 enables AND
114 and 108 which receive the signals H Age Register 00 and L Age Register 00. Assuming no degrading bits are set, these signals will be alternately true on alternate Cache Memory accesses so that the signals Block A and Block ~ are alternately produced to control block replacement when a miss occurs~
- 25 ~
While a specific preferred embodiment o the in-vention has been described in detail in conjunction with a - particular prior art cache memory system, i-t will be under-stood that the basic principles of the invention may be utilized with other cache memories. Furthermore, although the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various alter-ations in form and detail may be made therein without depar-ting from the spirit and scope of the invention. For exam-ple, the Tag Buffer 24 may be provided with means for stor-; ing a valid data bit with each tag, these valid data bitsbeing compared against a forced bit when the comparison of the Address Register 16 output and the Tag Buffer 24 output takes place. In this case Degrade Buffer 66 mayadditionally store an invalidate bit for each block and the invalidate bit, when set, may be utilized to negate the valid data bits from Tag Buffer 24 to thereby force a mis-match on a particular block comparison where the block is faulty.
. ~
On the other hand, if the access was for the purpose of writing a word into the Cache Memory 10 then the word, present in Buffer ~rite Register 12, is written in~o the cache memory at the address specified by the set and word portions of the address in Address Register 16. In this case, the outputs of the match compa~e circuits causes the control circuit 40 to produce one of the signals r~rite ; - 15 Block A-D on bus 35, these signals being applied to Cache Memory l~ to determine which block of the selected set is written into.
If a word being accessed is not present in the Cache ~emory 10, than it ls necessary to replace one block ; 20 of four words in the cache memory with a new block of four words from the main memory. The operation of the device is as described above up until the point where the tags are applied to the Block A~Block B Match Compare circui~s 30.
If the desired word is not residen~ in the cachc memory none of the compare circuits will produce a signal on one of t~le leads 32a-32d. Control circuit 40 senqes this condi~
tion and carries o~lt a blo~k replacement routine. In addition, the signal L Hit on lead 34 is driven to the high level to indicate a miss.
The address in Address Register 16 must be saved so on the first step of the replacement rout.ine it is copied into Miss Address Register 42. Next, the block replace select circuit 56 generates one of four signals ~Block A-Block D) on one of four leads in a bus 57. The generated signal represents the block in Cache Memory 10 which should be replaced with a new block of data from main memory, the new block containing the word which was addressed and found not present in the cache memory. In U.S. Patent No.
3,967,247 the generated signal is determined by age bits read from the Tag Buffer 24, there being two age bits stored h~
in the buffer ~or each block oE four words in the cache memory. As subsequently described in de-tail, the select circuit 56 of the present invention produces an ou-tput signal on bus 57 in response to three age bits obtained from an Age Buffer 52 through an Age Register 54. The control circuit 40 senses the absence of a compare signal on any of the leads in bus 33 (thus indicating a miss) and gates the signal on bus 57 out to a lead in a bus 44 as one of the signals Block A Replace-Block D Replace. These signals indicate which of the blocks in Cache Memory 10 is to be replaced. The Block Replace signals on bus 44 are applied to a selector on the input of a Tag Address ; Register 46 (FIG. lA). The Tag Address Register selector is also connec-ted to receive the Block A-Block D tag addresses from the Tag Buffer 24. The control circuit 40 causes the set portion of the address in Address Register 16 to act through set selector 26 to read from the Tag Buffer 24 the tags for the set containing the block being replaced.
Depending upon which of the signals Block Replace A-Block Replace D is present on bus 44, either the Block A, Block B, Block C or Block D tag is gated from Tag Buffer 24 into the Tag Address Registex ,~' 31.~ ~;i;~',S~3'~
g 46. From Tag Address R~glster ~6 the sel~cted tag is transferred over bus 48 to a BufEer Tag Address Reg-isker 50.
Following this operation the con-trol circuit 40 sends a read request to the main memory to initiate the readout of the four-word block designated by the address contained in the Miss Address Register 42. The main memory begins reading out the four words of the address block specified by the address in the Miss Address Register 42, these four words being loaded into a temporary holding register in the main memory. While this operation is taking place the block of words in Cache ~emory 10 that are ~o be replaced may be read from the memory to a temporary holding regis-ter. The control circuit 40 issues a read request to the Cache Memory 10 and on four successive cycles the four words of the block to be replaced are read out -through Block Selectox 14 to a further temporary holding register.
During this interval, one of the Block Replace signals on bus 44 is applied through one of ORs 36 to enable one of the block selectors 14 thus permitting the ~our words of the selected block to pass th~ouyh one o~ khe selectors. Control 40 may then issue a main rnemory write r~quest to cause the memory to ~nter the four words of the block beiny replac~d into the main memory ; as described in the aforementioned patent.
Next, the four words read from the memory and present in the temporary holding register are read into ; the Cache Memory 10 on four successive cycles. The tag and set portions of the address in the Miss Address Register 42 are ~a~s~e~ed through the Buffer Tag Address Reyister 50 to the Address Register 16 so that the set portion of the address may select the proper set. A Write Block signal on the bus 35 selects the block to be written while the word selector 20 is incremented on each of four cycles in order to write the four words into the selected block of the selected set~
, ' ' ( SC~':3~
As the fir.st replacement word i~ wrikten into Cache Memory 10, the tag por-tion of the address is stored in I~ag Buffer 24. The se-t portion of the address from Address Register 16 operates through set selector 26 to select one set of tags for replacement.
A Write Block signal on the bus 35 selects which of the four tags of the selected set is to be replaced. The new tag is applied directly from the Address Register 16 to the data inputs of the Tag Buffer 24 and stored at the selected position.
In the system described above, and in accord-ance with the teachings of the aforementioned patent, two age bits are provided for each block. Since there are 512 sets each containing four blocks, over 4,000 lS bits of storage are required for storing the age bits.
; These age bits are stored in the buffer memory 24 and are read out to a replacement control means which operates on a miss to determine which block should be replaced. In accordance with the present invention only three age bits are required for each set of four blocks rather than eight as in the aforementioned patent. The age bits are stored in an Aye ~uEfer 52.
i The buffer 52 is capable of storing 512 words oE four ~' bits each. The Eourth bit is utillzed Eor parity checking the aye bits and will not be dis~ussed further herein. Each time the Cache Memory lO is addressed, the set portion of the address is applied to a set selector 54 which selects a corresponding address in the Age Buffer 52. The three age bits at the selected address are read out to an Age Register 54. The Age Register 54 is enabled to receive the output of the Age Buffer 52 by a signal on either of two leads 53-a~ 55.
The signal on lead 53 occurs during each cycle that the central processor loads the Address Register 16 and makes a request. The signal on lead 55 is generated by control circuit 40 on the first of the four cycles during which a replacement block is being transferred from main memory to Cache Memory lO. The output of the Age Register is applied to the select circuit 56 and an Age Selector 58, both of which are hereinafter de-scribed in detail.
As in th~ prior art system described above, the outputs from select circuit 56 indicate which block should be replaced if the word being accessed is not present in the Cache Memory 10. In this event, control circuit 40 receives the signals Block Resident A-D from the Match Compare circuit 30 and since all of these signals are false the select signal from select circuit 56 is gated through control circuit 40 to become one of the signals Block Replace A-D. Also, in the case of a miss t,he hit signal on lead 34 is false and it enables gating means in an Age Selector 58 so that updated age bits are determined only from the prior values of the age bits received from the Age Register 54, the updated age bits then being entered into the Age Buffer 52.
On the other hand, if the word being accessed is resident in the Cache Memory 10 the Match Compare circuit 30 yene~ates one of the signals BJock Resident A-Block Resident D, and when applied to the control circuit 40 this signal inhibits the outpuk of a block replace signal on bus 44 and causes generation of the signal L Hit on lead 34. The hit signal is applied as an enabling signal to the Age Selector 58. The Age Selector 58 further receives the signals Block Resident A-D on bus 64 and, in a manner subsequently described, updates the age bits from the Age Register 54 in accordance with the block resident signals. The updated age bits are then applied to the age buffer 52 and written therein when the signal L Write Age Tag Register is generated by the control circuit 40.
One advantage of the present invention is that the memory may be operated in a degraded mode if a block of cache memory or main memory is defective.
.
S~3~
~12-This is accomplished by forciny certain of the age bits for the selected set to particular values which in-dicate that the particular block was the most recently used.
Degrade bits representing defective blocks are stored in a Degrade Buffer 66 having 512 addresses each capable of storing four degrade bits. The buffer 66 also stores additional bits for purposes not xelevant -to the present explanation. The four degrade bits for a particular set are addressed simultaneously and at the same time as the Cache Memory 10. The set portion of the address is applied from Address Register 16 to a set selector 68 which decodes the address and selects one of the addresses in the Degrade Buffer 66. The four degrade bits for the addressed set are read out simultaneously to a Degrade Valid Request (DVR) Tag Register 70~ From DVR Tag Register 70, the degrade bits are applied over a bus 71 to the Match Compare circuits 30 to disable the comparison circuit for a particular block or blocks if their associated degrade bits are set.
There is one deyrade bit associated with each block of a set. Degrade bit 00 is associated with Block A while degrade bits 01, 02, and 03 are asso ciated with Blocks B, C, and D, respectively. In order to disable a block its associated degrade bit is set to one. If more than one block of a set is defective, then more than one degrade bit may be set.
The setting of the degrade bits is accom-- 30 plished as follows. The outputs from the DVR Tag Register 70 are applied to a DV Register 72 and the output of the DV Register is connected back to the data input of the Degrade Buffer 66. When a block replace-ment routine takes place and the error checking cir-; 35 cuits detect that there is a defect in the information read from the main memor~, a signal is applied to one ~, - ~.3 -o four leads in a bus 74 dependi.ny upon which o~ the four Blocks A, B, C or D is being replaced. The degrade bits from bus 74 are logically combined with the degrade biks entered into the DV Register 72 from the DVR Tag Register 70. For example, assume that degrade bit 00 for set 0 is true and a Block D replacement takes place. The degrade bits having the value 0001 are read out of the Degrade Bufer 66 and through the DVR Tay Register 70 to the DV Regis-ter 72.
If the error detection circuit determines that the replace-mentment block D is defective, it generates a signal on alead in bus 74 that sets the fourth bit position in the DV Register so that the register contains the value 1001.
This indicates that both blocks A and D are defective.
The degrade bits then applied to the data input of the Degrade Buffer 66 so as to be written into the Degrade Buffer 66 at the same time the age bits are written into the Age Buffer 52. On a subsequent read-out of the same set, blocks A and D of the Block Comparison circuit 30 will be disabled.
The outputs from the DVR Tag Register 70 and the DV Register 72 are applied as inputs to the Age Selector 58.
If an access of the Cache Memory 10 re~ults in a hit then the contents o~ the DVR Tag Register 70 are utilized in determining the value of the updated age bits. On the other hand, i~ a miss occur~ -then the degrade bits from the DV Reyi~ter 72 (a~ter mod:LEication by any signals on bus 74) are utilized in the Age Selector 58 for the purpose of determining the value of the upgraded age bits. The exact manner in which this is accomplished will become evldent from the subsequent description of FIGS. 4A and 4B.
FIG. 2 illustrates in chart form which block of a set is replaced and how the age bits are updated for each match (hlt) or no-match (miss) condition. Column 1 shows the match/no-match condition, column 2 ~;
: ~
:
1~
shows the values o the age bits before updating to account ~or the match condition occuring in column 1, column 3 shows the values of the age bits after updating to account or the match condition of column 1, and column 4 indicates the block which is replaced. slocks A and B comprise a first pair of blocks (AB pair) and blocks C and D comprise a second pair of blocks (CD pair). Age bit 2 designates which pair of blocks contains the block that was least recently used. If Block A or Block B is used then age bit 2 is set to zero to indicate that the AB pair contai~s the most recently used block. Stated differently, age bit 2 is set to zero to indicate that the CD pair contains one of the least recently used blocks. On the other hand, if block C
or block D is used then age bit 2 is set to 1 to indicate tha-t the AB pair contains one of the least recently used Blocks.
Age bit 1 indicates which block of the CD pair is the least recently used block of that pair. If block C
is used age bit 1 i5 set to zero to indicate that block C
is the most recently used and block D is the least recently used block of the pair. On the other hand, if block D is used age bit 1 is set to 1. Age bit 0 provides an indication of which hlock of the AB pair is the least recently used block of the pair. If Block A is used age bit 0 is set to zero to indicate that Block A is the most recent:Ly used block of the pair and ~lock B is the least rece~tly used.
On l:he other hand, i~ Block B is used age bit 0 is set to 1 to indicate that Block A is the least recently used block of the pair.
The three age bits can assure that the two most recently used blocks are not replaced when a replacement is required, and only the two least recently used blocks are the candidates for replacement. If the two least recently used blocks are in the same pair, the least recently used ; 35 block is replaced.
~,~
5~
However, if the two least recently used blocks are in different pairs then the leas~ recently used block is replaced if it is not in the pair with the most re-cently used block. If the least recently used block is in the pair with the most recently used block then the second least recently used block is replaced.
FIG. 3 shows the details of the select cir-cuit 56 which determines from the age bits which block should be replaced when a miss occurs. The select circuit includes ORs 100, 102, 104 and 106 and a plurality of ANDs 108, 110, 112, 114, 116 and 118.
ANDs 108 and 110 drive OR 100 to produce the signal Block P. ANDs 112 and 114 drive the OR 102 to produce the signal Block B. AND 116 drives OR 104 to produce the signal Block C while AND 118 drives OR 106 to produce the signal Block D. The Block A-Block D
signals are applied over the bus 57 (Fig. lB) to the control circuit 40.
For the present it may be assumed that the leads 120 and 122 are permanently connected to low and high sources of voltage, respectively. Thus, the signal L Buffer Expansion permanently enc~bles one :Lnput of each of ANDs 110, 112, 116, and 118 while the signal H Buffer Expansion permanently disables ANDs 108 and 114~ The signal L Age Register 00 is derived from the I low order stage of Age Register 54 and is connected to [ one input of each of ANDs 108 and 110 while the signal j H Age Register 00 is connected to one inpu-t of each of ANDs 112 and 114. The signal L Age Register 01 is ~ 30 applied to one input of AND 116 while the slgnal H Age ¦ Register 01 is applied to one input of AND 118. The signal L Age Register 02 is applied to one input of each of the ANDs 110 and 112 while the signal H Age Register 02 is applied to one input of each of ANDs 116 and 118.
~: ;
The circuit of FIG. 3 responds to the values ~, ",,~
- 16 _ of the age bits in the Age Register 54 to produce a signal which controls replacement of one of the blocks A, B, C or D upon occurrence of a miss. At the same kime a set address is applied to the Cache Memory 10 and the Tag Buffer 24, the address is also applied through selector 54 to the Age Buffer 52. The 3-bit LR code age value is read from the Age Buffer 52 into the Age Register 54 and applied to the select circuit of FIG. 3.
Assume first that the age bits ~LR code age value) entered into the Age Register 54 and applied to the select circuit of FIG.3, have a value 00X. From FIG. 2, it is seen that under these conditions Block D should be re-placed. The signals H Age Register 01 and H Age Register 02 enable AND 118 which produces an output signal that passes through OR 106 to become the signal Block D on bus 57.
When applied to the control circuit 40, the Block D signal causes the generation of the signal Block Replace D on bus 44 if a miss condition exists.
From FIG. 2 it is seen that Block C should be replaced if the age bits 2-0 have the value 01X and no match is detected. In this case the signals H Ag~ Register 02 and L Age Register 01 are both at the low level and en-able AND 116. The output from AND 116 passes through OR
104 to become the signal Block C which is applied to control circuit 40 over bus 57.
FIG. 2 shows that if the ag~ bits 2-0 have the value lX0 then Block B shou:ld be replaced. The signals H Age Register 00 and L Age Register 02 are both at the low level and enable AND 112. The output of AND 112 passes through OR 102 to become the signal Block B.
Block A should be replaced on a no-match con-dition if the age bits 2-0 have the value lXl. The .
- - ( - ~L;2IP~5~
signals L Age Register 02 and L Age Register 00 enable AND 110. AND 110 produces an output signal tha-t passes through OR 100 to become the signal Block ~.
The Age Selector 58 is shown in FIGS. 4A and 4B. The Age Selector receives LR code age values from the Age Register and ~atch condition signals from the Match Compare circuit 30 and operates upon these signals to produce updated LR codes in accordance with the chart of FIG. 2.
The age selector comprises three stages, one for each age bit. Stage 1 includes four ANDs 130-133 for driving an OR 134. The output of OR 134 is con-nected to an AND 136 which drives an OR 138 to produce the signal L Age Selector 00. In like manner, stage 2 15 of the selector includes four ANDs 140-143 for driving an OR 144 with the output of OR 144 being connected to one input of an AND 146. AND 146 drives ~n OR 148 to produce the signal L Aye Selector 01. Stage 3 of the selector includes an AND 150 and 151 having outputs 20 connected through an OR 152 to one inpuk of an AND 154, The oukput o AND 154 passes through an OR 156 to become the siynal L Age Selector 02.
The output signals rom the Age Register 54 are applied to the Age Selector as Eollows. The signal 25 L Age Register 00 is applied to ANDs 130 and 131. The signal H Age Register 00 is applied to AND 132. The signal L Age Register 01 is applied to ANDs 140 and 141 while the signal H Age Register 01 is applied to AND
142. The signal L Age Register 02 is applied -to ANDs 30 132 and 141 while the signal H Age Register 02 is applied to ANDs 131, 142 and 151.
The block resident signals generated by the Match Compare circuit 30 are also applied to the Age Selector. The signal H FF Block A Resident is applied throu~h an OR 160 to AND 140. ~'he signal H FF Block B
Resident is applied through OR 160 to AND 140 and through an OR 162 to AND 133. The signal H FF Block C
Resident is applied through an OR 164 to AND 150. The signal H FF Block D Resident is applied through QR 164 to AND 150 and through an OR 166 to AND 143.
The hit signal generated by the con-trol ; ~ circuit 40 on lead 34 is applied to an AND 168 where it is conditioned by a signal LTl3. This signal is produced for one clock cycle following a processor request for access to Cache Memory 10. If a hit occurs - then for the duration of LTl3 AND 168 produces a low level oucput signal on lead 171 which enables one inp~t of ANDs 150, 143, 140, 133 and 130. On the other hand, if a miss occurs then the output lead 173 from AND 168 is at the low level thereby enabling one input of ANDs 151, 142, 141, 132 and 131.
When the memory is operating in a normal or non-degraded mode, the Age Selector circuits just described function to receive the LR code aye value from the Age Register 54 to generate an updated I,R code which is entered i.n~o the Aye BufEer 52. The updati.ng is accornpl.ished in accordance with the chart shown in FIG. 2.
The Age Selector also includes gating means responsive to a degrade code obtained from the DVR Tag Register 70 or the DV Register 72 for forcing certain of the age bits to particular values during the up-dating operation. For stage 00 of the Age Selector, the degrade gating means comprises two ANDs 170 and 172 having outputs connected through an OR 174 to AND 136, and two ANDS 176 and 178 having their outputs connected through an OR 180 to an AND 182. The output of AND 182 drives OR 138.
For stages 01 and 02 the degrade gating means 3q3 includes two ANDs :L84 and 186 haviny their OtltpUtS
connected to an OR 188. OR 188 has a flrst owtput connected to AND 14 6 and a second output connected to an AND 190 which in turn drives OR 156. The degrade gating means also includes ANDs 192 and 194 haviny their outputs connected through an OR 196 to the AND
190 and to an AND 198 which drives OR 148. The degrade gating means includes a further AND 200 having an output connected to AND 151 and an AND 202 having an output connected to AND 154.
As previously explained, when the memory is operating, or is to operate, in a degraded mode, one or more bits in the DV Register 72 or DVR Tag Register 70 are set. When a particular register stage is set then the signal as applied to FIGS. 4A and 4B is at the low level. If stage 00 of either the DVR Tag Register 72 or the DV Register 70 is set then the memory operates in the degraded mode with Block A disabled. Blocks B, C and/or D are disabled if stages 01, 02 and/or 03 are set.
Stages 00, 01, 02 and 03 of the DV Registex 72 are connec~ed as inputs to ~NDs 172, 178, 186 and 1~4, respectively. These ANDs ar0 all connected to the lead 173 hence the conten~s o~ the DV Register 72 can effect the age selector circuitry only if a miss occurs. Stages 00 and 01 of the DV Register 72 are applied to AND 200 and if both stages are set AND 200 produces an output signal to disable AND 151. However, if both stages are not set AND 200 enables AND 151 which is further enabled by the signal on lead 173 only if a miss occurs.
' ' The output of the DVR Tag Register 70 can effect the Age Selector outpu-t only if a hit occurs~
Stages 00, 01, 02 and 03 are connected to ANDs 170, 176, lB4 and 192, respectively. These ANDs are further S~al~
enabled by the signal on lead 171 when a hit occurs.
; In addition, stages 00 and 01 are connected to AND 202 which is also enabled by the siynal on lead 171 when a hit occurs.
As an example of the ope.ration of the Age ; Selector, assume that the memory is operating in a non-degraded mode and that an address applied to the Cache Memory 10 results in a Block A match. The Match Compare circuit 30 produces the signal H FF Block A
Resident on bus 34. This signal is also applied over h bus 33 to cause co~tr~o~l circuit 40 to issue the signal L Hit. The signal ~ t drives-the output 171 of AND
168 to the low level and t.he out lead 173 to the high level. Since it is assumed that the memory is operat~
ing in a non-degraded mode a~l signals from the DV
Register 72 and the DVR Tag Register 70 are at the high - level on buses 73 and 75. Furthermore, since it is assumed that the access has resulted in a Block A hit the signals FF Block C Resident, FF Block D Resident and FF Block B Resident are all at the low level so that the output of ORs 164, 166 and 162 a~e all at ~h~
high level. Thus, ANDs 130-133, 170, 172, 176, 178, 141-1~3, 18~, 186l 192, 194, 150, 151 ancl 202 are all blocked. The resultin-~ outputs from ORs 134 and 180 block ANDs 136 and 182 while the output~ from ORs 188 196 and 152 block ANDs 190, 198 and 15~. Thus, the signals L Age Selector 00 and L Age Selector 02 derived from the outputs of ORs 138 and 156, respectively, are both false or zero. Note that this corresponds wi-th ~0 ~IG. 2 where age selector bits 00 and 02 should both be set to zero on a Block A match.
.
FIG. 2 shows that aye bit 01 should not be changed unde.r the assumed conditions. The signal H FF
Block A Resident is inverted at OR 160 and enables AND
140. The AND is further enabled by the low level signal on lead 171~ If age bit 01 was previously a one then the signal L Age Registor 01 passes through ~ND
, 140, OR 14~, AND 146 (now enabled by the low le~el output from OR 188) and throuyh OR 148 to produce the signal L Age Selector 01. On the other hand, if age bit 01 was previously a zero then the signal L Age Register 01 is false and blocks AND 140 so that the signal L Age 5elector 01 is false. Thus, the output of OR 148 is either a zero or a one depending upon whether the previous value of the age bit was a zero or a one, respectively.
Assume now the same conditions as stated above but with the degrade bit for Block B of the h accessed set being set to disable the block. When the Degrade V~d Buffer 66 i~ read out to the DVR Tag Register 70 the degrade bit for Block B sets stage 01 of the DVR Tag Register so that the signal L DVR Tag Register 01 is at the low level. In Fig. lA, this signal disables the Block B comparison circuits. In FIG.
4B, the signal is applied to AND 176. The AND is further enabled by the low level signal on lead 171 so that the output of AND 176 passes through OR 180, AND
182 and OR 138 to genera-te the signal L Age Selector 00. The updated aye bits 1 and 2 are generated b~ the age se:lector as described above. Thus, instead o the age selector updating the age bits to 0-NC-0 on a Block A match it updates the age bits to 0~NC-1. Thus, the next time it becomes necessary to choose between Block A and Block B for replacement, the circuit will choose Block A for replacement instead of the disabled Block B.
As a further example of the operation of the Age 5elector assume that the Cache Memory 10 is opera-ting in the non-degraded mode and an address applied ~i thereto results in a miss. Assume further that the age bits 2-0 have the value 00X. From FIG. 2 it is seen that under these conditions age bits 2 and 1 should be set and there should be no change in age bit 0.
For age bit 0, the low level signal on lead 173 enables AND 131. Since it is assumed that age bit 2 is zero the signal H Age Register 02 is at the low : level to further enable AND 131. Depending upon whether age bit 0 is one or zero, the signal L Age Register 00 will be low or high~respectively. Assuming it is low, the output of AND 131 passes through OR 134, AND 136, now enabled by the low level output from OR 174, and through OR 13% to generate the signal L Age Selector 00. On the other hand, if age bit 0 is zero then the signal L Age Register 00 blocks AND 131 and the output of OR 138 is at the high level so that the updated age bit 0 is a zero.
~rom FIG. 2 it is seen that under the assumed conditions the updated age bits 1 and 2 should both be 1. The low level signal on lead 173 enables AND 142.
The signals H Age Register 02 and H Age Register 01 further enable AND 142 and it produces an output signal : that passes through OR 144 to AND 146. The other input of AND 146 is enabled at this time by a low level output from OR 188 so the output of AND 146 passes through OR 148 to generate the signal L Age Selector 01 .
; The low level signal on lead 173 enables AND
151. Since a non-degraded mode is assumed, the signals L DV ~Register 00 and L DV Register 01 are both at the high level and AND 200 produces an output to further enable AND 151. The signal H Age Register 02 is at the low level so it passes through AND 151 and OR 152 to 30 AND 154. AND 202 is blocked so its output enables AND
154. The output of AND 154 passes through OR 156 to become the signal L Age Selector 02.
As a further example of the updating of the age bits by the Age Selector on a Cache Memory access which results in a miss, assume that the Block B de-~23grade bit is already set in Degrade Buffer 66. Assume further that the select circuit 56 determines that Block A is to be replaced. The degrade bits are read out of buffer 66 to the DVR Tag Register 70, but, because of the miss condition~the output 171 of AND 16 prevents the contents of the register from affecting the Age Selector. The degrade ~its are then trans-ferred to the DV Register 72. When the replacement block is read out of main memory, it is checked for errors. Assuming an error exists, bit 00 of the DV
Register is set. Bit 01 is already set since it was assumed that Block B was already disabled. Thus, the value 0011 stands in the DV Register. On the loading of the first word of the replacement block into the Cache Memory 10, this value is loaded in b~ r 66.
Also, it is applied to the Age Selector 5~ to aid in determining the updated age bits which are entered into the Age Buffer 52.
Referring to FIGS. 4A-4B the age bi-ts from the Age Register will have the value XXl, the input~
from the DV Register wi~l be 0011, and the lead :L73 will be at the low level becau~e of the miss. Under the~e condi.tions the updated age blts, represented by L
Age Selector 02-00 will be OXl so that the next re-; 25 placement will be of Block C or Block D.
,~
;~ On alternate replacement routines, alternate Blocks C and D will be replaced because degrade bits 0 and 1 disable Blocks A and B. On a Block C or D hit, the AND 202 is enabled to block AND 154 and thus keep Age Selector bit 00 a zero, thereby indicating (falsely)that the least recently used pair is the CD pair. On a Block C or D miss the output of AND 200 blocks AND 151 to obtain the same result.
It is believed unnecessary to trace each of the circuits for each of the various possible con-ditions affecting the Age Selector and that the reader , :
-- ( 2C~
~2~~
can easily analyze the circuits after considering the foregoing examples.
The replacement or aging logic circuits of the present invention are easily modified so as to be usable in a set associative memory system having more or less than four blocks per sen.1 The Age BuEfer 52 .~, must be wide enough to store ~ age bits for each set where 2n is the number of blocks in each set. The particular embodiment described above has 2 blocks per ~ 10 set. To modify it for use in a system having two ; blocks per set the signal H Buffer ~xpansion (FIG. 4A) is tied to a low level voltage source thereby enabling ANDs 204 and 206. The outputs of these ANDs drive the outputs o~ ORs 148 and 156 to the low level thereby continuously producing a false indication that the CD
pair is the most recently used pair and the D Block was the most recently used block. Thus, the Age Selector will always indicate -that one of the blocks in the AB
pair is the next one to be replaced. The Buffer Expansion signal does not affect stage 1 of the Age Selector hence it will operate as described above.
To convert Erom a 4-b1ock to a 2-block per set system, it is al~o neaessary to reverse the po:Lar-ities o~ the Buf~er Expansion signals on leads 120 and 122 (FIG. 3). With lead 120 at the high level it blocks AND 110, 112, 116 and 118. With ANDs 116 and 118 blocked, the selector can never produce the Block C
or Block D signals to cause the replacement of these (non~existent) blocks.
A low level signal on lead 122 enables AND
114 and 108 which receive the signals H Age Register 00 and L Age Register 00. Assuming no degrading bits are set, these signals will be alternately true on alternate Cache Memory accesses so that the signals Block A and Block ~ are alternately produced to control block replacement when a miss occurs~
- 25 ~
While a specific preferred embodiment o the in-vention has been described in detail in conjunction with a - particular prior art cache memory system, i-t will be under-stood that the basic principles of the invention may be utilized with other cache memories. Furthermore, although the invention has been particularly shown and described with reference to preferred embodiments thereof, it will be understood by those skilled in the art that various alter-ations in form and detail may be made therein without depar-ting from the spirit and scope of the invention. For exam-ple, the Tag Buffer 24 may be provided with means for stor-; ing a valid data bit with each tag, these valid data bitsbeing compared against a forced bit when the comparison of the Address Register 16 output and the Tag Buffer 24 output takes place. In this case Degrade Buffer 66 mayadditionally store an invalidate bit for each block and the invalidate bit, when set, may be utilized to negate the valid data bits from Tag Buffer 24 to thereby force a mis-match on a particular block comparison where the block is faulty.
. ~
Claims
Claims:
l. In a set associative memory system having a main memory, a buffer memory, and means for applying a main memory address to the buffer memory, said buffer memory having means for storing blocks of data words associatively arranged in sets, and means for storing tags representing portions of the main memory addresses for words currently stored in said buffer memory, means for determining if a word specified by a main memory address applied to said buffer memory is resident therein, and replacement control means for replacing a block of data words in said buffer memory with a block of data words from said main memory when said determining means determines that a word specified by a main memory address is not resident in said buffer memory, the improvement wherein said replacement comprises:
age buffer means for storing sets of age bits, there being one set of age bits corresponding to each set of blocks of data words in said buffer memory, and 2n-1 bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words;
means for addressing said age buffer means each time said buffer memory is addressed to read from said age buffer means the set of age bits corresponding to the set addressed in said buffer memory;
selector means responsive to said age buffer means for modifying a set of age bits read therefrom and returning said modified set of age bits to said are buffer means, said modified set of age bits designating the least recently used block in the set of blocks corresponding to the set of modified age bits;
a degrade buffer for storing sets of degrade bits, there being 2 degrade bits in each set thereof;
means generating degrade bits identifying blocks of invalid data;
means for entering said degrade bits into said degrade buffer;
means for addressing a set of said degrade bits in said degrade buffer concurrently with an associated set of said age bits to thereby read said degrade bits out of said degrade buffer; and means for applying said degrade bits read from said degrade buffer to said selector means.
l. In a set associative memory system having a main memory, a buffer memory, and means for applying a main memory address to the buffer memory, said buffer memory having means for storing blocks of data words associatively arranged in sets, and means for storing tags representing portions of the main memory addresses for words currently stored in said buffer memory, means for determining if a word specified by a main memory address applied to said buffer memory is resident therein, and replacement control means for replacing a block of data words in said buffer memory with a block of data words from said main memory when said determining means determines that a word specified by a main memory address is not resident in said buffer memory, the improvement wherein said replacement comprises:
age buffer means for storing sets of age bits, there being one set of age bits corresponding to each set of blocks of data words in said buffer memory, and 2n-1 bits in each set of age bits where 2n is the number of blocks in each set of blocks of data words;
means for addressing said age buffer means each time said buffer memory is addressed to read from said age buffer means the set of age bits corresponding to the set addressed in said buffer memory;
selector means responsive to said age buffer means for modifying a set of age bits read therefrom and returning said modified set of age bits to said are buffer means, said modified set of age bits designating the least recently used block in the set of blocks corresponding to the set of modified age bits;
a degrade buffer for storing sets of degrade bits, there being 2 degrade bits in each set thereof;
means generating degrade bits identifying blocks of invalid data;
means for entering said degrade bits into said degrade buffer;
means for addressing a set of said degrade bits in said degrade buffer concurrently with an associated set of said age bits to thereby read said degrade bits out of said degrade buffer; and means for applying said degrade bits read from said degrade buffer to said selector means.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/945,662 US4168541A (en) | 1978-09-25 | 1978-09-25 | Paired least recently used block replacement system |
US945,662 | 1978-09-25 |
Publications (1)
Publication Number | Publication Date |
---|---|
CA1120599A true CA1120599A (en) | 1982-03-23 |
Family
ID=25483396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA000336224A Expired CA1120599A (en) | 1978-09-25 | 1979-09-24 | Paired least recently used block replacement algorithm |
Country Status (4)
Country | Link |
---|---|
US (1) | US4168541A (en) |
EP (1) | EP0009412A3 (en) |
JP (1) | JPS5589970A (en) |
CA (1) | CA1120599A (en) |
Families Citing this family (82)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2030739B (en) * | 1978-09-29 | 1982-06-30 | Nat Res Dev | Computer store arrangements |
US4381541A (en) * | 1980-08-28 | 1983-04-26 | Sperry Corporation | Buffer memory referencing system for two data words |
US4361878A (en) * | 1980-10-27 | 1982-11-30 | Control Data Corporation | Degradable LRU circuit |
US4394732A (en) * | 1980-11-14 | 1983-07-19 | Sperry Corporation | Cache/disk subsystem trickle |
DE3104941A1 (en) * | 1981-02-11 | 1982-08-26 | Siemens AG, 1000 Berlin und 8000 München | MICROCALCULATOR SYSTEM FOR RAPIDLY DETECTING LABEL BLOCKS |
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
US4414644A (en) * | 1981-04-03 | 1983-11-08 | International Business Machines Corporation | Method and apparatus for discarding data from a buffer after reading such data |
CA1187198A (en) * | 1981-06-15 | 1985-05-14 | Takashi Chiba | System for controlling access to channel buffers |
US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
WO1983000758A1 (en) * | 1981-08-18 | 1983-03-03 | Schkolnick, Mario | Thrashing reduction in demand accessing of a data base through an lru paging buffer pool |
JPS6049950B2 (en) * | 1981-08-27 | 1985-11-06 | 富士通株式会社 | LRU error processing method |
US4422145A (en) * | 1981-10-26 | 1983-12-20 | International Business Machines Corporation | Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool |
US4530055A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Hierarchical memory system with variable regulation and priority of writeback from cache memory to bulk memory |
US4530054A (en) * | 1982-03-03 | 1985-07-16 | Sperry Corporation | Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory |
US4464717A (en) * | 1982-03-31 | 1984-08-07 | Honeywell Information Systems Inc. | Multilevel cache system with graceful degradation capability |
JPS58189890A (en) * | 1982-04-30 | 1983-11-05 | Hitachi Ltd | Hierarchical storage device |
US4638425A (en) * | 1982-09-29 | 1987-01-20 | International Business Machines Corporation | Peripheral data storage having access controls with error recovery |
US4532606A (en) * | 1983-07-14 | 1985-07-30 | Burroughs Corporation | Content addressable memory cell with shift capability |
US4631660A (en) * | 1983-08-30 | 1986-12-23 | Amdahl Corporation | Addressing system for an associative cache memory |
US4587610A (en) * | 1984-02-10 | 1986-05-06 | Prime Computer, Inc. | Address translation systems for high speed computer memories |
US4807110A (en) * | 1984-04-06 | 1989-02-21 | International Business Machines Corporation | Prefetching system for a cache having a second directory for sequentially accessed blocks |
JPS618798A (en) * | 1984-06-21 | 1986-01-16 | Nec Corp | Nonvolatile storage device |
EP0173556A3 (en) * | 1984-08-31 | 1987-05-27 | Texas Instruments Incorporated | Hierarchical architecture for determining the least recently used cache memory |
US4827401A (en) * | 1984-10-24 | 1989-05-02 | International Business Machines Corporation | Method and apparatus for synchronizing clocks prior to the execution of a flush operation |
US4656626A (en) * | 1984-12-14 | 1987-04-07 | Itt Corporation | Apparatus and method for providing dynamically assigned switch paths |
JPS61148551A (en) * | 1984-12-24 | 1986-07-07 | Hitachi Ltd | Address converting system |
EP0190575A1 (en) * | 1985-01-25 | 1986-08-13 | Siemens Aktiengesellschaft | Method and arrangement for reducing the effect of memory errors on data stored in caches of data-processing systems |
US4835686A (en) * | 1985-05-29 | 1989-05-30 | Kabushiki Kaisha Toshiba | Cache system adopting an LRU system, and magnetic disk controller incorporating it |
US4779189A (en) * | 1985-06-28 | 1988-10-18 | International Business Machines Corporation | Peripheral subsystem initialization method and apparatus |
US4875155A (en) * | 1985-06-28 | 1989-10-17 | International Business Machines Corporation | Peripheral subsystem having read/write cache with record access |
FR2597634B1 (en) * | 1986-02-21 | 1992-03-20 | Nec Corp | ANEMEMORY REPLACEMENT SYSTEM |
KR950008676B1 (en) * | 1986-04-23 | 1995-08-04 | 가부시기가이샤 히다찌세이사꾸쇼 | Semiconductor memory device and error correction method thereof |
US4789967A (en) * | 1986-09-16 | 1988-12-06 | Advanced Micro Devices, Inc. | Random access memory device with block reset |
US4802086A (en) * | 1987-01-09 | 1989-01-31 | Motorola, Inc. | FINUFO cache replacement method and apparatus |
US4972316A (en) * | 1987-03-30 | 1990-11-20 | International Business Machines Corporation | Method of handling disk sector errors in DASD cache |
AU604101B2 (en) * | 1987-04-13 | 1990-12-06 | Computervision Corporation | High availability cache organization |
JP2960415B2 (en) * | 1987-05-22 | 1999-10-06 | 株式会社日立製作所 | Memory protection method and device |
US5226147A (en) * | 1987-11-06 | 1993-07-06 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device for simple cache system |
US5184320A (en) * | 1988-02-12 | 1993-02-02 | Texas Instruments Incorporated | Cached random access memory device and system |
US4996641A (en) * | 1988-04-15 | 1991-02-26 | Motorola, Inc. | Diagnostic mode for a cache |
US4945512A (en) * | 1988-09-07 | 1990-07-31 | Unisys Corporation | High-speed partitioned set associative cache memory |
JPH02148235A (en) * | 1988-11-30 | 1990-06-07 | Toshiba Corp | Data drawback system |
US5224217A (en) * | 1988-12-30 | 1993-06-29 | Saied Zangenehpour | Computer system which uses a least-recently-used algorithm for manipulating data tags when performing cache replacement |
US5060136A (en) * | 1989-01-06 | 1991-10-22 | International Business Machines Corp. | Four-way associative cache with dlat and separately addressable arrays used for updating certain bits without reading them out first |
US5214777A (en) * | 1989-03-27 | 1993-05-25 | Ncr Corporation | High speed read/modify/write memory system and method |
US5133060A (en) * | 1989-06-05 | 1992-07-21 | Compuadd Corporation | Disk controller includes cache memory and a local processor which limits data transfers from memory to cache in accordance with a maximum look ahead parameter |
US5043885A (en) * | 1989-08-08 | 1991-08-27 | International Business Machines Corporation | Data cache using dynamic frequency based replacement and boundary criteria |
US4969122A (en) * | 1989-08-21 | 1990-11-06 | Sun Microsystems, Inc. | Apparatus for page tagging in a computer system |
US5125085A (en) * | 1989-09-01 | 1992-06-23 | Bull Hn Information Systems Inc. | Least recently used replacement level generating apparatus and method |
US5109496A (en) * | 1989-09-27 | 1992-04-28 | International Business Machines Corporation | Most recently used address translation system with least recently used (LRU) replacement |
DE69127773T2 (en) * | 1990-06-15 | 1998-04-02 | Compaq Computer Corp | Real LRU replacement device |
US5289581A (en) * | 1990-06-29 | 1994-02-22 | Leo Berenguel | Disk driver with lookahead cache |
US5287512A (en) * | 1990-08-06 | 1994-02-15 | Ncr Corporation | Computer memory system and method for cleaning data elements |
US5434990A (en) * | 1990-08-06 | 1995-07-18 | Ncr Corporation | Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch |
US5530835A (en) * | 1991-09-18 | 1996-06-25 | Ncr Corporation | Computer memory data merging technique for computers with write-back caches |
US5384713A (en) * | 1991-10-23 | 1995-01-24 | Lecroy Corp | Apparatus and method for acquiring and detecting stale data |
FR2683924B1 (en) * | 1991-11-18 | 1997-01-03 | Bull Sa | INTEGRATED MEMORY, ITS MANAGEMENT METHOD AND RESULTING COMPUTER SYSTEM. |
US5345582A (en) * | 1991-12-20 | 1994-09-06 | Unisys Corporation | Failure detection for instruction processor associative cache memories |
JPH0667980A (en) * | 1992-05-12 | 1994-03-11 | Unisys Corp | Cache logic system for optimizing access to four- block cache memory and method for preventing double mistakes in access to high-speed cache memory of main frame computer |
JPH06175914A (en) * | 1992-09-21 | 1994-06-24 | Eastman Kodak Co | Memory management device |
US5343437A (en) * | 1993-02-19 | 1994-08-30 | Motorola Inc. | Memory having nonvolatile and volatile memory banks |
JPH07182238A (en) * | 1993-11-01 | 1995-07-21 | Sgs Thomson Microelectron Inc | Circuit and method for invalidation of defective data |
EP0675436B1 (en) * | 1994-03-31 | 1999-10-27 | STMicroelectronics, Inc. | Recoverable set associative cache |
US5619675A (en) * | 1994-06-14 | 1997-04-08 | Storage Technology Corporation | Method and apparatus for cache memory management using a two level scheme including a bit mapped cache buffer history table and circular cache buffer list |
US5606688A (en) * | 1994-08-31 | 1997-02-25 | International Business Machines Corporation | Method and apparatus for dynamic cache memory allocation via single-reference residency times |
US5860149A (en) * | 1995-06-07 | 1999-01-12 | Emulex Corporation | Memory buffer system using a single pointer to reference multiple associated data |
US5845320A (en) * | 1996-04-29 | 1998-12-01 | Micron Technology, Inc. | Circuit and method to implement a least recently used cache set replacement technique |
TW374873B (en) * | 1997-06-30 | 1999-11-21 | Hyundai Electronics Ind | A high-performance LRU memory capable of supporting multiple ports |
US6321375B1 (en) | 1998-05-14 | 2001-11-20 | International Business Machines Corporation | Method and apparatus for determining most recently used method |
KR20020077672A (en) * | 2000-05-24 | 2002-10-12 | 주식회사 쿨텍 | Air-conditioner |
US6947153B1 (en) * | 2000-11-20 | 2005-09-20 | Presstek, Inc. | Method and apparatus for optimized image processing |
US6918071B2 (en) * | 2001-04-20 | 2005-07-12 | Sun Microsystems, Inc. | Yield improvement through probe-based cache size reduction |
JP3702950B2 (en) * | 2001-09-18 | 2005-10-05 | 日本電気株式会社 | Associative memory device |
US20030084249A1 (en) * | 2001-10-31 | 2003-05-01 | Johnson David J.C. | Preemptive eviction of stale entries is a computer cache by use of age-bits |
JP3953903B2 (en) * | 2002-06-28 | 2007-08-08 | 富士通株式会社 | Cache memory device and reference history bit error detection method |
JP4939799B2 (en) * | 2005-11-07 | 2012-05-30 | 三洋電機株式会社 | Air conditioner |
JP2008057862A (en) * | 2006-08-31 | 2008-03-13 | Hoshizaki Electric Co Ltd | Ice making machine |
US8856448B2 (en) * | 2009-02-19 | 2014-10-07 | Qualcomm Incorporated | Methods and apparatus for low intrusion snoop invalidation |
JP5627521B2 (en) * | 2011-03-24 | 2014-11-19 | 株式会社東芝 | Cache system and processing device |
US9396117B2 (en) * | 2012-01-09 | 2016-07-19 | Nvidia Corporation | Instruction cache power reduction |
US9552032B2 (en) | 2012-04-27 | 2017-01-24 | Nvidia Corporation | Branch prediction power reduction |
US9547358B2 (en) | 2012-04-27 | 2017-01-17 | Nvidia Corporation | Branch prediction power reduction |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3840862A (en) * | 1973-09-27 | 1974-10-08 | Honeywell Inf Systems | Status indicator apparatus for tag directory in associative stores |
US3967247A (en) * | 1974-11-11 | 1976-06-29 | Sperry Rand Corporation | Storage interface unit |
FR116049A (en) * | 1975-03-20 | |||
US4045779A (en) * | 1976-03-15 | 1977-08-30 | Xerox Corporation | Self-correcting memory circuit |
-
1978
- 1978-09-25 US US05/945,662 patent/US4168541A/en not_active Expired - Lifetime
-
1979
- 1979-09-24 EP EP79301974A patent/EP0009412A3/en not_active Withdrawn
- 1979-09-24 CA CA000336224A patent/CA1120599A/en not_active Expired
- 1979-09-25 JP JP12310879A patent/JPS5589970A/en active Pending
Also Published As
Publication number | Publication date |
---|---|
JPS5589970A (en) | 1980-07-08 |
EP0009412A2 (en) | 1980-04-02 |
EP0009412A3 (en) | 1980-04-30 |
US4168541A (en) | 1979-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1120599A (en) | Paired least recently used block replacement algorithm | |
US4357656A (en) | Method and apparatus for disabling and diagnosing cache memory storage locations | |
EP0090638B1 (en) | Cache memory systems | |
US4996641A (en) | Diagnostic mode for a cache | |
US5337318A (en) | Memory IC testing apparatus with redundancy circuit | |
US4967414A (en) | LRU error detection using the collection of read and written LRU bits | |
US11467966B2 (en) | Cache memory having a programmable number of ways | |
EP0514050A2 (en) | Control circuit for dual port memory | |
US5276829A (en) | Data processing system including cache memory for rapidly converting a logical address into a physical address using shared memory flag | |
US5522056A (en) | Cache memory with plurality of congruence sets and sense amplifiers shared among the congruence sets | |
US5708789A (en) | Structure to utilize a partially functional cache memory by invalidation of faulty cache memory locations | |
US6240532B1 (en) | Programmable hit and write policy for cache memory test | |
US4803616A (en) | Buffer memory | |
US6968427B1 (en) | Built-in self test circuit for testing cache tag array and compare logic | |
JPH02308349A (en) | Buffer storage control system | |
US5960456A (en) | Method and apparatus for providing a readable and writable cache tag memory | |
EP0335113A2 (en) | Single chip cache memory, and cache memory apparatus including a plurality of parallel connected single chip cache memories | |
US11544199B2 (en) | Multi-way cache memory access | |
CA1313423C (en) | Memory access control system | |
JPH01233638A (en) | Cache memory for set associative system | |
JPH0795309B2 (en) | Set associative cache memory | |
CA1299768C (en) | Memory access control system | |
JPH034939B2 (en) | ||
EP0514049A2 (en) | Control circuit for dual port memory | |
JP3235250B2 (en) | Disk cache controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MKEX | Expiry |