问题 单项选择题

在多级存储系统中,Cache处在CPU和主存之间,解决 (64) 问题。若Cache和主存的存取时间分别T1和T2,Cache的命中率为H,则计算机实际存取时间为 (65) 。当CPU向存储器执行读操作时,首先访问Cache,如命中,则从Cache中取出指令或数据,否则从主存中取出,送 (66) ;当CPU向存储器执行写操作时,为了使Cache内容和主存的内容保持一致,若采用 (67) 法,同时写入Cache和主存。由于Cache容量比主存容量小,当Cache已写满时,但要主存信息写入Cache时,就要淘汰Cache中的已有信息。为了提高Cache的命中率,常采用一种 (68) 替换算法。

68()

A.LRU

B.FIFO

C.FILO

D.RANDOM

答案

参考答案:A

解析:

系统的平均存储周期与命中率有很密切的关系,命中率的提高即使很小,也能导致性能上有较大改善。

当Cache存储器产生了一次访问未命中之后,相应的数据应同时读入CPU和 Cache。但是当Cache已存满数据后,新数据必须淘汰Cache中的某些旧数据。常用的淘汰算法主要有以下三种。

(1)FIFO算法:把一组中最先调入Cache的字块替换出去,实现较简单。

(2)LRU(Least Recently Used)算法:把一组中近期最少使用的字块替换出去,命中率较高,因此最为常用。

(3)RAnd算法:用随机数发生器产生需替换的字块号,因为不能很好反映程序局部性,命中率较低。

因为需要保证缓存在Cache中的数据与主存中的内容一致,相对读操作而言,Cache的写操作比较复杂,常用的有以下几种方法。

(1)写直达(write through):当要写Cache时,数据同时写回主存储器,有时也称为写通。

(2)写回(write back):CPU修改Cache的某一行后,相应的数据并不立即写入主存储器单元。而是当该行从Cache中被淘汰时,才把数据写回到主存储器中。

(3)标记法:对Cache中的每一个数据设置一个有效位。当数据进入Cache后,有效位置1;而当CPU要对该数据进行修改时,数据只需写入主存储器并同时将该有效位清零。当要从Cache中读取数据时需要测试其有效位:若为1则直接从Cache中取数,否则从主存中取数。

单项选择题
判断题