Memory Hierarchy
What is the main advantage of a non-blocking cache, which accepts other accesses while a miss is being serviced?
- AIt reduces the number of cache misses compared with a blocking cache
- BMissed data can be read from main memory faster
- CMiss latencies overlap, and hits proceed meanwhile
Show answer and explanation
Answer: C. Miss latencies overlap, and hits proceed meanwhile
In a blocking cache, every subsequent access waits until a miss is serviced. A non-blocking cache keeps miss information in dedicated registers (MSHRs), so it can return hits during a miss and send other misses to memory at the same time. This overlaps and hides latency, but the number of misses is unchanged, as is the time to read one miss from memory. It pays off in combination with out-of-order execution.
- A. The miss count is unchanged; the benefit is overlapping latency.
- B. The time to read from main memory itself does not change.
- C. Correct. Miss latencies overlap, and hits are serviced meanwhile.