In a nutshell
Each program runs in its own pretend (virtual) address space, so the CPU must translate every virtual address into a real physical one. The address splits into a page number, which gets translated, and an offset, which stays the same. A small, fast cache called the TLB is checked first; if the translation is there (a hit) it is instant. On a miss the system walks the page table in memory, and if the page is not in memory at all, a page fault loads it from disk.