IP Library Granted Patent US 8,631,210
Granted Patent B2
US 8,631,210 · App. 13/786,305 · Granted Jan 14, 2014

Allocation and write policy for a glueless area-efficient directory cache for hotly contested cache lines

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,631,210
App. No.
13/786,305
Granted
Jan 14, 2014
Kind
B2
Abstract

Methods and apparatus relating to allocation and/or write policy for a glueless area-efficient directory cache for hotly contested cache lines are described. In one embodiment, a directory cache stores data corresponding to a caching status of a cache line. The caching status of the cache line is stored for each of a plurality of caching agents in the system. An write-on-allocate policy is used for the directory cache by using a special state (e.g., snoop-all state) that indicates one or more snoops are to be broadcasted to all agents in the system. Other embodiments are also disclosed.

Claims (30)

1. An apparatus comprising:

a first agent to receive a request corresponding to a cache line associated with the first agent, from a second agent; and

a directory cache, coupled to the first agent, to store data corresponding to a caching status of the cache line in each of a plurality of caching agents coupled to the first agent,

wherein an entry in the directory cache is to be deallocated in the directory cache in response to a hit, corresponding to the request, in the directory cache and a determination that the request is a local request.

2. The apparatus of claim 1 , wherein the caching status is to be determined based on a presence vector corresponding to a plurality of prior requests or snoop responses from two or more corresponding caching agents of the plurality of caching agents.

3. The apparatus of claim 2 , further comprising a memory to store a copy of the presence vector with a copy of the cache line.

4. The apparatus of claim 1 , wherein the caching status is to be determined based on a presence vector corresponding to a plurality of prior requests or snoop responses from all of the plurality of caching agents.

5. The apparatus of claim 4 , further comprising a memory to store a copy of the presence vector with a copy of the cache line.

6. The apparatus of claim 1 , wherein entries are to be allocated in the directory cache for cache lines having a high probability of encountering a future snoop critical access.

7. The apparatus of claim 1 , wherein the cache line has a state selected from a group consisting of: a modified state and exclusive state.

8. The apparatus of claim 1 , wherein the cache line has a state other than invalid or shared.

9. The apparatus of claim 1 , wherein the first agent is to send one or more snoops to one or more of the plurality of caching agents identified by the directory cache to have a copy of data corresponding to the request.

10. The apparatus of claim 1 , wherein the entry in the directory cache is to be allocated in response to a response forwarded from a non-local caching agent.

11. The apparatus of claim 1 , wherein two or more of the first agent, the second agent, and the directory cache are on a same integrated circuit die.

12. A method comprising:

receiving a request corresponding to a cache line associated with a first agent, from a second agent;

storing data corresponding to a caching status of the cache line in each of a plurality of caching agents coupled to the first agent; and

deallocating an entry in a directory cache in response to a hit, corresponding to the request, in the directory cache and a determination that the request is a local request.

13. The method of claim 12 , further comprising determining the caching status based on a presence vector corresponding to a plurality of prior requests or snoop responses from two or more corresponding caching agents of the plurality of caching agents.

14. The method of claim 12 , further comprising determining the caching status based on a presence vector corresponding to a plurality of prior requests or snoop responses from all of the plurality of caching agents.

15. The method of claim 12 , further comprising allocating entries in the directory cache for cache lines having a high probability of encountering a future snoop critical access.

16. The method of claim 12 , further comprising the first agent sending one or more snoops to one or more of the plurality of caching agents identified by the directory cache to have a copy of data corresponding to the request.

17. A computing system comprising:

a memory to store a copy of data stored in a directory cache;

a first processor to receive a request corresponding to a cache line associated with the first processor, from a second processor; and

a directory cache, coupled to the first processor, to store data corresponding to a caching status of the cache line in each of a plurality of caching agents coupled to the first processor,

wherein an entry in the directory cache is to be deallocated in the directory cache in response to a hit, corresponding to the request, in the directory cache and a determination that the request is a local request.

18. The system of claim 17 , wherein the caching status is to be determined based on a presence vector corresponding to a plurality of prior requests or snoop responses from two or more corresponding caching agents of the plurality of caching agents.

19. The system of claim 17 , wherein entries are to be allocated in the directory cache for cache lines having a high probability of encountering a future snoop critical access.

20. The system of claim 17 , wherein the entry in the directory cache is to be allocated in response to a response forwarded from a non-local caching agent.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →