• ベストアンサー

メモリ階層が有効である理由

大学の授業のほうで先生が「メモリ階層が有効である」と言っていました。この意味がよくわかりません。 プロセッサ⇔キャッシュ⇔メモリ⇔補助記憶 のように階層が下に行くたびに順に速度が遅くなってることが関係しているのでしょうか? どなたか教えてください!

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

関係してます。 非常に単純な話で、コストの問題と速度の問題が一番です。 今のプロセッサは物凄く速いですが、それは命令を実行するときで、 ひとたび、「待ち」に入ると、その次の命令を実行するときに実行時間の何倍も遅れてしまいます。 プロセッサと同じ速度で動作するメモリーは非常に高価です。 高価くらいなら良い方で、最近のプロセッサを考えれば、 同じダイの上のメモリーくらいしか同じ速度で動きません。 現実問題として、必要なメモリー容量をプロセッサと同じ速度の モノを用意できない以上、遅いメモリを使うしかありません。 しかし、遅いメモリを使ったらいくら高速のプロセッサでも、 命令を読み込むたびにプロセッサは「待ち」になります。 これは実際、途方もなく大きい時間です。 ならば、少しでも速くしないといけませんから先読みですよね。 読み出すときのアルゴリズムを工夫して、少ないけれど高速のメモリーを使って、命令の先読みをするのがキャッシュ。 さらには、OSに必要な全てのプログラムを収納できるけど、桁違いに遅いHDDには、メインメモリーと、それぞれのデバイスで速度の違いを吸収するんですわ。 このように階層構造になっていることで、通常の使用では速度の違いを吸収して、出来る限り高速でプロセッサを動かすようにするんですね。 全てはプロセッサの「待ち」を減らすためと言えます。

関連するQ&A