高速缓冲存储器
目的:避免CPU“空等”现象
存储器的三级:

最右侧还有辅存没有画出来
复习:
- CPU一般跟缓存打交道
- CPU在缓存里找不到数据时,偶尔跟主存打交道
- CPU在主存里依然找不到数据时就不找了,不会去辅存找,直接把进程挂起
CPU和缓存、主存交换数据的依据:程序访问的局部性原理
Cache的工作原理
(1)Cache的工作原理
主存和缓存按块存储,主存的块数为$M$,缓存的块为$C$,$M>>C$(因为缓存很小)
但是主存和缓存的每一块的大小完全相同
(2)命中与未命中
命中:主存块调入缓存,主存块与缓存块建立了对应关系(地址映射)
未命中:主存块未调入缓存,主存块与缓存块未建立对应关系
(3)Cache的命中率
命中率:CPU欲访问的信息在Cache中的比率
命中率与Cache的容量与块长有关
块长取一个存储周期内从主存调出的信息长度
Cache基本结构

Cache的三个结构:
- 地址映射变换机构:主存地址块号通过地址映射变换机构映射到Cache地址块号
- Cache存储体:将Cache地址存储Cache存储体
- Cache替换机构:存储体满了以后通过Cache替换结构替换Cache中的存储块
Cache的读写操作:
读:

地址总线同时将地址传给Cache和主存,两边并行工作
写
Cache和主存的一致性(因为cache的内容是部分主存内容的副本,应该与主存内容保持一致。)
写策略有两种:
- 写直达法
写操作时数据既写入Cache又写入主存
写操作时间就是访问主存的时间(写速度慢),读操作时不涉及对主存的写操作,读操作比较简单(读速度快) - 写回法
写操作时只把数据写入Cache而不写入主存,当Cache数据被替换出去时才写回主存
写操作时间就是访问Cache的时间(写速度快),读操作Cache失效发生数据替换时,被替换的块需写回主存,增加了Cache的复杂性(读速度慢)
Cache-主存地址映射
1. 直接映射

某一主存块只能固定映射到某一缓存块,但一个缓存块对应多个主存储体字块
优点:简单
缺点:效率低,块冲突发生率高。
2. 全相连映射

主存中的任一块可以映射到缓存中的任一块
优点:Cache使用率高,块冲突发生率低
缺点:成本高
3. 组相联映射

某一主存块只能映射到某一缓存组中的任一块
组间:一组主存储器字块和一组Cache字块一一对应
组内:同组内主存体的任一块可以映射到通组内缓存中的任一块
替换算法,跟OS里学的一样
- 先进先出(FIFO)算法
- 近期最少使用(LRU)算法
- 最优算法(透视未来用于比较算法好坏的那种)
Comments | NOTHING