嵌入式系统设计师学习笔记⑥:存储器的层次架构及Cache详解
发布日期:2021-05-08 22:01:39 浏览次数:13 分类:精选文章

本文共 972 字,大约阅读时间需要 3 分钟。

嵌入式系统设计师学习笔记:存储器的层次架构及Cache详解

存储器被组织成金字塔形的层次结构,自上而下依次变得更慢、访问效率更低、容量更大、每字节的造价更便宜。其所处的层数从高到低分别为:

  • CPU寄存器(最快,但容量最少)
  • 缓存(速度较快)
  • 主存(速度较慢)
  • 磁盘(速度较慢,容量大)
  • CD-ROM/Disk(速度更慢,容量大)
  • 存储设备(速度最慢,容量更大)

Cache概述

Cache是CPU与主存储器之间的缓冲器,主要功能是解决“冯·诺依曼瓶颈”问题,通过提高数据传输效率来优化系统性能。其核心原理解决程序的时间局部性和空间局部性。以下是Cache的基本组成和相关概念:

局部性原理

  • 时间局部性:程序运行中,如果某个存储项被访问过,未来一段时间内它很有可能再次被访问。
    例如:循环变量i在短时间内被多次使用。
  • 空间局部性:在程序运行过程中,某个存储项被访问后,其在内存中的相邻区域很有可能在短时间内被访问。
    例如:数组的元素按物理存储顺序连续排列,相邻元素的访问频率较高。

Cache的命中率直接决定了系统性能。在读操作中,Cache命中时间远小于失效损失时间。因此在设计Cache时,需要尽量减少失效率,而提高命中率。

Cache参数

  • 块(Line):Cache数据交换的最小单位。
  • 命中(Hit):在Cache中找到所需数据的操作。
    命中率(Hit Rate) = 命中次数 / 总访问次数。
  • 失效(Miss):需要在更慢的级别(如主存)中查找数据。
    失效率(Miss Rate) = 1 - 命中率。
  • 置换算法:根据程序需求动态替换Cache中的数据块,影响命中率。

Cache地址映像

Cache地址映像是通过硬件自动实现的。以下是Cache地址变换的几种常见方式:

常见的地址映像和变换方式

  • 直接映像

    • 主存与Cache按块一一映射,主存的块只能映射到Cache中的特定块。
    • 地址变换电路简单,适合小容量Cache。
  • 组相联映像

    • 主存的任意块可以映射到Cache中的任意块地址。
    • 适用于大容量Cache,空间利用率高,但实现较为复杂。
  • 全相联映像

    • Cache分成多个组,每个组内采用直接映像方式,组间采用全相联镜像。
    • 这是一个折中方案,成本比全相联镜像低。
  • 通过选择合适的镜像方式,可以在实现复杂度和命中率之间取得最佳平衡。

    上一篇:嵌入式系统设计师学习笔记⑦:输入输出设备管理
    下一篇:嵌入式系统设计师学习笔记⑤:指令系统

    发表评论

    最新留言

    逛到本站,mark一下
    [***.202.152.39]2025年03月26日 02时56分13秒