UPI 互联技术概述
参考链接
- https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect
一、UPI 是什么
Intel Ultra Path Interconnect(UPI) 是 Intel 用来 连接多颗 CPU(Socket-to-Socket) 的 高速一致性互连总线,主要用于 服务器 / 多路处理器(SMP / NUMA)系统。
👉 它的核心任务只有两件事:
- 让多颗 CPU 能高速交换数据
- 保证缓存一致性(Cache Coherency)
可以把它理解成: “CPU 与 CPU 之间的 PCIe + Cache 一致性协议的结合体”
┌──────────┐
│ CPU 0 │
│ │
│ Cores │
│ Cache │
│ IMC │
└────┬─────┘
│
┌────────┴────────┐
│ UPI 2.0 │ ← CPU ↔ CPU
└────────┬────────┘
│
┌────┴─────┐
│ CPU 1 │
│ IMC │
│ Cache │
└──────────┘
二、UPI 出现的背景
1️⃣ 早期:QPI
- Intel 早期使用 QPI(QuickPath Interconnect)
- 从 Nehalem 一直用到 Broadwell-EP
问题:
- 协议和物理层都比较老
- 带宽和功耗已经跟不上制程和核心数增长
于是 —— UPI 接班
三、UPI 的核心特性
1️⃣ 面向多路 CPU
UPI 不是给 GPU / SSD / NIC 用的 它只干一件事:
CPU ↔ CPU
典型场景:
- 双路 / 四路 Xeon 服务器
- NUMA 架构系统
2️⃣ 高速点对点、全双工
- Point-to-Point(点对点)
- Full Duplex(全双工)
- 每条链路是独立的,不像传统共享总线
CPU0 <==== UPI ====> CPU1
CPU0 <==== UPI ====> CPU2
3️⃣ 强一致性
UPI 不是单纯的数据通道,它是:
Cache Coherent Interconnect
也就是说:
- 支持 MESIF / MESI-like 缓存一致性协议
- 一个 CPU 修改内存,其他 CPU 的缓存能正确失效 / 更新
这点非常关键,否则多核程序会出问题。
留下评论