|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Virtual memory:
addressing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Fig 7.21 |
|
|
Instructions use virtual
address |
|
|
|
|
|
Virtual page number (upper 20 bits) translated to physical
page number for memory |
|
|
Note that the physical
address has fewer bits (30 in the example) |
|
|
|
|
Different number of
virtual and physical pages |
|
|
|
|
|
How big is physical
memory? As big as we can afford. |
|
|
|
|
How big is virtual
memory? As big as the architecture
can support. |
|
|
|
|
One of biggest system
design mistakes: too few address bits |
|
|
|
|
"Nobody will ever
need more than 640K" (W. Gates) |
|
|
|
|
(Source: urban legend) |
|
|
|
|
Page offset (lower 12 bits) remains same |
|
|
|
|
|
Location within page |
|
|
|
|
|
Number of bits:
determined by page size |
|
|
|
|
|
12 bits for 4K page |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|