記憶装置
[Wikipedia|▼Menu]
.mw-parser-output .hatnote{margin:0.5em 0;padding:3px 2em;background-color:transparent;border-bottom:1px solid #a2a9b1;font-size:90%}

「メモリ」はコンピュータの構成部品のうちメモリと呼ばれるもの全般について説明しているこの項目へ転送されています。メインメモリについては「主記憶装置」を、その他の用法については「メモリ (曖昧さ回避)」をご覧ください。

記憶装置(きおくそうち)は、コンピュータの処理対象であるデータと処理内容のプログラムとを記憶させ参照と変更ができる装置。一部の記憶装置は変更できないものがある。[1][2][3]
概要

コンピュータは処理対象のデータをプログラムによる処理内容に応じて、自動的に制御し処理する。処理対象のデータは、一定の規則で符号化された数値(整数浮動小数点数)を基本とし、それらを組合せた文章画像音声など様々である。また処理内容のプログラムは、データ転送や算術演算論理演算条件分岐やジャンプなどの基本的な命令を、これも一定の規則で符号化し組合せて並べている。 現在のコンピュータでは、データとプログラムを共に符号化された数値とし、同じように記憶や処理することができる。これはプログラムを用いて、データ処理するかのように別のプログラムを作成や修正して記憶することができる(処理中のプログラム自体の修正も可能だが難易度が上がる)。そのため、1種類あるいは1台のコンピュータで様々なプログラムを作成記憶させ、用途に応じてプログラムを取替えることで汎用的に用いることができる。

この汎用性のために元々の科学技術的な数値解析に限定されず、会計出版通信、あるいはコンピュータゲーム音楽など、組織や個人を問わず様々に利用され発展している。コンピュータの発展に伴いその一部である記憶装置も、読み書きの速度や記憶容量の拡大、用途に応じた種類の増加などが行われている。

情報理論の観点からは、記憶装置は通信路と同じように扱うことができる。これはプログラムやデータを、インターネット経由で受取るのと、フラッシュメモリ等で受取るのと、(時間や労力は異なるが)同じように扱えることを意味する。

コンピュータで扱う符号化した数値は、有限桁の2進数を意味する。1桁であれば0か1の2種類の値を表現でき、2桁であれば00、01、10、11の4種類の値を表現でき、この表現方法をデジタルと呼ぶ。情報理論観点から、真偽の2種類を表現できる1桁デジタルの0と1とをビットと呼ぶ。情報量と同義の記憶容量が1ビットなら21である2種類の数値を、8ビットなら28の256種類の数値を記憶できる。デジタル数値をそのまま整数として扱う方式を符号無し整数と呼び、8ビット符号無し整数なら0から255まで扱える。コンピュータの発達により1命令で計算や記憶したりできる数値が、16ビット、32ビット、64ビットと拡大されてきた。

また8ビットを1バイトとする単位も使われ、32ビットが4バイト、64ビットが8バイトに対応する。記憶装置の規模の拡大により、10進接頭辞であるキロメガギガや、210の1024による2進接頭辞であるキビ、メビ等も、併用されている。

また読み書きや通信の性能の指標として、単位時間あたりの情報量や記憶容量も用いられる。

[1][2][3][4]
分類

コンピュータの構成要素および記憶装置は、様々な観点から分類することができるが、算術論理演算装置(Arithmetic Logic Unit、ALU)と制御装置(Control Unit)などを一体化したプロセッサ、プロセッサが処理する命令のプログラムとデータを記憶するメモリモジュールからなる主記憶装置は、必須要素でコンピュータの中枢を担う。それ以外は入出力装置と呼ばれ、コンピュータの用途に応じて各種装置を接続する。入出力装置の一種である補助記憶装置は、電源断でコンピュータが停止状態でも記憶を保持することができる。
プロセッサと主記憶装置

現在の主記憶装置は、8ビット=1バイト毎に、アドレス、番地が割当てられているバイトアドレス方式が主流である。プロセッサ内部にもレジスタと呼ばれる記憶装置が構成されている。プロセッサが命令やデータを主記憶装置から読み込み処理する流れとして、

プログラムカウンタ、PCと呼ばれるレジスタ値をアドレスとして、主記憶装置から命令レジスタへ読み込む(フェッチ)

命令レジスタの内容が、メモリから64ビットBBレジスタへの読み込みのロード命令と解釈(デコード)

対象BBレジスタに、AAレジスタ値+24を先頭アドレスとして、主記憶装置から連続8バイトを読み込む(ロードのエグゼキュート)

プログラムカウンタが命令レジスタの容量分加算される

などの基本的な命令で逐次処理される。

2000年ごろまではプロセッサが倍々の指数的性能向上が成されたが、主記憶装置へのアクセス性能はさほど向上しなかった。上記のプロセッサ内部のレジスタアクセス(命令デコードやプログラムカウンタ加算等)は、クロックに従い1サイクルで処理できる一方で、主記憶アクセス(命令フェッチやロード等)は数十から百サイクル以上の桁違いの時間が必要となる。これを解決するため高速なプロセッサ内部レジスタと低速な主記憶装置の間に、中間のキャッシュメモリの階層を設ける。キャッシュメモリは高速だが容量が小さいため、主記憶装置の一部をキャッシュメモリにもコピーしておく。主記憶参照の命令があっても、キャッシュに有効な命令やデータがあればそれを利用し、主記憶へのアクセス頻度を減らすものである。キャッシュの管理はプロセッサ機能が自動で行うが、利用者も命令やデータの配置をキャッシュを意識して行う必要がある。現在のプロセッサは内部にキャッシュメモリを実装し、また2次、3次キャッシュなど多段階かつ大容量化されている。[1][2][3][4][5][6]
補助記憶装置

一方で補助記憶装置はストレージともよばれ、現在はハードディスクドライブソリッドステートドライブ磁気テープドライブ光ディスクドライブなどが広く用いられている。これらのストレージは専用コントローラ(プロセッサに相当)とキャッシュ(主記憶装置に相当)に磁気ディスクやフラッシュメモリが接続され、ストレージ専用コンピュータのような下位構成要素となっている。ストレージの記憶単位として512バイトや4キビバイトなどからなる、ブロック、あるいはセクターなどと呼ばれる単位が多い。

プロセッサが主記憶装置へ、ストレージから読み込ませる処理として、

プロセッサがストレージコントローラに読み込み命令を発行する (ブロックXXからYYブロック分を主記憶のCCに読み込み)

ストレージコントローラは命令受付完了をプロセッサに通知

ストレージコントローラは指定された下位のブロックを読み込み上位の主記憶装置にデータを転送

ストレージコントローラはプロセッサに命令処理完了を通知

のような手順で行われる。[7]
特性とスペック1GB DDR RAM メモリモジュール

記憶装置を分類するいくつかの特性がある。特性には、揮発性/不揮発性、ダイナミック/スタティック、書き換え可能/不可能、破壊読み出し/非破壊読み出し、アクセス方式、アドレス指定方式、などがある。また、容量と性能は重要なスペックである。
揮発性と不揮発性
不揮発性メモリ
電力を供給しなくとも格納した情報を保持できる。長期間の記憶に適している。現在は主に二次/三次記憶装置やオフラインストレージで使われている。1950年代から1960年代にかけては、磁気コアメモリが一次記憶装置にも使われていた。
揮発性メモリ
情報を保持するには、電力供給が必要である。現在最も高速なメモリ技術は揮発性である(普遍的法則ではない)。一次記憶装置は高速性を求められるため、揮発性メモリを使うことが多い。
ダイナミックとスタティック
ダイナミックメモリ
DRAMなど。揮発性メモリのうち、定期的な再読み取りと再書き込み(メモリリフレッシュ)をしないと格納してある情報が消えてしまうもの。
スタティックメモリ
SRAMなど。揮発性メモリのうち、リフレッシュを必要としないもの。
書き換え可能か否か
読み書き可能(リードライト)
情報をいつでも上書きできる。一次記憶装置としてある程度の容量の読み書き可能ストレージを持たないコンピュータは、ほとんどの場合役に立たない。現在のコンピュータは通常、二次記憶装置にも読み書き可能ストレージを使っている。言葉の文字通りの意味とはズレるのだが
RAMと呼ばれている。
読み取り専用(リードオンリー)
ROM。媒体製造時に情報を記憶させる。組込みコンピュータや、起動時のためのプログラムを書き込むためや、三次記憶装置やオフラインストレージに使う。例えば、CD-ROMがある。
一度だけ書き込み可能(ライトワンス)
製造後に一度だけ書き込むことができる。WORMとも言う。ROMを少数生産する目的や、三次記憶装置やオフラインストレージに使う。例えば、PROMCD-Rがある。
リライタブル
読み出しは自由にできるが、上書きは自由にできず、ブロック単位で一旦消去が必要であったり書き込み操作が読み取り操作よりも遥かに低速であったりする。例えば、EPROMフラッシュメモリCD-RWなどがある。


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

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