2005年02月22日

情報処理技術者試験:キャッシュメモリの実効速度計算

基本情報処理技術者試験で頻出のパターンです。

これを覚えて下さい:
実効速度=(キャッシュメモリの速度×ヒット率)+(主記憶の速度×(1−ヒット率))

さて、キャッシュメモリとは、メモリ(主記憶装置)へのアクセスを高速化する技術です。CPU はメモリに情報を読み書きしながら情報を処理します。
CPU の速度はメモリが情報を読み書きするよりもずっと速いので、メモリを待つ時間ができて、無駄が生まれます。
より高速なメモリを使えばこの無駄は減らせますが、高速なメモリは高価です。
これを解決するために、高速なメモリをちょっとだけ(少容量)使って、効率よく速度差を埋めよう、というのがキャッシュメモリです。

どう効率よく使うか、の秘密が「一度使った情報はもう一度使う可能性が高い」という法則。
かな漢字変換で「賢児」ってなかなか出ないけど、一度変換するとそれ以降は一発で変換されますよね。
基本的なアイディアはそれと同じ。また使うだろうから近いところに置いておく。
CPU が一度使った命令やデータを高速なメモリに一旦置いて(キャッシュして)、またすぐに使われるのを期待するわけです。

で、その「うまい事また使えちゃったよ確率」が上の計算式の「ヒット率」。
仕組みがわかれば簡単。


例題:
主記憶のアクセス速度が 60 ナノ秒、キャッシュメモリが 10 ナノ秒で、ヒット率が 80% の時の平均メモリアクセスは何ナノ秒か?

回答。 80% の確率でヒットして 10 ナノ秒でアクセスできて、残り 20% は 60 ナノ秒かかる。
だから上の式に当てはめて 10 × 0.8 + 60 × 0.2 = 8 + 1.2 で 9.2 ナノ秒が正解。

ヒット率の定義から、「全体の80% はこのスピードで動けて、残りはこのスピードになる」というのが読めれば問題ないです。


さて、この知識で解ける類題は、調べて出てきた範囲で以下の通り。
もしかしたらもっとあるかも。(見つけたらコメント下さい)

基本情報処理技術者 2003 秋 問 22
基本情報処理技術者 2003 春 問 22
基本情報処理技術者 2002 春 問 24
基本情報処理技術者 2001 秋 問 22
基本情報処理技術者 2000 秋 問 18
基本情報処理技術者 2000 春 問 21
1種(ソフトウェア開発) 2000 問 16
基本情報処理技術者 1999 春 問 17
アプリケーションエンジニア 1997 問 10
基本情報処理技術者 1998 秋 問 21
基本情報処理技術者 1996 秋 問 29

ヒット率を求めたり、キャッシュのおかげで何倍速くなった?
なんてパターンもあるけれど、上の式がわかれば算数で解けるのがこれだけあります。

さらに解説済みの「キャッシュメモリとは何?」という知識を問う問題は

基本情報処理技術者 2002 秋 問 20
基本情報処理技術者 2002 春 問 23
基本情報処理技術者 2001 春 問 21
基本情報処理技術者 1999 春 問 18
基本情報処理技術者 1996 春 問 29

で出ていました。
キャッシュの方式やキャッシュに使われるメモリの知識も出たことはありますが、頻度は低いのでここでは扱いません。
(でも勉強はしといて下さい。あくまで頻出に絞るという主旨に反するってだけなので)

以上です。
posted by 市井賢児 at 2005年02月22日 00:51
| Comment(0) | TrackBack(0) | 情報処理技術者試験対策


この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのTrackBack URL
http://blog.seesaa.jp/tb/2076394
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。