A-A+

假设在一个计算机系统中: ①每页为32 KB Cache块大小为128 B。 ②对应新页的地

2022-08-12 12:37:26 问答库 阅读 196 次

问题详情

假设在一个计算机系统中: ①每页为32 KB,Cache块大小为128 B。 ②对应新页的地址不在Cache中,CPU不访问新页中的任何数据。 ③Cache中95%的被替换块将再次被读取,并引起一次失效。 ④Cache使用写回方法,平均60%的块被修改过。 ⑤I/O系统缓冲能够存储一个完整的Cache块。 ⑥访问或失效在所有Cache块中均匀分布。 ⑦在CPU和I/O之间,没有其他访问Cache的干扰。 ⑧无I/O时,每100万个时钟周期内有18 000次失效。 ⑨失效开销是40个时钟周期。如果被替换的块被修改过,则再加上30个周期用于写回主存。 ⑩假设计算机平均每200万个周期处理一页。 试分析I/O对于性能的影响有多大?


请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:×
每个主存页有32KB/128B=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%的性能损失。

考点:计算机系统,大小