主記憶装置
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "主記憶装置" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2020年6月)
パーソナルコンピュータ等の主記憶装置等に使われるRAMモジュール

主記憶装置(しゅきおくそうち)は、記憶装置の分類で、コンピュータのメインバスなどに直接接続されている記憶装置のこと。比較的CPUから近い位置にあるため、一般に外部バスなど比較的CPUから離れていて大容量だが低速な記憶装置である「補助記憶装置」と比較すると、高速(低レイテンシかつ高スループット)だが小容量である。特に、CPUが入出力命令によって外部のインタフェースを操作するのではなく、「ロード・ストア命令」や、さらには通常の加算などの命令において直接読み書きできる対象であるものを指す。メインメモリ、一次記憶装置[注釈 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]の連携により、プロセスごとに保護された主記憶装置のメモリ空間を仮想的に割り当てる、仮想記憶を採用している。そのため、主記憶装置の空間を一定の単位に区切って管理しつつ利用するメモリ管理機能が利用されている。その方法には、セグメント方式ページング方式がある。

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

サーバパーソナルコンピュータのハードウェアで、故障が最も発生し易いものの一つが主記憶装置である。従ってWindows 10などのOSでは「Windowsメモリ診断」ツールが利用できる。主記憶装置が故障すると以下のような事象が発生する。

電源を投入してもOSが立ち上がらずブルースクリーンが表示される。

OSの起動途中に再起動し繰り返す。

OSが立ち上がってPCを一定時間操作している途中で、画面がスノーノイズのようになって操作不可能になる。

PCに複数の主記憶装置を装填している場合、1つでも故障した主記憶装置があると他の主記憶装置が正常でも上記のような不具合が発生する。主記憶装置を1つ1つ抜いてどの主記憶装置が故障しているかを特定する必要がある。
脚注[ソースを編集][脚注の使い方]
注釈[ソースを編集]^ 近年[いつ?]はCPUキャッシュなどが3段近く入っていることもあったりするので、これ[どれ?]を指して「一次記憶装置」というのは不適切になりつつある。
^ 以前[いつ?]はMMUと呼ばれる独立したチップだったこともあったが、現代の高性能・高機能なプロセッサではほぼ内蔵されている。

出典[ソースを編集]^ 特集:Windows 9x or Windows 2000? コラム:Windowsの歴史、メモリの歴史(1) - @IT
^ ASCII.jp:メモリー不足を根本的に解決する64bit OSの仕組み (4/4)

関連項目[ソースを編集]

メモリアドレス

SIMM (Single Inline Memory Module)

DIMM (Dual Inline Memory Module)

転送速度

容量の壁

記憶媒体

補助記憶装置HDDSSD

CPU

外部リンク[ソースを編集]










コンピュータの構成要素
全体

ノイマン型

コンピュータアーキテクチャ

マイクロアーキテクチャ

ハードウェア

CPU

プロセッサ

制御装置

実行ユニット

演算装置


マイクロプロセッサ

コプロセッサ

DSP

FPU


マイクロコントローラ

主記憶装置

半導体メモリ

RAM

DRAM

SRAM


磁気コアメモリ

補助記憶装置

磁気ディスク

HDD

フロッピーディスク


光ディスク

MO

CD

DVD

BD

UHD BD


磁気テープ

半導体メモリ(フラッシュメモリ)

入出力経路

チャネル

バス

ISA

PCI


インターフェース

USB

IEEE 1394

イーサネット

InfiniBand

ファイバーチャネル


入力装置

キーボード

テンキー

ポインティングデバイス(マウス)

出力装置

プリンター

ディスプレイ

スピーカー

その他

ケース

マザーボード

拡張カード

電源装置

ファームウェア


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

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