: I had trouble choosing the best topics for this, so apologies in advance if my choices upset anyone.)
I am reading about virtual memory, specifically the process of translating a virtual address into a physical address. I wasn't having any real trouble until I came across the following two sets of University notes (both PDF, quite small):
(page 12) and http://rdsrc.us/HmAy7m
In the case of a 32bit system, both of these state that we take a 32 bit virtual address (comprised of 20 bits for the virtual page number, and 12 bits for the offset), look that up in the page table to get a corresponding page table entry which then gives us an 18 bit physical frame number, to which we append the offset to get the actual memory address.
Why do we suddenly have an 18bit physical frame number: where have the other two bits gone??
(I've probably overlooked something caused by the fact that I have been giving this subject too much attention...)