Odpowiadając na pierwotne pytanie: nie było potrzeby dodawania więcej niż 48 bitów PA.
Serwery potrzebują maksymalnej ilości pamięci, więc spróbujmy sięgnąć głębiej.
1) Największa (powszechnie używana) konfiguracja serwera to system 8 gniazd. System 8S to nic innego jak 8 procesorów serwerowych połączonych za pomocą spójnego połączenia o dużej szybkości (lub po prostu szybkiej „magistrali”) w celu utworzenia pojedynczego węzła. Istnieją większe klastry, ale jest ich niewiele, mówimy tutaj o powszechnie używanych konfiguracjach. Zwróć uwagę, że w prawdziwym świecie system 2 Socket jest jednym z najczęściej używanych serwerów, a 8S jest zwykle uważany za bardzo wysokiej klasy.
2) Główne typy pamięci używanych przez serwery to bajtowa adresowalna zwykła pamięć DRAM (np. Pamięć DDR3 / DDR4), Memory Mapped IO - MMIO (np. Pamięć używana przez kartę rozszerzeń), a także Przestrzeń konfiguracyjna używana do konfiguracji urządzenia obecne w systemie. Pierwszym typem pamięci jest ta, która jest zwykle największa (i dlatego wymaga największej liczby bitów adresu). Niektóre serwery wysokiej klasy używają również dużej ilości MMIO w zależności od faktycznej konfiguracji systemu.
3) Załóżmy, że każdy procesor serwera może pomieścić 16 modułów DDR4 DIMM w każdym gnieździe. Z maksymalnym rozmiarem DDR4 DIMM 256 GB. (W zależności od wersji serwera, ta liczba możliwych modułów DIMM na gniazdo jest w rzeczywistości mniejsza niż 16 modułów DIMM, ale kontynuuj czytanie dla przykładu).
Zatem każde gniazdo może teoretycznie mieć 16 * 256 GB = 4096 GB = 4 TB. W naszym przykładowym systemie 8S rozmiar pamięci DRAM może wynosić maksymalnie 4 * 8 = 32 TB. Oznacza to, że maksymalna liczba bitów potrzebnych do zaadresowania tej przestrzeni DRAM wynosi 45 (= log2 32 TB / log2 2).
Nie będziemy wchodzić w szczegóły innych typów pamięci (MMIO, MMCFG itp.), Ale chodzi o to, że najbardziej „wymagający” typ pamięci dla systemu 8-gniazdowego z największymi dostępnymi obecnie typami DDR4 DIMM (256 GB DIMM) używają tylko 45 bitów.
W przypadku systemu operacyjnego obsługującego 48 bitów (na przykład WS16) pozostają (48-45 =) 3 pozostałe bity. Co oznacza, że jeśli użyliśmy dolnych 45 bitów wyłącznie dla 32 TB pamięci DRAM, nadal mamy 2 ^ 3 razy więcej pamięci adresowalnej, która może być wykorzystana do MMIO / MMCFG, co daje łącznie 256 TB przestrzeni adresowalnej.
Podsumowując: 1) 48 bitów adresu fizycznego to mnóstwo bitów do obsługi największych współczesnych systemów, które są „w pełni załadowane” dużą ilością pamięci DDR4, a także wieloma innymi urządzeniami IO, które wymagają przestrzeni MMIO. Dokładnie 256 TB.
Zauważ, że ta przestrzeń adresowa 256 TB (= 48 bitów adresu fizycznego) NIE obejmuje żadnych dysków, takich jak dyski SATA, ponieważ NIE są one częścią mapy adresów, zawierają tylko pamięć, która jest adresowalna bajtowo i jest widoczna dla systemu operacyjnego.
2) Sprzęt CPU może zdecydować się na implementację 46, 48 lub> 48 bitów w zależności od generacji serwera. Ale innym ważnym czynnikiem jest to, ile bitów rozpoznaje system operacyjny. Obecnie WS16 obsługuje 48-bitowe adresy fizyczne (= 256 TB).
Dla użytkownika oznacza to, że nawet jeśli ma się duży, ultranowoczesny procesor serwera, który może obsługiwać> 48 bitów adresowania, jeśli używasz systemu operacyjnego, który obsługuje tylko 48 bitów PA, możesz skorzystać tylko z 256 TB .
3) Podsumowując, istnieją dwa główne czynniki, które pozwalają wykorzystać większą liczbę bitów adresu (= większa pojemność pamięci).
a) Ile bitów obsługuje Twój sprzętowy procesor? (Można to określić za pomocą instrukcji CPUID w procesorach Intel).
b) jaką wersję systemu operacyjnego używasz i ile bitów PA rozpoznaje / obsługuje.
Min z (a, b) ostatecznie określi ilość adresowalnej przestrzeni, z której system może skorzystać.
Napisałem tę odpowiedź bez szczegółowego rozpatrywania innych odpowiedzi. Nie zagłębiałem się też szczegółowo w niuanse MMIO, MMCFG i całej konstrukcji mapy adresowej. Ale mam nadzieję, że to pomoże.
Dzięki, Anand K Enamandram, Server Platform Architect Intel Corporation