假设在某个计算机系统中 Cache容量为64K字节 数据块大小是32个字节 采用直接映象方式 那么以主存
已帮助 人
回答
共1条回复-
× 每个主存页有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%的性能损失。

