第四章
高速缓冲存储器
一、cache工作原理
1、主存和缓存的编址
2、命中与未命中
假如:
缓存共有 C 块
主存共有 M 块 M>>C
命中 主存块 已调入 缓存
主存块与缓冲块 建立 了对应关系
用 标记来记录 与某缓存块建立了对应关系的 主存块号
未命中 主存块 未调入 缓存
主存块与 缓存块 未建立 对应关系
3、cache的命中率
(1)命中率:
CPU访问的信息在cache中的比率;
是衡量cache效率的主要指标。
(2)命中率公式:
(3)影响命中率的因素
①cache容量越大,命中率越高,但价格越高。
②与块长B有关,联系复杂,取决于程序的局部特性。
注意:
块长B不宜过大,一般取块长为4——8个可编址单位。
4、cache——主存系统的效率
假设:
tc为命中时的cache访问时间;
tm为未命中时的主存访问时间;
h表示命中率;
1-h表示未命中率;
则:
平均访问时间为:hxtc+(1-h)xtm
访问效率e与命中率有关:
e=(访问cache的时间/平均访问时间)x100%
则:e=(tc/(hxtc+(1-h)xtm))x100%
例:
CPU执行一段程序时,cache完成存取的次数为1900次,主存完成的存取次数为100次,已知cache存取时间为50ns,主存存取时间为250ns,求cache/主存系统的效率和平均访问时间。
解:
(1)命中率:
h=1900/(1900+100)=0.95
(2)平均访问时间:
t=0.95x50+(1-0.95)x250=60ns
(3)访问效率:
e=50/60*100%=83.3%
二、cache的基本结构
三、cache的读写操作
1、读操作
2、写操作
为了保持cache和主存的一致性,有两种方法
(1)写直达法
写操作数时既写入cache又写入主存
缺点:若CPU多次访问同一块,就会使该块被频繁写入内存。
(2)写回法
写操作是只把数据写入cache而不写入主存;
当cache数据被替换出去时才写回主存;
命中时读写操作时间就是访问cache的时间;
不命中时,发生数据替换是,可能导致被替换的块需写回主存,增加了cache的复杂性。
四、cache的改进
1、增加caceh级数
片内cache
片外cache
2、统一缓存和分立缓存
指令cache
数据cache
与主存结构有关;
与指令执行的控制方式有关,是否预取、流水。
五、cache——主存的地址映射
1、直接映射(固定的映射关系)
2、全相联映射(灵活性大的映射关系)
3、组相联映射(直接映射和全相联映射的折中)
4、三种映射方式比较
(1)直接映射:
某一主存块只能映射到唯一缓存块。映射方式简单,当时不够灵活,容易导致快冲突。
(2)全相联映射:某一主存块可映射到任一缓存块,最灵活,不易冲突,但成本高。
(3)组相联映射:某一主存块可映射到某一组中的任一块,兼顾了灵活性和成本。
5、例题
六、替换算法
1、先进先出(FIFO)算法
2、最近最少使用算法
替换出近期用得最少的字块
随时记录cache中各字块的使用情况
以确定近期最少使用的字块
3、随机法
随机替换,没有依据访存的局部性原理,不能提高命中率。