Changes between Version 9 and Version 10 of CacheCoherence
- Timestamp:
- Feb 7, 2010, 4:06:10 PM (15 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
CacheCoherence
v9 v10 16 16 17 17 The basic mechanism is the following : when the memory controller receives a WRITE request for a given cache line, 18 he must send an UPDATE or INVAL IDATErequest to all L1 caches containing a copy (but the writer).19 The write request is acknowledged only when all UPDATE or INVAL IDATEtransactions are completed.18 he must send an UPDATE or INVAL request to all L1 caches containing a copy (but the writer). 19 The write request is acknowledged only when all UPDATE or INVAL transactions are completed. 20 20 21 21 In the TSAR architecture, the memory controller is distributed, as it is implemented by the distributed memory caches … … 26 26 In case of MISS, the memory cache controller must evict a victim line to bring in the missing line. In order to maintain the inclusive property, 27 27 all copies of the evicted cache line in L1 caches must be invalidated. To do it, the memory cache controller must send 28 INVALIDATErequests to all L1 caches containing a copy.28 invalidate requests to all L1 caches containing a copy. 29 29 30 30 The TSAR architecture wants to guaranty the cache coherence by hardware, for both the data and instruction L1 caches. 31 31 The modifications of shared data are very frequent events, but the number of copies is generally not very high. 32 The modifications of shared code are very rare events ( self modifying code, or dynamic libraries), but the number32 The modifications of shared code are very rare events (self modifying code, or dynamic libraries), but the number 33 33 of replicated copies can be very large ( the exception handler, or the libc are generally replicated in all L1 caches ). 34 34 Reflecting the different behaviour of data & instruction caches, the "hybrid" cache coherence protocol DHCCP defines two different strategies, … … 36 36 * '''MULTICAST_UPDATE''' : When the number of copies is smaller than the DHCCP threshold, the memory cache controller registers the locations 37 37 of all the copies, and send a ''multicast_update'' transaction to each concerned L1 cache in case of modification. 38 * '''BROADCAST_INVAL IDATE''' : When the number of copies is larger than the DHCCP threshold, the memory cache controller registers only the number38 * '''BROADCAST_INVAL''' : When the number of copies is larger than the DHCCP threshold, the memory cache controller registers only the number 39 39 of copies (without localization) and send a ''broadcast_invalidate'' transaction to all L1 caches in case of modication. 40 40 … … 43 43 Three types of transactions, have been identified : 44 44 * Direct transactions : READ / WRITE / LL / SC 45 * Coherence transactions : MULTI_UPDATE / MULTI_INVAL IDATE / BROADCAST_INVALIDATE/ CLEANUP45 * Coherence transactions : MULTI_UPDATE / MULTI_INVAL / BROADCAST_INVAL / CLEANUP 46 46 * External transactions : PUT / GET 47 47 … … 52 52 Symmetrically, a WRITE command packet contains N flits, and the corresponding WRITE response packet contains one single flit. 53 53 54 There is one exception : For a BROADCAST_INVAL IDATEtransaction, the initiator sends one single flit VCI packet,54 There is one exception : For a BROADCAST_INVAL transaction, the initiator sends one single flit VCI packet, 55 55 but receives several single flit VCI response packets. 56 56 … … 84 84 updated or invalidated before the WRITE transaction is acknowledged. 85 85 86 * The TSAR architecture supports the '''LL/SC''' mechanism for atomic operations (see AtomicOperations). For both a LL (Linked Load) or a SC (Store Conditionnal) transaction, the VCI command packet and the VCI response packet contain one single VCI flit. The VCI CMD field must contain the VCI_LINKED_READ value (resp. VCI_STORE_CONDITIONNAL value). The VCI VCI PKTID and TRDID fields are not used. 86 * The TSAR architecture supports the '''LL/SC''' mechanism for atomic operations (see AtomicOperations). 87 For both a LL (Linked Load) or a SC (Store Conditionnal) transaction, the VCI command packet and the VCI response packet 88 contain one single VCI flit. The VCI CMD field must contain the VCI_LINKED_READ value (resp. VCI_STORE_CONDITIONNAL value). 89 The VCI VCI PKTID and TRDID fields are not used. 87 90 88 91 === 2.2 Coherence transactions === 89 92 90 For each cache line stored in the memory cache, the memory cache implement a Registration Table that contain the copies replicated93 For each cache line stored in the memory cache, the memory cache implements a Registration Table that contain the copies replicated 91 94 in the L1 caches. Each entry in this Registration Table contains the SRCID of the L1 cache that contains a copy, as well as the type 92 95 of the copy (instruction/data). When the same cache line is replicated in both the instruction cache and the data cache of a processor, … … 97 100 All these transactions are write transactions. 98 101 99 * A '''MULTI CAST_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request102 * A '''MULTI_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request 100 103 to a replicated cache line and the number of copies does not exceeds the DHCCP threshold. It sends as many VCI transactions as the number 101 104 of registered copies (but the writer). The VCI command packet contains (N+2) flits. The VCI ADDRESS field is constant and contains the address … … 108 111 of the MULTICAST_UPDATE transaction. 109 112 110 * A '''MULTI CAST_INVALIDATE''' transaction is a multi-cast transaction, that is composed of several VCI transactions. When a memory cache makes a cache line113 * A '''MULTI_INVAL''' transaction is a multi-cast transaction, that is composed of several VCI transactions. When a memory cache makes a cache line 111 114 replacement (following a MISS in the memory cache), and the victim line has a number of copies smaller than the DHCCP threshold, it sends as many VCI transactions 112 115 as the number of registered copies. Both the VCI command packet and the VCI response packet contain only one flit. The VCI ADDRESS field contains the address