Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches
First Claim
1. A digital data processing system, comprising:
- a memory;
at least one processor having at least one associated cache for temporarily caching data from said memory;
at least one device having a device cache, said device cache having a fixed number of slots for caching data, each slot caching a cache line of data; and
a cache coherency mechanism, said cache coherency mechanism including a cache line state directory structure, said cache coherency mechanism selectively determining whether to send cache line invalidation messages to said at least one device using state information in said cache line state directory structure, wherein at least a portion of said cache line state directory structure contains a plurality of cache line entries, each entry corresponding to a respective one of said plurality of slots for caching data of said device cache.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer system includes multiple caches and a cache line state directory structure, having at least a portion dedicated to a particular device cache within a particular device, and contains a fixed number of entries having a one-to-one correspondence to the cache lines of the cache to which it corresponds. The cache line state directory is used to determine whether it is necessary to send an invalidation message to the device cache. In the preferred embodiment, a dedicated portion of the cache line state directory structure corresponds to an I/O bridge device cache. Preferably, the cache line state directory also maintains state for one or more processor caches in a different format. The computer system preferably uses a NUMA architecture, the directories being maintained by node servers in each node.
30 Citations
22 Claims
-
1. A digital data processing system, comprising:
-
a memory;
at least one processor having at least one associated cache for temporarily caching data from said memory;
at least one device having a device cache, said device cache having a fixed number of slots for caching data, each slot caching a cache line of data; and
a cache coherency mechanism, said cache coherency mechanism including a cache line state directory structure, said cache coherency mechanism selectively determining whether to send cache line invalidation messages to said at least one device using state information in said cache line state directory structure, wherein at least a portion of said cache line state directory structure contains a plurality of cache line entries, each entry corresponding to a respective one of said plurality of slots for caching data of said device cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for maintaining cache coherency in a digital data processing system, comprising the steps of:
-
maintaining a cache line state directory structure, said cache line state directory structure having at least a portion corresponding to a device cache in a device of said digital data processing system, said portion containing a plurality of cache line entries, each entry corresponding to a respective one of a plurality of slots for caching lines of data in said device cache;
responsive to each of a plurality of data access requests, accessing said cache line state directory structure to determine whether data having a data address referenced by the request is contained in said device cache;
for each of said plurality of data access requests, determining whether to send an invalidation message to said device based on whether said step of accessing said cache line state directory determines that data having a data address referenced by the request is contained in said device cache; and
for each of said plurality of data access requests, sending an invalidation message to said device responsive to the determination made by said step of determining whether to send an invalidation message. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A digital data processing system, comprising:
-
a memory;
a plurality of processors controlling a plurality of caches for temporarily caching data from said memory;
at least one device having a device cache, said device cache having a fixed number of slots for caching data, each slot corresponding to a cache line; and
a cache line state directory structure having a first portion for maintaining cache line state for lines of data cached in said plurality of caches controlled by said plurality of processors, and a second portion for maintaining cache line state for lines of data cached in said device cache;
wherein said first portion of said cache line state directory structure contains a plurality of cache line entries, each entry corresponding to a respective real address of cached data;
wherein said second portion of said cache line state directory structure contains a plurality of cache line entries, each entry corresponding to a respective one of said plurality of slots for caching data of said device cache. - View Dependent Claims (15, 16, 17, 18)
-
-
19. A cache coherency apparatus for a digital data processing system:
-
a communications interface for communicating with a plurality of devices;
a cache line state directory structure, wherein at least a portion of said cache line state directory structure corresponds to a cache having a plurality of slots for caching data in a first device of said plurality of devices, said at least a portion containing a plurality of cache line entries, each entry corresponding to a respective one of said plurality of slots for caching data of said cache in said first device; and
cache coherence control logic which selectively generates invalidation messages responsive to events affecting the validity of cached data, said cache coherence control logic determining whether to send cache line invalidation messages to said first device using state information in said at least a portion of said cache line state directory structure corresponding to said cache in said first device. - View Dependent Claims (20, 21, 22)
-
Specification