コンピュータアーキテクチャ2 補足演習問題と解答

コンピュータアーキテクチャ2 補足演習問題と解答
2015 年 7 月 21 日
情報工学科 宇佐美公良
7/20(月)の授業で、下記の問題を補足演習問題として出しました。解答と解説を記しますので、しっかり理解
し、解答を見ないでも解けるようになるまで演習して下さい。
【補足演習問題】
ブロックサイズが 1 語で総容量が 16 語の 2 ウェイ・セット・アソシアティブ方式のキャッシュを考える。置換
え方式は LRU 法とする。このキャッシュは当初は空である。参照する語のアドレスが以下に列挙する系列で与
えられたとする:2, 3, 11, 16, 21, 13, 64, 48, 19, 11, 3, 22, 4, 27, 6, 11。この順番に従ってメモリを参照したとき
に、それぞれこのキャッシュがヒットするかミスするかを答えよ。
【解答と解説】
2 ウェイ・セット・アソシアティブなので 1 セットに 2 語入るため、セット数は 16÷2=8 セット。アドレスを
8 で割った余りがセット番号となる。以下、問題に記されたアドレスが順番に(Step1~Step16)アクセスされ
た時の様子を、左下の表に記す。また、キャッシュの中の様子を右下の図に示す。
Step アドレス セット番号 ヒット/ミス
処理
1
2
2
ミス
ウェイ 0 に格納
2
3
3
ミス
ウェイ 0 に格納
3
11
3
ミス
ウェイ 1 に格納
0
4
16
0
ミス
ウェイ 0 に格納
1
5
21
5
ミス
ウェイ 0 に格納
2
2
6
13
5
ミス
ウェイ 1 に格納
3
3 19 3 11
7
64
0
ミス
ウェイ 1 に格納
4
4
8
48
0
ミス
ウェイ 0 を置換え(注 1)
5
21
13
9
19
3
ミス
ウェイ 0 を置換え
6
22
6
10
11
3
ヒット
(ウェイ 1 がヒット)
7
11
3
3
ミス
ウェイ 0 を置換え
12
22
6
ミス
ウェイ 0 に格納
13
4
4
ミス
ウェイ 0 に格納
14
27
3
ミス
ウェイ 1 を置換え(注 2)
15
6
6
ミス
ウェイ 1 に格納
16
11
3
ミス
ウェイ 0 を置換え
ウェイ0
セット
16 48
ウェイ1
64
11 27
2 は アドレス2 (2番地)のデータのこと
は 置換えられて上書きされたことを示す
図 キャッシュの中身
(注 1) Step8 でアドレス 48 がアクセスされたとき、セット 0 が検索されるが、ウェイ 0 にはアドレス 16 に対す
るデータ(⑯)
、ウェイ 1 にはアドレス 64 に対するデータ( 64 )が格納されている。どちらのウェイのデー
タもアドレス 48 に対するものではないので、キャッシュはミスし、メインメモリからアドレス 48 に対す
るデータ( 48 )を取ってきてキャッシュに格納する。このときにどちらのウェイに格納するかは LRU 法で
決める。すなわち、セット番号 0 のウェイ 0 とウェイ 1 では、ウェイ 0 は Step4、ウェイ 1 は Step7 でア
クセスされており、ウェイ 0 の方が昔にアクセスされていることになるので、ウェイ 0 の方を置換える。
(注 2) Step14 でアドレス 27 がアクセスされたとき、セット 3 が検索されるが、ウェイ 0 には Step11 で置換え
た③が格納され、ウェイ 1 には Step10 でヒットした⑪が格納されている。Step14 ではキャッシュミスと
なるが、置換えるのは、より昔にアクセスした方(Step10)なので、ウェイ 1 を置換える。
以上