少于 1 分钟阅读 次阅读

参考链接

  • https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect

一、UPI 是什么

Intel Ultra Path Interconnect(UPI) 是 Intel 用来 连接多颗 CPU(Socket-to-Socket)高速一致性互连总线,主要用于 服务器 / 多路处理器(SMP / NUMA)系统

👉 它的核心任务只有两件事:

  1. 让多颗 CPU 能高速交换数据
  2. 保证缓存一致性(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 的缓存能正确失效 / 更新

这点非常关键,否则多核程序会出问题。

留下评论