第8讲-高速缓冲存储器
Cache的目的和基本思路
- 问题:CPU的速度比内存的速度快,且两者差距不断扩大–内存墙。
- 解决:CPU和内存之间增加Cache。
- 解决内存墙带来的CPU和主存协作问题
- 在使用主存(相对大而慢)之余,添加一块小而快的cache
- Cache位于CPU和主存之间,可以集成在CPU内部或作为主板上的一个模块
- Cache中存放了主存中的部分信息的“副本”
Cache的工作流程
-
检查(Check):当CPU试图访问主存中的某个字时,首先检查这个字是否在cache中
-
检查后分两种情况处理:
- 命中(Hit):如果在cache中,则把这个字传送给CPU
- 未命中(Miss):如果不在cache中, 则将主存中包含这个字固定大小的块(block)读入cache中,然后再从cache传送该字给CPU
-
如何判断是命中还是未命中?
- Cache通过标记(tags)来标识其内容在主存中的对应位置
-
局部性原理
- 定义:处理器频繁访问主存中相同位置或者相邻存储位置的现象。
- 时间局部性:在相对较短的时间周期内,重复访问特定的信息(也就是访问相同存储位置的信息)
- 空间局部性:在相对较短的时间周期内,访问相邻存储位置的数据
- 顺序局部性:当数据被线性排列和访问时,出现的空间局部性的一种
特殊情况 - 例如:遍历一维数组中的元素
- 顺序局部性:当数据被线性排列和访问时,出现的空间局部性的一种
- 利用“时间局部性”:将未命中的数据在返回给CPU的同时存放在Cache中,以便再次访问时命中。
- 利用“空间局部性”:将包含所访问的字的块存储到Cache中,以便在访问相邻数据时命中。
-
平均访问时间
- 假设p是命中率, 𝑇c 是cache的访问时间, 𝑇M 是主存的访问时间,使用cache时的
平均访问时间𝑇A为
T A = p × T C + ( 1 − p ) × ( T C + T M ) = T C + ( 1 − p ) × T M T_{A} = p\times T_{C} + (1 − p) \times (T_{C} + T_{M}) = T_{C} + (1 − p)×T_{M} TA=p×T
- 假设p是命中率, 𝑇c 是cache的访问时间, 𝑇M 是主存的访问时间,使用cache时的
深入理解高速缓存(Cache):原理、设计与策略

本文详细解释了高速缓存的作用、工作流程,包括内存墙问题的解决方案、Cache的映射方式、替换策略以及写策略。还讨论了一级和多级缓存的区别,以及局部性原理对Cache性能的影响。
最低0.47元/天 解锁文章
1251

被折叠的 条评论
为什么被折叠?



