1. SPoC / MPoC 到底是什么
1.1 先用一句话点破
SPoC 和 MPoC 是光互连(Optical Interconnect)走向“芯片级封装”之后出现的两个技术路线关键词。SPoC 常见写法是 Silicon Photonic Chip,也叫 Silicon Photonics Co-packaged Chip,指把硅光引擎直接做成芯片封装的一部分;MPoC 常见写法是 Modular Photonics Chip 或 Modular Photonic Co-packaging,指用模块化方式把光引擎、激光器、调制器、探测器封装成标准模块,再和 GPU、Switch ASIC、XPU 等主芯片放在同一个封装基板上。
一句话总结:SPoC 是“单芯片共封装光学”,MPoC 是“模块化共封装光学”。它们都属于 CPO(Co-Packaged Optics)这个大方向,只是集成度、制造方式、测试方式不同。
1.2 为什么这两个词会在最近集中冒出来
我以前聊可插拔光模块时,大家关注的是 QSFP-DD、OSFP,速率从 400G 走到 800G、1.6T。但到了 1.6T 之后,可插拔方案的功耗、散热、面板空间都开始“顶天花板”了:一个 1.6T 可插拔光模块的功耗动辄二三十瓦,一台 512 端口交换机如果全插满,光模块本身就能吃掉几百瓦甚至上千瓦功耗,这还没算 DSP、Driver、TIA 这些配套芯片的功耗。
所以产业界从 2023 年之后开始认真推 CPO,也就是把光引擎从面板上挪到交换机 ASIC 旁边,缩短高速电信号走线长度。CPO 往下再分,就是 SPoC 和 MPoC 两条路线:
- SPoC 的代表性产品是 Broadcom 的 Bailly、Marvell 的 3D 相干光引擎等,强调硅光芯片和主 ASIC 在同一个 2.5D/3D 封装里,走线最短,集成度最高;
- MPoC 的代表性做法是 Ayar Labs 的 TeraPHY 光 I/O Chiplet、Ranovus 的 Odin、Intel 的共封装光模块方案,强调光引擎可以单独制造和测试,再通过封装基板“拼”到主芯片旁边。
你可以把 SPoC 理解成“把发动机和车身一体化铸造”,MPoC 则是“先做好标准发动机,再装到不同车型上”。这两种路线各有利弊,后面我会专门拆。
1.3 从可插拔到共封装,到底改了什么
早先的光模块是“面板可插拔”方案:交换机 ASIC 出来的高速电信号,要经过 PCB 走线、连接器、模块金手指,再到模块内部的 DSP 做信号恢复,最后才驱动激光器变成光信号。这条链路里有几个很耗电又很耗时的环节:
- 高速 SerDes(串行/解串器)要把并行数据转成高速串行码流;
- DSP 要做均衡、时钟恢复、前向纠错(FEC)的编解码;
- 跨介质传输时,信号的幅度和时序都要重新调理。
SPoC/MPoC 的思路是,把光引擎放到离 ASIC 非常近的地方,中间只留很短的一段芯片间互连(die-to-die interconnect),甚至直接在同一个封装里用微凸点和硅桥相连。这样一来,主芯片和光引擎之间可以用更简单、更低功耗的并行接口通信,省掉了一大堆高速 SerDes 和 DSP 的功耗与延迟。这也就是后面要说“即时连接”的物理基础。
2. 凭什么说 SPoC / MPoC 是“即时连接”
2.1 “即时”不是玄学,是几个硬指标的叠加
所谓“即时连接”,在工程上至少包含三层含义:
第一层:信号传输速度接近光速。光在硅波导和玻璃光纤里的传播速度大约是每纳秒 15 到 20 厘米,在芯片封装内部,光引擎到主芯片的距离可能只有几毫米到几厘米,因此光信号在封装内往返一次的时间大概在几十皮秒到几百皮秒量级。这个速度远快于电信号在 PCB 铜线上的传播速度,后者的典型值是每纳秒 5 到 6 厘米,还要受介电常数、走线绕行、过孔跳层的影响。
第二层:省掉了“电-电”转换中的长链路。传统可插拔方案里,数据从 ASIC 出来要经过 SerDes 编码、预加重、均衡、DSP 处理,这些操作本质上是在用电路“补偿”物理通道不理想带来的损耗,每次补偿都会引入几十到几百纳秒的延迟。SPoC/MPoC 因为距离短、损耗小,可以用相对简单的 C2C(Chip-to-Chip)接口直连光引擎,省掉多层信号重整。
第三层:超低抖动和确定性时延。对于 AI 集群里的集合通信,分布式训练里的 All-Reduce,或者高频交易里的行情分发,最怕的不是绝对延迟大一点,而是延迟抖动大。SPoC/MPoC 的光引擎和主芯片之间用时钟同步的并行接口直接互连,单位之间没有复杂的重定时和背靠背时钟恢复,时延的确定性大幅提升。这一点在 InfiniBand 和 RoCE 这类依赖 PFC/ECN 的网络上尤为重要。
2.2 为什么传统电互连做不到“即时”
很多人会觉得,电信号也是以接近光速的速度在导线里传播的,怎么就不“即时”了?这话只说对了一半。
电信号在 PCB 走线里传输时,信号的传播速度大约是光速的 1/3 到 1/2,但这还不是主要瓶颈。真正的问题是:当速率提高,信号波长变短,趋肤效应、介质损耗、串扰、阻抗不连续都会把信号质量压得很差。为了让高速信号能传得远一点,SerDes 就要做更重的均衡,DSP 就要做更复杂的纠错,而这部分处理电路引入的延迟和功耗,往往比传输本身的延迟还要大好几倍。
举个例子,一个 112G/lane 的 SerDes,从并行数据输入,到完成串行化、预加重、链路训练、接收端均衡,再到恢复出原始数据,整个流水线延迟可能在 200 到 500 纳秒量级。如果一条训练任务里有几百个节点、每个节点之间要经过几十跳交换机,累加起来的数字非常吓人。而 SPoC/MPoC 的光互连省掉了 SerDes 重定时链路,主要延迟来自光学信号在几毫米波导里的传播时间,以及调制器/探测器的响应时间,后者通常能做到几十飞秒到几皮秒量级。
这里可以做一个生活化的类比:传统可插拔方案相当于在一条坑坑洼洼的货运公路上,每跑一段就要进一次筛检站,重新核对货物、重新包装,然后继续上路;SPoC/MPoC 则是在一条近乎直线的金属轨道上,货物从起点一次性投送到终点,中间不需要反复装卸和复检。
2.3 具体到光路,是如何实现“即时”的
要从物理上把“即时”落实,SPoC/MPoC 通常采用这样几条技术路径:
调制的简化。传统长距光模块用的是相干或者高阶 PAM4 调制,需要激光器频率锁定、偏振管理、数字相干 DSP,整个过程非常复杂。SPoC/MPoC 因为互连距离短,主要用强度调制(IM/DD)里的 NRZ 或简单 PAM4,对激光器的线宽和波长稳定度要求大幅降低,驱动电路可以直接用主芯片同一电压域的推挽驱动,省掉大量配套芯片。
去掉 FEC 或降低 FEC 强度。传统数据中心光互连在 800G/1.6T 时代已经依赖 KP4-FEC 这类强纠错码,编解码延迟普遍在微秒量级。SPoC/MPoC 因为误码率低、信道质量好,可以采用 RS(255,239) 这类轻量 FEC,甚至完全去掉 FEC,直接省掉这部分延迟。这对 AI 集群这种需要低延迟和低抖动的场景非常重要。
并行接口直连。传统方案里,数据要走 PCB 到光模块,需要把多路并行数据打包成串行流,在 SPoC/MPoC 里,主芯片和光引擎之间直接用并行短距接口(类似 UCIe 或 HBM 接口的简化版)连接,每一路光的线速率不必做得极高,因此可以绕开高档 SerDes 的延迟。
确定性时钟。由于主芯片和光引擎近距离共封装,可以共用同一个时钟域,不需要在接收端做独立的时钟数据恢复(CDR)。CDR 的锁定时间通常在几百纳秒到几微秒,省掉它之后,光链路几乎可以做到“上电即通”。
3. SPoC / MPoC 和传统可插拔光模块的完整对比
3.1 用一张表看差异
| 对比维度 | 传统可插拔光模块 | SPoC 光互连 | MPoC 光互连 |
|---|---|---|---|
| 光引擎位置 | 面板端口 | 与主芯片同封装 | 模块化封装后与主芯片同基板 |
| 电信号走线长度 | 数十厘米到一米以上 | 毫米级 | 毫米到厘米级 |
| 主芯片到光引擎接口 | 长距高速 SerDes | 短距并行接口 | 短距并行接口或简化 SerDes |
| 是否需要 DSP | 通常需要 | 不需要或极简化 | 不需要或可选轻量 DSP |
| FEC 依赖 | 强依赖 KP4-FEC | 可省掉或轻量 | 可省掉或轻量 |
| 延迟量级 | 数百纳秒到微秒级 | 几十皮秒到百纳秒 | 几十皮秒到百纳秒 |
| 功耗 | 高位(20-30W+ per module) | 每端口显著降低 | 每端口介于两者之间 |
| 可维护性 | 可现场插拔更换 | 不可单独更换光引擎 | 可模块化替换,维护性较好 |
| 散热方式 | 面板风流、散热器 | 需要凉板液冷或增强风冷 | 模块可贴热沉,散热路径更短 |
| 集成难度 | 低,成熟度高 | 高,晶圆级良率压力 | 中,封装技术门槛较高 |
| 适用场景 | 存量机房、通用以太网 | 高性能 AI 集群、交换背板 | 需要可维护性的 AI/高性能计算 |
3.2 性能优势换算成实际收益
拿一个 51.2Tbps 的交换机来算:传统方案需要 64 个 800G 可插拔光模块,加上配套 DSP、驱动芯片,光模块和相关电路的总功耗可能超过 2000 瓦。如果换成 SPoC/MPoC,因为去掉了大量重定时和 DSP,总功耗可以降到 800 到 1200 瓦,节省的功耗直接换算成机柜密度和电费成本。
更重要的是延迟。对一个跨 8 个机架、128 个 GPU 的分布式训练集群来说,一次 All-Reduce 聚合需要经过多层树状拓扑,每经过一跳交换机,传统可插拔方案的光电转换和 SerDes 延迟可能就多出 1 到 2 微秒。改用 SPoC/MPoC 之后,每跳延迟可以压到几百纳秒以内。对训练任务来说,这个差异在同步训练模式下会被直接放大,因为每一轮梯度同步都要等最慢的那条链路完成,延迟一稳,训练收敛速度和吞吐都跟着上去了。
4. SPoC / MPoC 的工程实现路线和实操要点
4.1 两条技术路线的制造流程差异
SPoC 因为强调“单芯片”,通常采用 2.5D/3D 异质集成,把硅光芯片、电芯片、激光器、调制器驱动通过硅中介层或有机基板封装在一起,核心工艺包括:
- 硅光芯片在 300mm 晶圆上制造,波导、调制器、探测器、光栅耦合器一次光刻成型;
- 电芯片(可能是主 ASIC 或者独立的驱动芯片)通过微凸点和硅光芯片互连,类似 HBM 和逻辑芯片之间的关系;
- 外部激光器或激光器阵列通过光纤阵列(FAU)耦合到硅光芯片上的光栅,这部分通常用主动对准和 UV 胶固定。
MPoC 则是先做一个标准化的光引擎 Chiplet,比如 Ayar Labs 的 TeraPHY 或 Intel 的共封装光模块,单独测试之后,再和主芯片一起放在封装基板上。多出来的这一步,让它良率压力比 SPoC 小得多,因为光引擎可以单独筛选,坏掉的光引擎可以在组装前替换,而 SPoC 一旦封装完成,整个芯片就不可修复,只能整颗报废。
4.2 实际设计过程中必须盯住的关键环节
我在评估方案时,会特别关注三件事:光纤耦合工艺、热管理和激光器可靠性。
光纤耦合是第一个恶鬼。硅光芯片的模宽很小,通常只有几微米甚至亚微米级别,和单模光纤的模场直径不匹配,稍一偏位就会造成几个 dB 的损耗。量产时常用宽谱光源或者功率计实时监测,做 6 轴主动对准,对准精度要控制在亚微米级,打胶固化后位移不能超过 0.3 微米。这个步骤是决定良率的核心,MPoC 方案因为可以单独组装和测试,良率会更好控制。
热管理是第二个坑。激光器对温度非常敏感,波长会随温度漂移;硅光调制器的调制点也会随温度变化。SPoC 因为光引擎和主芯片紧贴,主芯片的发热特别大,如果散热设计不到位,激光器结温冲到 80°C 以上,工作寿命会大幅缩短。所以目前对 SPoC/MPoC 方案,大多数推荐用直接液冷或冷板加均温板,让热源和散热器之间保持尽量短的热阻路径。
激光器可靠性是第三个隐雷。共封装之后,激光器不再像可插拔模块那样可以单独拔下来更换,但激光器又不是永久不坏的器件,寿命受温度和电流影响很大。业内的一些办法是采用多颗激光器冗余设计,或者用外部可更换的光源外置模块(External Laser Source)把激光器单独放在一个可热插拔的盒子里,通过光纤把光送进封装。这样即使激光器老化了,也不用把整个交换芯片报废。
4.3 从可插拔方案迁移到 SPoC/MPoC 的三个步骤
如果你想在一个新项目里实际落地 SPoC/MPoC,我会建议分三步走:
第一步,先跑通光引擎和主芯片的链路仿真。用 IBIS-AMI 模型把从主芯片 SerDes 到光引擎再到光纤接收端的全链路建出来,重点关注眼图余量、误码率和信道损耗,确定是否需要以及需要多强的 FEC。这一步做得越细,后面样板流片越不容易翻车。
第二步,用小规模封装跑通热和可靠性测试。不要一上来就做 1000 节点集群,先拿一个 4 口或者 8 口的评估板,把光引擎和主芯片封装在一个基板上,做高低温循环、湿热、振动、老化测试。普通可插拔光模块一年到头坏一两个是常态,但 SPoC/MPoC 一旦坏了一颗光引擎,整块板子都得返厂,所以可靠性测试的权重必须提到最高。
第三步,再上量。大规模部署时优先选 MPoC 路线,因为它可以单独维护光引擎,至少保持了模块化的可维修性。SPoC 则更适合对延迟和功耗极致敏感、且整机生命周期内不打算更换光模块的场景。
5. 落实到真实场景里,SPoC / MPoC 能解决什么问题
5.1 AI 集群中的梯度同步和集合通信
现在大规模 AI 训练普遍采用张量并行、数据并行混合模式,节点之间的通信量特别大。以 1750 亿参数的大模型为例,一次梯度同步需要传输几个 GB 的数据,如果链路延迟高、带宽不足,加速比会迅速崩塌。
SPoC/MPoC 在高带宽密度上的优势在这里能直接转化为性能:因为光引擎可以直接做在计算芯片旁边,每个计算芯片可以拥有几十甚至上百个光端口,端口数量不再受面板空间限制。比如一块网卡或者一个加速卡上,传统方案可能只能放两个 400G 端口,换成 SPoC/MPoC 后,可以做到 8 个甚至 16 个 400G 端口,带宽密度直接翻倍。
5.2 高速交换机背板互连
在交换机场景里,SPoC/MPoC 的价值主要是省功耗和缩小设备体积。网络交换机从 25.6T 升级到 51.2T、102.4T,每一代面板端口数量都要翻倍。可插拔模块把设备前面板挤得满满当当,散热和走线也越来越难。把光引擎挪进封装里,前面板只需要留出光纤管理槽位,不再需要塞进一整个模块,设备体积和重量都能明显下降。
5.3 内存池化和 CXL 互连
再往后看,SPoC/MPoC 还能用在内存池化、CXL 光互连等场景。内存语义要求低延迟,传统光模块虽然带宽够,但延迟让内存控制器难以接受。共封装光学把延迟压到几百纳秒量级,让“电内存”和“光内存”之间的差距大幅缩小,未来异构计算系统里的内存池、IO 池、存储池之间完全有条件用光互连拉通。我在实际评估 CXL 光互连方案时,最看重的指标就是延迟是否做到单跳 200ns 以内,目前 SPoC/MPoC 是最有希望实现这个量级的方向之一。
6. 常见问题与排查技巧实录
6.1 问题速查表
| 现象 | 可能原因 | 处理建议 |
|---|---|---|
| 收发端误码率偏高 | 光纤耦合偏移、模斑不匹配 | 重新做主动对准,检查 FAU 耦合损耗是否超过目标值 |
| 光信号功率下降快 | 激光器结温过高、老化 | 优化散热路径,检查冷板流量,必要时换用外部光源模块 |
| 链接延迟抖动大 | 时钟恢复不稳定、电源纹波过大 | 检查主芯片和光引擎是否同一个时钟域,给激光器和驱动加独立低噪声供电 |
| 高温下波长漂移导致串扰 | 激光器温度未锁定 | 增加 TEC 或者改用无热光源封装 |
| 封装后个别通道不亮 | 微凸点开路、光引擎位移 | MPoC 方案可拆解返修;SPoC 只能靠冗余通道或整体更换 |
| 共封装后主芯片热密度过高 | 光引擎和主芯片共用散热路径 | 采用硅桥下方散热孔或双冷板设计 |
6.2 我踩过的几个坑
第一个坑是低估了激光器的温漂。第一次做 CPO 仿真时,我只看常温下的链路预算,结果在高温测试里发现接收端的光功率波动超过了 1.5dB,误码率直接冒红线。后来才意识到,激光器波长随温度漂移后,和硅波导上的 AWG 滤波器不匹配,插损突然变大。解决办法是给激光器加独立的 TEC 控制,或者选用对波长失配不敏感的宽谱设计。
第二个坑是光纤盘的应力管理。共封装之后,光纤阵列要用弯曲半径很小的方式盘绕在基板旁边,光纤本身如果压到了,插损会瞬间变大。我见过一块验证板因为光纤盘线太紧,在振动测试中光纤微弯导致通道抖动,足足查了两天。这事没有捷径,设计阶段就得给光纤留足弯曲半径空间,不能像普通网线一样想怎么折就怎么折。
第三个坑是 SiPh 裸片和电芯片之间的翘曲匹配。硅光芯片和主芯片的 CTE(热膨胀系数)差异大,在回流焊和热循环里容易产生应力,导致微凸点开裂。实际项目里我会要求封装厂额外做一次凸点高度测量和翘曲仿真,再决定回流曲线,别只依赖标准的 SMT 工艺参数。
7. 我给几条实实在在的建议
从选型角度说,不必一上来就追 SPoC 的极致性能。如果你们的产品定位是高性能交换机,且愿意接受整机返修成本,SPoC 可以冲一冲;如果做通用 AI 加速卡或者服务器网卡,更稳妥的做法是选 MPoC,保留光引擎的可替换性。计划做产品化的时候,一定在立项阶段就把光纤耦合、散热、可靠性测试这三件事捆绑评审,缺一个都容易在量产阶段翻车。
再给一个小技巧:在评估供应商的 SPoC/MPoC 方案时,别只看单口功耗和带宽的规格书,一定要看小信号眼图余量、高温下的误码率曲线、以及激光器老化数据。很多方案的常温指标很漂亮,一上高负载温度就露馅。和供应商聊的时候,直接问清楚封装良率和返修流程,光引擎是不是单独可测、能不能单独更换,这两点直接决定你们后端运维要操多少心。