设某机主存容量为16MB,Cache的容量为16kb.每字块有8个字,每个字32位.设计一个四路组相联映像的Cache组织

画出主存地址字段各段的位数。2设Cache初态为空,CPU依次从主存第0、1、2...99单元读出100个字,主存一次读出一个字块,并重复此次续读10次,问命中率是多少?... 画出主存地址字段各段的位数。2 设Cache初态为空,CPU依次从主存第0、1、2...99单元读出100个字,主存一次读出一个字块,并重复此次续读10次,问命中率是多少? 展开
 我来答
XRSWYEA
2021-06-14 · TA获得超过471个赞
知道小有建树答主
回答量:896
采纳率:47%
帮助的人:103万
展开全部
答案:
(1):
组相联映射主存地址被分成三个部分(由低位到高位):字快内地址、组地址、主存字块标记。

每一块容量8个字,每个字4个字节,包含32个字节,所以字块内地址需要5位。
Cache共有16KB/32B=512块,每组4块,得Cache共有512/4=128组。那么组地址就需要7位。
16MB得主存容量需要24位地址。那么主存字块标记就是24-5-7=12位。
(2):
首先要明确一点:只有在第一遍访问时才会存在未命中情况,那么我们就需要计算第一次有多少个字没有命中。
当出现一次未命中时,主存就会把对应块上的数据传送到Cache中,那么我们只需要计算出第一遍遍历中主存向Cache传送了多少次数据,就可以得到未命中的次数。

100个字有100*4=400B,每一块存储空间为32B,那么100个字就需要400/32=13个块。
那么第一遍便利的时候主存需要向Cache传送13次数据,也就是说有13次未命中。
全部过程访问8*100=800次,未命中13次,则命中率为(800-13)/800=98.375%

(3):
设主存存取周期为6t,那么Cache存取周期就为t。
只有主存需要时间为:800*6t
加上缓存需要时间为:13*6t+787*t
加速比就为:(800*6t)/ (13*6t+787*t) = 5.549
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式