Интересный теоретический вопрос.
Во-первых, давайте проясним: 64-разрядная архитектура Intel на самом деле является 64-разрядным расширением AMD для 32-разрядной архитектуры Intel. Это происхождение очень технического термина x86_64
. Так вы спрашиваете о процессорах, специфичных для Intel, или об архитектуре x86_64 в целом? Во-вторых, вы пишете или редактируете статью в Википедии об этой записи? Если это так, мы должны избегать использования Википедии, чтобы помочь найти ответ :)
Почему теоретический максимальный размер виртуальной памяти не будет ограничен 64-битной длиной слова адресных указателей? Согласно статье в Википедии, "AMD решила использовать только младшие 48 бит". Будущие версии архитектуры позволяют расширять это. Так что на самом деле "теоретический максимум" может быть 2 ^ 64. Так что теперь мы говорим о чем-то меньшем, чем теоретическое.
"Длинный режим" адресации x86_64 допускает 2 МБ страниц, то есть 2 ^ 21, а не только 4 КБ (2 ^ 12) страниц, разница 2 ^ 9, поэтому я получаю (из ваших расчетов) 2 ^ 57. Но это больше, чем позволяет архитектура в настоящее время, так что это "всего лишь" 2 ^ 48.
Что касается физической памяти, опять же из Википедии, «Текущие реализации AMD64 поддерживают физическое адресное пространство до 2 ^ 48 байт оперативной памяти». Хорошо, но, возможно, есть другие границы, наложенные в другом месте. На самом низком уровне у нас есть производитель материнских плат, который обычно устанавливает это в зависимости от количества слотов. Где-то посередине у нас есть контроллер памяти, который в настоящее время фактически интегрирован в ЦП (но не всегда, и не обязательно - опять же, насколько теоретичен этот вопрос). Контроллеры памяти также ограничат адресное пространство или количество возможных чипов, которыми они управляют.