質問: キャッシュに関する問題です。
回答: どのcache blockが使われるか考えればわかります。 例えば direct map では、 (1) は(最初なので)cache miss し、そのデータを 0x3400〜0x341f の cache block に格納します。(2) は 0x2200 の cache block に格納、 (3)は (1) で cache に乗っているので cache hit、(4) は 0x1400に格納。という具合。 2way set-associative map では2つの物理アドレスまで乗せられますが cache の高さは半分になります。(1) は cache miss して way 0 の 0x1400 のブロックに格納、(2) は way 0 の0x0200 に格納。(3) は direct map と同様 cache hit、(4) は way 1 の 0x1400 に格納。 ここまでは direct map も set-associative も cache に乗る量は変わりません。しかし (7)(8) のように direct map では追い出されてしまうものが set-associative では 乗せることができます。ここを正しく回答してください。