読み込み中...記憶装置(きおくそうち)とは、コンピュータが処理すべきデジタルデータをある期間だけ保持するのに使う、部品、装置、電子媒体の総称。メモリ(英: memory)またはストレージ(英: storage)とも。記憶装置はコンピュータの中核機能の1つである「情報の記憶」を行う。現代のコンピュータには必ず何らかの記憶装置があり、CPUと共に1940年代から使われ続けている基本的コンピュータモデルを実装している。
一般に、メモリは Random Access Memory (RAM) などの半導体記憶装置を指し、高速だが一時的な記憶に利用する。ストレージは、光ディスク、ハードディスクなどの磁気記憶装置といった、メモリよりも低速だがより恒久的な性質を持った記憶装置を指す。メモリは「一次記憶装置(主記憶装置)」、ストレージは「二次記憶装置(補助記憶装置)」にほぼ対応する。
このような分類は、一般的なコンピュータ・アーキテクチャに根ざしたものである。英語では「ストレージ」が記憶装置全般を指すことがあるため、二次記憶装置としてのストレージをマスストレージとも呼ぶ。
様々な自然現象を利用した記憶装置が発明されてきた。しかし、実用的な万能記憶装置(媒体)は今のところ存在せず、それぞれに何らかの欠点がある。そのため、コンピュータシステムにはいくつかの種類の記憶装置が含まれ、それぞれに用途が限定されている。
デジタルコンピュータは、データを二進法で表す。テキストも数値も画像もビットの並びまたは2進数の数値に変換でき、各ビットは1か0の値をとる。最も一般的な記憶単位はバイトで、通常8ビットで構成される。コンピュータが情報処理するには、その情報を二進法で表現したもの、すなわちデータを格納できるだけの記憶装置の容量を必要とする。例えば800万ビット、すなわち約1メガバイトあれば、一般的コンピュータでは短い小説を格納できる。
コンピュータの最重要部品はCPU(プロセッサ)であり、データを操作し、計算を行い、他の部品を制御する。
メモリがないと、コンピュータは決められた処理を行って結果を即座に出力することしかできない。これは、電卓やデジタルシグナルプロセッサでは問題ない。それとは異なり、ノイマン型システムでは、命令とデータは共にメモリに格納される。そうすることで、新たな処理をするのにハードウェアの再構成をしなくて済み、単にメモリ上の命令列を書き換えればよいため、より汎用的になる。また、プロセッサには細かい処理を行う命令を実装するだけで済み、複雑な処理手続きを通しての状態を保持する必要がないため、設計が単純になる。今日、コンピュータのほとんどはノイマン型である。
実際、ほとんどのコンピュータは様々な種類のメモリを使っており、CPUを頂点として性能とコストのトレードオフを考慮した階層を形成している。一般に、階層上で高い位置にあるストレージほど帯域幅が大きく、CPUからのアクセスレイテンシが小さい。逆に、ビット当たりのコストは階層上で下の方ほど安価になるのが一般的である。
一次記憶装置または主記憶装置は、CPUが直接アクセスできる唯一の記憶装置である。CPUはそこに格納されている命令を常に読み取り、実行している。頻繁に操作しているデータも同様の方法でそこに格納されている。
初期のコンピュータでは、水銀遅延線、ウィリアムス管、磁気ドラムメモリが一次記憶装置として使用された。1954年ごろ、磁気コアメモリがそれら信頼性の低い手法に取って代わった。トランジスタの発明によって全く新しい半導体メモリが生まれ、集積回路技術によるメモリに進化した。
これが現在の Random Access Memory (RAM) へと繋がっている。RAMは小さく軽いが、当初は非常に高価だった。一次記憶装置に使うRAMは揮発性のものが多く、電力が供給されないと情報が失われてしまう。
一次記憶装置は、さらにいくつかの階層に分かれており、それぞれ記憶容量と性能が異なる。メインメモリは、メモリバス(フロントサイドバスとも呼ぶ)経由でCPUと直接または間接に接続される。メモリバスは実際にはアドレスバスとデータバスで構成される。CPUはまず、アドレスバスにメモリアドレスと呼ばれる数値を送り、アクセスしたいデータの位置を指定する。次にデータ本体の読み書きをデータバスで行う。場合によってはCPUと一次記憶装置の間にメモリ管理ユニット (MMU) があり、仮想記憶という抽象化などのタスクを実施する。
一次記憶装置で使うRAMは揮発性であるため、それだけでは電源を入れたときにCPUが実行する命令を読み出すことができない。そこで、小さな立ち上げプログラム(BIOS)の格納された不揮発性メモリを使ってブート処理を行う。ブート処理では、不揮発性の二次記憶装置からより大きなプログラムをメインメモリに持ってきて、それを実行する。ここで使われる不揮発性メモリを Read Only Memory (ROM) と呼ぶ。
"ROM" と呼ばれるメモリは実際には「リードオンリー」ではないことが多く、更新が可能である。しかし、書き込みは遅く、再書き込みの前に消去する必要がある。組み込みシステムではプログラムを書き換えることが少ないため、ROM上のプログラムを直接実行することがある。普通のコンピュータではROMにBIOSなどの単純なプログラム以外を置くことはなく、プログラムは不揮発性の二次記憶装置に記憶しておくのが一般的である。
前述したとおり、英語では「一次記憶装置」は primary storage だが、最近では storage の意味が日本語での用法に近い場合があるため、primary storage が本項目で言うところの「二次記憶装置」を意味する場合も出てきている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")。
二次記憶装置または補助記憶装置は、CPUから直接アクセスできない点が一次記憶装置と異なる。コンピュータは通常、入出力チャネルを使って二次記憶装置にアクセスし、必要なデータを一次記憶装置上のバッファに転送する。二次記憶装置は電源が切れてもデータが失われない、不揮発性である。また、価格も一次記憶装置に比べると桁違いに安価である。結果として、現在のコンピュータは一次記憶装置よりも大容量の二次記憶装置を備え、そこにデータを長期間記憶しておくことが多い。
現在のコンピュータは、二次記憶装置としてハードディスクドライブを使うのが一般的である。ハードディスク上のデータアクセスにかかる時間はミリ秒単位である。一方、RAM上のデータアクセスにかかる時間はナノ秒単位である。これはハードディスクが機械的に可動(回転)する装置であるためで、メインメモリと比較すると約100万倍遅い。CDやDVDなどの光学ドライブはさらにアクセス時間が長い。
二次記憶装置に使われる他の技術としては、フラッシュメモリ(USBメモリなど)、フロッピーディスク、磁気テープ、紙テープ、パンチカード、メインメモリとは異なるRAMディスク、ZIPドライブなどがある。
二次記憶装置はファイルシステムとしてフォーマットされることが多く、それによってデータをファイルやディレクトリに抽象化し、ファイルの所有者、アクセス時間、アクセスパーミッションなどの付加的情報(メタデータ)も提供する。
多くのオペレーティングシステムは仮想記憶の概念を使い、システムが物理的に利用可能な容量以上の一次記憶装置(メインメモリ)を使えるようにする。一次記憶装置が一杯になると、システムは最も使われていない部分(ページ)を二次記憶装置(スワップファイル)に移し、後で必要になったときに一次記憶装置に戻す。このやり取りが多くなると、システム全体の性能は低下する。
三次記憶装置 A は、記憶装置の第三の階層である。典型的な例として、ロボット機構を使って必要に応じて記憶媒体をドライブに挿入したり除去したりする装置がある。データは使用する前に二次記憶装置にコピーすることが多い。これは主に滅多に使わないデータの保管に使う(三次記憶装置は二次記憶装置よりもさらに遅く、アクセス時間は数十秒レベルである)。
コンピュータが三次記憶装置から情報を読み取る必要が生じると、まずカタログデータベースを参照して、必要な情報を格納しているテープやディスクを特定する。次に、ロボットアームにコンピュータが指示して、その媒体をドライブに挿入させる。コンピュータが情報の読み取りを終えると、ロボットアームが媒体を元の場所に戻す。
オフラインストレージとは、CPUの制御下にないストレージである。その記憶媒体は二次記憶装置か三次記憶装置として書き込まれ、物理的に外されたり、除去されたものである。つまり、再びアクセスするには、人間が媒体をドライブに挿入したり、装置を接続したりする必要がある。三次記憶装置とは異なり、人間が介在しないとアクセスできない。
オフラインストレージは、物理的なデータ転送手段としてよく利用される。また、ディザスタリカバリのためにバックアップを遠隔地に保管する手段としても有効である。オフラインストレージは情報セキュリティの観点からも重要であり、物理的に即座に内容にアクセスできず、コンピュータを使った悪意ある攻撃からも安全である。また、保管目的で情報を記憶させる場合、ほとんど滅多にアクセスすることがないなら、三次記憶装置よりもずっと安価に保管できる。
最近のパーソナルコンピュータでは、二次記憶装置や三次記憶装置として利用される記憶媒体は、オフラインストレージとしても利用できるものが多い。光ディスクやフラッシュメモリが代表的だが、リムーバブルのハードディスクドライブもある。企業においては磁気テープが比較的多く利用されている。古くは、フロッピーディスク、ZIP、パンチカードなどがあった。
記憶装置は、いくつかの基本的属性で分類できる。また、実装に固有な属性もある。基本的属性とは、揮発性/不揮発性、書き換え可能/不可能、アクセス方式、アドレス指定方式である。また、どんな実装であっても容量と性能は重要な属性である。
記憶装置は、読み出し時にデータの内容を破壊してしまうもの(破壊読み出し)とそのまま残るもの(非破壊読み出し)に分けることができる。磁気コアメモリは破壊読み出し、スタティックRAMは非破壊読み出しの代表的なものである。
2008年現在、よく使われている記憶装置技術としては、半導体、磁気、光学があり、紙も限定的に使われ続けている。他にも、かつて使われていた記憶装置技術や、開発が進んでいる新技術もある。
半導体メモリは、半導体による集積回路に情報を格納する。半導体メモリには数百万個の微細なトランジスタやコンデンサが集積されている。揮発性と不揮発性の半導体メモリがある。現代のコンピュータでは、一次記憶装置にはほぼ必ずダイナミックな揮発性半導体メモリ(DRAM)を使っている。21世紀に入ったころから、フラッシュメモリと呼ばれる不揮発性半導体メモリがオフラインストレージとしてシェアを伸ばし続けている。不揮発性半導体メモリは、各種電子機器や特殊なコンピュータの二次記憶装置としても使われている。
初期のコンピュータでは、磁気ドラムメモリ、磁気コアメモリ、コアロープメモリ、薄膜メモリ、磁気バブルメモリなどが一次記憶装置としても使われていた。また、磁気テープは二次記憶装置として使われることが多かった。
光磁気ディスクは、強磁性の表面の磁場の形で情報を記憶するストレージである。読み取りは光学的に行い、書き込みは磁気と光学を組み合わせて行う。光磁気ディスクは不揮発性で、シーケンシャルアクセス式で、書き込みは低速だが、読み取りは比較的高速である。三次記憶装置またはオフラインストレージとして使用する。
3次元光ディスクも提案されている。蛍光多層ディスクは、C3D が開発した新技術。3次元光ディスクの一種だが、反射光ではなく蛍光を使用するため、従来はせいぜい2層だった記録層を100層にできる。
紙による記憶媒体としては、紙テープやパンチカードがあり、コンピュータ黎明期から広く使われてきた。情報は紙に穴を開けることで記録され、機械的または光学的に穴の位置を知ることで情報を読み取る。
大量の磁気テープ(または光ディスクや光磁気ディスク)を自動化された三次記憶装置に格納したものである。磁気テープの場合はテープライブラリ、光ディスクの場合は光ジュークボックスあるいは光ディスクライブラリ装置などと呼ぶ。最小構成の装置では、装置内にドライブは1つだけで、オートローダまたはオートチェンジャなどと呼ばれる。
ロボット型ストレージの場合、多数のスロットがあってそこに媒体が格納されており、ロボットアームがそれをピックアップして組み込みのドライブに挿入する。スロットの配置とピックアップ機構が性能に影響を与える。重要な特性として拡張性があり、スロットやドライブやロボット機構を追加できるようになっている。テープライブラリの場合、10から10万スロットを有し、テラバイトからペタバイト級の情報を格納できる。光ジュークボックスはそれより若干小規模で、せいぜい1000スロットである。
ロボット型ストレージはバックアップ、画像やビデオなどを大量に保管する必要のある業界(医療、映像産業など)で使われる。階層的ストレージ管理は、このようなストレージ装置も含め、自動的にデータを適切なストレージ階層に移動させる手法である。低い階層に格納してあるファイルが必要になると、自動的にそれを上位のハードディスクなどに取り出すことができる。
読み込み中...