Цікаве теоретичне питання.
По-перше, давайте будемо зрозумілими: 64-бітна архітектура Intel фактично є 64-розрядними розширеннями AMD для 32-розрядної архітектури Intel. Це походження самого технічного терміну x86_64
. Отже, ви запитуєте про процесори Intel, або про архітектуру x86_64 взагалі? По-друге, ви пишете чи редагуєте статтю Вікіпедії про цей запис? Якщо так, ми повинні уникати використання Вікіпедії, щоб допомогти знайти відповідь :)
Чому б теоретичний максимальний розмір віртуальної пам'яті не був обмежений 64-бітною довжиною адресних покажчиків? Згідно з вікіпедійською статтею, "AMD вирішила, що буде використано найменше 48 біт". Майбутні версії архітектури дозволяють це розширити. Так насправді, "теоретичний максимум" може бути 2 ^ 64. Тепер ми говоримо про щось менше, ніж теоретичне.
Довгий режим адресації x86_64 дозволяє 2 Мб сторінок , тобто 2 ^ 21 не тільки 4KB (2 ^ 12) сторінок, різниця 2 ^ 9, тому я отримую (з ваших розрахунків) 2 ^ 57. Але це більше, ніж архітектура в даний час дозволяє, так що він все ще "тільки" 2 ^ 48.
Для фізичної пам'яті, знову ж таки з Вікіпедії, "поточні реалізації AMD64 підтримують фізичний адресний простір до 2 ^ 48 байт оперативної пам'яті". Добре, але, можливо, в інших місцях є інші обмеження. На самому низькому кінці, ми маємо виробника материнської плати, яка зазвичай встановлює це на основі кількості слотів. Деякі були в середині, у нас є контролер пам'яті, який нині фактично інтегрований в процесор (але не завжди, а не обов'язково - так знову, як теоретичне це питання). Контролери пам'яті також обмежать адресний простір або кількість можливих чіпів, якими вони керують.