Qin darkstone
高速缓冲存储器

高速缓冲存储器

高速缓冲存储器

  • CPU与Cache之间的数据交换以字为单位

  • Cache与主存之间的数据交换以Cache块为单位

  • Cache容量计算,

    • 控制部分(标记阵列容量)(地址映射表等)

      • 行数×(标记位+有效位+算法位+脏位+块内地址位)

      • 确定数据一致性维护方式、映射方式、替换算法和写策略并划分地址结构

    • 数据部分

      • 行数×每行数据

    • 总容量=数据部分+控制部分

  • Cache行的位数变化

    • 采用回写法时要设置一位修改位

    • 采用LRU替换算法时需要根据Cache组的大小设置n位计数器位

  • 指令 Cache 与数据 Cache 分离的作用

    • 取指和取数分别到不同的 Cache 中寻找,则指令流水线中取指部分和取数部分就可以很好地避免冲突,即减少了指令流水线的冲突。
  • Cache的缺失

    • 当访问数据时,若某块数据出现缺失,则缺失的Cache块将会被调入Cache中

      • 而同时,该Cache块中的其他非所需要数据的元素也随Cache块一同调入,调入后若仍需访问之前访问数据的相邻元素,则不会出现缺失。即一块Cache块中的数据只会出现一次缺失。

  • 局部性原理

    • 时间局部性:一旦一条指令被执行了,则在不久的将来它可能再被执行
      • 典型代表:循环指令
    • 空间局部性:一旦某个存储单元被访问,那么它附近的存储单元也很快被访问
      • 典型代表:顺序指令、数组
  • 各层次的存储系统不是孤立工作的,三级结构的存储系统是围绕主存储器来组织、管理和调度的存储器系统,它们既是一个整体,又要遵循系统运行的原理,其中包括包含性原则。由于 Cache 中存放的是主存中某一部分信息的副本,所以不能认为总容量为两个层 次容量的简单相加。

  • 当CPU 访存时,先要到Cache 中查看该主存地址是否在 Cache 中,所以发送的是主存物理地址。

    • 只有在虚拟存储器中,CPU 发出的才是虚拟地址
    • 磁盘地址是外存地址。
      • 外存中的程序由操作系统调入主存中,然后在主存中执行,因此 CPU 不可能直接访问磁盘。
Author:Qin darkstone
Link:https://qindarkstone.github.io/2023/08/18/408/计算机组成原理要点/存储系统/高速缓冲存储器/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可