i-cache and d-cache
There are two separate caches for instructions and data. Why?
- Avoids structural hazards in pipelining
- Reduces contention between instruction data items and data data items
- Allows both caches to operate in parallel, for twice the bandwidth