Appearance
concepts/cpu/ —— CPU 硬件架构与互联
总纲:cpu-bus-architecture.md —— 从核内到片外,数据怎么走。
目录定位
本目录属于知识金字塔 L4 — CPU 系统架构层,聚焦CPU 芯片的物理层次、内部互联、片外总线、跨芯片扩展。它与本层的另两个目录正交互补:
| 目录 | 关注点 |
|---|---|
| ../microarch/ | 单核内部如何提升 IPC(流水线/超标量/乱序/分支预测) |
| ../memory-ordering/ | 多核下访存可见顺序(store buffer/屏障/内存序) |
| 本目录(cpu/) | 核外到片外——物理封装层次、片上片外互联总线、CXL NUMA 优化 |
阅读路径
从内到外,逐层展开:
bash
cpu-bus-architecture.md ← 总纲:从核内到片外的完整数据路径
│
├─ cpu-physical-hierarchy.md ← 物理层次:Socket→Die→Tile→Core,芯片怎么拼装
├─ cpu-architecture.md ← CPU 架构全景:硬件结构、执行单元、缓存层次
├─ core-and-uncore.md ← Core vs Uncore:计算核 vs 共享基础设施
├─ pmu.md ← PMU 性能监控单元:硬件计数器架构、PEBS/IBS 精确采样
│
├─ on-die-interconnect.md ← 片上互联:Ring/Mesh/IFOP 拓扑对比
│
├─ off-chip-buses.md ← 片外总线:DDR/PCIe/UPI,CPU 怎么接内存和外设
│
├─ cxl.md ← CXL:让 PCIe 带上缓存一致性的新型总线
│
├─ numa-optimization.md ← NUMA 优化实践:绑核绑内存、量化跨节点开销
│
└─ system-diagnosis-tools.md ← 诊断工具:lstopo、numactl、perf 怎么看 NUMA文档清单
| 文档 | 定位 | 关键问题 |
|---|---|---|
| cpu-bus-architecture.md | 总纲:CPU 内部架构与总线互联 | 数据从 Core 出发,到内存/外设/其他 CPU,路径上经过哪些部件 |
| cpu-physical-hierarchy.md | 物理封装层次 | Socket→Die→Tile→Chiplet,Intel/AMD/Apple 三条路线取舍 |
| cpu-architecture.md | CPU 架构全景 | 执行单元、缓存层次、前端后端分工 |
| core-and-uncore.md | Core vs Uncore | 什么归计算核、什么在共享基础设施里 |
| pmu.md | PMU 性能监控单元 | CPU 硬件计数器架构:固定/可编程计数器、事件选择(Event Code+UMASK)、PEBS/IBS 精确采样、PMI/NMI 机制 |
| on-die-interconnect.md | 片上互联 | Ring Bus vs Mesh vs IFOP,延迟/带宽/可扩展性对比 |
| off-chip-buses.md | 片外总线 | DDR(内存)、PCIe(外设)、UPI(CPU 间),各自的协议和延迟 |
| cxl.md | CXL 总线 | CXL.io/cache/mem 三层协议、Type 1/2/3 设备、UCIe Chiplet 互联 |
| numa-optimization.md | NUMA 优化实践 | taskset/numactl 绑核绑内存、跨节点开销量化 |
| system-diagnosis-tools.md | 诊断工具 | lstopo 看拓扑、numactl 看距离、perf 看 NUMA 事件 |
与周边目录的关系
| 相关目录 | 关系 |
|---|---|
| ../microarch/ | 并行线:本层讲核间怎么连,microarch 讲核内怎么算 |
| ../cache/ | 上层(L3):L3 Cache 是 Uncore 的一部分,一致性协议依赖互联拓扑 |
| ../numa/ | 概念层:NUMA 概念详解和论文精读 |
| ../io/ | 下游:PCIe 总线向下连接外设(DMA/FPGA) |
一句话总结:CPU 不是一个"大算力块"——它在物理上是 Socket→Die→Tile→Core 四层封装,在通信上是 Ring/Mesh/IFOP 片上互联 + DDR/PCIe/UPI 片外总线。理解这个层次,才能看懂为什么远端 NUMA 访问比本地慢 2 倍、为什么 PCIe 设备和 CPU 之间有 DMA 开销。