![](https://csdnimg.cn/release/download_crawler_static/87932781/bg1.jpg)
参考题目
一、有两种不同组织结构的cache存储体系直接相联映射和二路组相联映射。根据以下假设,试问它们对
CPU的性能有什么影响?通过求平均访存延迟和计算CPU运行程序时间来比较。
⑴ 两种组织结构的理想cache(命中率为100%)CPI为2,时钟周期为2ns,平均每条指令的主存访问次数
为1.3;命中时间为1个时钟周期,未命中开销均为70ns,cache存储器容量均为64KB,块大小均为32B;
⑵ 直接相联映射的cache未命中率为1.4%,二路组相联映射的cache未命中率为1.0%;
⑶ 在组相联映射的cache存储体系中,由于多路选择器的存在而使得CPU的时钟周期增加到原来的1.10
倍。
解:平均访问时间=命中时间+未命中率×未命中开销
平均访问时间
直接相联
=2ns+1.4%×70ns=2.98ns
平均访问时间
二路组相联
=2ns+1.0%×70ns=2.7ns
CPU
time
=(CPU
执行
+存储等待周期)×时钟周期
=IC(CPU
执行
+总未命中次数/指令总数×未命中开销)×时钟周期
=IC((CPU
执行
×时钟周期)+(每条指令访存次数×未命中率×未命中开销×时钟周期))
CPU
直接相联time
=IC(2×2+1.3×1.4%×70×2)=6.548IC
CPU
二路组相联time
=IC(2×1.1×2+1.3×1%×70×2)=6.22IC
二路组相联的平均访问时间和CPU运行程序时间都更少一些,二路组相联的性能更好。
二、假设一台计算机具有以下特性,计算CPU访存占主存带宽的百分比。若现有I/O设备的输入输出占主存带
宽的1/2,那么主存是否允许增加I/O设备?
⑴ CPU发出访存请求的速率为10^9次/s,且cache命中率96%,主存最大带宽5*10^8字/s,且每次访存
只可读写一个字
⑵ Cache存储器的块容量为2个字,当发生cache未命中时则访问主存储器,并进行cache更新,任何时
刻的cache存储器平均有25%的块被修改过,且采用写回策略维持一致性
解:因为采用写回策略,所以 cache 命中时不会对主存进行访问,因此只要考虑 cache 不命中的情况。
由题可知,cache 命中率为 96%,所以 1s 内有 (1-0.96)×10
9
=4×10
7
次请求会 cache 不命中,
这些请求需要访问主存并进行 cache 更新。cache 更新分为两种情况:
⑴ 若替换的块未被修改则直接替换,块容量为 2 个字,故需传输 2 个字;
⑵ 若替换的块是修改过的,则需先把原来的块写回主存,这里传输 2 个字,再把新块写入 cache,
这里也需要传输 2 个字,共 4 个字。
根据题目可知任何时刻的 cache 存储器平均有 25% 的块被修改过,主存带宽 5×10
8
字/s,故 1s 内
cpu 访存占主存的带宽的占比为:4×10
7
×(0.25×4+0.75×2)/(5×10
8
)=0.2。
故 cpu 访存占主存带宽的 20%,因为 20%<50%,所以允许增加 I/O 设备。