Untuk menjawab pertanyaan awal: Tidak perlu menambahkan lebih dari 48 Bit PA.
Server membutuhkan jumlah memori maksimum, jadi mari kita coba menggali lebih dalam.
1) Konfigurasi server terbesar (umum digunakan) adalah sistem 8 Socket. Sebuah sistem 8S tidak lain adalah CPU 8 Server yang dihubungkan oleh interkoneksi koheren berkecepatan tinggi (atau sederhananya, "bus" berkecepatan tinggi) untuk membentuk satu node. Ada cluster yang lebih besar di luar sana tetapi jumlahnya sedikit dan jarang, kita berbicara tentang konfigurasi yang umum digunakan di sini. Perhatikan bahwa dalam penggunaan dunia nyata, sistem 2 Socket adalah salah satu server yang paling umum digunakan, dan 8S biasanya dianggap sangat canggih.
2) Jenis utama memori yang digunakan oleh server adalah memori DRAM biasa yang dapat dialamatkan byte (misalnya memori DDR3 / DDR4), Memory Mapped IO - MMIO (seperti memori yang digunakan oleh kartu tambahan), serta Ruang Konfigurasi yang digunakan untuk mengonfigurasi perangkat yang ada di sistem. Jenis memori pertama adalah yang biasanya terbesar (dan karenanya membutuhkan jumlah bit alamat terbesar). Beberapa server kelas atas menggunakan MMIO dalam jumlah besar juga tergantung pada konfigurasi sistem yang sebenarnya.
3) Asumsikan setiap CPU server dapat menampung 16 DIMM DDR4 di setiap slot. Dengan ukuran maksimum DIMM DDR4 256GB. (Bergantung pada versi server, jumlah kemungkinan DIMM per soket ini sebenarnya kurang dari 16 DIMM, tetapi lanjutkan membaca demi contoh).
Jadi setiap soket secara teoritis dapat memiliki 16 * 256GB = 4096GB = 4 TB. Untuk contoh sistem 8S kami, ukuran DRAM maksimal 4 * 8 = 32 TB. Ini berarti jumlah bit maksimal yang diperlukan untuk mengatasi ruang DRAM ini adalah 45 (= log2 32TB / log2 2).
Kami tidak akan membahas detail jenis memori lain (MMIO, MMCFG, dll.), Tetapi poinnya di sini adalah jenis memori yang paling "menuntut" untuk sistem 8 Socket dengan jenis DIMM DDR4 terbesar yang tersedia saat ini (256 GB DIMM) hanya menggunakan 45 bit.
Untuk OS yang mendukung 48 bit (WS16 misalnya), ada (48-45 =) 3 bit tersisa. Artinya, jika kita menggunakan 45 bit yang lebih rendah hanya untuk DRAM 32TB, kita masih memiliki 2 ^ 3 kali memori beralamat yang dapat digunakan untuk MMIO / MMCFG dengan total 256 TB ruang yang dapat dialamatkan.
Jadi, untuk meringkas: 1) 48 bit alamat Fisik adalah banyak bit untuk mendukung sistem terbesar saat ini yang "terisi penuh" dengan jumlah DDR4 yang berlebihan dan juga banyak perangkat IO lain yang membutuhkan ruang MMIO. 256TB tepatnya.
Perhatikan bahwa ruang alamat 256TB ini (= 48bits dari alamat fisik) TIDAK termasuk drive disk seperti drive SATA karena mereka BUKAN bagian dari peta alamat, mereka hanya menyertakan memori yang dapat dialamatkan byte, dan diekspos ke OS.
2) Perangkat keras CPU dapat memilih untuk mengimplementasikan 46, 48 atau> 48 bit tergantung pada generasi server. Tetapi faktor penting lainnya adalah berapa banyak bit yang dikenali OS. Saat ini, WS16 mendukung alamat fisik 48 bit (= 256 TB).
Artinya bagi pengguna adalah, meskipun server memiliki CPU server yang besar dan sangat modern yang dapat mendukung pengalamatan> 48 bit, jika Anda menjalankan OS yang hanya mendukung 48 bit PA, maka Anda hanya dapat memanfaatkan 256 TB .
3) Secara keseluruhan, ada dua faktor utama untuk memanfaatkan jumlah bit alamat yang lebih tinggi (= kapasitas memori lebih banyak).
a) Berapa banyak bit yang didukung oleh HW CPU Anda? (Ini dapat ditentukan dengan instruksi CPUID di CPU Intel).
b) Versi OS apa yang Anda jalankan dan berapa banyak bit PA yang dikenali / didukungnya.
Min dari (a, b) pada akhirnya akan menentukan jumlah ruang beralamat yang dapat dimanfaatkan oleh sistem Anda.
Saya telah menulis tanggapan ini tanpa melihat tanggapan lain secara detail. Juga, saya belum mempelajari secara detail nuansa MMIO, MMCFG dan keseluruhan konstruksi peta alamat. Tapi saya harap ini membantu.
Terima kasih, Anand K Enamandram, Arsitek Platform Server Intel Corporation