Placing a Page and Finding It Again


In virtual memory systems, pages are located by using a table that indexes the memory; this structure is called a page table, which contains the virtual to physical address translations. The page table, which is stored in memory, is typically indexed with the virtual page number to obtain the corresponding portion of the physical address.

Each program has its own page table, which maps the virtual address space of that program to main memory. The figure uses the page table register, which points to the start of the page table, the virtual address, and the indicated page table to show how the hardware can form a physical address.

Assuming a 32-bit address, the page size is 212 bytes, or 4 KiB. The virtual address space is 232 bytes, or 4 GiB, and the physical address space is 230 bytes, which allows main memory of up to 1 GiB. The number of entries in the page table is 220, or 1 million entries. The valid bit for each entry indicates whether the mapping is legal. Although the page table entry shown here need only be 19 bits wide, it would typically be rounded up to 32 bits for ease of indexing. The extra bits would be used to store additional information, such as protection.