Digamos que estamos trabajando con un sistema que tiene 40 bits de dirección física. El espacio total de direcciones físicas (suponiendo que la memoria direccionable por bytes) es bytes, o 1 TiB. Y si las direcciones virtuales tienen 48 bits de longitud, eso significa que hay más direcciones disponibles para la memoria virtual que ubicaciones en la memoria física.
Esto tiene sentido para mí, porque las direcciones "en exceso" también podrían referirse a ubicaciones de disco duro. Sin embargo, lo que no entiendo es cómo se produce la traducción entre direcciones virtuales y físicas. Supongo que hay un mapeo almacenado en algún lugar que vincula las ubicaciones de VAS a las ubicaciones físicas. Si hay más ubicaciones de direcciones virtuales que ubicaciones físicas, ¿cómo pueden almacenarse todas estas asignaciones en la memoria? Como mínimo, necesitaría 48 bits para almacenar cada dirección virtual, y luego otros 40 para almacenar la ubicación física a la que se asigna. Obviamente, no puede almacenar una asignación 1: 1 de cada dirección virtual a su contraparte física, ya que asignar cada ubicación requeriría más memoria que la memoria física en sí.
¿Qué es exactamente lo que me estoy perdiendo aquí?