便利な車内ワゴンサービス
先日、久しぶりに新幹線で出張したときのことである。出張先での仕事を終えた帰りの新幹線車内で、私は無性にビールを飲みたくなった。私は酒に強いほうではないが、ビール好きなのである。ちょうどそこへ車内販売のワゴンが来たのでビールを注文した。すると販売員は、すかさずワゴンから冷えた缶ビールを私に手渡してくれた。この間、1分もかからないやりとりであった。私は、ビールを飲みたいと感じてからごく短時間で喉の渇きを潤すことができ、とても満たされた気持ちになった。
そのあと、私の近くの座席にいた親子連れが、販売員にオレンジジュースを注文した。販売員は恐縮しながら答えた。「あいにく今オレンジジュースを切らしております、少々お待ちいただけないでしょうか」と。そして販売員は一旦パントリーに向かった。子供はおとなしく待っていた。しばらくして、販売員はオレンジジュースを手にして戻ってきた。ようやくその子供はオレンジジュースを手に入れることができた。最初に母親が販売員に尋ねてから、所望のオレンジジュースを手に入れるまで、概ね10分はかかったように思う。ジュースを買ってもらったのに、子供はちょっと不機嫌そうである。待たされすぎて、オレンジジュースを注文したことさえ忘れてしまったようにも見えた。
ワゴンとキャッシュの関係
「ビール」や「ジュース」をコンピュータの「データ」に、それらの何かを買うという行為をコンピュータの「データの読み出し」に置き換えてみよう。車内販売のワゴンはキャッシュ装置と同じ働きをしている。
ここで言うキャッシュはいわゆる現金のことではない。英語では「貯える場所」をさす言葉である。コンピュータの世界ではデータが保存されている場所と、読み出しを行うものの間に存在する中間的なメモリという意味合いが強い。コンピュータ本体内の記憶装置とCPUの間に存在する場合もあれば、ディスク装置とサーバの間にある場合もある。ここではディスク装置に搭載されたキャッシュついて話を進めてみよう。
ワゴンに目的の商品があった場合、すぐにその商品は手に入れられる。これを「キャッシュヒット」と呼んでいる。ちょうど欲しいデータが「当たった」のである。ヒットすれば最小の時間で読み込みが完了する。一方、ワゴンに目的の商品がなかった場合、データが「当たらなかった」ので「キャッシュミス(キャッシュヒットミス)」と呼んでいる。
「キャッシュミス」が起こると、スピードの遅いディスクへデータを直接取りに行かねばならないので時間がかかる。メモリとハードディスクの速度差は単位が1つ違うので概ね100倍から1000倍も遅いからだ。その結果、処理の待ち時間が大きくなる。コンピュータはデータの読み出しが遅くても機嫌を損ねたりはしないが、それだけ後続の処理が遅れることは間違いない。たくさん「キャッシュミス」が起これば、コンピュータの全体の処理速度に与える影響はバカにならないのだ。