• 多级缓存与局部性原理


    参考文献

    • 《计算机组成与体系结构》-黑皮书,第六章 存储器
    • 系统架构设计师教程–第一章

    局部性原理

    • Cache改善系统性能的依据
    • 使用少量速度非常快的存储器来加速对系统主要存储器的访问
    • 计算机程序都具有局部性特征
    引用的局部性
    • 如果处理器在t时刻访问了存储单元X,那么在不久的将来访问存储单元X+1的可能性会非常高
    • 三种基本形式
      • 时间局部性
        • Temporal locality
        • 最近访问过的内容很可能在不久的将来再次访问
      • 空间局部性
        • Spatial locality
        • 对存储器地址空间的访问形成团簇的集中倾向
        • 例如:在数组或循环中操作
      • 顺序局部性
        • Sequential locality
        • 访问存取器的指令倾向于按顺序执行
    一些术语
    • 字域
      • world field
      • 数据字的块内地址
    • 命中
      • hit
      • 请求的数据就驻留在指定访问的存储器层
    • 缺失
      • miss
      • 请求的数据不在要访问的存储层
    高速缓存
    • 高速缓存存储器有时也会被称为按内容寻址的存储器(content addressable memory, CAM)
    • 主存和高速缓存都将按块划分
      • 若CPU在高速缓存未发现,会将该数据存放的块加载到高速缓存
    高速缓存映射模式
    • 三种模式
    直接映射的高速缓存
    • 如图,按顺序映射到高速存储器,块0和块10都映射到高速存储器的块0,它们将通过竞争来决定谁将霸占整个坑位

    在这里插入图片描述

    在这里插入图片描述

    全关联高速缓存

    在这里插入图片描述
    在这里插入图片描述

    • 允许主存储器存放到高速缓存任意位置
    • 专用硬件,比较昂贵
    组关联高速缓存

    在这里插入图片描述
    在这里插入图片描述

    • 上面两种方式的平衡,折衷方式

    替换算法(淘汰算法)

    • 当Cache已存满,且Cache miss hit,新数据将淘汰某些旧数据

    • 三种

      • 随机算法
      • FIFO
      • LRU
        • Least Recently Used, LRU算法

    写操作

    • 写直达
      • write through
      • 同时写回Cache和主存
    • 写回
      • write back
      • CPU修改Cache某一块,不直接写入主存,而是等Cache淘汰时写入主存
    • 标记法
      • 只需写入内存
      • 若标志位为"1",则从Cache中取,若为“0”,则从主存中取

    提示

    • 内存与Cache之间的映射往往采用硬件完成,软件编程时,完全不用考虑Cache
  • 相关阅读:
    python面向对象
    # Java 常用代码片段
    基于导频的信道估计实现
    AW2013芯片讲解
    00Hadoop数据仓库平台
    目标检测笔记(十五): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
    Linux系统挂载SAS数据盘
    Prometheus+Grafana实现监控报警
    R语言caTools包进行数据划分、scale函数进行数据缩放、class包的knn函数构建K近邻分类器
    数字化工厂管理系统的三个关键技术是什么
  • 原文地址:https://blog.csdn.net/lanluyug/article/details/127462435