<aside>
📖 内存墙
CPU的速度比内存的速度快,且两者差距不断扩大
</aside>
1. Cache的基本思路
<aside>
📖 解决内存墙带来的CPU和主存协作问题
- 在使用主存之余,增加一块小而快的Cache
- Cache位于CPU和主存之间,可以集成在CPU内部或作为主板上的一个模块
- Cache中存放了主存中部分信息的副本
</aside>
2. Cache的工作原理
2.1 程序访问的局部性原理 Principle of Locality
定义
类型
- 时间局限性:在相对较短的时间周期内,重复访问特定的信息
- 空间局部性:在相对较短的时间周期内,访问相邻存储位置的数据
- 顺序局部性:当数据被线性排列和访问时,出现的空间局部性的一种特殊情况
<aside>
📖 向Cache传送内容
- 利用时间局部性
- 将未命中的数据在返回给CPU的同时存放在Cache中,以便再次访问时命中
- 利用空间局部性
- 将包含所访问的字的块存储到Cache中,以便访问相邻数据时命中
</aside>
2.2 Cache和主存空间的划分
- 主存的区域被划分为主存块 (block)
- cache中存放一个主存块的区域称为行 (line) 或槽 (slot)
2.3 Cache的有效位
- 每个Cache行需要有一个有效位 (valid bit) 来说明信息是否有效
- 可以通过将有效位清零来淘汰某cache行中的主存块,称为冲刷 (flush)
3. Cache的工作流程
- 检查 (Check):当CPU试图访问主存中的某个字时,首先检查这个字是否在Cache中