By: Matthias (spam.delete@this.Idonthaveemail.com), September 17, 2007 6:59 am
Room: Moderated Discussions
David Kanter (dkanter@realworldtech.com) on 9/16/07 wrote:
---------------------------
>No, you don't get it. The O state actually ELIMINATES THE WRITE. Let me give you a concrete example:
>
>CPU0 writes a cache line
>CPU1,2 ask for a shared copy, CPU 0 has it in O, others in S
>CPU1,2 read cache line
>CPU 0 writes again and invalidates CPU1,2, leaving cache line in M state
>CPU1,2 ask for a shared copy, CPU 0 has it in O, others in S
>
>Repeat...
>
>Now I don't know how often this happens, but this sequence only requires a single
>write back at the end. Under the MESIF system, you'd actually have to write it
>back for every iteration. So you actually could save quite a few writes with an O state.
>
>DK
>
I think the point Peter Gerdes wants to make is that with MESIF you don't have to _immediately_ write back the cache line to memory as long as the home node has the cache line in its cache. Memory is only updated when the cache line is evicted at the home node.
In the above scenario, this would eliminate the writes to memory and would perform comparably to MOESI. Only in cases where remote nodes write to the cache line results in invalidation in the other caches and a write to memory. In this case MOESI can save the writes until the single write back at the end and is therefore advantageous to MESIF.
---------------------------
>No, you don't get it. The O state actually ELIMINATES THE WRITE. Let me give you a concrete example:
>
>CPU0 writes a cache line
>CPU1,2 ask for a shared copy, CPU 0 has it in O, others in S
>CPU1,2 read cache line
>CPU 0 writes again and invalidates CPU1,2, leaving cache line in M state
>CPU1,2 ask for a shared copy, CPU 0 has it in O, others in S
>
>Repeat...
>
>Now I don't know how often this happens, but this sequence only requires a single
>write back at the end. Under the MESIF system, you'd actually have to write it
>back for every iteration. So you actually could save quite a few writes with an O state.
>
>DK
>
I think the point Peter Gerdes wants to make is that with MESIF you don't have to _immediately_ write back the cache line to memory as long as the home node has the cache line in its cache. Memory is only updated when the cache line is evicted at the home node.
In the above scenario, this would eliminate the writes to memory and would perform comparably to MOESI. Only in cases where remote nodes write to the cache line results in invalidation in the other caches and a write to memory. In this case MOESI can save the writes until the single write back at the end and is therefore advantageous to MESIF.