主記憶装置
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

メインメモリ、一次記憶装置[注釈 1]とも。

汎用CPUのパッケージに内蔵されているキャッシュメモリよりは低速だが大容量であり、ソフトウェアのプログラムデータを補助記憶装置から読み込んで展開したり、CPUに処理させるデータの読み出し・書き込みをプログラマが明示的に制御可能な作業領域として使われたりする。
概要

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

磁気コアメモリを用いた主記憶装置は、電源の供給が切れても記憶の内容が保持できる。これを不揮発性メモリと呼ぶ。一方、通常の半導体メモリを使ったRAMでは、ハードディスクドライブなどの補助記憶装置と比べて動作が高速ではあるものの、記憶容量が小さく、また電源の供給が切れると記憶の内容が消えてしまう性質がある。これを揮発性メモリと呼ぶ。そのため、記憶の内容を補助記憶装置に適宜書き出しておいて、必要なときに再度読み込んで利用するという方式が取られる。

書き込み可能なRAMには、(リフレッシュ動作をせずに)ある程度の時間が経つと記憶の内容が消えてしまうダイナミックRAM(DRAM)と、電気が供給されている限り記憶の内容が保持できるスタティックRAM(SRAM)の2種類がある。通常、SRAMはDRAMよりもアクセスが高速であるが、両者の構造上の違いから、DRAMの方がビットあたりの必要なトランジスタの数が少ないので記憶容量あたりの価格が安くなるので、現在の多くのコンピュータでは主記憶装置にSRAMではなくDRAMを採用している。なお、容量よりも高速性が要求されるキャッシュメモリにはSRAMが採用されている。

@media screen{.mw-parser-output .fix-domain{border-bottom:dashed 1px}}最近[いつ?]のプロセッサ(以下、特にCPUについて記述)は、CPU内部の処理速度は極めて高速化したにもかかわらず、主記憶装置を構成するDRAMへのアクセス速度の向上はそれに追いついていないため、主記憶装置とCPUとの処理速度のアンバランスが生じている(ノイマンズ・ボトルネック参照)。そのために、両者のギャップを埋め、より高速にデータを得るため、DRAMで構成された主記憶装置へのアクセスを直接行わず、高速動作が可能なSRAMで構成されたキャッシュメモリを経由してアクセスすることが多い。「Pentium 4」や「Athlon」など、おおよそ2000年以降に出回ったCPUでは、2段階およびそれ以上の段階のキャッシュメモリを経由して主記憶装置へアクセスする方式を採用している。

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

パーソナルコンピュータ (PC) が普及を始めた時代の初期(1980年代)では、8ビットまたは16ビットCPUを使っていた。これらは通例16ビットのアドレスバスを持ち、そのアドレス空間は216バイトすなわち64KiBに制限される。しかし当時であっても、この程度のアドレス空間では拡大を続けるソフトウェアの要求に応えることはできず、すぐにCPUのアドレス空間が不足するようになった。これに伴い、バンク切り換えセグメント方式EMSなど、実際のCPUのアドレス空間よりも広い主記憶装置の利用を可能にする技術が使われるようになった[1]。ただし、これらの技法はソフトウェアの複雑化やシステムの不安定化を招く要因にもなった。

32ビットCPUになってからは、アドレス空間が232バイトすなわち4GiBに拡大され、シンプルな形態で大容量メモリを扱えるようになったため、主記憶切り替え機能はいったん廃れたが、さらなるメモリ容量への需要に伴って、仮想記憶機能と連動して、一部の32ビットCPUでは、アドレス範囲が32ビットを超えたメモリのアクセスを可能とするような機能が提供されている。[要出典]

2024年現在は64ビットCPUの普及が進んでおり、サーバーワークステーションやPCだけでなく、スマートフォンタブレットといったモバイルデバイスでも64ビットアーキテクチャへの移行がほぼ完了している。アドレス空間は264バイトすなわち16EiBに拡大されているが、搭載可能な物理メモリ量は理論的なアドレス空間よりもずっと小さく制限されている。これは、現状ではオペレーティングシステム (OS) もアプリケーションソフトウェアもそこまでの巨大なメモリ空間を必要としているわけではなく、また64ビットアドレス空間をフルサポートするようなハードウェアを実装しようとすると、必要以上にトランジスタ数が増えてしまうからである[2]
主記憶装置の使われ方

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

本来の主記憶装置の容量で足りない時は外部の容量を主記憶装置代わりとすることもある。これは仮想メモリとも言われる。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef