Скажімо, ми працюємо з системою, яка має 40 бітів фізичної адреси. Загальний фізичний адресний простір (якщо припустити байт-адресовану пам'ять) становить байт, або 1 TiB. А якщо віртуальні адреси мають довжину 48 біт, це означає, що у віртуальній пам'яті доступно більше адрес, ніж у фізичній пам'яті.
Це має сенс для мене, тому що "зайві" адреси можуть стосуватися і місць на жорсткому диску. Однак я не розумію, як відбувається переклад між віртуальними та фізичними адресами. Я припускаю, що десь зберігається відображення, яке пов'язує розташування VAS з фізичними місцями. Якщо існує більше віртуальних адрес, ніж фізичних, як усі ці відображення, можливо, зберігаються в пам'яті? Як мінімум, вам знадобиться 48 біт для зберігання кожної віртуальної адреси, а потім ще 40 для зберігання фізичного місця, на яке вона відображається. Тож очевидно, що ви не можете просто зберігати 1: 1 відображення кожної віртуальної адреси до її фізичного аналога, оскільки для картографування кожного місця потрібно більше пам'яті, ніж сама фізична пам'ять.
Що саме мені тут не вистачає?