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、不是字典。

相关推荐
牛奶咖啡1315 天前
KVM虚拟化与企业应用实践——给远端主机创建虚拟机
云原生·qemu·kvm·给远端主机创建虚拟机·创建uefi模式的虚拟机·安装openeulersp2·vnc与虚拟机环境搭建
牛奶咖啡1316 天前
KVM虚拟化与企业应用实践——通过网络介质配合ks自动应答文件实现自动安装KVM虚拟机
云原生·qemu·kvm·系统网络引导与ks自动应答环境·远程资源+ks文件安装虚拟机·通过网络介质引导自动安装虚拟机·qemu的总线类型详解
冰山一脚201317 天前
kvm驱动学习笔记
qemu
ggaofeng20 天前
如何通过uboot加载硬盘
linux·qemu·uboot
ScilogyHunter20 天前
QEMU完全指南
linux·qemu
冰山一脚20131 个月前
qemu的cpu加速器分析笔记
qemu
longji2 个月前
win11 使用 QEMU11 模拟器跑龙芯系统(debian13,openKylin,openEuler,uos,Loongnix)
qemu·龙芯模拟器
冰山一脚20132 个月前
qemu的板级初始化笔记(以i4ffx为例)
qemu