SYSTEM AND METHOD FOR ALLOCATING A DIRECTORY ENTRY FOR USE IN MULTIPROCESSOR-NODE DATA PROCESSING SYSTEMS
First Claim
1. A data processing system comprising:
- a plurality of processors each having a respective cache capable of storing a plurality of cached lines; and
a directory for keeping track of states of the cached lines;
wherein, upon a new request for a cache line, an algorithm uses said states of the cached lines to allocate a cache directory entry for the requested cache line.
1 Assignment
0 Petitions
Accused Products
Abstract
An algorithm for selecting a directory entry in a multiprocessor-node system. In response to a memory request from a processor in a processor node, the algorithm finds an available entry to store information about the requested memory line. If at least one entry is available, then the algorithm uses one of the available entries. Otherwise, the algorithm searches for a “shared” entry. If at least one shared entry is available, then the algorithm uses one of the shared entries. Otherwise, the algorithm searches for a “dirty” entry. If at least one dirty entry is available, then the algorithm uses one of the dirty entries. In selecting a directory entry, the algorithm uses a “least-recently-used” (LRU) algorithm because an entry that was not recently used is more likely to be stale. Further, to improve system performance, the algorithm preferably uses a shared entry before using a dirty entry. In the preferred embodiment, the processor node that utilizes the invention includes at least one processor having a respective cache connected via a bus to main memory.
18 Citations
22 Claims
-
1. A data processing system comprising:
-
a plurality of processors each having a respective cache capable of storing a plurality of cached lines; and
a directory for keeping track of states of the cached lines;
wherein, upon a new request for a cache line, an algorithm uses said states of the cached lines to allocate a cache directory entry for the requested cache line. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for selecting a directory entry among a plurality of directory entries having state information, comprising the steps of:
-
using said state information to select said directory entry; and
allowing a re-request of said directory entry if said plurality of directory entries represent cached lines in transitional states. - View Dependent Claims (10, 11, 12, 13, 14, 15, 17, 18, 20, 21, 22)
-
-
16. A method for maintaining cache coherence for use in a data processing system including a plurality of processor nodes, each node having at least one processor with a cache, comprising the ordered steps of:
-
selecting one AVAILABLE among the cache directory entries that are not being used if said AVAILABLE entry is available;
selecting one SHARED among the cache directory entries representing a cached line shared by the at least one processor if said SHARED entry is available; and
selecting one DIRTY among the cache directory entries representing a cached line which is dirty at one of the at least one processor if said DIRTY entry is available.
-
-
19. A cache coherence unit for use in a data processing system including multiple processor nodes, each node having at least one processor with an associated cache, comprising:
-
a bus interface for transferring data between said cache and a memory;
a directory for storing state information about a plurality of cached lines stored in said cache; and
a coherence controller coupled to said bus interface for maintaining cache coherence.
-
Specification