高速缓存的工作原理
- 字:是指存放在一个存储单元中的二进制代码组合
- 字的地址包含两个部分
- 前m位指定字块的地址
- 后b位指定字在字块中的地址
- 字块:存储在连续的存储单元中而被看作是一个单元的一组字
- 主存和缓存的逻辑结构类似
- 缓存的容量较小
- 缓存的速度更快
- 命中率是衡量缓存的重要性能指标
- 理论上CPU每次都能从高速缓存取数据的时候,命中率为1
- 访问主存次数:Nm
- 访问Cache次数:Nc
- 命中率h=Nc/Nc+Nm
- 访问率
- 访问效率:e
- 访问主存时间:tm 访问缓存时间:tc
- 访问Cache-主存系统平均时间:ta = htc+(1-h)tm
- e=tc/ta
高速缓存的替换策略
- 随机算法
- 先进先出算法(FIFO)
- 把高速缓存看做是一个先进先出的队列
- 优先替换最先进入队列的字块
- 最不经常使用算法(LFU)
- 优先淘汰最不经常使用的字块
- 需要额外的空间记录字块的使用频率
- 最近最少使用算法(LRU)
- 优先淘汰一段时间内没有使用的字块
- 有多种实现方法,一般使用双向链表
- 把当前访问节点置于链表的前面(保证链表头部节点是最近使用的)