假定 某系统主存容量为8KB,高速缓存容量为256B,数据块大小为64B,按字节编址,高速缓存采用直接映像方式。试回答以下问题: •(1)试给出主存和高速缓存的地址格式,标明各字段的名称及位数。 (2)假定初始高速缓存中没有有效数据,CPU依次读取地址为0021H,0023H, 0005H, 003FH, 0063H,0082H的内存单元,这些操作完成后,地址变换表的4个单元的内容是什么?(未使用的单元其值为空)以上6次访存操作的命中率是多少?简洁回答一下
时间: 2023-09-29 22:10:54 浏览: 141
(1) 主存地址格式为:[标记(tag)][组号(index)][块内偏移量(offset)],其中标记占用的位数取决于主存容量和数据块大小,组号占用的位数取决于高速缓存容量和数据块大小,块内偏移量占用的位数取决于数据块大小。 高速缓存地址格式为:[组号(index)][块内偏移量(offset)],其中组号占用的位数取决于高速缓存容量和数据块大小,块内偏移量占用的位数取决于数据块大小。
(2) 第1次访问地址0021H时,主存地址为0020H~0027H,其中组号为0020H/64=32H,块内偏移为0021H mod 64=33H,因此高速缓存中的地址为32H:33H。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0020H~0027H并放入高速缓存32H。因此地址变换表中的内容为32H:33H:32H:1(有效位为1,表示该数据块已经被加载到高速缓存中)。
第2次访问地址0023H时,主存地址为0020H~0027H,其中组号为0020H/64=32H,块内偏移为0023H mod 64=35H,因此高速缓存中的地址为32H:35H。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0020H~0027H并放入高速缓存32H。因此地址变换表中的内容为32H:33H:32H:1。
第3次访问地址0005H时,主存地址为0000H~0007H,其中组号为0000H/64=0H,块内偏移为0005H mod 64=5H,因此高速缓存中的地址为0H:5H。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0000H~0007H并放入高速缓存0H。因此地址变换表中的内容为0H:5H:0H:1。
第4次访问地址003FH时,主存地址为0038H~003FH,其中组号为0038H/64=1D,块内偏移为003FH mod 64=3FH,因此高速缓存中的地址为1DH:3FH。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0038H~003FH并放入高速缓存1DH。因此地址变换表中的内容为0H:5H:0H:1, 1DH:3FH:1DH:1。
第5次访问地址0063H时,主存地址为0060H~0067H,其中组号为0060H/64=30H,块内偏移为0063H mod 64=3H,因此高速缓存中的地址为30H:3H。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0060H~0067H并放入高速缓存30H。因此地址变换表中的内容为0H:5H:0H:1, 1DH:3FH:1DH:1, 30H:3H:30H:1。
第6次访问地址0082H时,主存地址为0080H~0087H,其中组号为0080H/64=40H,块内偏移为0082H mod 64=2H,因此高速缓存中的地址为40H:2H。由于高速缓存中没有有效数据,发生缺失,将从主存中读取数据块0080H~0087H并放入高速缓存40H。因此地址变换表中的内容为0H:5H:0H:1, 1DH:3FH:1DH:1, 30H:3H:30H:1, 40H:2H:40H:1。
命中率为1/6=16.7%。
阅读全文