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