記憶装置

出典: フリー百科事典『ウィキペディア(Wikipedia)』
メモリーから転送)
移動先: 案内検索

テンプレート:Redirect3

ファイル:DDR2 ram mounted.jpg
PCマザーボードに装着された 1GB SDRAM。一次記憶装置の例
ファイル:Seagate Hard Disk.jpg
40GB ハードディスクドライブ(HDD)。コンピュータに接続すると二次記憶装置として機能する
ファイル:Sdlt 160 tape.jpg
160GB SDLT テープカートリッジ。オフライン・ストレージの例。自動テープライブラリで使う場合は、三次記憶装置に分類される

記憶装置(きおくそうち)とは、コンピュータが処理すべきデジタルデータをある期間だけ保持するのに使う、部品、装置、電子媒体の総称。メモリテンプレート:Lang-en-short)またはストレージテンプレート:Lang-en-short)とも。記憶装置はコンピュータの中核機能の1つである「情報の記憶」を行う。現代のコンピュータには必ず何らかの記憶装置があり、CPUと共に1940年代から使われ続けている基本的コンピュータモデルを実装している。

用語

「メモリー」も「ストレージ」も本来はほぼ同じ意味で、いずれも「記憶装置」と訳される場合が多い。また「メモリー」は主にキャッシュメモリ主記憶装置などに、「ストレージ」は主に補助記憶装置に使い分けられる事も多い。

用途

様々な自然現象を利用した記憶装置が発明されてきた。しかし、実用的な万能記憶装置(媒体)は今のところ存在せず、それぞれに何らかの欠点がある。そのため、コンピュータシステムにはいくつかの種類の記憶装置が含まれ、それぞれに用途が限定されている。

デジタルコンピュータは、データ二進法で表す。テキストも数値も画像もビットの並びまたは2進数の数値に変換でき、各ビットは1か0の値をとる。最も一般的な記憶単位はバイトで、通常8ビットで構成される。コンピュータが情報処理するには、その情報を二進法で表現したもの、すなわちデータを格納できるだけの記憶装置の容量を必要とする。例えば800万ビット、すなわち約1メガバイトあれば、一般的コンピュータでは短い小説を格納できる。

コンピュータの最重要部品はCPU(プロセッサ)であり、データを操作し、計算を行い、他の部品を制御する。

メモリがないと、コンピュータは決められた処理を行って結果を即座に出力することしかできない。これは、電卓デジタルシグナルプロセッサでは問題ない。それとは異なり、ノイマン型システムでは、命令とデータは共にメモリに格納される。そうすることで、新たな処理をするのにハードウェアの再構成をしなくて済み、単にメモリ上の命令列を書き換えればよいため、より汎用的になる。また、プロセッサには細かい処理を行う命令を実装するだけで済み、複雑な処理手続きを通しての状態を保持する必要がないため、設計が単純になる。今日、コンピュータのほとんどはノイマン型である。

実際、ほとんどのコンピュータは様々な種類のメモリを使っており、CPUを頂点として性能とコストのトレードオフを考慮した階層を形成している。一般に、階層上で高い位置にあるストレージほど帯域幅が大きく、CPUからのアクセスレイテンシが小さい。逆に、ビット当たりのコストは階層上で下の方ほど安価になるのが一般的である。

階層構造

ファイル:Computer storage hierarchy.png
CPUからの距離によって記憶装置を分類した図。汎用のコンピュータの基本的構成は、演算装置制御装置、記憶装置を装備する空間、入出力デバイスである。2005年ごろの一般的パーソナルコンピュータでの技術および容量を記している。

一次記憶装置

テンプレート:Main 一次記憶装置または主記憶装置は、CPUが直接アクセスできる唯一の記憶装置である。CPUはそこに格納されている命令を常に読み取り、実行している。頻繁に操作しているデータも同様の方法でそこに格納されている。

初期のコンピュータでは、水銀遅延線ウィリアムス管磁気ドラムメモリが一次記憶装置として使用された。1954年ごろ、磁気コアメモリがそれら信頼性の低い手法に取って代わった。集積回路の集積度の向上により半導体メモリが実用的になり、磁気コアメモリに代わって主流となった。IBMのメインフレームの場合、1964年発表のSystem/360ではまだコアメモリ、1970年リリースのSystem/370では半導体メモリである。また、現在の Random Access Memory(RAM)は、ほぼ全て半導体メモリである。

一次記憶装置は、さらにいくつかの階層に分かれており、それぞれ記憶容量と性能が異なる。

  • プロセッサレジスタは、プロセッサ内に存在する。各レジスタは一般に1ワードのデータ(32ビットや64ビット)を格納する。CPUの命令は、演算装置にレジスタ上のデータを使った計算や他の操作をさせるものである(それ以外の補助的な命令もある)。レジスタは記憶装置の中でも最速であり、フリップフロップで構成されている。一時記憶装置という語もあるが「一次」と「一時」でまぎらわしい。
  • キャッシュメモリは、超高速なレジスタと若干遅いメインメモリの中間にある。システムの性能を強化するためだけに存在する層である。メインメモリ内の頻繁に使う情報をより高速なキャッシュメモリにコピーしておくことで処理速度を向上させることができる。キャッシュメモリはメインメモリより高速だが、容量は小さい。また、レジスタに比べると低速だが容量は大きい。キャッシュメモリ自体も階層化されることが多く、一次キャッシュは最も小さいが最速で、プロセッサに最も近い位置に配置される。二次キャッシュはそれよりも大きく低速である。さらに三次キャッシュがある場合もある。

メインメモリは、メモリバス(フロントサイドバスとも呼ぶ)経由でCPUと直接または間接に接続される。メモリバスは実際にはアドレスバスデータバスで構成される。CPUはまず、アドレスバスにメモリアドレスと呼ばれる数値を送り、アクセスしたいデータの位置を指定する。次にデータ本体の読み書きをデータバスで行う。場合によってはCPUと一次記憶装置の間にメモリ管理ユニット (MMU) があり、仮想記憶という抽象化などのタスクを実施する。

一次記憶装置で使うRAMは揮発性であるため、それだけでは電源を入れたときにCPUが実行する命令を読み出すことができない。そこで、小さな立ち上げプログラム(BIOS)の格納された不揮発性メモリを使ってブート処理を行う。ブート処理では、不揮発性の二次記憶装置からより大きなプログラムをメインメモリに持ってきて、それを実行する。ここで使われる不揮発性メモリを Read Only Memory (ROM) と呼ぶ。

"ROM" と呼ばれるメモリは実際には「リードオンリー」ではないことが多く、更新が可能である。しかし、書き込みは遅く、再書き込みの前に消去する必要がある。組み込みシステムではプログラムを書き換えることが少ないため、ROM上のプログラムを直接実行することがある。普通のコンピュータではROMにBIOSなどの単純なプログラム以外を置くことはなく、プログラムは不揮発性の二次記憶装置に記憶しておくのが一般的である。

前述したとおり、英語では「一次記憶装置」は primary storage だが、最近では storage の意味が日本語での用法に近い場合があるため、primary storage が本項目で言うところの「二次記憶装置」を意味する場合も出てきている[1]

二次記憶装置

ファイル:Hard disk platter reflection.jpg
ハードディスクドライブのカバーを外した様子

テンプレート:Main 二次記憶装置または補助記憶装置は、CPUから直接アクセスできない点が一次記憶装置と異なる。コンピュータは通常、入出力チャネルを使って二次記憶装置にアクセスし、必要なデータを一次記憶装置上のバッファに転送する。二次記憶装置は電源が切れてもデータが失われない、不揮発性である。また、価格も一次記憶装置に比べると桁違いに安価である。結果として、現在のコンピュータは一次記憶装置よりも大容量の二次記憶装置を備え、そこにデータを長期間記憶しておくことが多い。

現在のコンピュータは、二次記憶装置としてハードディスクドライブを使うのが一般的である。ハードディスク上のデータアクセスにかかる時間はミリ秒単位である。一方、RAM上のデータアクセスにかかる時間はナノ秒単位である。これはハードディスクが機械的に可動(回転)する装置であるためで、メインメモリと比較すると約100万倍遅い。CDDVDなどの光学ドライブはさらにアクセス時間が長い。

二次記憶装置に使われる他の技術としては、フラッシュメモリUSBメモリなど)、フロッピーディスク磁気テープ紙テープパンチカード、メインメモリとは異なるRAMディスクZIPドライブなどがある。

二次記憶装置はファイルシステムとしてフォーマットされることが多く、それによってデータをファイルディレクトリに抽象化し、ファイルの所有者、アクセス時間、アクセスパーミッションなどの付加的情報(メタデータ)も提供する。

多くのオペレーティングシステム仮想記憶の概念を使い、システムが物理的に利用可能な容量以上の一次記憶装置(メインメモリ)を使えるようにする。一次記憶装置が一杯になると、システムは最も使われていない部分(ページ)を二次記憶装置(スワップファイル)に移し、後で必要になったときに一次記憶装置に戻す。このやり取りが多くなると、システム全体の性能は低下する。

三次記憶装置

ファイル:StorageTek Powderhorn tape library.jpg
大規模テープライブラリ。前方にテープカートリッジの棚があり、その後方にロボットアームが見える。見えている範囲で180cmの高さがある

三次記憶装置[2]は、記憶装置の第三の階層である。典型的な例として、ロボット機構を使って必要に応じて記憶媒体をドライブに挿入したり除去したりする装置がある。データは使用する前に二次記憶装置にコピーすることが多い。これは主に滅多に使わないデータの保管に使う(三次記憶装置は二次記憶装置よりもさらに遅く、アクセス時間は数十秒レベルである)。

コンピュータが三次記憶装置から情報を読み取る必要が生じると、まずカタログデータベースを参照して、必要な情報を格納しているテープやディスクを特定する。次に、ロボットアームにコンピュータが指示して、その媒体をドライブに挿入させる。コンピュータが情報の読み取りを終えると、ロボットアームが媒体を元の場所に戻す。

オフラインストレージ

オフラインストレージとは、CPUの制御下にないストレージである[3]。その記憶媒体は二次記憶装置か三次記憶装置として書き込まれ、物理的に外されたり、除去されたものである。つまり、再びアクセスするには、人間が媒体をドライブに挿入したり、装置を接続したりする必要がある。三次記憶装置とは異なり、人間が介在しないとアクセスできない。

オフラインストレージは、物理的なデータ転送手段としてよく利用される。また、ディザスタリカバリのためにバックアップを遠隔地に保管する手段としても有効である。オフラインストレージは情報セキュリティの観点からも重要であり、物理的に即座に内容にアクセスできず、コンピュータを使った悪意ある攻撃からも安全である。また、保管目的で情報を記憶させる場合、ほとんど滅多にアクセスすることがないなら、三次記憶装置よりもずっと安価に保管できる。

最近のパーソナルコンピュータでは、二次記憶装置や三次記憶装置として利用される記憶媒体は、オフラインストレージとしても利用できるものが多い。光ディスクやフラッシュメモリが代表的だが、リムーバブルのハードディスクドライブもある。企業においては磁気テープが比較的多く利用されている。古くは、フロッピーディスク、ZIP、パンチカードなどがあった。

特性とスペック

ファイル:DDR RAM-2.jpg
1GB DDR RAM メモリモジュール

記憶装置を分類するいくつかの特性がある。特性には、揮発性/不揮発性、ダイナミック/スタティック、書き換え可能/不可能、破壊読み出し/非破壊読み出し、アクセス方式、アドレス指定方式、などがある。また、容量と性能は重要なスペックである。

揮発性と不揮発性

不揮発性メモリ
電力を供給しなくとも格納した情報を保持できる。長期間の記憶に適している。現在は主に二次/三次記憶装置やオフラインストレージで使われている。1950年代から1960年代にかけては、磁気コアメモリが一次記憶装置にも使われていた。
揮発性メモリ
情報を保持するには、電力供給が必要である。現在最も高速なメモリ技術は揮発性である(普遍的法則ではない)。一次記憶装置は高速性を求められるため、揮発性メモリを使うことが多い。

ダイナミックとスタティック

ダイナミックメモリ
DRAMなど。揮発性メモリのうち、定期的な再読み取りと再書き込み(メモリリフレッシュ)をしないと格納してある情報が消えてしまうもの。
スタティックメモリ
SRAMなど。揮発性メモリのうち、リフレッシュを必要としないもの。

書き換え可能か否か

読み書き可能(リードライト)
情報をいつでも上書きできる。一次記憶装置としてある程度の容量の読み書き可能ストレージを持たないコンピュータは、ほとんどの場合役に立たない。現在のコンピュータは通常、二次記憶装置にも読み書き可能ストレージを使っている。言葉の文字通りの意味とはズレるのだがRAMと呼ばれている。
読み取り専用(リードオンリー)
ROM。媒体製造時に情報を記憶させる。組込みコンピュータや、起動時のためのプログラムを書き込むためや、三次記憶装置やオフラインストレージに使う。例えば、CD-ROMがある。
一度だけ書き込み可能(ライトワンス)
製造後に一度だけ書き込むことができる。WORMとも言う。ROMを少数生産する目的や、三次記憶装置やオフラインストレージに使う。例えば、PROMCD-Rがある。
リライタブル
読み出しは自由にできるが、上書きは自由にできず、ブロック単位で一旦消去が必要であったり書き込み操作が読み取り操作よりも遥かに低速であったりする。例えば、EPROMフラッシュメモリCD-RWなどがある。

破壊読み出しと非破壊読み出し

破壊読み出し
書き込まれたデータを読み出す時に、内容を破壊してしまうものが破壊読み出しである。読み出し後も元の内容が以後も必要なのであれば、書き戻して(再生、等と言う)やらなければならない。代表的なものはDRAMや磁気コアメモリなど。DRAMは静電容量に記憶しているので原理的には破壊読み出しだが、普通はチップ内部の読み出し動作の中で書き戻しまでやってしまうので、ユーザーは指定されたタイミングで信号を与えて内容を読み出すだけでよい。
非破壊読み出し
書き込まれたデータを読み出す時に、内容を残したまま読み出せるものが非破壊読み出しである。代表的なものはSRAMである。

アクセス方法

ランダムアクセスメモリ(Random Access Memory)
略称はRAM(ラム)。任意の位置へのアクセスをほぼ一定の時間で行える。一次記憶装置や二次記憶装置に適している。

ROM(ロム、Read Only Memory)の対義語として表れることがあるが、本来の意味からは下記のSAMであり、ROMに対してはRWM(Read Write Memory)となるが、現在ではこの語はほとんど使われない。

シーケンシャルアクセスメモリ(Sequential Access Memory)
略称はSAM。決められた先頭位置から逐次的に情報にアクセスする。従って、ある情報へのアクセスにかかる時間は、先頭位置からの距離に依存する。オフラインストレージに適している。

アドレス指定方法

位置指定可能
数値的メモリアドレスでアクセスしたい位置を指定する。現在のコンピュータでは、一次記憶装置で使用する。アドレス指定はプログラム内から行うもので、人間がアドレスを指定するのは難しい。
ファイル指定可能
情報は可変な大きさのファイルに分割されていて、人間にもわかりやすいディレクトリ名やファイル名を使ってファイルを指定できる。実際の装置は位置指定可能であるが、オペレーティングシステムファイルシステムとして抽象化し、操作しやすくしている。二次/三次記憶装置やオフラインストレージで使用する。
コンテンツ指定可能
ハッシュ値や短い識別子でアクセスする情報を選択する。コンテンツ指定可能ストレージはソフトウェアでもハードウェアでも実装できる。ハードウェアの方が高速だが、高価である。

容量

容量単位は一般的な距離や速度を表すものと異なる特殊な単位と使われ方をする

記憶容量
デバイスまたは媒体が記憶できる全容量。ビット数やバイト数で表される。
記憶密度
情報をどれだけコンパクトに記憶できるかの尺度。単位長、単位面積、単位堆積あたりの記憶容量。

性能

レイテンシ
ストレージの特定位置にアクセスするのにかかる時間。一次記憶装置の場合はナノ秒単位、二次記憶装置ではミリ秒単位、三次記憶装置では秒単位程度である。読み取りと書き込みでレイテンシが異なる場合もある。シーケンシャルアクセス式の場合、ばらつきが大きいので、最小・最大・平均で表す。
スループット
単位時間当たりの読み書きの速度。ビット毎秒も使うことがあるが、通常はメガバイト毎秒などの単位を使う。レイテンシと同様、読み取りと書き込みで異なる場合もある。また、逐次的なアクセスの方がランダムなアクセスよりスループットが高くなる。

基本的な記憶装置技術

2008年現在、よく使われている記憶装置技術としては、半導体、磁気、光学があり、紙も限定的に使われ続けている。他にも、かつて使われていた記憶装置技術や、開発が進んでいる新技術もある。

半導体

テンプレート:半導体メモリ 半導体メモリは、半導体による集積回路に情報を格納する。半導体メモリには数百万個の微細なトランジスタコンデンサが集積されている。揮発性と不揮発性の半導体メモリがある。現代のコンピュータでは、一次記憶装置にはほぼ必ずダイナミックな揮発性半導体メモリ(DRAM)を使っている。21世紀に入ったころから、フラッシュメモリと呼ばれる不揮発性半導体メモリがオフラインストレージとしてシェアを伸ばし続けている。不揮発性半導体メモリは、各種電子機器や特殊なコンピュータの二次記憶装置としても使われている。

磁気

磁気記憶装置は、ディスクやテープの表面に塗布された磁性体磁化パターンを変化させることで情報を記憶する。磁気記憶装置は不揮発性である。情報へのアクセスに1つまたは複数の読み書き用ヘッドを使う。ヘッドには電気信号と磁気信号を相互に変換する変換器がある。ヘッドは媒体表面のごく一部にしかアクセスできないので、ヘッドや媒体を移動させることでデータへアクセスする。現在のコンピュータでは、以下のような磁気記憶装置がある。

初期のコンピュータでは、磁気ドラムメモリ磁気コアメモリコアロープメモリ薄膜メモリ磁気バブルメモリなどが一次記憶装置としても使われていた。また、磁気テープは二次記憶装置として使われることが多かった。

光学

テンプレート:光ディスク 光ディスクなどの光学記憶装置は、円板表面の性質を変化させることで情報を格納し、半導体レーザーを表面に当てて反射光を測定することで情報を読み取る。光ディスクは不揮発性である。表面の変化が永久的なもの(読み取り専用媒体)、一度だけ変化させられるもの(ライトワンス媒体)、何度も書き換え可能なもの(リライタブル媒体)がある。次のような形式がよく使われている[4]

  • CD-ROM, DVD-ROM, BD-ROM: 読み取り専用ストレージ。デジタル情報(音楽、ビデオ、コンピュータプログラムなど)の大量配布/販売に使用。
  • CD-R, DVD-R, DVD+R BD-R: ライトワンス・ストレージ。三次記憶装置またはオフラインストレージとして使用。
  • CD-RW, DVD-RW, DVD+RW, DVD-RAM, BD-RE: 書き込みは低速だが、読み取りは比較的高速。三次記憶装置またはオフラインストレージとして使用。
  • Ultra Density Optical (UDO) は BD-R や BD-RE と同程度の容量を持つ。書き込みは低速だが、読み取りは比較的高速。三次記憶装置またはオフラインストレージとして使用。

3次元光ディスクも提案されている。蛍光多層ディスクは、C3D が開発した新技術。3次元光ディスクの一種だが、反射光ではなく蛍光を使用するため、従来はせいぜい2層だった記録層を100層にできる。


光磁気ディスク

は、強磁性の表面の磁場の形で情報を記憶するストレージである。読み取りは光学的に行い、書き込みは磁気と光学を組み合わせて行う。光磁気ディスクは不揮発性で、シーケンシャルアクセス式で、書き込みは低速だが、読み取りは比較的高速である。三次記憶装置またはオフラインストレージとして使用する。

紙による記憶媒体としては、紙テープパンチカードがあり、コンピュータ黎明期から広く使われてきた。情報は紙に穴を開けることで記録され、機械的または光学的に穴の位置を知ることで情報を読み取る。

その他の古い技術

真空管メモリ
ブラウン管を使ったウィリアムス管と、大きな真空管を使ったセレクトロン管が情報の格納に使われた。一次記憶装置用だが、市場での寿命は短かった。それは、ウィリアムス管の場合は信頼性が低く、セレクトロン管の場合は高価だったためである。
電子音響式メモリ
遅延線メモリ水銀などの物質上の音波に情報を格納した。遅延線メモリはダイナミックで揮発性、シーケンシャルアクセス式の読み書き可能なストレージである。一次記憶装置として使用された。

その他の新技術

PRAM相変化記録技術
相変化する材質で相変化させることで情報を記録し、電気抵抗や光の反射率を観測することで情報を読み取る。不揮発性、ランダムアクセス式、読み書き可能なストレージ。二次記憶装置またはオフラインストレージに使用するが、場合によっては一次記憶装置に使用する可能性もある。ライトワンスまたはリライタブルの光ディスクは、既に相変化記録技術を使っているものが多い。
ホログラフィックメモリ
結晶またはフォトポリマーの内部に情報を光学的に記憶する。容積全体を記憶に利用できる。不揮発性、シーケンシャルアクセス式、ライトワンスまたは読み書き可能なストレージ。二次記憶装置またはオフラインストレージとして使用する可能性がある。HVD(ホログラフィック・バーサタイル・ディスク)も参照。
分子メモリ
ポリマーの中に電荷の形で情報を記憶する。一次記憶装置に適しているのではないかと言われている。

関連技術

ネットワーク接続

二次または三次記憶装置は、コンピュータネットワークを使ってコンピュータと接続することもある。一次記憶装置ではそのような概念はふさわしくないが、マルチプロセッサでメモリを共有するのも多少それに似ている。

ダイレクトアタッチトストレージ (DAS)
ネットワークを使わずに接続される普通のストレージ。現在も最も一般的手法。この用語は、NAS や SAN と同時期に(区別・対比するために)考案された。
ネットワークアタッチトストレージ (NAS)
LANやプライベートWAN上でファイルレベルで他のコンピュータからアクセスできるストレージ。オンラインストレージの場合は、インターネット経由でアクセス可能。NASは通常NFSCIFS/SMBプロトコルを使用する。
ストレージエリアネットワーク (SAN)
複数のコンピュータにストレージ容量を供給する専用ネットワーク。NAS と SAN の大きな違いは、NAS がファイルシステムとして存在し、クライアントへのアクセスを提供するのに対して、SAN はブロックデバイスレベルのアクセスを提供し、供給した容量はそのクライアントコンピュータ専用のストレージとなる点である。SAN ではファイバーチャネルネットワークを主に使用する。

ロボット型ストレージ

大量の磁気テープ(または光ディスクや光磁気ディスク)を自動化された三次記憶装置に格納したものである。磁気テープの場合はテープライブラリ、光ディスクの場合は光ジュークボックスあるいは光ディスクライブラリ装置などと呼ぶ。最小構成の装置では、装置内にドライブは1つだけで、オートローダまたはオートチェンジャなどと呼ばれる。

ロボット型ストレージの場合、多数のスロットがあってそこに媒体が格納されており、ロボットアームがそれをピックアップして組み込みのドライブに挿入する。スロットの配置とピックアップ機構が性能に影響を与える。重要な特性として拡張性があり、スロットやドライブやロボット機構を追加できるようになっている。テープライブラリの場合、10から10万スロットを有し、テラバイトからペタバイト級の情報を格納できる。光ジュークボックスはそれより若干小規模で、せいぜい1000スロットである。

ロボット型ストレージはバックアップ、画像やビデオなどを大量に保管する必要のある業界(医療、映像産業など)で使われる。階層的ストレージ管理は、このようなストレージ装置も含め、自動的にデータを適切なストレージ階層に移動させる手法である。低い階層に格納してあるファイルが必要になると、自動的にそれを上位のハードディスクなどに取り出すことができる。

関連項目

主記憶装置関連

補助記憶装置関連

脚注

テンプレート:Reflist
  1. http://searchstorage.techtarget.com/topics/0,295493,sid5_tax298620,00.html "Primary Storage or Storage Hardware" (shows usage of term "primary storage" meaning "hard disk storage")
  2. A thesis on Tertiary storage
  3. テンプレート:Citation
  4. DVD FAQ - DVD技術に関する包括的情報源