この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)
出典検索?: "主記憶装置"
主記憶装置(しゅきおくそうち)は、記憶装置の分類で、「補助記憶装置」が一般に外部バスなど比較的CPUから離れていて大容量だが遅い記憶装置を指すのに対し、コンピュータのメインバスなどに直接接続されている記憶装置で、レイテンシやスループットは速いが比較すると小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置[注釈 1]とも。 コンピュータが初期の頃には、水銀遅延線、ブラウン管記憶装置(ウィリアムス管)(1950年代)、磁気ドラムメモリ、あるいは磁気コアメモリ(1960年代)等が利用されていたが、現在では通常は半導体メモリを利用している。 磁気コアメモリを用いた主記憶装置は、電源の供給が切れても記憶の内容が保持できるが、通常の半導体メモリを使ったRAMでは、ハードディスクドライブなどの補助記憶装置と比べて動作が高速ではあるが、記憶容量が小さく、また、電源の供給が切れると記憶の内容が消えてしまう性質がある。そのため、記憶の内容を補助記憶装置に書き出しておいて、必要なときに再度読み込んで利用するという方式が取られる。 書き込み可能なRAMには、(リフレッシュ動作をせずに)ある程度の時間が経つと記憶の内容が消えてしまうダイナミックRAM(DRAM)と、電気が供給されている限り記憶の内容が保持できるスタティックRAM(SRAM)の2種類がある。通常、SRAMはDRAMよりもアクセスが高速であるが、両者の構造上の違いから、DRAMの方がビットあたりの必要なトランジスタの数が少ないので記憶容量あたりの価格が安くなるので、現在の多くのコンピュータでは主記憶装置にSRAMではなくて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ビットを越えたメモリのアクセスを可能とするような機能が提供されている。
概要