ディスクキャッシュ

読み:でぃすくきゃっしゅ / 英語表記:disk cache

主記憶と磁気ディスク装置などの補助記憶装置の間に置くバッファメモリ。よく使うデータを一時的に保存し、双方のアクセス速度の差を補う。

イマシルちゃんの解説

主記憶(メモリ)に比べて、磁気ディスクはとっても遅いんだ。
毎回ディスクまで取りに行っていたら、待ち時間ばかりになっちゃうよね。

ディスクキャッシュは、ディスクから読んだデータを、近くの「一時置き場」に取っておく仕組みなんだ。
同じデータをもう一度使うときは、一時置き場からすぐに取り出せる。
キャッシュメモリと同じ考え方を、メモリとディスクの間で使っているんだよ!

より深い解説

定義

ディスクキャッシュは、補助記憶装置(磁気ディスク装置など)と主記憶の間でやり取りするデータを、高速なメモリに一時的に保持して、補助記憶装置へのアクセスの回数を減らし、見かけのアクセス速度を高める仕組みである。

置かれる場所

種類場所
装置内のキャッシュハードディスクやSSDの装置の中にあるメモリ
OSのキャッシュ(ページキャッシュ)主記憶の一部を、OSがディスクのデータのキャッシュとして使う
RAIDコントローラのキャッシュディスクアレイの制御装置にあるメモリ

読み込みと書き込み

処理動作
読み込みキャッシュにあれば(ヒット)すぐに返す。なければディスクから読んでキャッシュに置く。続きのデータを先読みすることもある
書き込み(ライトスルー)キャッシュとディスクの両方に書いてから完了とする。安全だが遅い
書き込み(ライトバック)キャッシュに書いた時点で完了とし、後でまとめてディスクに書く。速いが、停電でデータを失うおそれがある

ライトバック方式のキャッシュを持つRAIDコントローラなどは、停電に備えてバッテリーやフラッシュメモリでキャッシュの内容を守る仕組みを持つ。

実効アクセス時間

実効アクセス時間 = ヒット率 × キャッシュのアクセス時間 + (1 − ヒット率) × ディスクのアクセス時間

キャッシュメモリと同じ考え方で、ヒット率が高いほど、実効アクセス時間は短くなる。

記憶の階層の中の位置

階層高速化の仕組み
CPU ⇔ 主記憶キャッシュメモリ
主記憶 ⇔ 磁気ディスクディスクキャッシュ
主記憶の容量の不足仮想記憶(ディスクで主記憶を補う)

似た仕組みとの区別

仕組み内容
ディスクキャッシュ主記憶と磁気ディスクの間にバッファメモリを置き、アクセス速度の差を補う
メモリインタリーブ主記憶を複数のバンクに分け、アクセスを並列に処理する
DMA主記憶と入出力装置の間で、CPUを介さずにデータを転送する
仮想記憶外部記憶装置を使って、主記憶の容量を超えるメモリ空間を使えるようにする

実際の試験ではここに出る!

この用語が出てくる記事

↑