CPU的L1、L2、L3缓存笔记

1、在L2或L3命中,就往上逐级复制填满到 L1,CPU 永远只吃 L1 的数据。(缓存全不命中 → 读物理内存 → 整行拉回 → 依次存入 L3、L2、L1 → CPU 从 L1 取数)

* L1 = 手边办公桌

* L2 = 隔壁书柜

* L3 = 公司大仓库

* 内存 = 城市图书馆

2、L1 / L2 / L3 的区别: 速度与容量的矛盾

L1(每核私有)

* 极小:64KB 左右

* 极快:1~2 个时钟周期

* 就在运算单元隔壁 缺点:做不大,做大就变慢、功耗爆炸

L2(每核私有)

* 中等:512KB~1MB

* 速度中等:十几周期

* 比 L1 慢,但比 L3 快 做折中:比 L1 大,比 L3 快

L3(所有核共享)

* 巨大:几十 MB

* 最慢:几十周期

* 所有核心共用,用来:

  1. 给各核做数据共享

  2. 缓存更大范围内存,减少往内存跑的次数

3、为什么不能只做一个「又大又快」的缓存?

物理上做不出来:

  1. 缓存越大,走线越长,延迟必然变大

  2. 越大越耗电、发热暴涨

  3. 全大缓存成本天价

4、缓存的数据类似一个带基地址的数组

缓存最小单位不是字节,是缓存行 Cache Line

ARM/Intel 现在标准都是:64 Byte 一行

每一条缓存行存两样东西:1. Tag:物理地址高位 2. Data:64 字节真实数据

CPU 缓存底层就是数组逻辑,根本不是哈希 Map、不是字典。

相关推荐
tyustli4 天前
TF-M Secure 启动文件
qemu·tf-m·startup·mps2-an521·启动文件
tyustli5 天前
TF-M BL2 和 TFM_S 的配置和编译
qemu·tf-m·bl2·mps2-an521·tfm_s
tyustli6 天前
TF-M BL2 RAM 布局
qemu·tf-m·bl2·mps2-an521
tyustli9 天前
TF-M 使用 make 构建
qemu·make·mcuboot·tf-m·mps2-an521
张一西1 个月前
QEMU 模拟器学习(二)之 USB 设备之BOT & UAS协议
qemu·uas·bot
张一西1 个月前
QEMU 模拟器学习(二)之 USB 设备模拟与协议学习
qemu·usb·uas·bot
shimly1234561 个月前
(undone) 解析 qemu-6.0.0 源码 (4) 添加 niubi board - 2
qemu
冰山一脚20131 个月前
cirrus显卡驱动笔记
qemu·drm
shimly1234561 个月前
(done) 解析 qemu-6.0.0 源码 (2) 寻找入口函数 main
qemu
ggaofeng2 个月前
QEMU中硬盘用哪种协议读写速度快
qemu·磁盘类型