US6976131B2ExpiredUtilityA1

Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system

86
Assignee: INTEL CORPPriority: Aug 23, 2002Filed: Aug 23, 2002Granted: Dec 13, 2005
Est. expiryAug 23, 2022(expired)· nominal 20-yr term from priority
G06F 12/0811G06F 12/0831
86
PatentIndex Score
54
Cited by
7
References
25
Claims

Abstract

A method and apparatus for shared cache coherency for a chip multiprocessor or a multiprocessor system. In one embodiment, a multicore processor includes a plurality of processor cores, each having a private cache, and a shared cache. An internal snoop bus is coupled to each private cache and the shared cache to communicate data from each private cache to other private caches and the shared cache. In another embodiment, an apparatus includes a plurality of processor cores and a plurality of caches. One of the plurality of caches maintains cache lines in two different modified states. The first modified state indicates a most recent copy of a modified cache line, and the second modified state indicates a stale copy of the modified cache line.

Claims

exact text as granted — not AI-modified
1. An apparatus comprising:
 a plurality of processor cores, each processor core comprising a private cache implementing a multi-state protocol;  
 a shared cache implementing a second multi-state protocol including a plurality of states comprising a first modified state in which the shared cache has a stale copy of a cache line that is modified in the private cache of one of the plurality of processor cores and a second modified state in which the shared cache has a most recent copy of a modified cache line.  
 
   
   
     2. The apparatus of  claim 1  further comprising an internal snoop bus coupled to each private cache and the shared cache to communicate data from each private cache to other private caches and the shared cache. 
   
   
     3. The apparatus of  claim 1  wherein said multi-state protocol is a MESI prorocol and wherein said shared cache multi-state protocol is a multi-state having a plurality of states consisting of four states. 
   
   
     4. The apparatus of  claim 1  wherein said plurality of states further comprises:
 a shared state in which the shared cache stores a line that is also stored by other caches;  
 an invalid state, wherein each cache line in the shared cache is stored in one of the first modified state, the second modified state, the shared state or the invalid state.  
 
   
   
     5. The apparatus of  claim 3  wherein a write to a cache line corresponding to a first address by a first processor of said plurality of processor cores is to set said cache line to a modified state in a first private cache associated with said first processor and is to set a shared cache line corresponding to said first address to the first modified state of said shared cache multi-state cache protocol. 
   
   
     6. The apparatus of  claim 3  wherein an eviction of a cache line corresponding to a first address by a first one of said plurality of processor cores is to write back said cache line to said shared cache, to set said cache line to an invalid state, and is to set a shared cache line corresponding to the first address to the second modified state of the shared cache multi-state cache protocol. 
   
   
     7. The apparatus of  claim 4  wherein said multi-state cache protocol is a MESI protocol and wherein said plurality of states consists of the first modified state, the second modified state, the shared state, and the invalid state. 
   
   
     8. The apparatus of  claim 3  wherein each private cache further comprises:
 clean line sharing logic to opportunistically write back data to other private caches.  
 
   
   
     9. The apparatus of  claim 1  wherein said apparatus comprises machine readable data carried on a machine readable medium. 
   
   
     10. An apparatus comprising:
 a plurality of processor cores;  
 a plurality of caches, a first one of said plurality of caches to maintain a plurality of cache lines in one of a plurality of states, said plurality of states comprising: 
 a first modified state indicating a most recent copy of a modified line;  
 a second modified state indicating a stale copy of the modified line.  
 
 
   
   
     11. The apparatus of  claim 10  wherein said plurality of states further comprises a shared state and an invalid state, wherein each cache line has an associated cache state entry indicating one of the first modified state, the second modified state, the shared state or the invalid state. 
   
   
     12. The apparatus of  claim 10  further comprising:
 a first internal bus coupling the plurality of processor cores;  
 an internal coherency bus coupled to each of said plurality of caches and to communicate between said plurality of caches;  
 clean line sharing logic to opportunistically write modified data from one cache to other caches via the internal coherency bus.  
 
   
   
     13. The apparatus of  claim 11  wherein other ones of said plurality of caches maintain cache lines according to a second protocol comprising a second plurality of states. 
   
   
     14. The apparatus of  claim 13  wherein said other ones of said plurality of caches are a plurality of private level N caches and wherein said first one of said plurality of caches is a shared level N+1 cache. 
   
   
     15. The apparatus of  claim 14  wherein said second protocol comprises a MESI protocol. 
   
   
     16. A method comprising:
 maintaining a first four state cache protocol for said shared cache, wherein said first four state cache protocol includes a modified most recent copy state, a modified stale state, a shared state, and an invalid state;  
 maintaining a second four state cache protocol for said plurality of internal private caches, wherein said second four state cache protocol includes a modified state, an exclusive state, a shared state, and an invalid state.  
 
   
   
     17. The method of  claim 16  further comprising:
 driving snoop cycles to a plurality of internal private caches and a shared cache on an internal snoop bus;  
 driving cache miss cycles to a memory via an external bus.  
 
   
   
     18. The method of  claim 17  further comprising:
 opportunistically sharing write back data among private caches as bandwidth permits.  
 
   
   
     19. The method of  claim 16  further comprising:
 transitioning a first cache line to a first modified state in which the first cache line contains a stale copy of a cache line but another cache contains a modified copy of information associated with said first cache line.  
 
   
   
     20. The method of  claim 19  further comprising:
 transitioning a second cache line to a second modified state in which the second cache line contains a most recent copy of information associated with said cache line.  
 
   
   
     21. The method of  claim 16  further comprising sharing lines between said plurality of internal private caches. 
   
   
     22. A system comprising:
 a multicore processor comprising: 
 a plurality of processors;  
 a plurality of associated caches;  
 a shared cache;  
 coherency logic to maintain a plurality of cache lines in one of a plurality of states, said plurality of states comprising a most recent copy modified state and a stale modified state, said coherency logic to maintain a first data item having a corresponding first address in said stale modified state and a second data item having a corresponding second address in said most recent copy modified state;  
 
 a memory coupled to the multicore processor, said memory to store a third data item at said first address and a fourth data item at said second address, said memory being optionally updated to copy said first data item to said first address.  
 
   
   
     23. The system of  claim 22  wherein said multicore processor further comprises an internal snoop bus coupling said plurality of caches to allow data transfer between said plurality of caches in response to snoop cycles on the internal snoop bus. 
   
   
     24. The system of  claim 22  wherein said system is a server computer system. 
   
   
     25. The system of  claim 23  further comprising logic to share lines between said plurality of associated caches in response to snoop cycles on the internal snoop bus.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.