【基本・応用情報】キャッシュ・ライトスルー方式・ライトバック方式・ヒット率について

IT
スポンサーリンク

スポンサーリンク

はじめに

こんにちは、情報系大学生のゆうき(@engieerblog_Yu)です。

今回はコンピュータの高速化手法についてまとめていきたいと思います!

今回の内容は、基本・応用情報技術者試験などに含まれ、情報系の学部でも学ぶ内容となっています。

前回の内容です。

記憶装置ごとにアクセス時間が異なる

コンピュータの高速化を考える上で問題となるのは、記憶装置ごとにアクセスする時間が異なるということです。

アクセス時間が短い順に並べると以下のようになります。

(短い)CPU < 主記憶装置 < ハードディスク(長い)

よって、CPUが速く処理しても、主記憶装置やハードディスクの処理を待っていたのでは、高速に処理を行うことができません。

高速に処理を行うために、記憶装置間の速度のギャップを埋めることが大切です。

そこで考えられたのがキャッシュです。

記憶装置間のアクセス時間が異なることで、待ち時間が発生してしまう可能性がある

待ち時間を少なくするために考えられたのがキャッシュ

キャッシュについて

記憶装置間の速度のギャップを埋めるために用いられるのが、キャッシュです。

キャッシュを用いることで、CPUと主記憶装置の間の速度や、主記憶装置とハードディスク間の速度のギャップを緩和することができます。

CPUと主記憶装置間のキャッシュはキャッシュメモリといい、主記憶装置とハードディスク間のキャッシュはディスクキャッシュといいます。

それぞれのキャッシュは、二つの記憶装置の中間の容量と速度を持つことでギャップを緩和しています。

(容量小・高速)CPU > キャッシュメモリ > 主記憶装置 > ディスクキャッシュ > ハードディスク(容量大・低速)

キャッシュは記憶装置間の速度ギャップを埋めるために用いられる

CPUと主記憶装置間のキャッシュ→キャッシュメモリ

主記憶装置とハードディスク間のキャッシュ→ディスクキャッシュ

キャッシュはなぜ有用?

キャッシュは処理が速いといっても、容量がとても小さく、なぜ使うのかわからないと思う方も多いと思います。

キャッシュが有用な理由は、データに局所参照性があるからです。

局所参照性とは、参照に局所的な偏りができてしまうことを指します。

具体的には、局所参照性の一つに時間的参照性があります。

時間的参照性とは、最近に参照されたデータはもう一度アクセスされることが多い傾向があるという性質です。

キャッシュは、直近に参照されたデータはもう一度参照されやすいという時間的参照性を利用した技術です。

キャッシュは、時間参照性を利用していることが、有用である理由

時間的参照性とは、最近に参照されたデータはもう一度アクセスされることが多い傾向があるという性質

ゆうき
ゆうき

局所参照性には、他にも空間的参照性や逐次的参照性などがあります。

容量と速度の関係

容量と速度には、反比例の関係があります。

記憶装置を速度順に並べると、以下のようになります。

CPU > キャッシュメモリ > 主記憶装置 > ディスクキャッシュ > ハードディスク

それに対して、容量順に並べると逆の順番になります。

CPU < キャッシュメモリ < 主記憶装置 < ディスクキャッシュ < ハードディスク

一般に高速であるほど、容量が小さくなり、価格が高くなります。

容量と速度には反比例の関係がある

主記憶装置への書き込み

CPUがキャッシュメモリを使って、主記憶装置に書き込みを行いたい場合、以下の二つの方式があります。

ライトスルー方式

ライトバック方式

ライトスルー方式

ライトスルー方式とは、キャッシュメモリと主記憶装置の書き込みを同時に行う方式です。

高速ではありませんが、キャッシュメモリと主記憶装置のデータを一致させることができます。

ライトバック方式

ライトバック方式とは、キャッシュメモリから溢れかえったデータを主記憶装置に書き込む方式です。

高速ですが、制御が難しいというデメリットがあります。

主記憶装置の読み込み

主記憶装置を読み込む場合には、まず高速であるキャッシュメモリを参照します。

キャッシュメモリに対象のデータがあった場合、キャッシュメモリからデータを読み込みます。

もし無かった場合、主記憶装置からデータを読み込みます。

この時、対象のデータがキャッシュメモリにある割合をヒット率と言います。

ヒット率が高ければ高いほどアクセス時間は短くなります。

平均的なアクセス時間(実行アクセス時間)は以下のように計算できます。

(キャッシュメモリのアクセス時間)×(ヒット率)+(主記憶装置のアクセス時間)×(1-ヒット率)

対象のデータがキャッシュメモリにある割合をヒット率という

実行アクセス時間の計算式

(キャッシュメモリのアクセス時間)×(ヒット率)+(主記憶装置のアクセス時間)×(1-ヒット率)

まとめ

記憶装置間の待ち時間を少なくするために考えられたのがキャッシュ

キャッシュは、時間参照性を利用していることが、有用である理由

記憶装置の容量と速度には反比例の関係がある

対象のデータがキャッシュメモリにある割合をヒット率という

実行アクセス時間の計算式

(キャッシュメモリのアクセス時間)×(ヒット率)+(主記憶装置のアクセス時間)×(1-ヒット率)

今回は、コンピュータの高速化手法についてまとめました。

他にも、情報技術者試験に含まれている内容をまとめているので合わせてどうぞ。

関連記事

情報系の大学生の方、情報系に興味がある方、情報系に就職を考えている方は情報技術者試験をとることをおすすめします。

ざっくり以下のようなイメージです。

基本情報技術者→情報系の学部1・2年で学ぶ内容

応用情報技術者→情報系の学部3・4年で学ぶ内容

特に応用情報技術者試験に合格すると、情報系の就職にかなり有利になったり、会社で優遇されたりします。

私が情報技術者試験の学習に使った、おすすめ書籍は以下になります。

めちゃくちゃわかりやすいので、情報系でない方でもすらすら読み進めることができると思います。

おすすめ書籍

ゆうき
ゆうき

最後まで読んでいただきありがとうございました。

IT
スポンサーリンク
ゆうきをフォローする
autotech

コメント

タイトルとURLをコピーしました