高速缓冲存储器
高速缓冲存储器
CPU与Cache之间的数据交换以字为单位
Cache与主存之间的数据交换以Cache块为单位
Cache容量计算,
控制部分(标记阵列容量)(地址映射表等)
行数×(标记位+有效位+算法位+脏位+块内地址位)
确定数据一致性维护方式、映射方式、替换算法和写策略并划分地址结构
数据部分
行数×每行数据
总容量=数据部分+控制部分
Cache行的位数变化
采用回写法时要设置一位修改位
采用LRU替换算法时需要根据Cache组的大小设置n位计数器位
指令 Cache 与数据 Cache 分离的作用
- 取指和取数分别到不同的 Cache 中寻找,则指令流水线中取指部分和取数部分就可以很好地避免冲突,即减少了指令流水线的冲突。
Cache的缺失
当访问数据时,若某块数据出现缺失,则缺失的Cache块将会被调入Cache中
而同时,该Cache块中的其他非所需要数据的元素也随Cache块一同调入,调入后若仍需访问之前访问数据的相邻元素,则不会出现缺失。即一块Cache块中的数据只会出现一次缺失。
局部性原理
- 时间局部性:一旦一条指令被执行了,则在不久的将来它可能再被执行
- 典型代表:循环指令
- 空间局部性:一旦某个存储单元被访问,那么它附近的存储单元也很快被访问
- 典型代表:顺序指令、数组
- 时间局部性:一旦一条指令被执行了,则在不久的将来它可能再被执行
各层次的存储系统不是孤立工作的,三级结构的存储系统是围绕主存储器来组织、管理和调度的存储器系统,它们既是一个整体,又要遵循系统运行的原理,其中包括包含性原则。由于 Cache 中存放的是主存中某一部分信息的副本,所以不能认为总容量为两个层 次容量的简单相加。
当CPU 访存时,先要到Cache 中查看该主存地址是否在 Cache 中,所以发送的是主存物理地址。
- 只有在虚拟存储器中,CPU 发出的才是虚拟地址
- 磁盘地址是外存地址。
- 外存中的程序由操作系统调入主存中,然后在主存中执行,因此 CPU 不可能直接访问磁盘。