计算机体系结构课后习题原版答案 - 张晨曦著 联系客服

发布时间 : 星期一 文章计算机体系结构课后习题原版答案 - 张晨曦著更新完毕开始阅读

6.11 假设在一个计算机系统中:

(1) 每页为32KB,Cache块大小为128字节;

(2) 对应新页的地址不在Cache中,CPU不访问新页中的任何数据; (3) Cache中95%的被替换块将再次被读取,并引起一次失效; (4) Cache使用写回方法,平均60%的块被修改过; (5) I/O系统缓冲能够存储一个完整的Cache块; (6) 访问或失效在所有Cache块中均匀分布;

(7) 在CPU和I/O之间,没有其它访问Cache的干扰; (8) 无I/O时,每100万个时钟周期内有18000次失效;

(9) 失效开销是40个时钟周期。如果被替换的块被修改过,则再加上30个周期用

于写回主存;

(10) 假设计算机平均每200万个周期处理一页。 试分析I/O对于性能的影响有多大? 解:每个主存页有32K/128=256块。

因为是按块传输,所以I/O传输本身并不引起Cache失效。但是它可能要替换Cache中的有效块。如果这些被替换块中有60%是被修改过的,将需要(256×60%)×30=4608个时钟周期将这些被修改过的块写回主存。

这些被替换出去的块中,有95%的后继需要访问,从而产生95%×256=244次失效,将再次发生替换。由于这次被替换的244块中数据是从I/O直接写入Cache的,因此所有块都为被修改块,需要写回主存(因为CPU不会直接访问从I/O来的新页中的数据,所以它们不会立即从主存中调入Cache),需要时间是244×(40+30)=17080个时钟周期。

没有I/O时,每一页平均使用200万个时钟周期,Cache失效36000次,其中60%被修改过,所需的处理时间为:

(36000×40%)×40+(36000×60%)×(40+30)=2088000(时钟周期)

时钟I/O造成的额外性能损失比例为

(4608+17080)÷(2000000+2088000)=0.53% 即大约产生0.53%的性能损失。