问题 问答题

一台计算机有分离的数据和指令Cache。同时该计算机还采用了页式虚拟存储器技术。这里假定页面和Cache块具有大小相同。已知Cache的存取速度为10ns,主存的存取速度为60ns,磁盘的存取速度为12ms。该计算机的时钟周期为10ns。如果指令和数据的提取均命中Cache,指令的执行需要1个时钟周期。Cache采用的是直接映射并使用写回策略。在Cache中平均50%的块是修改过的。对于主存,同样采用写回策略,主存中平均30%的页面已经被修改。
我们假定指令在Cache和主存中的命中率均为95%,而数据在Cache和主存中的命中率为90%,我们还知道一般情况下35%的指令存取数据,求这种情况下的最大CPI。该题必须写出计算过程,并对每一步作必要的说明,否则不给分。

答案

参考答案:分成两种指令算:一种是需要存取数据的指令;另一种是不需要存取数据的指令。不需要存取数据的指令:不需要考虑数据的命中和写回。
65%×(95%×50%×1+95%×50%×60ns/10ns+5%×95%×70%×60ns/10ns+5%×95%×30%×12ms/60ns+5%×5%×12ms/10ns)=6。
需要存取数据的指令:
需要存取数据的指令本身的CPI为:
A=(95%×50%×1+95%×50%×60ns/10ns+5%×95%×70%×60ns/10ns+5%×95%×30%×12ms/60ns+5%×5%×12ms/10ns)。
指令需要存取的数据所耗费的CPI:
B=(90%×50%×1+90%×50%×60ns/10ns+10%×90%×70%×60ns/10ns+10%×90%×30%×12ms/60ns+10%×10%×12ms/10ns)。
最后结果为:A×35%+B×35%=11。

填空题
单项选择题