Claims
- 1. In an electronic computer system having an architecture including a central processor and a hierarchical memory system comprising a large relatively low speed random access memory and a small high speed cache memory, said cache memory including a data store section for storing lines of data from the system memory and a cache directory for indicating, at any time, the lines of system memory data currently resident in cache, said directory and data store being organized and accessible as a set of congruence classes into which any system memory address will map and a plurality of items in each class (set associativity), wherein a plurality of different addresses will map into any given class, means for accessing said memory system for storage and retrieval of data and further means for interrogating the cache memory for presence of an item of data therein identified by its system memory address whenever a memory access is requested, an improvement in a cache memory architecture which comprises means for improving distribution of data across said congruence classes including means for performing a permutation on a M-bit portion (X) of the system memory address (where M is a real positive integer greater than 1) which permuted M-bit portion (X') determines a congruence class of the address, said permutation means including means for performing a bit-matrix multiplication of said M-bit address with a predetermined data base dependent M-bit by M-bit permutation matrix, to produce a permuted M-bit address means connected to said permutation performing means for utilizing said permuted M-bit address (X') to access the cache directory and cache memory, and further means in said interrogating means for accessing an addressed congruence class in the cache directory and determining if a requested data item is present.
- 2. An improved cache memory architecture as set forth in claim 1 wherein said means for accessing an addressed congruence class includes means for determining if a line identifier which identifies every member of a congruence class currently stored in the directory matches an identifier field from the system memory address and, means connected thereto for accessing a data store portion of said cache memory at the permuted M-bit address (X') and accessing data lines therefrom included in the addressed congruence class, and further means for accessing a particular data line in the cache corresponding to a successful search in said directory for said identifier field.
- 3. An improved cache memory architecture as set forth in claim 2 wherein said means for accessing further includes means for detecting when a particular identifier is not present in the directory at the congruence class indicated and for producing a cache MISS sequence of operations.
- 4. An improved cache memory architecture as set forth in claim 1 wherein the means for performing said bit-matrix multiplication includes means for successively multiplying the bits of the M-bit address with successive rows of the M-bit by M-bit permutation matrix to form M successive new bits of address (X') which bits are utilized as a congruence class pointer in the cache for the data being accessed.
- 5. An improved cache memory architecture as set forth in claim 4 for use where power-of-two address strides are likely to be encountered wherein the M-bit by M-bit matrix is configured so that either a top or bottom row of said matrix is all `1`s (unitary) and that either a right or left hand column is all `1`s (unitary), remaining rows and columns of the matrix being configured so that all bits are an exclusive OR of two adjacent bits closest to the unitary column and row.
- 6. An improved cache memory architecture as set forth in claim 3 or 4 wherein said cache architecture is a virtual cache and the memory address supplied to the cache is a vertical address.
- 7. An improved cache memory architecture as set forth in claims 3 or 4 wherein said cache memory is a real cache and means are included for translating virtual addresses received from the central processor into real addresses for memory access.
Parent Case Info
This application is a continuation of application Ser. No. 07/114,907 filed Oct. 29, 1987 now abandoned.
US Referenced Citations (6)
Non-Patent Literature Citations (2)
Entry |
L. Liu "XOR Randomization in Cache Congruence Class Indexing" IBM Technical Disclosure Bulletin, vol. 27, No. 2 (Jul. 1984), p. 1097. |
Computing Surveys, vol. 14, No. 3, Sep. 1982, pp. 473-530, "Cache Memories" by Alan Jay Smith. |
Continuations (1)
|
Number |
Date |
Country |
Parent |
114907 |
Oct 1987 |
|