主記憶装置

提供: miniwiki
移動先:案内検索
ファイル:Elixir M2U51264DS8HC3G-5T 20060320.jpg
パーソナルコンピュータ等の主記憶装置等に使われるRAMモジュール

主記憶装置(しゅきおくそうち)は、記憶装置の分類で、「補助記憶装置」が一般に外部バスなど比較的CPUから離れていて大容量だが遅い記憶装置を指すのに対し、コンピュータのメインバスなどに直接接続されている記憶装置で、レイテンシやスループットは速いが比較すると小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置[1]とも。

概要

コンピュータの初期の頃は、水銀遅延線ブラウン管記憶装置(ウィリアムス管)(1950年代)、磁気ドラムメモリ、あるいは磁気コアメモリ1960年代)等を利用していたが、現在は一般的に半導体メモリを利用している。

磁気コアメモリを使った主記憶装置は、電源の供給がなくなっても内容を保持できていたが、半導体メモリを使ったRAMは、ハードディスクドライブなどの補助記憶装置と比較すると高速であるものの、記憶容量が限られており、また、電源の供給がなくなると内容が消えてしまうという特徴がある。そのため、補助記憶装置に内容を退避し、必要なときに再度読み込んで利用する形を取る。

RAMには、一定時間経つとデータが消失してしまうダイナミックRAM(DRAM)と、電気を供給している限り内容を保持しているスタティックRAM(SRAM)の2種類がある。SRAMはDRAMより高速なアクセスが可能であるが、構造上、DRAMの方が集積度を高められるため、現在の多くのコンピュータにはDRAMを主記憶装置として利用している。

最近のプロセッサー(以下、特にCPUについて記述)は、CPU自体の処理速度が極めて高速化しているにも関わらず、主記憶装置を構成するDRAMのアクセス速度の向上が追いつかないため、主記憶装置とCPUとの処理速度のアンバランスが生じている(ノイマンズ・ボトルネック参照)。そのために、両者のギャップを埋め、より高速にデータを得るため、DRAMで構成された主記憶装置へのアクセスを直接行わず、高速動作が可能なSRAMで構成されたキャッシュメモリを経由してアクセスすることが多い。「Pentium 4」や「Athlon」など、おおよそ2000年以降に出回ったCPUでは、2段階及びそれ以上の段階のキャッシュメモリを経由して主記憶装置へアクセスする構造となっている。

なお、UNIXプログラムが異常終了したときの動作を「コアダンプ」というが、これは、主記憶装置が磁気コアメモリを利用していた時代(1960年代)の名残である。

また、パーソナルコンピュータの時代の初期(1980年代)では、8ビット、16ビットCPUを使っていたが、CPUのアドレス空間が不足したため、バンク切り換えEMSなどの手法により、実際のCPUのアドレス空間より広い主記憶装置を利用可能にしていた。32ビットCPUになってからは、アドレス範囲が4Gバイトあったため、主記憶切り替え機能は一旦廃れたが、さらなるメモリの需要に伴い、仮想記憶機能と連動して、一部の32ビットCPUでは、32ビットのアドレス範囲以上のメモリをアクセスできるような機能が提供されている。

主記憶装置の使われ方

現代的な多くのコンピュータシステムでは、オペレーティングシステムとメモリ管理ハードウェア[2]の連携により、プロセスごとに保護されたメモリ空間を仮想的に割り当てる、仮想記憶を採用している。そのため、主記憶装置の空間を一定の単位に区切って管理しつつ利用するメモリ管理機能が利用されている。その方法には、セグメント方式ページング方式がある。

  1. 近年はCPUキャッシュなどが3段近く入っていることもあったりするので、これを指して「一次記憶装置」というのは不適切になりつつある。
  2. 以前はMMUと呼ばれる独立したチップだったこともあったが、現代の高性能・高機能なプロセッサではほぼ内蔵されている。

関連項目

テンプレート:コンピュータの構成要素