Cache Simulator Extra Credit
Here are a few options for extra credit, roughly in order of increasing
difficulty. Most of these options have you build a more sophisticated
cache. For each option you choose, you MUST provide us with a paragraph
describing your changes (in a high-level way) and how your modifications
impacted the performance of your cache.
- Implement write-allocate policy for write-misses.
- Implement split Instruction and Data caches.
- Implement a victim cache.
- Build a more realistic write-buffer. If you've looked at the
code, you've probably realized that it doesn't model a write-buffer as
accurately as it could. In particular, when a cache read occurs, we
also need to check if the item is possibly in the write-buffer. Doing
this would mean modifying the write-buffer to maintain a list of the
memory addresses it's writing. Also, a real write-buffer would merge
writes to the same memory location.
- Implement a unified L2 cache. Misses in the L1 cache(s) should be
propogated to the L2 cache. The L1 and L2 caches potentially will use
different organizations and policies.
- Anything you want, as long as you clear it with me or Matthew.