Virtual memory -------------- every process has a virtual address mapping kernel maintains mapping of virtual->physical memory - these are page tables accessing page tables in main memory on every memory access - crazy slow cache of virtual->physical memory mappings on every memory access - check the cache for the mapping, use if there (fast) - if not, check the page table (slow) TLB is the cache of virtual->physical memory mappings "translation lookaside buffer" Table: virt prefix -> phys prefix (top 20 bits on 32-bit architectures) - "every" entry is checked in parallel on each access