Enhanced bus transactions for efficient support of a remote cache directory copy
First Claim
Patent Images
1. A method of maintaining coherency of data accessed by a remote device, comprising:
- receiving, by a remote device, a bus transaction containing cache coherency information indicating a change to a cache directory residing on a processor that initiated the bus transaction; and
updating a cache directory residing on the remote device, based on the cache coherency information, to reflect the change to the cache directory residing on the processor.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus are provided that may be utilized to maintain a copy of a processor cache directory on a remote device that may access data residing in a cache of the processor. Enhanced bus transactions containing cache coherency information used to maintain the remote cache directory may be automatically generated when the processor allocates or de-allocates cache lines. Rather than query the processor cache directory prior to each memory access to determine if the processor cache contains an updated copy of requested data, the remote device may query its remote copy.
-
Citations
23 Claims
-
1. A method of maintaining coherency of data accessed by a remote device, comprising:
-
receiving, by a remote device, a bus transaction containing cache coherency information indicating a change to a cache directory residing on a processor that initiated the bus transaction; and
updating a cache directory residing on the remote device, based on the cache coherency information, to reflect the change to the cache directory residing on the processor. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of maintaining coherency of data, wherein the data is cacheable by a processor and accessible by a remote device, comprising:
-
maintaining a cache directory on the remote device, the cache directory containing entries indicating the contents and coherency state of corresponding cache lines on the processor as indicated by cache coherency information transmitted to the remote device by the processor;
receiving, at the remote device, a request to access data associated with a memory location;
examining the cache directory residing on the remote device to determine if a copy of the requested data resides in a processor cache in a non-invalid state; and
it the cache directory residing on the remote device indicates a copy of the requested data does not reside in a processor cache in a non-invalid state, accessing the requested data from memory without sending a request to the processor. - View Dependent Claims (8, 9)
-
-
10. A method of maintaining coherency, comprising:
-
allocating a cache line by a processor, resulting in a change to a cache directory residing on the processor; and
generating a bus transaction to a remote device containing cache coherency information identifying the allocated cache line. - View Dependent Claims (11, 12, 14, 15)
-
-
13. A method of maintaining cache coherency, comprising:
-
de-allocating a cache line by a processor, resulting in a change to a cache directory residing on the processor; and
generating a bus transaction to a remote device containing cache coherency information identifying the de-allocated cache line.
-
-
16. A device configured to access data stored in memory and cacheable by a processor, comprising:
-
one or more processing cores;
a cache directory indicative of contents of a cache residing on the processor; and
snoop logic configured to receive cache coherency information sent by the processor in bus transactions and update the cache directory based on the cache coherency information, to reflect changes to the contents of the cache residing on the processor. - View Dependent Claims (17, 18)
-
-
19. A processor, comprising:
-
one or more processing cores;
a cache for storing data accessed from external memory by the processing cores;
a cache directory with entries indicating which memory locations are stored in cache lines of the cache and corresponding coherency states thereof; and
control logic configured to detect internal bus transactions indicating the allocation and de-allocation of cache lines and, in response, generate external bus transactions to a remote device, each containing cache coherency information indicating cache line that has been allocated or de-allocated.
-
-
20. A coherent system, comprising:
-
a processor having a cache for storing data accessed from external memory, a cache directory with entries indicating which memory locations are stored in cache lines of the cache and corresponding coherency states thereof, and control logic configured to detect internal bus transactions indicating the allocation and de-allocation of cache lines and, in response, generate bus transactions, each containing cache coherency information indicating cache line that has been allocated or de-allocated; and
a remote device having a remote cache directory indicative of contents of the cache residing on the processor and snoop logic configured to update the remote cache directory, based on cache coherency information contained in the external bus transactions generated by the processor control logic, to reflect allocated and de-allocated cache lines of the processor cache. - View Dependent Claims (21, 22, 23)
-
Specification