Diciamo che stiamo lavorando con un sistema che ha 40 bit di indirizzo fisico. Lo spazio di indirizzi fisici totali (supponendo che la memoria sia indirizzabile in byte) è di byte o 1 TiB. E se gli indirizzi virtuali sono lunghi 48 bit, ciò significa che ci sono più indirizzi disponibili nella memoria virtuale di quanti siano i percorsi nella memoria fisica.
Questo ha senso per me, perché gli indirizzi "in eccesso" potrebbero riferirsi anche alle posizioni del disco rigido. Tuttavia, ciò che non capisco è come avviene la traduzione tra indirizzi virtuali e fisici. Presumo che ci sia una mappatura memorizzata da qualche parte che collega le posizioni VAS alle posizioni fisiche. Se esistono più posizioni di indirizzi virtuali rispetto a posizioni fisiche, come è possibile archiviare in memoria tutti questi mapping? Almeno avresti bisogno di 48 bit per memorizzare ogni indirizzo virtuale, e poi altri 40 per memorizzare la posizione fisica a cui è mappato. Quindi ovviamente non puoi semplicemente memorizzare una mappatura 1: 1 di ciascun indirizzo virtuale sulla sua controparte fisica, poiché mappare ogni posizione richiederebbe più memoria della memoria fisica stessa.
Cosa mi manca esattamente qui?