Changes between Version 9 and Version 10 of CacheCoherence


Ignore:
Timestamp:
Feb 7, 2010, 4:06:10 PM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CacheCoherence

    v9 v10  
    1616
    1717The 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 INVALIDATE request to all L1 caches containing a copy (but the writer).
    19 The write request is acknowledged only when all UPDATE or INVALIDATE transactions are completed.
     18he must send an UPDATE or INVAL request to all L1 caches containing a copy (but the writer).
     19The write request is acknowledged only when all UPDATE or INVAL transactions are completed.
    2020
    2121In the TSAR architecture, the memory controller is distributed, as it is implemented by the distributed memory caches
     
    2626In 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,
    2727all copies of the evicted cache line in L1 caches must be invalidated. To do it, the memory cache controller must send
    28 INVALIDATE requests to all L1 caches containing a copy.
     28invalidate requests to all L1 caches containing a copy.
    2929
    3030The TSAR architecture wants to guaranty the cache coherence by hardware, for both the data and instruction L1 caches.
    3131The 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 number
     32The modifications of shared code are very rare events (self modifying code, or dynamic libraries), but the number
    3333of replicated copies can be very large ( the exception handler, or the libc are generally replicated in all L1 caches ).
    3434Reflecting the different behaviour of data & instruction caches, the "hybrid" cache coherence protocol DHCCP defines two different strategies,
     
    3636 * '''MULTICAST_UPDATE''' :  When the number of copies is smaller than the DHCCP threshold, the memory cache controller registers the locations
    3737of all the copies, and send a ''multicast_update'' transaction to each concerned L1 cache in case of modification.
    38  * '''BROADCAST_INVALIDATE''' :  When the number of copies is larger than the DHCCP threshold, the memory cache controller registers only the number
     38 * '''BROADCAST_INVAL''' :  When the number of copies is larger than the DHCCP threshold, the memory cache controller registers only the number
    3939of copies (without localization) and send a ''broadcast_invalidate'' transaction  to all L1 caches in case of modication. 
    4040
     
    4343Three types of transactions, have been identified :
    4444 * Direct transactions : READ / WRITE / LL / SC
    45  * Coherence transactions : MULTI_UPDATE / MULTI_INVALIDATE / BROADCAST_INVALIDATE / CLEANUP
     45 * Coherence transactions : MULTI_UPDATE / MULTI_INVAL / BROADCAST_INVAL / CLEANUP
    4646 * External transactions : PUT / GET
    4747       
     
    5252Symmetrically, a WRITE command packet contains N flits, and the corresponding WRITE response packet contains one single flit.
    5353
    54 There is one exception : For a BROADCAST_INVALIDATE transaction, the initiator sends one single flit VCI packet,
     54There is one exception : For a BROADCAST_INVAL transaction, the initiator sends one single flit VCI packet,
    5555but receives several single flit VCI response packets.
    5656 
     
    8484updated or invalidated before the WRITE transaction is acknowledged.
    8585
    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).
     87For both a  LL (Linked Load) or a SC (Store Conditionnal) transaction, the VCI command packet and the VCI response packet
     88contain one single VCI flit. The VCI CMD field must contain the VCI_LINKED_READ value (resp. VCI_STORE_CONDITIONNAL value).
     89The VCI VCI PKTID and TRDID fields are not used.
    8790
    8891=== 2.2 Coherence transactions ===
    8992
    90 For each cache line stored in the memory cache, the memory cache implement a Registration Table that contain the copies replicated
     93For each cache line stored in the memory cache, the memory cache implements a Registration Table that contain the copies replicated
    9194in 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
    9295of the copy (instruction/data). When the same cache line is replicated in both the instruction cache and the data cache of a processor,
     
    97100All these transactions are write transactions.
    98101 
    99  * A '''MULTICAST_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request
     102 * A '''MULTI_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request
    100103to a replicated cache line and the number of copies does not exceeds the DHCCP threshold. It sends as many VCI transactions as the number
    101104of registered copies (but the writer). The VCI command packet contains (N+2) flits. The VCI ADDRESS field is constant and contains the address
     
    108111of the MULTICAST_UPDATE transaction.
    109112
    110  * A '''MULTICAST_INVALIDATE''' transaction is a multi-cast transaction, that is composed of several VCI transactions. When a memory cache makes a cache line
     113 * A '''MULTI_INVAL''' transaction is a multi-cast transaction, that is composed of several VCI transactions. When a memory cache makes a cache line
    111114replacement (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
    112115as 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