Changes between Version 11 and Version 12 of CacheCoherence


Ignore:
Timestamp:
Jun 8, 2010, 12:47:27 AM (14 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CacheCoherence

    v11 v12  
    6161the target is a memory cache controller, acting as a physical memory bank, or another VCI target peripheral. This target can be located in any cluster.
    6262
    63 The L1 cache controller can issue several simultaneous VCI transactions, that must be distinguished by the TRDID field value.
     63The L1 cache controller can issue several simultaneous VCI transactions, that must be distinguished by the PKTID field value. The VCI TRDID field is not used.
    6464
    65  * A '''READ''' transaction can be a single word request (in case of uncached access), or a burst, corresponding to a complete cache line (16 words).
    66 A READ burst transaction initiated by any DMA controller must respect the same 16 words cache line format.
    67 For all READ transaction, the VCI command packet contains one single VCI flit. The  VCI CMD field contains the VCI_READ code.
    68 The VCI PLEN field is used to define the burst length. A READ transaction has a type, encoded in the VCI TRDID field :
    69 The MSB bit of the TRDID field has the value 1. Bit 0 of the TRID field is 0 for an uncached access, and 1 for a cached access.
    70 Bit 1 of the TRDID field is 0 for a data cache request, and 1 for an instruction cache request.
    71 The response packet contains one VCI flit (single word) or 16 VCI flits (cache line).
    72 The VCI PKTID field is not used.
    7365
    74  * A '''WRITE''' transaction can be a single word request or a variable length burst request. In case of burst, the VCI command packet contains
    75 at most 8 VCI flits, with consecutive addresses. All words belong to the same half cache line, and the VCI BE field can have different values
    76 for each flit (including the zero value). The VCI response packet contains one VCI flit.
    77 A WRITE burst transaction initiated by any DMA controller must respect the same 8 aligned words constraint. 
    78 The VCI CMD field contains the VCI_WRITE code.
    79 The MSB bit of the TRDID field has the value 0. The LSB bits of the TRDID field define the index of the write transaction.
    80 When these LSB bits have a non zero value, the write request is “posted” : The VCI target must send a response
    81 to respect the VCI protocol, but this response can be send before the write is actually performed. This can be used by by the VCI/HT bridge.
    82 The VCI PKTID fields is not used.
    83 If the modified cache line is replicated in one or several other L1 caches, the memory cache must guaranty that all copies have been
     66 * A '''READ''' transaction can be a single word request (in case of uncached access), or a burst, corresponding to a complete cache line (16 words). A READ burst transaction initiated by any DMA controller must respect the same 16 words cache line format. For all READ transaction, the VCI command packet contains one single VCI flit. The  VCI CMD field contains the VCI_READ code. The VCI PLEN field is used to define the burst length (number of bytes). A READ transaction has a type, encoded in the three LSB bits of the VCI PKTID field, and the the LSB bit must be 0.
     67
     68|| Uncached Data        ||000||
     69|| Uncached Instruction ||010||
     70|| Cached Data          ||100||
     71|| Cached Instruction   ||110||
     72
     73 * A '''WRITE''' transaction can be a single word request or a variable length burst request. In case of burst, the VCI command packet contains at most 8 VCI flits, with consecutive addresses. All words belong to the same half cache line, and the VCI BE field can have different values for each flit (including the zero value). The VCI response packet contains one VCI flit. A WRITE burst transaction initiated by any DMA controller must respect the same 8 aligned words constraint. The VCI CMD field contains the VCI_WRITE code. The LSB bit of the PKTID field has the value 1. The other bits in the PKTID field can be used to code the slot index in the write buffer. If the modified cache line is replicated in one or several other L1 caches, the memory cache must guaranty that all copies have been
    8474updated or invalidated before the WRITE transaction is acknowledged.
    8575
    8676 * 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.
     77For 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 PKTID field takes the 0 value for all LL or SC packets.
    9078
    9179=== 2.2 Coherence transactions ===
    9280
    93 For each cache line stored in the memory cache, the memory cache implements a Registration Table that contain the copies replicated
    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
    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,
    96 this defines two separated entries in the Registration Table. When the number copies for a given cache line L exceeds the DHCCP threshold,
    97 the corresponding Registration Table is flushed, and the memory cache registers only the number of copies.
     81For each cache line stored in the memory cache, the memory cache implements a Registration Table that contain the copies replicated 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 of the copy (instruction/data). When the same cache line is replicated in both the instruction cache and the data cache of a processor, this defines two separated entries in the Registration Table. When the number copies for a given cache line L exceeds the DHCCP threshold, the corresponding Registration Table is flushed, and the memory cache registers only the number of copies.
    9882
    9983The coherence transactions use a logically separated ''coherence network'', implementing a separated address space.
    10084All these transactions are write transactions.
    10185 
    102  * A '''MULTI_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request
    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
    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
    105 of the memory mapped UPDATE register in the L1 cache. The VCI CMD field contains the VCI_WRITE code. As the memory cache controller can
    106 handle several simultaneous update/invalidate transactions, the VCI TRDID field contains the transaction index. The VCI PLEN field contains the value  4*N,
    107 where N is the actual number of modified words in the cache line. The line index (34 bits) is transported in the VCI WDATA and VCI BE fields (the two LSB bits),
    108 of the first flit. The first modified word index (3 bits) is transported in the WDATA field of the second flit, and the N modified words in the WDATA and BE fields
    109 of the N following flits. For each modified word, the VCI BE field can have a different value (including the 0x0 value).
    110 The VCI response packet contains one single flit. The memory cache controller counts the number of VCI responses to detect the completion
    111 of the MULTICAST_UPDATE transaction.
     86 * A '''MULTI_UPDATE''' transaction is a multi-cast transaction sent by the memory cache controller when it receives a WRITE request 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 of registered copies (but the writer). The VCI command packet contains (N+2) flits. The VCI ADDRESS field is constant and contains the address of the memory mapped UPDATE register in the L1 cache. The VCI CMD field contains the VCI_WRITE code. As the memory cache controller can handle several simultaneous update/invalidate transactions, the VCI PKTID field contains the transaction index. The VCI PLEN field contains the value  4*N, where N is the actual number of modified words in the cache line. The line index (34 bits) is transported in the VCI WDATA and VCI BE fields (the two LSB bits), of the first flit. The first modified word index (3 bits) is transported in the WDATA field of the second flit, and the N modified words in the WDATA and BE fields
     87of the N following flits. For each modified word, the VCI BE field can have a different value (including the 0x0 value). The VCI response packet contains one single flit. The memory cache controller counts the number of VCI responses to detect the completion of the MULTICAST_UPDATE transaction.
    11288
    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
    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
    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
    116 of the memory mapped INVAL register in the L1 cache. The VCI CMD field contains the VCI_WRITE code. As the memory cache controller can handle several
    117 update/invalidate transactions simultaneously, the VCI TRDID field contains the transaction index.The VCI WDATA and VCI BE (the two LSB bits) fields contain the
    118 34 bits line index. The memory cache controller counts the number of VCI responses to detect the completion of the  MULTI_INVAL transaction.
     89 * A '''MULTI_INVAL''' transaction is a multi-cast transaction, that is composed of several VCI transactions. When a memory cache makes a cache line 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 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 of the memory mapped INVAL register in the L1 cache. The VCI CMD field contains the VCI_WRITE code. As the memory cache controller can handle several update/invalidate transactions simultaneously, the VCI PKTID field contains the transaction index.The VCI WDATA and VCI BE (the two LSB bits) fields contain the 34 bits line index. The memory cache controller counts the number of VCI responses to detect the completion of the  MULTI_INVAL transaction.
    11990
    120  * A '''BROADCAST_INVAL''' transaction is a broadcast transaction. This transaction is initiated when a memory cache controller replaces a line,
    121 or receives a WRITE request to a replicated cache line, and this cache line has a number of copies larger than the DHCCP threshold.
    122 The VCI command packet contains one single flit. This packet is replicated and dynamically broadcasted by the network itself.
    123 The VCI CMD field contains the VCI_WRITE code. The VCI ADDRESS field contains the global broadcast address 0x0000000003
    124 (only the two LSB bits are set). The VCI WDATA and the VCI BE (the two LSB bits) field contain the line index.
    125 This VCI command is broadcasted to all L1 caches in the system, but only L1 caches that have a copy send a VCI response packet.
    126 All VCI response packets are independently returned to the memory cache initiator, that counts the number of VCI responses
    127 to detect the completion of the BROADCAST_INVAL transaction.
    128 If a L1 cache contains two copies of a cache line (i.e. the line is replicated in both the DATA cache, and the INSTRUCTION cache), it must send two VCI responses.
     91 * A '''BROADCAST_INVAL''' transaction is a broadcast transaction. This transaction is initiated when a memory cache controller replaces a line, or receives a WRITE request to a replicated cache line, and this cache line has a number of copies larger than the DHCCP threshold. The VCI command packet contains one single flit. This packet is replicated and dynamically broadcasted by the network itself. The VCI CMD field contains the VCI_WRITE code. The VCI ADDRESS field contains the global broadcast address 0x0000000003 (only the two LSB bits are set). The VCI WDATA and the VCI BE (the two LSB bits) field contain the line index. This VCI command is broadcasted to all L1 caches in the system, but only L1 caches that have a copy send a VCI response packet. All VCI response packets are independently returned to the memory cache initiator, that counts the number of VCI responses to detect the completion of the BROADCAST_INVAL transaction. If a L1 cache contains two copies of a cache line (i.e. the line is replicated in both the DATA cache, and the INSTRUCTION cache), it must send two VCI responses.
    12992
    130  * A '''CLEANUP''' transaction is initiated by a L1 cache controller to a memory cache controller, to signal that a cache line copy
    131 has been removed from an instruction or data cache. Both the VCI command packet and the VCI response packet contain one single flit.
    132 For a CLEANUP transaction, the VCI ADDRESS field must contain the removed cache line address, and the VCI TRDID field must contain a non zero value.
    133 
    134 
     93 * A '''CLEANUP''' transaction is initiated by a L1 cache controller to a memory cache controller, to signal that a cache line copy has been removed from an instruction or data cache. Both the VCI command packet and the VCI response packet contain one single flit. For a CLEANUP transaction, the VCI ADDRESS field must contain the removed cache line address.
    13594
    13695=== 2.3 External transactions ===