Previous | Next --- Slide 17 of 52
Back to Lecture Thumbnails
jmc

The second sub-bullet of the first bullet here is important but wasn't emphasized that much in the lecture (maybe because it seems obvious, but it confused me for a bit). We only re-order reads before writes when they are not reading the address written to (X here); otherwise, our program would not execute according to the semantics of the original order of instructions. We saw the same point when we learned about ILP, and indeed, the point of relaxing the ordering is to exploit ILP to improve performance.

POTUS

In that diagram, a write-back buffer would exist at the arrow pointing out from the cache?

myeditha

(Thanks to @kayvonf for the redirection) Is there any implementation of write buffering that utilizes a W->W reordering? Is it not a good idea for some reason or is it just more kind of unnecessary given how natural a queue structure for write requests is?

jmc

@myeditha Slide 23 gives an example of why W->W reordering could be useful: for improving cache utilization.

jkorn

@POTUS yes, or you might view the write-back buffer as part of the cache itself, and the reads/writes arrows are just lines connecting to the system bus.