使用Cache改善系统性能的依据是程序的局部性原理。程序中大部分指令是(1)的。设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时

admin2017-09-13  26

问题 使用Cache改善系统性能的依据是程序的局部性原理。程序中大部分指令是(1)的。设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要额外存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均读取时间约为(2)ns。
(2)

选项 A、12.3
B、14.7
C、23.4
D、26.3

答案B

解析 在设计和开发系统程序和应用程序时,程序员通常采用模块化的程序设计方法。某一模块的程序,往往集中在存储器逻辑地址空间中很小的一块范围内,且程序地址分布是连续的。也就是说,CPU在一段较短的时间内,是对连续地址的一段很小的主存空间频繁地进行访问,而对此范围以外地址的访问甚少,这种现象称为程序访问的局部性。
    基于程序访问的局部性原理,增加Cache使得要访问的数据绝大多数都可以在Cache中找到,这样才能在性能上使主存的平均读出时间尽可能接近Cache的读出时间。Cache的工作效率通常用“命中率”来表示。
    命中率指的是CPU要访问的信息在Cache中的概率,Cache的命中率越高,CPU访问主存的速度就越接近访问Cache的速度。通常Cache的容量越大,存储的块也越多,CPU的命中率就越高。但是,当Cache的容量达到一定值时,命中率并不会随着容量的增大而增加,而且Cache容量的增大将导致成本的增加,所以,Cache的容量一般是命中率与成本价格的折衷。
    在一个程序执行期间,设Nc表示Cache完成存取的总次数,Nm表示主存完成存取的总次数,h定义为命中率,则有

    若tc表示命中时的Cache访问时间,tm表示未命中时的主存访问时间,1-h表示未命中率,则Cache一主存系统的平均访问时间ta为:
    ta=htc+(1一h)tm
转载请注明原文地址:https://kaotiyun.com/show/JDLZ777K
0

最新回复(0)