0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

主記憶装置と高速化手法

Last updated at Posted at 2022-07-25

レジスタとメモリとハードディスクの間には超えられない速度の差がある。
そのギャップを緩和するために2つの間に設けるキャッシュメモリディスクキャッシュがある。

キャッシュメモリ

CPUとメモリの読み書き速度の差は非常に違う。
CPUが読み書きしてメモリに渡そうとすると違う処理をしていて待ち時間が発生する。
その待ち時間を無くすために高速に読み書きできるメモリを置く。
それがキャッシュメモリだ。
特徴は

  • 主記憶装置から読み込んだデータは、キャッシュメモリにも保持される。
  • 同じデータを読み込む場合は高速なキャッシュメモリから取得することができる。

このキャッシュは一つだけでは無い。

データを探すためキャッシュへ次から次とアクセスする

1次キャッシュ、2次キャッシュ...と重ねて設置することができる。
1次キャッシュにデータがない場合2次キャッシュへアクセスされる。

CPUよりも低速だけどその分容量を大きく持てるものが増えることでキャッシュ効果に期待が持てる。

また主記憶装置と磁気ディスク装置の間で担うのがディスクキャッシュだ。
ディスクキャッシュは専用の半導体メモリを搭載したり、主記憶装置の一部を間借りすることで実装している。

記憶装置は階層構造になっている。
上から

  • レジスタ
  • キャッシュメモリ
  • 主記憶装置
  • ディスクキャッシュ
  • 磁気ディスク装置(ハードディスクなど)

これが階層構造で組み合わさることで見かけ上は高速で大容量な記憶装置を実現させている。
これを記憶階層と言う。
上に行くほど高速、逆は低速
高速なものほど高価なので容量は限られている。

気づき

全部高速のものにしたら高価すぎるのか。
単価とはそう言うことか。
高速なものは高価なのか。

主記憶装置への書き込み方式

キャッシュメモリは読み出し専門ではない。書き込みも行う。そしてそこで書き込んで終了とはならない。
なので主記憶装置にも反映させなくてはいけない。
その反映方式の紹介だ。

ライトスルー方式

主記憶装置へも同時に書き込みを行う。

ライトバック方式

普段はキャッシュメモリにしか書き込まない。
キャッシュメモリから追い出されるデータが発生した場合に、その内容を主記憶装置へと書き戻して更新内容を反映させる。
普段の書き込み処理が高速化できるのは良いのですが、制御が大変だ。

気づき

ライトバックの説明で制御が大変と書いてあった。
今までの勉強の内容で説明できるのだろうか。
どうして制御が大変かをしっかり言えるようにしたい。

ヒット率と実行アクセス時間

キャッシュメモリはメモリに比べて容量が小さい。なので必ずしも目的のデータがキャッシュメモリに存在するかわからない。
目的のデータが存在する確立はヒット率と言う。
キャッシュメモrになくて、主記憶装置を読みに行く確率は1-ヒット率になる。

予想されるキャッシュメモリのアクセス時間は

キャッシュメモリのアクセス時間 * ヒット率

予想される主記憶装装置にアクセスする時間は

主記憶装置のアクセス時間 * (1-ヒット率)

これらを足し合わせて平均的なアクセス時間(実行アクセス時間)が求まる。

メモリインタリープ

主記憶装置へのアクセスを高速化する手法。
主記憶装置の中の複数の区画(バンク)に分割します。
区画はそれぞれ並行してアクセスできるのが特徴です。
分割した区画は横断するように番地を振り分けられています。 連続した番地のデータを一気に読み出すことができる。

問題を解い解いた時の気づき

キャッシュミス

命令処理に必要なデータがキャッシュメモリに存在せず、キャッシュメモリからデータを読み込むことができないことです。

キャッシュメモリはメインメモリに比べると容量が小さいため、多くのデータを保存しておくことができません。そのため、CPUがキャッシュメモリを検索しても、必要なデータが存在しない場合があります。 この場合をキャッシュミスといいます。

キャッシュミスの場合、命令処理に必要なデータをメインメモリ等に探しに行きます。メインメモリはCPUからの距離が遠いので、アクセスに時間がかかります。その間、命令処理はメモリアクセス待ちとなり、処理の実行が滞ります。

キャッシュヒット

命令処理に必要なデータがキャッシュメモリに存在し、キャッシュメモリからデータを読み込むことができることです。
出典 https://www.fujitsu.com/jp/products/computing/servers/unix/term/cachehit/#:~:text=%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%92%E3%83%83%E3%83%88%E3%81%A8%E3%81%AF%E3%80%81%E5%91%BD%E4%BB%A4,%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%93%E3%81%A8%E3%81%A7%E3%81%99%E3%80%82

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?