メモリ搭載の限界
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2018/10/13 14:27 UTC 版)
ベースアドレスを0に固定し、オフセットのみを用いるFLAT MODELが多くのx86向けオペレーティングシステムに採用されている。このメモリモデルの場合、オフセットに使えるアドレス範囲は32ビットで、全てのセレクタが同一の仮想アドレス空間を参照していた場合1プロセスに与えられるメモリ空間は4GiBとなる。 P6以降では物理アドレス拡張により、最大64GiBまでの物理メモリにページを割り当てることができるが、ユーザプロセスが扱える空間は依然4GiBのまま変わらず、インメモリデータベースのような広大でリニアなメモリ空間が必要なソフトウェアにとっては64ビット化が望まれた。 x64により仮想アドレス空間は設計上では256TBまでリニアにアクセスする事ができるようになり、Windows、NetBSD、FreeBSD、OpenBSD、Linux、Solarisはこれに対応した。同時に32ビットアーキテクチャで懸念事項であったカーネル空間の置き場所という問題も解決した。この問題は深刻であり、オペレーティングシステムのスケーラビリティを著しく制限していたが、それがx64では解決された。 IA-32プロセッサの物理仕様上は40ビットアドレスをサポートしており、4-Way以上をサポートするXeon MPにおいては、MCHなどのチップセットによる制約はあるものの1TBの物理メモリをサポート可能である。但し、Xeon DP(2-Wayまで)やPC用の廉価CPUの領域においては、物理アドレスバスは36ビットであるため、物理アドレス空間は64GBまでとなっている。このアドレス空間の制限は、その世代において現実的に搭載可能な物理メモリの量を基準に決定されている。 近年の高速DDR SDRAMにおいては、1チャネルに実装可能なDIMMは電気的制限から4枚程度が限界とされている。さらに、将来のDDR SDRAM(後のDDR3 SDRAM)では当初、これを1チャネルあたり1枚まで減少することが検討されていた。この場合、メモリ搭載量を増やすためには必然的に多チャンネルをサポートする必要がある。しかし従来のDIMMは1チャネルあたり信号/GNDを合わせると150ピン前後を必要とするため、MCHなどのチップセット側の負担が大きく、多ピン化は即座にコストアップに跳ね返る。この問題を解決するためインテル主導でFBDIMM (Fully Buffered DIMM) と呼ばれる、シリアル転送に似た少ピンの高速インタフェースを有するDIMMを規格化した。2006年の時点で、DRAM各社はFBDIMMの生産を開始し、FBDIMMサポートのサーバも出荷された。FBDIMMではチップセット側で従来の半分以下のピン数しか必要としないため、少ピン数で多チャンネル化が可能である。またデイジーチェーンのようなトポロジを採用したため、1チャネルあたり8枚のDIMMをサポートすることが可能であり、今後サーバにおける搭載可能物理メモリ量も飛躍的に増大していくとされた。 しかし、このFBDIMMにはDIMM基板上のDRAMチップと接続される高速インターフェイス用コントローラチップ (AMB) の発熱や消費電力が過大となり、また1チャネルあたりの接続メモリモジュール数(=デイジーチェイン接続されるAMBチップ数)の増大に従ってメモリアクセス時のレイテンシが大きくなる(メモリ性能が低下する)という問題があった。レイテンシの増大は一般にCPUの内蔵キャッシュメモリの増量や命令処理の多段パイプライン化によって隠蔽が図られるが、これらの対策は、条件分岐予測が難しくまた局所性の低い巨大データを取り扱う、データベースなどの大規模アプリケーションソフトを実行する際には、有効に機能しない局面が多々存在する。さらに、DDR3メモリの規格化がなされた段階で1チャネルに実装可能なDIMM数は最大2枚となり、しかもFBDIMMはその規格立ち上げの段階でラムバスとの特許問題が発生し、ライセンス料支払いの必要が生じたことから、各社がこれを積極的に採用すべき、あるいは製品化すべき理由はなくなっていた。 そのためインテルは2006年以降方針を転換、Nehalemマイクロアーキテクチャを採用する各CPUにおいて、従来はMCHなどのチップセットに内蔵していたメモリコントローラをAMDのOpteronなどと同様にCPUに内蔵して通常のDIMMを利用可能とし、大規模サーバなどでは搭載CPUソケット数の増大に従って実装可能なDIMMソケット数も増えるという、スケーラブルなアーキテクチャへの転換を前倒し実施した。この方式はCPU自体にメモリコントローラを内蔵するためMCHとCPU間の通信で発生するレイテンシも削減できるというメリットがあり、この方式を採用したNehalemマイクロアーキテクチャ世代のXeonでは、FBDIMMに対応する前世代のCoreマイクロアーキテクチャ世代のXeonよりも低レイテンシでのメモリアクセスを実現している。
※この「メモリ搭載の限界」の解説は、「IA-32」の解説の一部です。
「メモリ搭載の限界」を含む「IA-32」の記事については、「IA-32」の概要を参照ください。
- メモリ搭載の限界のページへのリンク