Back Lectures
Caching code and data - Separating program from data
  Data often changes during a program's run.

  Program's instructions don't.

  Split or Harvard cache
    Separate cache for code memory and data memory.

    Usually implemeted at level 1

    Only data cache has dirty bit and write-back function.
 
    Size of data and program caches may or may not be same.
   
    Parallel access to both code and data cache.

  Unified cache (vonNeumann style)
    Cache lines make no distinction between code and data.

    Most common in Level 2 and up.

    Uses a dirty flag to indicate need for write-back.
      Skip if no change.