In a 32 bit system a logical address is divided as |10|10|12|, page directory offset, page table offset and page offset.
Since a page in x86 systems is 4KBytes, and to represent 4K entries, log2(4K) = 12 bits are required, hence the 12.
So the number of bits remaining = (32-12) = 20.
Assuming my understanding is right so far, my question is where did the 10 and 10 come from?
Why is not 8 and 12 or something else?
Uniformity here allows for smaller and simpler code (and hardware likely as well).
If you look closely at the formats of the page directory and page table entries, you’ll notice that they are almost identical on the x86.
Now, if you make one of
PDEspoint back at thePD, accessing allPDEsandPTEsbecomes trivial. I don’t know if this thing was planned in the days when the i80386 was being designed or not, but it certainly comes in handy.