Допустим, мы работаем с системой, которая имеет 40 бит физического адреса. Общее физическое адресное пространство (при условии адресной памяти в байтах ) составляет байтов или 1 ТиБ. И если виртуальные адреса имеют длину 48 бит, это означает, что виртуальной памяти доступно больше адресов, чем мест в физической памяти.
Это имеет смысл для меня, потому что «избыточные» адреса могут относиться и к расположению жесткого диска. Однако я не понимаю, как происходит перевод между виртуальными и физическими адресами. Я предполагаю, что где-то хранится отображение, которое связывает местоположения VAS с физическими местоположениями. Если виртуальных адресов больше, чем физических, как все эти сопоставления могут храниться в памяти? Как минимум вам потребуется 48 бит для хранения каждого виртуального адреса, а затем еще 40 для хранения физического местоположения, на которое он отображается. Поэтому очевидно, что вы не можете просто сохранить отображение 1: 1 каждого виртуального адреса на его физический аналог, поскольку отображение каждого местоположения потребует больше памяти, чем сама физическая память.
Что именно мне здесь не хватает?