サンプル問題 科目A 問11, 問12
問11 問題
メモリのエラー検出及び訂正に ECC を利用している。データバス幅 2^n ビットに対して冗長ビットが n + 2 ビット必要なとき,128 ビットのデータバス幅に必要な冗長ビットは何ビットか。
ア:7 イ:8 ウ:9 エ:10
出典:基本情報技術者試験 サンプル問題 科目A
回答
これは、128が2の7乗ということがわかれば、7+2が答えなので、ウです。
特に追加したい情報も無いので、次に行きます。
問12 問題
A ~ D を,主記憶の実効アクセス時間が短い順に並べたものはどれか。
出典:基本情報技術者試験 サンプル問題 科目A
キャッシュメモリと主記憶
A, Bのキャッシュメモリがない場合は単純ですが、C, Dのキャッシュメモリがある場合について次の図で例えます。
キャッシュメモリとアクセス時間
CPUは、まずキャッシュメモリを見に行きます。この図では、一時保管する棚のイメージです。
この棚に入っているもののリストがあり、CPUはこのリストから探します。これは一瞬(所要時間ゼロ)で探せるものとします。
もしそのリストの載っていなければ棚にはないので、倉庫を探します。
リストにあれば、棚を探します。これはリストを探すように所要時間ゼロとはいかず、少し時間(キャッシュメモリのアクセス時間)がかかります。
主記憶とアクセス時間
この図では、主記憶を倉庫として例えました。
倉庫を探すには結構時間(主記憶のアクセス時間)がかかります。
棚のリストになかった場合に倉庫を探します。棚を探してから倉庫を探すわけではありません。つまり、キャッシュメモリのアクセス時間がかかってから、主記憶のアクセス時間がかかるわけではありません。
ヒット率
この例えから分かるように、棚にあるかないかで所要時間が大きく変わります。棚にある割合を(キャッシュメモリの)ヒット率と言います。
実効アクセス時間(所要時間の期待値)の計算
キャッシュメモリのアクセス時間を c 、主記憶のアクセス時間を m 、ヒット率を p とすると、実効アクセス時間(これは、図の所要時間の期待値です)は次のようになります。
p×c + (1 - p)×m
キャッシュメモリがない場合、p=0であり、実効アクセス時間=mです。
実効アクセス時間を計算する
Aの場合
Bの場合
Cの場合
0.6×20+(1-0.6)×70 = 40(ナノ秒)です。
Dの場合
0.9×10+(1-0.9)×80 = 17(ナノ秒)です。
回答
A、D、B、Cの順になり、イです。
おまけ
キャッシュメモリのキャッシュのつづりは cash ではなく cache です。