基本情報技術者試験など情報処理技術者試験を受験する方にとっては必須の,記憶装置についてシンプルにまとめています。RAMやROM,記憶媒体,レジスタ,キャッシュメモリ,主記憶装置,補助記憶装置(ハードディスク,SSD,光学ディスク(CD,DVD,BD),磁気テープ)について説明しています。たくさんありますので,繰り返しじっくり読んでみてください。
記憶装置
記憶装置は,プログラムやデータを記憶する装置です。記憶装置には,主記憶装置や補助記憶装置などがあります。これらは,それぞれアクセス速度や記憶容量が異なり,コンピューターでは,これらを組み合わせることにより効率的なメモリアクセスを実現しています。
記憶階層
記憶装置は,CPUと同じ速度で大容量なものが好ましいです。しかし,コストの問題や技術的な問題があり現実的ではありません。実際には,高速で小容量な記憶装置と低速で大容量な記憶装置を組み合わせて,全体の処理速度を向上させています。
記憶装置を,アクセス速度と記憶容量により分類すると次のようになります。
記憶媒体(ストレージメディア)
記憶媒体には,次のようなものがあります。
半導体記憶装置
半導体記憶装置には,RAM(Random Access Memory)とROM(Read Only Memory)があります。
RAM | ROM | |
---|---|---|
特徴 | 読み書き可能 | 基本的には読み出し専用(全消去や,書き込み,追記が可能なものもある) |
記憶保持 | 電源が切れると記憶内容は消える(揮発性) | 電源が切れても記憶内容は消えない(不揮発性) |
RAM(Random Access Memory)
RAMには,一定時間が経過するとデータが消えてしまうDRAM(Dynamic RAM)と,コンピューターの電源が切れるまではデータが消えないSRAM(Static RAM)があります。
※VRAMという,画面表示の際に使用されるメモリもある
DRAM | SRAM | |
---|---|---|
特徴 | コンデンサに電荷を蓄えることにより情報を記憶する リフレッシュの必要あり | フリップフロップ回路によりリフレッシュ不要 |
速度 | リフレッシュにより速度は下がる | DRAMより速い |
消費電力 | 高い | 低い |
コスト | 安価 | 高価 |
記憶容量 | SRAMより大きい | 構造が複雑なため大容量化に向かない |
用途 | 主記憶装置,ディスクキャッシュ | レジスタ,キャッシュメモリ |
※ リフレッシュとは,記憶内容保持のために行う再書き込みのことをいう
※ フリップフロップ回路とは,二つの状態(0と1)のいずれかを保持できる論理回路のことをいう
※ 実際に使用されるDRAMは,ほとんどがSDRAM(Synchronous DRAM)である。SDRAMは,クロック信号に同期して動作する
ROM(Read Only Memory)
ROMには,読み出し専用のマスクROMと書き換えが可能なPROM(Programmable ROM)があります。
マスクROM | PROM | |
---|---|---|
書き換え | 不可 | 可 |
特徴 | 製造時にプログラムやデータが書き込まれる | 何も記録されていない状態で出荷される |
用途 | ゲーム機のソフト,組込み機器など | - |
さらに,PROMには次のようなものがあります。
EPROM | EEPROM | フラッシュメモリ | |
---|---|---|---|
消去 | 紫外線で全消去(部分的に消去することはできない) | 電気(部分的に消去することも可) | 電気 (ブロック単位で部分的に消去することも可) |
書き込み | 電気 | 電気 | 電気 |
用途 | 開発途上のプログラムの書き込みなど | コンピューターの設定情報などを記憶するためなどに補助的に使用されることが多い | 携帯情報端末の内部ストレージ メモリーカード USBメモリ など |
※ EPROM(Erasable PROM)
※ EEPROM(Electrically Erasable and PROM)
※ フラッシュメモリは,ストレージ(補助記憶装置)の記憶素子として急激に普及している。書込み回数は,一般的には,数百万回くらいが上限(フラッシュメモリは,書換えを繰り返すことによりデータの保持能力が低下する)
レジスタ
レジスタは,プロセッサ(CPU)内部にある超高速で小容量な記憶装置です。 命令やデータ,アドレス(主記憶装置内のデータの保存場所)などを一時的に保存します。CPUの構成によりレジスタの数や種類,容量が異なります。
※レジスタについては,「プロセッサ -情報処理シンプルまとめ」を参照
キャッシュメモリ
キャッシュメモリは,CPUと主記憶装置の間(実際にはCPU内部)に置かれることのある記憶装置です。レジスタよりは低速ですが,主記憶装置よりは遙かに高速です。記憶容量は数kB~数MB程度です。使用頻度の高いデータを格納しておくことにより主記憶装置へのアクセスを減らすことができ,処理を高速化することができます。
※ CPUによっては,1次キャッシュ,2次キャッシュ,…,というように,アクセス速度や記憶容量の異なるキャッシュメモリを搭載しているものもある
※ キャッシュメモリが搭載されていないCPUもある(例:Celeronなど)
CPUからキャッシュメモリへのアクセス
キャッシュメモリにデータがある場合
キャッシュメモリにデータがない場合
読み出すデータがキャッシュメモリにある場合は,主記憶装置へのアクセスは発生しないため,高速に処理することができます。
ヒット率
ヒット率とは,キャッシュメモリに必要なデータが存在する確率のことをいいます。ヒット率が高いと必要なデータを高速に読み出すことができます。逆に,キャッシュメモリに必要なデータが存在しない場合は,主記憶装置にアクセスすることになります。キャッシュメモリに必要なデータが存在しない確率はNFP(Not Found Probability)といいます。
- ヒット率
- =1-NFP
- NFP
- =1-ヒット率
ヒット率と,キャッシュメモリへのアクセス時間,主記憶装置へのアクセス時間が分かれば,メモリアクセスにかかる時間(実効アクセス時間)を求めることができます。
実効アクセス時間=
キャッシュメモリへのアクセス時間×ヒット率+主記憶装置へのアクセス時間×(1-ヒット率)
ミスペナルティ
ミスペナルティとは,キャッシュメモリに必要なデータが存在しない場合に,主記憶装置からキャッシュメモリにデータをコピーするのにかかる時間のことをいいます。
命令キャッシュ
命令キャッシュとは,呼び出される可能性の高い命令(過去に実行された命令など)を,キャッシュメモリにもたせておく仕組みをいいます。
主記憶装置からキャッシュメモリへの書き込み
キャッシュメモリに格納するデータは,バイト単位ではなく何バイトかをまとめた固定長のブロック単位で管理します(32バイト、64バイトなど)。
ダイレクトマップ方式
ダイレクトマップ方式では,ハッシュ関数を用いて主記憶装置のブロック番号からキャッシュメモリのブロック番号を求め,データを格納します。
ハッシュ関数を使用しますので,主記憶装置のブロック番号とキャッシュメモリのブロック番号は1対1に対応します。検索は容易ですが,衝突が起こりやすくヒット率は下がります。
※ ヒット率とは,CPUがキャッシュメモリにアクセスしたときに,必要なデータが存在する確率のことをいう(上記参照)
フルアソシアティブ方式
フルアソシアティブ方式では,キャッシュメモリの空いている任意のブロックにデータを格納します。
キャッシュメモリが一杯になるまで衝突は起こりません。しかし,データを検索する場合は,毎回,すべてのブロックを検索しなければならないので効率は下がります。
※ この方式は,実際には使われていないようである
セットアソシアティブ方式
セットアソシアティブ方式では,キャッシュメモリを複数のグループに分け,各グループの空いている任意のブロックにデータを格納します。
ブロックの置き換え
衝突が起こった場合のブロックの置き換えには次のような方式があります。
FIFO(First In First Out) | 最初にキャッシュメモリに読み込んだブロックを置き換える |
LIFO(Last In First Out) | 最後にキャッシュメモリに読み込んだブロックを置き換える |
LRU(Least Recently Used) | 最後に参照されてから最も長い時間が経過したブロックを置き換える |
LFU(Least Frequently Used) | 参照頻度の最も低いブロックを置き換える |
ランダム | ブロックをランダムに置き換える |
データの更新
CPUがキャッシュメモリのデータを更新した場合,主記憶装置のデータも更新しなければなりません。
ライトスルー
キャッシュメモリのデータと主記憶装置のデータを,同時に更新する。常に,キャッシュメモリの内容と主記憶装置の内容は一致するが,処理速度は低下する
ライトバック
キャッシュメモリのデータだけを更新する。主記憶装置のデータの更新は,そのデータが置き換わるタイミングで行われる。キャッシュメモリの内容と主記憶装置の内容が一致しないことがあるが,処理速度は速い
主記憶装置(メインメモリ)
主記憶装置は,CPUが直接読み書きできる記憶装置です。キャッシュメモリよりは低速ですが,補助記憶装置よりは高速です。記憶容量は数GB程度です。レジスタやキャッシュメモリ同様,電源を切るとその内容は失われます(揮発性)。
メモリインタリーブ
メモリインタリーブは,主記憶装置へのアクセスを高速化する技術です。主記憶装置を複数のメモリバンクに分割してデータを配置し,読み出す際には,その複数のメモリバンクに(ほぼ)同時にアクセスします。こうすることで,レイテンシを小さくすることができ,効率的にデータの読み出しができるようになります。
※ レイテンシ…データが読み出される際の待ち時間
主記憶装置の規格
主記憶装置の規格には次のようなものがあります。DDR5やDDR4など,各規格には互換性がありませんので,上位規格のメモリに乗り換える場合,CPUやマザーボードも交換しなくてはなりません。
規格 | メモリモジュール規格 | メモリチップ規格 | 転送速度 | クロック周波数 | 容量 |
---|---|---|---|---|---|
DDR5 | PC5-51200 | DDR5-6400 | 51.2GB/s | 6,400MHz | 8GB~32GB |
PC5-44800 | DDR5-5600 | 44.8GB/s | 5,600MHz | 8GB~32GB | |
… | … | … | … | … | |
DDR4 | PC4-34100 | DDR4-4266 | 34.1GB/s | 4,266MHz | 4GB~16GB |
PC4-25600 | DDR4-3200 | 25.6GB/s | 3,200MHz | 4GB~16GB | |
… | … | … | … | … | |
DDR3 | PC3-14900 | DDR3-1866 | 14.9GB/s | 1,866MHz | 4GB~16GB |
PC3-12800 | DDR3-1600 | 12.8GB/s | 1,600MHz | 4GB~16GB | |
… | … | … | … | … |
※ メモリモジュール規格の数値は転送速度を,メモリチップ規格はクロック周波数を示しています。
※ 2021年現在の主流はDDR4である
補助記憶装置
補助記憶装置も,プログラムやデータを記憶する装置です。主記憶装置よりも記憶容量は大きく,電源を切ってもその内容は失われません(不揮発性)。しかし,主記憶装置よりも低速で,CPUから直接読み書きすることもできません。
ハードディスク(HDD:Hard Disk Drive)
ハードディスクは,ディスク(プラッタ)に塗布してある磁性体の状態を変化させることによりデータを記録する装置です。
ハードディスクの構造
※ハードディスクは複数のプラッタで構成され,データは各プラッタの両面にセクタ単位で記録される。
- プラッタ
- データを記録する円盤
- セクタ
- ハードディスクの区画の最小単位で,データはこのセクタ単位に記録される
- トラック
- セクタ1周分の領域
- シリンダ
- 各プラッタの同じ位置のトラックの集まり
フォーマット(初期化,イニシャライズ)
ハードディスクを最初に使用するときなどに行う作業で,セクタやトラックの設定をしてデータを読み書きできるようにします。
ディスクキャッシュ
ディスクキャッシュとは,主記憶装置とハードディスクなどの補助記憶装置の間に置かれる記憶装置のことをいいます(実際には,ハードディスクに内蔵されていたり主記憶装置の一部を割り当てたりします)。使用頻度の高いデータなどをディスクキャッシュに複製しておくことにより処理を高速化します。
記憶容量
ハードディスクの記憶容量は次の式により求めることができます。
記憶容量(バイト)=
セクタ長(バイト)×1トラック当たりのセクタ数×1シリンダ当たりのトラック数×シリンダ数
アクセス時間
ハードディスクへのアクセス時間は次の式により求めることができます。
アクセス時間=
平均位置決め時間+平均回転待ち時間+データ転送時間
※平均位置決め時間は,磁気ヘッドが目的のトラックへ移動するまでの時間の平均である。平均シーク時間ともいう
※平均回転待ち時間は,磁気ヘッドの真下に目的のセクタが来るまでの時間の平均で、プラッタが1回転する時間の半分になる
※データの転送時間は,目的のデータの読み書きの開始から終了までの時間である
SSD(Solid State Drive)
SSDは,記憶媒体にフラシュメモリを用いた記憶装置です。ハードディスクは機械的に読み書きしますが,SSDは電気的に読み書きしますので高速です。衝撃や振動にも強いです。また,消費電力が少ない,小型化が可能といった特長もあります。しかし,フラッシュメモリは書き込みを行うたびに素子が劣化しますので,ある回数を超えると破損してしまいます(書き換え回数に制限があります)。
※ 2.5インチサイズのSSDはハードディスクと同じSATA接続で互換性がある
※ M.2のSSDはマザーボードに直接接続する。M.2にはSATA3.0接続のものと,PCIe3.0×NVMe接続のものがある。PCIe3.0×NVMe接続のSSDは,さらに高速である
TBW(Terabytes Written)
TBWはSSDに書き込める上限のデータ量をテラバイト単位で表したものです。累計の書き込みデータ量を計測し把握できるようになっています。
DWPD(Drive Writes Per Day)
DWPDは,メーカーの保証期間中,1日にドライブ全体を何回書き換えてよいかを示す指標です。たとえば,DWPD=10の場合,1日に記憶容量の10倍のデータを書き込んでも,保証期間が終わるまでに寿命を迎えることはない,という意味になります。
光学ディスク(Optical Disk)
光学ディスクは,データの読み書きにレーザー光を使用する記憶媒体です。CDやDVD,BDなどがあります。
CD(Compact Disc)
音楽用に開発された記憶媒体です。コンピュータ用としても普及しています。直径は8cmと12cmのものがあります。
種類 | 読出し | 書込み | 容量 | 備考 |
---|---|---|---|---|
CD-ROM | ○ | × | 650~700MB | 再生専用 |
CD-R | ○ | 1回 | 追記型 | |
CD-RW | ○ | 1,000回 | 書換型 |
DVD(Digital Versatile Disc)
CDよりも短い波長のレーザー光を使用することにより大容量化を実現しています。12cmのディスクの場合,片面1層4.7GB,片面2層8.54GB,両面1層9.4GB,両面2層17.04GBがあります。
種類 | 読出し | 書込み | 容量 | 備考 |
---|---|---|---|---|
DVD-ROM | ○ | × | 4.7~17GB | 再生専用 |
DVD-R | ○ | 1回 | 追記型 | |
DVD-R DL | ||||
DVD+R | ||||
DVD+R DL | ||||
DVD-RW | ○ | 1,000回 | 書換型 | |
DVD+RW | ||||
DVD-RAM | ○ | 100,000回 |
BD(Blu-ray Disc)
DVDよりもさらに短い波長のレーザー光を使用することにより大容量化を実現しています。片面1層当たり25GBの記憶容量があります。
種類 | 読出し | 書込み | 容量 | 備考 |
---|---|---|---|---|
BD-ROM | ○ | × | 25~100GB | 再生専用 |
BD-R | ○ | 1回 | 追記型 | |
BD-RE | ○ | 1,000回 | 書換型 |
磁気テープ
磁気テープは,テープ状のフィルムに磁性体を塗布した記憶媒体です。
DDS(Digital Data Storage)
DDSは,音声録音用の磁気テープであるDAT(Digital Audio Tape)をデータ記録用に流用したもので,データのバックアップなどに利用されています。
規格 | テープ長 | テープ幅 | 記憶容量 | |
---|---|---|---|---|
非圧縮時 | 圧縮時 | |||
DAT 160 | 154m | 8mm | 80GB | 160GB |
DAT 320 | 153m | 8mm | 160GB | 320GB |
※ 現在は,規格の更新や対応機器の製造,販売は行われていない
まとめ
今回は,記憶装置について,シンプルにまとめてみました。ただ覚えるだけでなく,しっかり理解できるまで繰り返し読んでみましょう。ここの内容も,基本情報技術者試験や応用情報技術者試験でよく問われます。避けてはとおれません…。くじけず頑張りましょう。