Orijinal soruyu cevaplamak için: 48 Bit PA eklemeye gerek yoktu.
Sunucular maksimum bellek miktarına ihtiyaç duyar, bu yüzden daha derine inmeye çalışalım.
1) En büyük (yaygın olarak kullanılan) sunucu yapılandırması 8 Soketli bir sistemdir. Bir 8S sistemi, tek bir düğüm oluşturmak için yüksek hızlı tutarlı bir ara bağlantı (veya basitçe, yüksek hızlı bir "veri yolu") ile bağlanan 8 Sunucu CPU'sundan başka bir şey değildir. Dışarıda daha büyük kümeler var, ancak bunlar çok az ve çok uzak, burada yaygın olarak kullanılan yapılandırmalardan bahsediyoruz. Gerçek dünyadaki kullanımlarda, 2 Soket sisteminin en yaygın kullanılan sunuculardan biri olduğunu ve 8S'nin genellikle çok yüksek son olarak kabul edildiğini unutmayın.
2) Sunucular tarafından kullanılan ana bellek türleri, bayt adreslenebilir normal DRAM bellek (örneğin, DDR3 / DDR4 bellek), Bellek Eşlemeli IO - MMIO (bir eklenti kartı tarafından kullanılan bellek gibi) ve yapılandırmak için kullanılan Yapılandırma Alanıdır. sistemde bulunan cihazlar. İlk bellek türü genellikle en büyük olanıdır (ve bu nedenle en fazla adres bitine ihtiyaç duyar). Bazı üst düzey sunucular, sistemin gerçek yapılandırmasının ne olduğuna bağlı olarak büyük miktarda MMIO kullanır.
3) Her sunucu CPU'sunun her yuvada 16 DDR4 DIMM barındırabileceğini varsayın. Maksimum 256 GB DDR4 DIMM boyutuyla. (Sunucunun sürümüne bağlı olarak, yuva başına bu olası DIMM sayısı aslında 16 DIMM'den azdır, ancak örnek için okumaya devam edin).
Yani her soket teorik olarak 16 * 256GB = 4096GB = 4 TB'ye sahip olabilir. Örnek 8S sistemimiz için DRAM boyutu maksimum 4 * 8 = 32 TB olabilir. Bu, bu DRAM alanını adreslemek için gereken maksimum bit sayısının 45 olduğu anlamına gelir (= log2 32TB / log2 2).
Diğer bellek türlerinin (MMIO, MMCFG vb.) Ayrıntılarına girmeyeceğiz, ancak buradaki nokta, bugün mevcut olan en büyük DDR4 DIMM türlerine (256 GB) sahip 8 Soketli bir sistem için en "talepkar" bellek türünün olmasıdır. DIMM'ler) yalnızca 45 bit kullanır.
48 biti destekleyen bir işletim sistemi için (örneğin WS16), kalan (48-45 =) 3 bit vardır. Bu, eğer daha düşük 45 biti yalnızca 32TB DRAM için kullanırsak, toplam 256 TB adreslenebilir alan için MMIO / MMCFG için kullanılabilen 2 ^ 3 kat adreslenebilir belleğe sahip olduğumuz anlamına gelir.
Özetlemek gerekirse: 1) 48 bitlik Fiziksel adres, bol miktarda DDR4 ile "tam olarak yüklenmiş" günümüzün en büyük sistemlerini ve ayrıca MMIO alanı gerektiren birçok diğer IO cihazını desteklemek için bol miktarda bittir. Tam olarak 256 TB.
Bu 256TB adres alanının (= 48 bit fiziksel adres) SATA sürücüleri gibi herhangi bir disk sürücüsünü İÇERMEDİĞİNİ unutmayın çünkü bunlar adres haritasının bir parçası DEĞİLDİR, yalnızca bayt adreslenebilir belleği içerir ve işletim sistemine açıktır.
2) CPU donanımı, sunucunun nesline bağlı olarak 46, 48 veya> 48 bit uygulamayı seçebilir. Ancak diğer bir önemli faktör, işletim sisteminin kaç biti tanıdığıdır. Bugün, WS16 48 bit Fiziksel adresleri (= 256 TB) desteklemektedir.
Bunun kullanıcı için anlamı, bir kişinin 48 bitten fazla adreslemeyi destekleyebilen büyük, ultra modern bir sunucu CPU'suna sahip olmasına rağmen, yalnızca 48 bit PA'yı destekleyen bir işletim sistemi çalıştırırsanız, yalnızca 256 TB'den yararlanabilirsiniz. .
3) Sonuç olarak, daha yüksek sayıda adres bitinden yararlanmak için iki ana faktör vardır (= daha fazla bellek kapasitesi).
a) CPU donanımınız kaç biti destekliyor? (Bu, Intel CPU'lardaki CPUID talimatı ile belirlenebilir).
b) Hangi işletim sistemi sürümünü çalıştırıyorsunuz ve kaç bit PA'yı tanıyor / destekliyor.
(A, b) 'nin minimum değeri, nihayetinde sisteminizin yararlanabileceği adreslenebilir alan miktarını belirleyecektir.
Bu cevabı diğer cevaplara detaylı olarak bakmadan yazdım. Ayrıca, MMIO, MMCFG'nin nüanslarını ve adres haritası yapısının bütününü ayrıntılı olarak incelemedim. Ama bunun yardımcı olacağını umuyorum.
Teşekkürler, Anand K Enamandram, Sunucu Platformu Mimarı Intel Corporation