Nova Patents
EP0095033A2

Set associative sector cache.

Abstract

A cache memory (10) for a data processing system having a tag array (22) in which each tag word can contain a sector address (A18-A31) and represents a predetermined set or block group of consecutively addressable data block locations in a data array (26). The lower order set address bits (A8-A17) concurrently access the tag word and its associated group of block locations in the data array while individual blocks within the group are accessed by supplemental block bits (A6-A7). Each tag word read out must compare equal (28) with the high order sector bits (A18-A31) of the address and an accompanying validity bit (Vi) for each accessed block location in its group must be ON in order to effect (30) a hit. Also described are circuits for writing into the cache and adapting the cache to a multi-cache arrangement.

EP0095033A2, drawing sheet 1
Sheet 1 of 5

Term

Term ended

Projected expiry passed 13 April 2003, 23.4 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

12 claims: 12 independent, 0 dependent

  1. 1
    I. A cache memory (10) for use in a data processing system having a main memory (12) divided into sectors each having a plurality of data blocks stored therein and processor means (11) for processing data and issuing main memory addresses (18) for fetching blocks of data from said main memory, said cache memory (10) being adapted for temporarily storing selected ones of said data blocks during said processing and comprising:data array means (26) having a plurality of storage locations each capable of storing a data block, each said data block being read out of said data array means in response to a corresponding block within sector address portion of an issued main memory address (18), tag array means (22) having a plurality of storage locations each capable of storing a tag word including a sector address portion of the main memory address for each data block stored in a corresponding location of said data array means (26), said sector address portion being read from said tag array means (22) concurrently with the reading of a corresponding data block from said data array means, for comparison (28) of said sector address of said tag word with the sector address portion of the issued main memory address, and gating means (34) responsive to the identity of said compared sector addresses for gating from said data array means at least a portion of the data block corresponding to said issued main memory address, characterized by: said tag array means (22) having less storage locations than said data array means (26), each said tag word location corresponding to a group of consecutive data block locations in said data array means, and each tag word further including a validity bit for each data block stored in the corresponding block group locations of said data away means.
  2. 2
    Apparatus as described in claim 1 further including validity checking Leans (31) responsive to a block within group address portion of said issued main memory address and said validity bits for determining the vilidity of a selected data block and enabling (30) said gating ' neans (34) only when said block is valid.
  3. 3
    Apparatus as described in claim 2 further including validity revising means (23) responsive (36, 37) to the non-identity (29) of said sector address of said tag word and said sector portion of said main memory address for changing (36, 25) said validity bits (32) of said tag word to indicate invalidity of all data blocks in the group identified by said group address.
  4. 4
    Apparatus as described in claim 2 or 3 further including initializing means (19-21, 23) to initially set said validity bits of said tag words in said tag array means (22) to indicate invalidity of the respective data blocks in said data array means.
  5. 5
    Apparatus as described in claim 2, 3 or 4 further including means responsive to the identity of said sector address portion of said tag word with said sector portion of said issued main memory address and the invalidity of a said data block in the said group corresponding to said tag word for enabling (33, 38) the writing into the storage location of said invalid data block within said data array means (26) of a new data block from said main memory and registering (23) the said new data block as valid within said tag array means (22).
  6. 6
    Apparatus as described in claim 3 further including means responsive to the non-identity of said sector address of said tag word and said sector portion of said main memory address for enabling (33, 38) the writing of a new data block and its sector address, respectively, in said data and tag array means (26, 22) and registering (23) the remaining data blocks in the group of said new block as invalid.
  7. 7
    A data processing system having a main memory (12) which can be divided into sectors each storing blocks of data, a processor (11) for processing data and issuing addresses (18) for fetching said blocks of data from said main memory, and a cache memory (10) for temporarily storing selected blocks of data during said processing, the said cache memory comprising:data array means (26) having a plurality of storage locations arranged in sets or groups with each location of a said group being capable of storing a said block of data, said blocks of data being selectively retrievable by said processor upon the application of a first portion of a said address (18) as a set or group address and a second selection parameter as a block within set address;tag array means (22) having a plurality of storage locations each capable of storing a tag word including a sector address of each said sector of main memory having a data block stored within a said group in said data array means, characterized by: said second selection parameter being a second portion of said processor issued address (18) as a block address;each said tag word stored in said tag array means further including validity bits each representing the validity of a data block stored in said group, said tag array means being responsive to said group address for reading out said tag word;verifying means (31) responsive to said block address and said validity bits for generating a validity signal when said identified block is valid;and gating means (30) signalling the coincidence of a signal representing the identity (28, 29) of a said sector address read out from said tag array means with a third portion of said issued address (18) and said validity signal (31) for gating (34) at least a part of said data block from said data array means (26) to said processor means (11).
  8. 8
    In a data processing system having a main memory (12) divided into sectors each having a plurality of data blocks stored therein and a processor means (11) for processing data and issuing (13a) main memory addresses (18) for fetching blocks of data from said main memory, the method of operating a cache memory (10) for temporarily storing selected ones of said data blocks comprising:storing in a data array (26) of said cache selected blocks of data from said main memory arranged in groups of blocks;storing in an index array (22) for each said group index words representing the sectors of main memory from which a data block for that group was taken, characterized by: each said index word being unique for a corresponding group and representing also the validity information of each said block within that group;applying a first predetermined portion of a said issued address (18) to said data array as a block address to identify a selected block within a said group;applying concurrently with said block address a second predetermined portion of said issued address as a group address both to said data array to identify the selected one of said groups and to said index array to identify the index word corresponding to the identified group;determining (31) the validity of said selected block from said block address and said validity information and issuing a gating signal when said block is valid;and comparing (28) the sector information of a selected index word with a third portion of said issued address and generating a signal for reading out from said data array at least a part of said selected block when said comparison results in identity and (30) said gating signal is present.
  9. 9
    A cache memory according to one or more of claims 1-6, characterized by:a plurality of data array means (51, 61) each having a plurality of storage locations therein divided into groups with each location being capable of storing a data block, each said data block being read out of a said data array means in response to both first and second predetermined portions of an issued main memory address (18) as a group address and a block address, respectively;a tag array means (50, 60) for each said data array means each having a plurality of storage locations adapted for storing in each location a tag word including a sector address portion of the main memory address for each corresponding group of data blocks stored in the respective data array means, a said sector address being read out from said tag array means as a tag word in response to the occurrence of a said group address;and gating means (54, 64) responsive to the identity of a said sector address of a said tag word from any one of said tag array means (50, 60) with the predetermined sector portion of said issued main memory address (18) for gating from the respective one of said data array means (51, 61) at least a part of the data block corresponding to the said group address and block address.
  10. 10
    Apparatus as described in claim 9 wherein each tag word in each tag array means (50, 60) includes a binary validity bit for each said data block in the data array group corresponding to said tag word, and further including validity verifying means (52, 62) for each said tag array means responsive to said block address and said validity bits of a read out tag word for determining the validity of a selected data block and enabling said gating means (54, 64) only when said block is valid.
  11. 11
    Apparatus as described in claim 9 or 10 further including writing means (70-80) responsive to the non-identity of a said sector address of said tag word from either said tag array means with a predetermined sector portion of said issued main memory address for writing into a selected one of said data array means (51, 61) a new data block corresponding to the group and block address portions of said issued main memory address (18).
  12. 12
    Apparatus as described in claim 11 wherein said writing means includes replace array means (77, 78) for identifying the least recently used corresponding group of data blocks of said plurality of data array means (51, 61) and causing storage of said new data block therein.