サンプル問題 科目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の場合

Aはキャッシュメモリがないので、15(ナノ秒)です。

Bの場合

Bもキャッシュメモリがないので、30(ナノ秒)です。

Cの場合

0.6×20+(1-0.6)×70 = 40(ナノ秒)です。

Dの場合

0.9×10+(1-0.9)×80 = 17(ナノ秒)です。

回答

A、D、B、Cの順になり、イです。

おまけ

キャッシュメモリのキャッシュのつづりは cash ではなく cache です。