Memory Hierarchy
What is the main advantage of splitting the L1 cache into an instruction cache (I-cache) and a data cache (D-cache)?
- AInstructions and data no longer collide even at the same address, so capacity seems doubled
- BInstruction fetch and data reads or writes can proceed in parallel in the same clock cycle
- CSince instructions are not modified, the D-cache can be eliminated
Show answer and explanation
Answer: B. Instruction fetch and data reads or writes can proceed in parallel in the same clock cycle
In a pipeline, an instruction is fetched every cycle while another instruction reads or writes data. Splitting L1 into instruction and data caches lets these two accesses proceed in parallel without contending for a single cache port, and each can be organized to suit its own behavior. Capacity is not doubled; the total is divided between them. Data accesses are always needed, so the D-cache cannot be dropped. L2 and beyond are usually unified.
- A. The total capacity is merely divided; it is not doubled.
- B. Correct. Instruction fetch and data access can proceed in parallel.
- C. Data accesses are required, so the D-cache cannot be eliminated.