目录
命中率(Hit Rate):在任一时刻,CPU能从Cache中可靠获取数据的几率。
h
=
N
c
N
c
+
N
m
h = \frac{N_c}{N_c + N_m}
h=Nc+NmNc
丢失率(Miss Rate):所要访问的信息不在Cache中的比率。
工作原理
程序访问的局部性:
工作过程:CPU经常存取的数据、指令,被自动地从内存放进Cache,形成主存部分内容的副本。CPU会首先到副本中读取或写入数据,只有当Cache中没有所需数据或Cache已满无法写入,才对内存进行读写。空闲时,Cache会与内存交换数据,更新其中的副本。
基本结构
(1)Cache存储器
(2)Cache控制器
① 主存地址寄存器
② 主存-Cache地址变换机构
③ 替换控制
主存与Cache的地址映射
(1)全相联映射
(2)直接映射
(3)组相联映射
Cache的基本操作
(1) 读取结构
① 贯穿读出式(Look Through)
-
工作过程:Cache档在主存之前,CPU对内存的所有数据请求,都首先到Cache,由Cache自行查找。如果命中,则切断CPU对内存的请求,并将数据送出;如果不命中,便将请求传送给主存
-
优点:降低了CPU对主存的请求次数。
-
缺点:延迟了CPU对主存的访问时间。
② 旁路读出式(Look Aside)
-
工作过程:CPU发出数据请求,把请求同时送给Cache和主存。Cache速度快,先反映,如果命中了,Cache在将数据返回给CPU的同时并中断CPU对内存的请求;如果没在Cache命中,Cache便不做任何操作,由CPU访问主存。
-
优点:消除了CPU对主存的访问时间的延时。
-
缺点:CPU主动对主存访问,占用了一部分总线时间。
(2) 更新策略
① 写通法(Write Through)
-
工作过程:CPU在向Cache写入的同时,也写入主存。
-
优点:操作简单;维护了Cache与主存的内容一致性。
-
缺点:由于主存的速度慢,降低了系统的写速度;并占用了总线时间。
② 写回法(Write Back)
-
工作过程:当CPU对Cache写命令时,只修改Cache的内容,不利己写入主存,只有在该数据块被替换出Cache时,才将他写回主存。Cache中的每个数据块都设置了“修改标志位”,该数据块被修改过便为1,未被修改过则为0,当数据块被换出时,若标志位为1则将该数据块写入主存,否则弃之不顾。
-
优点:由于每次不访问内存,减少了主存访问次数,提高了系统效率。
-
缺点:存在Cache与主存数据不一致的隐患。
③ 写一次法(Write Once)
(3) 替换策略
① 近期最少使用替换策略(Least Recently Used,LRU)
② 最不经常使用替换策略(Least Frequently Used,LFU)
③ 随机替换策略(RAND)
④ 先进先出策略(FIFO)
性能
(1) 引起Cache脱靶的主要原因
程序被首次执行时,主存块尚不在Cache中
Cache容量太小,不能在执行过程中,将所需的指令和数据全部调入Cache,
(2) 提高Cache性能的方法
-
增大Cache容量来降低不命中率。
-
通过Cache的结构设计减少不命中率。
-
通过预取计数提高命中率。