This document discusses cache memory and virtual memory. It begins by explaining the memory hierarchy from fastest to slowest of registers, cache, main memory, and magnetic disk. It describes how cache exploits locality through temporal and spatial locality. Different cache mapping techniques like direct mapping, set associative mapping, and fully associative mapping are covered. The document also discusses virtual memory and how it allows programs to access more memory than physically available using the memory management unit to translate virtual to physical addresses through page tables and the translation lookaside buffer.