
1. 从一次总线选型的争论说起前阵子跟几个做芯片和板级设计的朋友吃饭席间聊到一个老生常谈但又总有人问的问题DDR 为什么一直用并行总线而不是像 PCIe、以太网那样改成 SerDes 串行传输当时桌上分成了两派一派觉得串行是趋势DDR 迟早要串行化另一派则坚持DDR 的并行架构有它不可替代的理由。争到最后谁也没说服谁但这个问题本身确实值得好好捋一捋。我自己做过几年高速接口的板级设计和信号完整性调试DDR3、DDR4、DDR5 的板子都摸过也接触过不少 SerDes 链路比如常见的多 Gbps 级串行收发器。所以对这个问题的理解不是停留在并行慢、串行快这种教科书式的粗浅层面而是从协议开销、延迟、成本、功耗、拓扑结构这几个维度去权衡。这篇文章就把我这些年积累的理解和实操经验摊开来讲尽量把为什么 DDR 不走 SerDes 这条路这件事说透。先给一个结论性的判断方便你带着框架往下读DDR 不用 SerDes不是因为技术上做不到而是因为在它服务的那个场景里并行总线的综合性价比明显更高。SerDes 解决的是长距离、高损耗、少引脚的问题而 DDR 面对的是短距离、低延迟、高带宽密度、极致成本的问题两者的优化目标根本不在一个方向上。下面我分几个层面展开。2. DDR 和 SerDes 到底在解决什么问题2.1 DDR 的核心诉求单位成本下的带宽密度DDR 的全称是 Double Data Rate它的设计初衷非常朴素——在尽可能便宜的 DRAM 颗粒基础上把数据吞吐量做上去。注意这里的关键词是便宜。DRAM 颗粒本身是走量的商品一颗几块钱人民币的量级主板厂商、模组厂商对成本的敏感度极高。所以 DDR 接口的每一个设计决策背后都有一把成本算盘在打。DDR 采用的是源同步并行总线一组数据线DQ、一组数据选通DQS、一组地址命令线CA加上时钟CK。以 DDR4 为例64 位数据位宽是常见配置DDR5 虽然通道拆成了两个 32 位子通道但本质还是并行。为什么位宽要做得这么宽因为带宽 位宽 × 频率在频率提升遇到瓶颈的时候加宽位宽是最直接的扩容手段。这里有个很多人忽略的点DDR 的并行不是低端的表现恰恰相反它是为了在有限的引脚预算内榨出最大带宽。你想想如果 DDR 改成单 lane 或者少 lane 的 SerDes要达到同样的带宽频率得拉到多高那对工艺、对功耗、对成本的要求会瞬间失控。2.2 SerDes 的核心诉求用少量引脚跑长距离SerDes 是 Serializer/Deserializer 的缩写中文叫串行器/解串器。它的逻辑跟 DDR 正好相反把并行数据串行化用一对差分线或者几对把数据送出去接收端再解串还原。它解决的核心问题是——当数据速率高到一定程度并行总线的每一根线都要独立的驱动、接收、时序对齐引脚数、走线数、同步难度都会爆炸这时候串行化反而更划算。SerDes 的典型应用场景是芯片到芯片的长距离互连比如背板、板到板的连接、光模块、PCIe、SATA、以太网、USB 这些。这些场景的共同特点是距离相对长、通道损耗大、引脚资源宝贵。SerDes 通过差分信号、均衡EQ、时钟数据恢复CDR等技术能在高损耗通道上把数据可靠地传过去。2.3 两者的优化目标根本不同把这两个东西放在一起对比你会发现它们其实是在解两道不同的题维度DDR 并行总线SerDes 串行链路优化目标单位成本带宽密度长距离可靠传输传输距离通常 10 cm板内可达数十 cm 到数米引脚效率低每 bit 一根线高差分对承载多 bit延迟极低几个周期较高串并转换 CDR 锁定协议开销很小较大编码、对齐、均衡功耗相对低高均衡器、CDR 耗电成本低普通 PCB 即可高需高速板材、连接器这张表基本就把问题说清楚了。DDR 和 SerDes 不是谁先进谁落后的关系而是各自在自己的战场上做到了最优。你硬要把 DDR 塞进 SerDes 的框架等于让一个短跑运动员去跑马拉松规则都不一样。3. 延迟这道坎DDR 为什么对延迟如此敏感3.1 内存访问的延迟预算有多紧这是我认为 DDR 不用 SerDes 最硬核的理由之一。CPU 访问内存延迟是以纳秒计的。一次 cache miss 之后CPU 要去内存取数据这个过程的延迟直接决定了程序的性能。现代 CPU 的流水线深度动辄十几二十级一次内存访问的延迟如果多出几十纳秒可能就是几十个周期的空转。DDR 的读延迟CAS Latency在 DDR4 上大概是十几到二十几个时钟周期DDR5 更高一些但换算成绝对时间也就是十几纳秒的量级。这个延迟里包含了地址命令的传输、DRAM 内部的阵列访问、数据的回传。每一纳秒都是抠出来的。3.2 SerDes 的延迟从哪来SerDes 链路要引入哪些额外延迟我给你数一数串行化/解串行化数据要从并行变串行接收端再变回来这个 FIFO 和移位寄存器的操作本身就有几个周期的延迟。CDR 锁定接收端要从数据流里恢复时钟CDR 环路需要时间锁定虽然稳态下不额外增加每 bit 延迟但链路训练、均衡器自适应这些过程会带来开销。编码开销很多 SerDes 协议用 8b/10b 或者 64b/66b 编码为了 DC 平衡和时钟恢复会牺牲一部分带宽也带来编解码延迟。均衡器延迟DFE判决反馈均衡、CTLE 这些均衡电路本身有处理延迟。协议层开销包头、CRC、流控、重传机制这些都是延迟。把这些加起来一条 SerDes 链路的端到端延迟轻松就到几十甚至上百纳秒。对于内存访问这种延迟敏感的场景这是不可接受的。你可以忍受网卡多几微秒延迟但你很难忍受内存多几十纳秒延迟。3.3 一个具体的对比感受打个比方。DDR 并行总线就像你家楼下的便利店出门走两步就到虽然店面小、货架挤但拿东西快。SerDes 就像城郊的仓储式大卖场货全、通道宽、能开叉车但你得开车过去路上还得等红绿灯。对于我就想买瓶酱油这种需求便利店完胜对于我要拉一车货这种需求大卖场才划算。内存访问绝大多数是买酱油式的随机小访问延迟敏感度极高所以 DDR 的并行短延迟架构是刚需。而 SerDes 擅长的拉一车货式大块连续传输在内存场景里反而是少数。4. 引脚、成本与 PCB 的现实约束4.1 引脚数背后的成本账有人会说SerDes 引脚少啊DDR 动辄上百根线多浪费引脚。这话对但也不全对。你得看这个浪费发生在哪里。DDR 的引脚是连到 DRAM 颗粒和内存控制器上的这些都在同一块 PCB 上走线短、层数可控。多几十根线的成本摊到整机 BOM 里其实很有限。而 SerDes 省下来的引脚省的是芯片封装引脚和连接器引脚这些在长距离互连场景里才是真正昂贵的资源。换句话说DDR 场景下引脚不稀缺所以没必要为了省引脚去付出串行化的代价。SerDes 场景下引脚稀缺比如一个交换机芯片要连几十个端口所以串行化的收益才明显。4.2 PCB 材料和走线的成本差异这一点做硬件的朋友应该深有体会。DDR 的走线虽然多但对 PCB 材料的要求相对温和。DDR4 在 3200 MT/s 的时候用普通的 FR-4 板材加上合理的叠层设计基本能搞定。DDR5 速率上去了对板材和阻抗控制要求提高但整体还是在可控范围内。SerDes 就不一样了。高速 SerDes 链路比如 25 Gbps 以上对通道损耗极其敏感往往需要低损耗板材如 Megtron 6 这类、更严格的阻抗控制、更精细的过孔设计。这些材料和工艺的成本比普通 FR-4 高出好几倍。如果 DDR 改成 SerDes意味着内存条、主板、封装基板全都要升级到高速材料这个成本涨幅是灾难性的。4.3 内存条这个形态的约束还有一个很现实的点DDR 是以**内存条DIMM**这种可插拔形态大规模存在的。DIMM 有金手指连接器插槽的电气特性、机械公差、插拔寿命都是设计约束。并行总线在 DIMM 这种形态下已经磨合了几十年连接器的阻抗、串扰、回流路径都有成熟方案。如果改成 SerDesDIMM 连接器要支持多 Gbps 的差分信号对连接器的要求会陡增成本、可靠性、插拔寿命都要重新设计。而且 SerDes 链路对连接器的阻抗不连续非常敏感一个金手指接触不良可能整条链路就挂了。并行总线在这方面的鲁棒性反而更好。5. 带宽扩展路径为什么加宽比提速更划算5.1 DDR 的带宽演进逻辑回顾 DDR 的演进史你会发现一个清晰的规律每一代都在同时做两件事——提高频率、优化位宽和通道结构。DDR3 到 DDR4频率从 1600 MT/s 提到 3200 MT/s位宽保持 64 位。DDR4 到 DDR5频率继续往上同时把 64 位通道拆成两个 32 位子通道提升并发效率。为什么 DDR 不干脆把频率拉到几十 Gbps 走串行因为频率越高信号完整性越难做功耗越大成本越高。并行总线的好处是我可以用相对温和的频率靠位宽把带宽堆上去。64 位 × 3200 MT/s 204.8 GB/s这个带宽用并行实现比用单 lane 几十 Gbps 的 SerDes 实现要便宜得多。5.2 SerDes 的带宽扩展逻辑SerDes 扩展带宽的方式是提高单 lane 速率 增加 lane 数。比如 PCIe 从 Gen3 的 8 GT/s 到 Gen5 的 32 GT/s再到 Gen6 的 64 GT/s同时 lane 数从 x1 到 x16。但每提升一代速率信号完整性的挑战都是指数级上升的需要更复杂的均衡、更强的 FEC。这里有个关键区别SerDes 的速率提升是硬碰硬地跟通道损耗搏斗而 DDR 的带宽提升可以通过位宽这个杠杆来分摊压力。在成本敏感的内存场景这个杠杆太重要了。5.3 一个反直觉的观察很多人以为串行一定比并行快其实这是个误解。在短距离、引脚不稀缺的场景并行总线的带宽密度和成本效率往往优于串行。串行的优势是在长距离、高损耗、引脚稀缺的场景才体现出来。DDR 恰好是前一种场景的典型代表所以它坚持并行是有道理的。我做过一个粗略的估算同样要达到 200 GB/s 的带宽用 DDR5 的并行方案大概需要 64 位 × 6400 MT/s 的配置走线数量在百根量级用普通板材就能实现。如果用 SerDes假设单 lane 50 Gbps需要 32 个 lane也就是 64 根差分线128 根单线还要加上复杂的均衡和 FEC板材要升级功耗要翻倍。这笔账怎么算都不划算。6. 那些DDR 串行化的尝试与边界6.1 历史上有没有人试过其实业界不是没想过把内存接口串行化。早些年有一些研究和专利探讨过串行内存接口的可行性。但最终都没有成为主流原因就是我前面说的那些——延迟、成本、功耗、生态。有一个值得注意的现象在一些特定场景下确实出现了类 SerDes的内存接口。比如某些高带宽应用里GPU 的显存GDDR、HBM走的是另一条路。HBM 用的是硅中介层interposer上的超宽并行总线位宽高达 1024 位甚至更多本质上还是并行思路的极致化而不是串行化。这恰恰印证了内存场景偏爱并行这个规律。6.2 为什么 HBM 也没走 SerDesHBM 是个很好的反例。它面对的是极致带宽需求AI 训练、高性能计算按说最该用 SerDes。但它偏偏选择了**超宽并行 短距离硅中介层**的方案。为什么因为 HBM 的通道距离极短就在封装内损耗小并行总线的延迟和成本优势能充分发挥。如果 HBM 走 SerDes那点距离根本用不上 SerDes 的长距离优势反而白白付出串行化的延迟和功耗代价。这说明一个道理接口形态的选择取决于距离和场景而不是先进程度。距离短、引脚不稀缺就用并行距离长、引脚稀缺才用串行。6.3 边界在哪里那 DDR 会不会有一天真的转向 SerDes我的判断是在可预见的未来主流内存接口仍会是并行。除非出现以下极端情况内存访问的延迟敏感度大幅下降比如出现了全新的计算范式不再依赖低延迟内存并行总线的引脚和走线成本突然变得不可承受SerDes 的延迟和功耗降到跟并行总线一个量级。这三条目前看都不成立。所以 DDR 的并行路线还会继续走下去DDR6 大概率还是并行架构的延续和优化。7. 实操中容易踩的几个认知坑7.1 把速率和带宽混为一谈这是最常见的误区。SerDes 单 lane 速率可以做到 50 Gbps、100 Gbps看起来很吓人但那是单 lane 的线速率。DDR 的 6400 MT/s 是每根数据线的速率乘以 64 位位宽总带宽是 409.6 Gbps双向算的话更高。单看一根线的速率SerDes 赢看总带宽和成本DDR 赢。比较的时候一定要把位宽乘进去否则就是耍流氓。7.2 忽略协议开销SerDes 的线速率里有相当一部分被编码、包头、CRC 吃掉了。比如 8b/10b 编码20% 的带宽直接没了。64b/66b 好一些但也有约 3% 的开销。DDR 的协议开销相对小得多有效带宽占比更高。算实际可用带宽的时候这个差异不能忽略。7.3 低估延迟的影响做系统设计的时候很多人只盯着带宽忽略延迟。但在内存场景延迟往往比带宽更关键。一个带宽很高但延迟很大的内存接口对很多应用来说是灾难。这也是为什么 DDR 在延迟上抠得那么死。7.4 忽视生态和兼容性DDR 有庞大的生态内存控制器 IP、PHY IP、DRAM 颗粒、模组、测试设备、标准规范全都围绕并行总线建立。要改成 SerDes等于把整个生态推倒重来。这个迁移成本比技术本身的难度还大。技术选型从来不只是技术问题生态和惯性同样是决定因素。8. 给做接口选型的朋友几点实在建议如果你正在做接口选型纠结用并行还是串行我分享几条自己的经验。第一先看距离。板内短距离10 cm 以内、引脚不紧张优先考虑并行。跨板、跨机箱、长距离才考虑 SerDes。距离是第一个筛选条件。第二算总账别只看单线速率。把位宽、编码开销、均衡功耗、板材成本、连接器成本全算进去做一个端到端的对比。很多时候算完账结论会跟直觉相反。第三延迟敏感的场景慎用 SerDes。如果你的应用对延迟极其敏感内存、缓存、实时控制SerDes 的串并转换和协议开销可能是致命的。这时候并行总线的低延迟优势无可替代。第四尊重生态。选型的时候看看这个接口有没有成熟的 IP、PHY、测试方案、供应链。一个技术上很漂亮但没有生态支撑的方案落地成本会高得吓人。第五别被先进绑架。串行不一定比并行先进并行也不一定落后。接口形态是为场景服务的适合的才是最好的。DDR 坚持并行几十年不是因为它保守而是因为并行在它的场景里就是最优解。说到底DDR 不用 SerDes是一个被成本、延迟、功耗、生态共同塑造的工程决策而不是技术能力的局限。理解了这一点你在做任何接口选型的时候都会多一层从场景出发的思考而不是盲目追新。我自己踩过追新的坑也见过别人为了用上 SerDes而把简单问题复杂化的案例最后往往得不偿失。接口这东西合适比时髦重要得多。