This lecture introduces virtual memory. We start by talking about why virtual addressing is required. We then discuss the address translation process, focusing on several components including the Memory Management Unit (MMU), MMU Cache, and Translation Lookaside Buffer (TLB). We finalize the lecture by discussing whether caches should use virtual addresses or physical addresses. Specifically, we discussed virtually-tagged-virtually-indexed, physically-tagged-physically-indexed, and physically-tagged-virtually-indexed caches.