请教关于两级cache命中率的问题!

Terz_C 2018-05-08 12:10:49
题目:
一个存储系统由两级cache和主存储器组成,延迟时间分别为1个时钟周期、10个时钟周期和100个时钟周期。
每条指令平均访问存储器1.5次。在执行1000条指令过程中,访问第二级cache90次,访问主存储器36次。
问:
(1)第一级cache的命中率?
(2)第二级cache的命中率?
(3)访问一次存储器平均需要()个时钟周期
(4)由访问存储器引起的执行每条指令平均停顿()个时钟周期
(5)只考虑访问储存器的影响,CPI为?

看答案前两个问题就没搞明白 答案是
(1)第一级cache命中次数是1000-90=910次 所以命中率为910/1000=91%?
(2)第二级cache90条指令中,命中次数为90-36=54次,则命中率为54/90=60%?


不应该是:执行1000条指令,故总共访问存储器1000×1.5=1500次,第一级cache访问次数是1500-90-36=1374次
所以第一级cache命中率是 1374/1500
第二级cache命中率是 90/1500

然后(3)的答案是 (1000×1+90×10+36×100)/(1.5×1000)=3.7个

如果按前两个答案的逻辑 不应该是 91%×1+60%×10+(1-60%)×100

另外平均停顿时钟周期的概念貌似教材里没有给出?能否指点一二?

跪求指导!!
...全文
2474 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
首先,L1 Cache不命中才会访问L2 Cache,L2 Cache不命中才会访问主存,所以 (1)的答案应该是错的,第一级cache的命中率应该是(1500-90)/1500=94% (2)是对的,这没啥说的 (3)的答案是对的,但是计算过程比较奇怪,应该是(1410*1+54*10+36*100)/1500=3.7 (4)由(3)可知是3.7-1.5=2.2 (5)(1410*1+54*10+36*100)/1000=5.55
永远的追梦人 2018-05-09
  • 打赏
  • 举报
回复
引用 3 楼 夜里去小便的回复:
[quote=引用 1 楼 qq_30918465 的回复:] 我记得好像访问第一级cache未命中,会从第二级cache里把数据缓存到第一级cache,所以终于一定会访问第一级cache
能帮我看下第3小题答案的思路么?没搞明白它的逻辑 [/quote] https://zhidao.baidu.com/question/201025799702799965.html 你去看一下这个问题的第二个回答
永远的追梦人 2018-05-09
  • 打赏
  • 举报
回复
引用 3 楼 夜里去小便的回复:
[quote=引用 1 楼 qq_30918465 的回复:] 我记得好像访问第一级cache未命中,会从第二级cache里把数据缓存到第一级cache,所以终于一定会访问第一级cache
能帮我看下第3小题答案的思路么?没搞明白它的逻辑 [/quote] 这个不知道怎么回事,你可以去问下你们老师。而且有时候答案也不一定是正确的。
Terz_C 2018-05-09
  • 打赏
  • 举报
回复
引用 1 楼 qq_30918465 的回复:
我记得好像访问第一级cache未命中,会从第二级cache里把数据缓存到第一级cache,所以终于一定会访问第一级cache
能帮我看下第3小题答案的思路么?没搞明白它的逻辑
赵4老师 2018-05-08
  • 打赏
  • 举报
回复
百度搜相关关键字。
永远的追梦人 2018-05-08
  • 打赏
  • 举报
回复
我记得好像访问第一级cache未命中,会从第二级cache里把数据缓存到第一级cache,所以终于一定会访问第一级cache

3,881

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧