If the request will modify the cache line, you can skip the write-back since the cache line is now in another cache with the dirty bit set, still waiting to be written to memory.
This comment was marked helpful 0 times.
xiaowend
All green staff here deal with logic to serve request from processors.
All yellow staff here deal with logic to serve request from the bus.
This comment was marked helpful 0 times.
danielk2
Question I have a question with terminology here. What does 'outstanding bus request' mean?
This comment was marked helpful 0 times.
lazyplus
@danielk2: I think that request is the write back request for the dirty line.
When the processor wants to flush the dirty line, it issues a request to write back. Because of the write back buffer, the processor can continue without the request been granted to process. Instead, the dirty line comes into the buffer. But the request is still outstanding. When the request is granted to process, the write back buffer will flush the dirty line to the bus.
This comment was marked helpful 0 times.
kayvonf
@lazyplus is correct.
This comment was marked helpful 0 times.
ToBeContinued
One interesting thing I read about is that the writes from processor to write-back buffer is often less than the writes from write-back buffer to memory. This is because if a dirty line sit in write-back buffer when another processor request a write to the very same line, we can forward this line from the write-back buffer to the new processor, and remove it from the write-back buffer. The responsibility of flushing the dirty line back is now transferred to the new processor.
This comment was marked helpful 0 times.
raphaelk
My guess is
If processor A can get dirty-lines from another processor B's write back buffer, processor B has to invalidate that cache line (or at least take dirty bit off). If two processors have dirty bit on on same cache line, there could be coherence issues and if the line is not invalidated, processor B is reading on a line that is not reflected to all processors.
If the request will modify the cache line, you can skip the write-back since the cache line is now in another cache with the dirty bit set, still waiting to be written to memory.
This comment was marked helpful 0 times.
All green staff here deal with logic to serve request from processors.
All yellow staff here deal with logic to serve request from the bus.
This comment was marked helpful 0 times.
Question I have a question with terminology here. What does 'outstanding bus request' mean?
This comment was marked helpful 0 times.
@danielk2: I think that request is the write back request for the dirty line.
When the processor wants to flush the dirty line, it issues a request to write back. Because of the write back buffer, the processor can continue without the request been granted to process. Instead, the dirty line comes into the buffer. But the request is still outstanding. When the request is granted to process, the write back buffer will flush the dirty line to the bus.
This comment was marked helpful 0 times.
@lazyplus is correct.
This comment was marked helpful 0 times.
One interesting thing I read about is that the writes from processor to write-back buffer is often less than the writes from write-back buffer to memory. This is because if a dirty line sit in write-back buffer when another processor request a write to the very same line, we can forward this line from the write-back buffer to the new processor, and remove it from the write-back buffer. The responsibility of flushing the dirty line back is now transferred to the new processor.
This comment was marked helpful 0 times.
My guess is
If processor A can get dirty-lines from another processor B's write back buffer, processor B has to invalidate that cache line (or at least take dirty bit off). If two processors have dirty bit on on same cache line, there could be coherence issues and if the line is not invalidated, processor B is reading on a line that is not reflected to all processors.
This comment was marked helpful 0 times.