Щоб відповісти на вихідне запитання: Не потрібно було додавати більше 48 біт PA.
Серверам потрібен максимальний обсяг пам’яті, тому спробуємо копати глибше.
1) Найбільшою (загальновживаною) конфігурацією сервера є система 8 Socket. Система 8S - це не що інше, як 8-серверний процесор, з'єднаний високошвидкісним когерентним з'єднанням (або просто високошвидкісною "шиною"), щоб утворити єдиний вузол. Є більші кластери, але їх небагато, ми говоримо про загальновживані конфігурації. Зверніть увагу, що в реальному звичаї система 2 Socket є одним із найбільш часто використовуваних серверів, а 8S, як правило, вважається дуже висококласним.
2) Основними типами пам’яті, що використовується серверами, є байтова адресаційна звичайна пам’ять DRAM (наприклад, пам’ять DDR3 / DDR4), відображена пам’ять IO - MMIO (така як пам’ять, що використовується додатковою картою), а також конфігураційний простір, який використовується для налаштування пристроїв, які присутні в системі. Перший тип пам'яті - це та, яка, як правило, найбільша (і, отже, потребує найбільшої кількості бітів адреси). Деякі висококласні сервери також використовують велику кількість MMIO, залежно від фактичної конфігурації системи.
3) Припустимо, кожен центральний процесор може містити 16 модулів DDR4 DIMM в кожному слоті. Максимальний розмір DDR4 DIMM 256 ГБ. (Залежно від версії сервера, ця кількість можливих модулів DIMM на сокет фактично менше 16 модулів DIMM, але продовжуйте читати заради прикладу).
Отже, кожен сокет теоретично може мати 16 * 256 ГБ = 4096 ГБ = 4 ТБ. Для нашої прикладної системи 8S розмір DRAM може становити максимум 4 * 8 = 32 ТБ. Це означає, що максимальна кількість бітів, необхідна для вирішення цього простору DRAM, становить 45 (= log2 32TB / log2 2).
Ми не будемо вдаватися в подробиці інших типів пам'яті (MMIO, MMCFG тощо), але справа тут у тому, що найбільш "вимогливий" тип пам'яті для 8-сокетної системи з найбільшими типами модулів DDR4 DIMM, доступних сьогодні (256 ГБ) DIMM-модулі) використовують лише 45 біт.
Для ОС, яка підтримує 48 біт (наприклад, WS16), залишається (48-45 =) 3 біти. Це означає, що якщо ми використовували нижчі 45 біт виключно для 32 ТБ DRAM, ми все ще маємо 2 ^ 3 рази адресируемой пам'яті, яку можна використовувати для MMIO / MMCFG загалом 256 ТБ адресного простору.
Отже, підсумовуючи: 1) 48 біт фізичної адреси - це безліч бітів для підтримки найбільших систем сучасності, які "повністю завантажені" великою кількістю DDR4, а також великою кількістю інших пристроїв вводу-виводу, які вимагають місця MMIO. 256 ТБ, якщо бути точним.
Зверніть увагу, що цей адресний простір на 256 ТБ (= 48 біт фізичної адреси) НЕ включає жодних дискових накопичувачів, таких як диски SATA, оскільки вони НЕ є частиною адресної карти, вони містять лише пам'ять, яка може бути адресована байтом і піддається ОС.
2) Апаратне забезпечення центрального процесора може вибрати 46, 48 або> 48 бітів, залежно від генерації сервера. Але ще одним важливим фактором є те, скільки розрядів розпізнає ОС. Сьогодні WS16 підтримує 48-бітові фізичні адреси (= 256 ТБ).
Що це означає для користувача, навіть якщо у нього є великий, надсучасний серверний процесор, який може підтримувати> 48 біт адресації, якщо ви запускаєте ОС, яка підтримує лише 48 біт PA, тоді ви можете скористатися лише 256 ТБ .
3) Загалом, є два основних фактори, які дозволяють скористатися більшою кількістю адресних бітів (= більший об’єм пам’яті).
а) Скільки біт підтримує ваш процесор HW? (Це можна визначити за інструкцією CPUID в процесорах Intel).
б) Яку версію ОС ви використовуєте та скільки біт PA вона розпізнає / підтримує.
Мінімальне значення (a, b) в кінцевому рахунку визначатиме кількість адресного простору, яким може скористатися ваша система.
Я написав цю відповідь, не детально розглядаючи інші відповіді. Крім того, я не докладно вникав у нюанси MMIO, MMCFG та всю конструкцію адресної карти. Але я сподіваюся, це допоможе.
Дякую, Anand K Enamandram, архітектор серверної платформи Intel Corporation