U.S. Pat. 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 requestor unit, a check is made to determine if that address is resident in the high speed buffer and, if so, it is available to the requestor unit for reading or writing. If the desired address is not resident in the cache memory, a block of data in the buffer is selected for replacement. A least recently used (LRU) algorithm is utilized 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 data with four data blocks per set. Thus, 128.times.4.times.2=1024 bits of storage are required merely to store the age bits. In accordance with the principles 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 storage. Because only three age bits are used, there is a slight increase (0.014%) in the miss rate since replacement may be made of the least recently used block or one of the two least recently used blocks.
In the prior art various methods have been utilized 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 buffer or data memory will never be used.