平成21年度春期 エンベデッドシステムスペシャリスト試験 午前II 問4
【問題4】
容量 64k バイト,ブロックサイズ 32 バイトのキャッシュメモリをもつ 32 ビット MPU が,主記憶から 1M バイトの 32 ビット整数型配列データを連続して読み出した。このとき,キャッシュメモリのミスヒット率は何%か。
【解説】
キャッシュ構成
- キャッシュ容量: 64 kバイト
- ブロックサイズ: 32 バイト
- キャッシュライン数:
キャッシュ容量 ÷ ブロックサイズ = (64 × 1024) ÷ 32 = 2048 ライン
配列データの特徴
- 配列データ容量: 1M バイト
- データ1個のサイズ: 32ビット(= 4バイト)
- データ個数:
配列データ容量 ÷ データ1個のサイズ = 1M ÷ 4 = 262,144 個
アクセスパターンとミスヒット
- 連続アクセス時のキャッシュ挙動
配列データは連続して読み出されるため、1ブロック(32バイト)には8個の整数データが格納されます。したがって、8個ごとに1回キャッシュミスが発生します。
- ミスヒット率の計算
配列全体でのキャッシュミス回数は以下のように計算されます:
– キャッシュミス回数 = データ総数 ÷ 1ブロックあたりのデータ数
262,144 ÷ 8 = 32,768
– ミスヒット率 = (キャッシュミス回数 ÷ データ総数) × 100
(32,768 ÷ 262,144) × 100 = 12.5%
出典:平成21年度 春期 エンベデッドシステムスペシャリスト試験 午前II 問4