Read all of Sections 7.1 through 7.5. Be sure you understand the
material from the first four sections well enough for section 7.5 to
make sense to you.
Answer the following questions:
- Define the following terms:
- Memory Hierarchy
- Address Space
- Spatial Locality
- Temporal Locality
- Cache
- Virtual Memory
- Physical Memory
- Interleaved Memory
- Cache Hit
- Hit Ratio
- Cache Miss
- Miss Penalty
- Direct Mapped
- Set Associative
- Fully Associative
- Write Back
- Write Through
- Cache Block
- Cache Line
- Tag field
- Block index field
- Offset field
- Page
- Split Cache
- Unified Cache
- Page Table
- Translation Lookaside Buffer
- Valid Bit
- Replacement Algorithm
- LRU and reference bit(s)
- Dirty Bit
- Compulsory or cold-start miss
- Capacity miss
- Conflict or collision miss
-
Exercises from the end of the chapter: 7.1, 7.2, 7.3, 7.4, 7.5,
7.9, 7.10, 7.12, 7.14.
- Optional (extra credit): Exercise 7.11. Ask me if you
need help with measuring the time. You may use either C/C++ and/or
Java, but not C# (I don't have a compiler for it and don't know how
to do the timing.) Note that Java stores arrays totally differently
from C/C++, so doing it in Java will require simulating a the two
dimensional array in one dimension and calculating the subscripts
yourself.