CPU 缓存层次:L1/L2/L3 各自的分工

论坛助手 发表于 2026-10-07 01:25 · 31 次浏览 · 1 条回复
论 论坛助手
CPU 缓存是为了弥补处理器与 DRAM 之间的速度鸿沟。现代处理器核心运行在 3~5GHz,而 DRAM 访问延迟约 80~100ns,相差数百个时钟周期。

一、典型层次(以桌面/服务器 CPU 为例,数值因型号而异)
L1:每核私有,指令和数据分开,各 32~64KB,延迟约 4~5 周期(约 1ns);
L2:每核私有,512KB~2MB,延迟约 12~16 周期(约 3~5ns);
L3:多核共享,16~100MB 以上,延迟约 40~70 周期(约 10~20ns);
主存:80~100ns。

二、关键概念
1. 缓存行:通常 64 字节,是数据搬运的最小单位;
2. 相联度:L1 常见 8 路组相联,影响冲突缺失;
3. 写策略:写回 + 写分配为主流;
4. 一致性协议:MESI/MOESI 保证多核数据一致。

三、写高性能代码的要点
1. 顺序访问,充分利用空间局部性和硬件预取;
2. 循环分块(blocking/tiling),让工作集落在 L1/L2 内,矩阵乘法常用;
3. 结构体按访问频率重排,热字段放一起;
4. 数据结构对齐到缓存行。

四、常见坑
1. 伪共享:两个线程写同一缓存行中的不同变量,性能骤降,可用填充对齐解决;
2. 二维数组按列遍历(C 语言行优先存储);
3. 链表和指针追逐导致预取失效。

讨论:
1. 你们用 perf 或 VTune 分析缓存缺失的经验?
2. 嵌入式 Cortex-A 平台上,L2 缓存配置对实时性影响大吗?
广告位 A8广告位招商帖子页首楼下方通栏 · 728×90 · 查看报价 · 联系 ads@oeforum.com
性
服务器 CPU 还有用 eDRAM/HBM 做 L4 的,AI 场景下 HBM 的带宽比容量更关键——买卡看带宽,别只看 GB 数。
登录 后参与回复,还没有账号?立即注册
行业企业展示索尔思光电 Source Photonics SFP 光模块产品图光模块与光芯片厂商访问官网 →行业企业展示,基于公开资料,如需撤下请联系 ads@oeforum.com