CSAPP第六章家庭作业(原书第二版)

6.32
A:地址格式
因为地址宽13位且题目所给地址为0x0718,转换成二进制表示为 0 0111 0001 1000,填下表:
12  11  10  9   8   7   6   5   4   3   2   1   00	0	1	1	1	0	0	0	1	1	0	0	0

B:存储器引用
由题S=8,E=4,B=4,m=13所以s=3,b=2,t=m-(s+b)=8,0-1位是块偏移,2-4位是组索引,5-12是标记位,故根据题A中二进制地址表示可知,CO为00,CI为110,CT为00111000,由题中所给高速缓存表查看索引为0x6、标记位为0x38、块偏移量为0x0的数据为FA,命中。填下表:

在这里插入图片描述

6.33
A:地址格式
因为地址宽13位且题目所给地址为0x16EC,转换成二进制表示为 1 0110 1110 1100,填下表:

12  11  10  9   8   7   6   5   4   3   2   1   01	0	1	1	0	1	1	1	0	1	1	0	0

B:存储器引用
由题S=8,E=4,B=4,m=13所以s=3,b=2,t=m-(s+b)=8,0-1位是块偏移,2-4位是组索引,5-12是标记位,故根据题A中二进制地址表示可知,CO为00,CI为011,CT为10110111,由题中所给高速缓存表查看索引为0x3、标记位为0xb7、块偏移量为0x0的数据,标记位不匹配,不命中。填下表:
在这里插入图片描述

6.37
A:因为高速缓存的大小为1024,整个数组的大小为22564=2048,E=1,x[0][i]和x[1][i]对应的是同一个块的位置,每次读x[0][i]或者x[1][i]时都会发生冲突不命中,故不命中率为100%。

B:因为高速缓存足够保存整个数组,每8个连续的数据都有自己的组索引,由于高速缓存最开始是空的,故每次读的时候每8个数据只有第一个数据冷不命中,后面7个数据都会命中,所以不命中率为1/8,即12.5%。

C:两路组相联,虽然x[0][i]和x[1][i]对应的是同一个组,但是E=2,每次读x[0][i]和x[1][i]时都放在同一个组的不同的行里,B=32,每行放8个数据,所以每8次循环x[0][i]和x[1][i]都只有第一个数发生不命中,后面7个数都命中,所以不命中率为1/8,即12.5%。

D:增大高速缓存,由于情形3块的大小不变,受块大小限制,每8个数据定有一个不命中,所以不命中率为1/8,所以只更改高速缓存的大小不会降低不命中率。

E:换用更大的块,和情况3相比,每行数据的读入量就增大了,除了块偏移为0x0的位置不命中,后面的都会命中,所以更大的块会帮助降低不命中率。

6.42
答:E=1,B=4,每行只放4个字节也即是只能放一个元素buffer[i][j],每次循环都只有buffer[i][j].r不命中,后面三个都命中,故不命中率为25%。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值