元の質問に答えるには、48ビットを超えるPAを追加する必要はありませんでした。
サーバーは最大量のメモリを必要とするので、さらに掘り下げてみましょう。
1)最大の(一般的に使用される)サーバー構成は8ソケットシステムです。8Sシステムは、高速コヒーレント相互接続(または単に高速「バス」)によって接続されて単一のノードを形成する8つのサーバーCPUにすぎません。そこにはより大きなクラスターがありますが、それらはほとんどなく、ここでは一般的に使用される構成について話しています。実際の使用では、2ソケットシステムは最も一般的に使用されるサーバーの1つであり、8Sは通常非常にハイエンドと見なされます。
2)サーバーで使用されるメモリの主なタイプは、バイトアドレス指定可能な通常のDRAMメモリ(例:DDR3 / DDR4メモリ)、メモリマップIO-MMIO(アドインカードで使用されるメモリなど)、および構成に使用される構成スペースです。システムに存在するデバイス。最初のタイプのメモリは、通常最大のメモリです(したがって、最大数のアドレスビットが必要です)。一部のハイエンドサーバーは、システムの実際の構成に応じて、大量のMMIOも使用します。
3)各サーバーCPUが各スロットに16個のDDR4 DIMMを収容できると想定します。256GBの最大サイズのDDR4 DIMM。(サーバーのバージョンによっては、ソケットあたりのこの可能なDIMMの数は実際には16 DIMM未満ですが、例のために読み続けてください)。
したがって、各ソケットは理論的には16 * 256GB = 4096GB = 4 TBになります。この例の8Sシステムの場合、DRAMサイズは最大4 * 8 = 32 TBになります。つまり、このDRAM空間をアドレス指定するために必要な最大ビット数は45(= log2 32TB / log2 2)です。
他のタイプのメモリ(MMIO、MMCFGなど)の詳細については触れませんが、ここでのポイントは、現在利用可能な最大タイプのDDR4 DIMM(256 GB DIMM)は45ビットのみを使用します。
48ビットをサポートするOS(たとえば、WS16)の場合、残りのビットは(48-45 =)3つあります。つまり、32 TBのDRAMにのみ下位45ビットを使用した場合でも、MMIO / MMCFGに使用できる2 ^ 3倍のアドレス可能なメモリがあり、合計256 TBのアドレス可能なスペースがあります。
つまり、要約すると、1)48ビットの物理アドレスは、大量のDDR4が「完全にロード」されている今日の最大のシステムをサポートするのに十分なビットであり、MMIOスペースを必要とする他のIOデバイスもたくさんあります。正確には256TB。
この256TBのアドレススペース(= 48ビットの物理アドレス)には、SATAドライブのようなディスクドライブは含まれていません。これらはアドレスマップの一部ではなく、バイトアドレス指定可能なメモリのみを含み、OSに公開されています。
2)CPUハードウェアは、サーバーの世代に応じて、46、48、または48ビットを実装することを選択できます。しかし、もう1つの重要な要素は、OSが認識するビット数です。現在、WS16は48ビットの物理アドレス(= 256 TB)をサポートしています。
これがユーザーに意味することは、48ビットを超えるアドレッシングをサポートできる大規模で超モダンなサーバーCPUがあるにもかかわらず、48ビットのPAのみをサポートするOSを実行する場合、256 TBしか利用できないことです。 。
3)全体として、より多くのアドレスビット(=より多くのメモリ容量)を利用するには、主に2つの要因があります。
a)CPU HWは何ビットをサポートしていますか?(これはIntel CPUのCPUID命令によって決定できます)。
b)実行しているOSのバージョンと、PAが何ビットを認識/サポートしているか。
(a、b)の最小値によって、システムが利用できるアドレス可能なスペースの量が最終的に決まります。
他の応答を詳細に調べることなく、この応答を記述しました。また、MMIO、MMCFGのニュアンス、およびアドレスマップの構築全体については詳しく説明していません。しかし、これが役に立てば幸いです。
Intel Corporation、サーバープラットフォームアーキテクト、Anand K Enamandramに感謝