To clarify, when we talk about allowing reads to move ahead of writes, we mean that a read can be made before a write completes. Without that, we would not be able to hide the latency of writes, which is one of the major reasons of relaxing consistency.
yuel1
Adding to @rramo 's comment, we can only relax read after write memory operations if the read is not dependent on the write.
Kapteyn
Wouldn't it be a good idea to let processors issue subsequent reads before previous reads have completed essentially pipelining them? Why should a processor have to wait for a previous read to complete in order to issue a subsequent read?
To clarify, when we talk about allowing reads to move ahead of writes, we mean that a read can be made before a write completes. Without that, we would not be able to hide the latency of writes, which is one of the major reasons of relaxing consistency.
Adding to @rramo 's comment, we can only relax read after write memory operations if the read is not dependent on the write.
Wouldn't it be a good idea to let processors issue subsequent reads before previous reads have completed essentially pipelining them? Why should a processor have to wait for a previous read to complete in order to issue a subsequent read?