Memory Hierarchy

What is the main advantage of a non-blocking cache, which accepts other accesses while a miss is being serviced?

  1. AIt reduces the number of cache misses compared with a blocking cache
  2. BMissed data can be read from main memory faster
  3. 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.
Practice this topic Back to topic

More Memory Hierarchy questions

  1. If the L1 miss rate (as a fraction of all accesses) is 4% and the L2 global miss rate (the fraction of all accesses that also miss in L2) is 1%, what is the L2 local miss rate?
  2. With 64 TLB entries and a 4 KB page size, how much memory can be accessed without TLB misses (the TLB reach)?
  3. Which pair correctly states the main advantage and drawback of using large pages (huge pages)?
  4. When each row of a 2D array is 4,096 bytes (a power of two), walking down a column can cause many misses even though the cache has spare capacity. Which countermeasure is effective?
  5. Roughly how many times longer is a main-memory DRAM access than an L1 cache hit (for typical PC or server CPUs)?