【正确答案】高速缓存确定一个请求是否命中,取决于两个条件:①有效位为1;②高速缓存行中的标记位必须与地址中的标记位相匹配。
Ⅱ.然后抽取出被请求的字的过程,分为三步:①组选择;②行匹配;③字抽取。
读0x409,如图4所示。
[*]
图4 读0x409 组号2,块内地址1,标记40。
Ⅰ.不存在有效位为1同时标记位与地址中标记位匹配的行,所以未命中。
写0x40A,如图5所示。
[*]
图5 写0x40A 组号2,块内地址2,标记40。
Ⅰ.上次访问未命中后,系统会把该数据块调入高速缓存中,有效位改为1,块内内容未知,如图6所示。此时存在有效位为1,且同时标记位与地址中标记位匹配的行,所以命中。
[*]
图6 Ⅱ.根据块偏移就能选出起始字节。但具体内容题目没有给出。
写0x833,如图7所示。
[*]
图7 写0x833 组号0,块内地址3,标记83。
Ⅰ.第0组存在有效位为1同时标记位与地址中标记位匹配的行,所以命中。
Ⅱ.根据块偏移就能选出起始字节,读出D0。
综上所述,答案如下:
| 操作 |
地址 |
命中否 |
读出的值(或者未知) |
| 读 |
0x409 |
未命中 |
|
| 写 |
0x40A |
命中 |
未知 |
| 读 |
0x833 |
命中 |
D0 |