主記憶装置
主記憶装置(しゅきおくそうち、memory)は、CPUなどのプロセッサーが直接アクセスすることのできる記憶装置。メインメモリ、一次記憶装置とも。さらに短くして単にメモリとも呼ばれるが、フラッシュメモリなどを用いた補助記憶装置と混同が起こりやすいため、使うときは注意を要する。
概要
主記憶装置には大きく分けて、読み書き自由なRAMと、読み取り専用のROMがある。コンピュータ関連で単に「メモリ」という場合、主記憶装置の中のRAMをいうことが多い。
コンピュータの初期の頃は、水銀遅延線、ブラウン管記憶装置(ウィリアムス管)(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ビットのアドレス範囲以上のメモリをアクセスできるような機能が提供されている。
主記憶装置の使われ方
主記憶装置は、CPUのアドレス空間に対応して、物理的にはリニアに配置される。
しかし、現在のCPUは、プロセスごとに保護されたメモリ空間を仮想的に割り当てる、仮想記憶を採用している。そのため、主記憶装置の空間を一定の単位に区切って管理しつつ利用するメモリ管理機能が利用されている。その方法には、セグメント方式やページング方式がある。近年のパーソナルコンピュータ向けCPUでは、メモリ管理機能がCPU内に組み込まれている。
統合チップセットによるオンボードグラフィックでは、描画専用のメモリを持たずに主記憶装置のメモリ空間の一部と共用している場合が多い。