从 2017 年到现在, 不到两年时间里 X86 处理器行业的变化要比过去五年都要大, 标志性事件就是 AMD 重返高性能处理器市场, 除了在桌面处理器力推 8 核 16 线程处理器之外, 在服务器市场上还推出了 32 核 64 线程处理器, 前不久更推出了 7nm 的 64 核 128 线程 "罗马" 处理器, 而 AMD 成为多核狂魔的背后是巧妙地利用了 MCM 多芯片模块技术, 这也是大家调侃的胶水多核技术.
双核 Pentium D 时代, 大家听到胶水多核就一脸鄙夷, 不过 2018 年的今天, 不仅是 AMD 在使用胶水多核技术, 去年还在用胶水多核延迟高, 性能差等缺点打击 AMD EPYC 处理器的英特尔今年也推出了胶水多核的 48 核处理器, 未来还会把胶水多核技术发扬光大.
胶水多核到底好不好? 这个事不是简单一句话能说明的, 今天的超能课堂里我们就来聊聊 MCM 胶水多核技术的过去及未来.
摩尔定律失效, 提升频率, 增加核心之路不容易
对 CPU 处理器来说, 人们追求的不外乎三点 -- 性能越来越高, 功耗越来越低, 价格越来越便宜, 定价这事不仅跟技术有关, 还跟厂商的商业策略有关, 这个问题不是技术能解释的, 但是性能, 功耗这事跟技术是直接关联, 其中性能提升又是最重要的.
消费级的英特尔 CPU 已经做到 18 核
在现有的条件下, 提高 CPU 性能也只有两个方向了, 一个是提高 CPU 运行频率, 一个是增加 CPU 核心数, 但是如今的半导体技术面临瓶颈, 这两个件事都不容易, 特别是同时有需求的情况下, 因为大家现在既需要高频 CPU, 也需要多核 CPU, 这样就更犯难了.
28 核 Skylake-SP 处理器架构已经很复杂, 同时核心面积高达 698mm2
这两年中在 AMD 的 "帮助" 下, 英特尔已经加快了多核处理器的提升水平, 去年之前桌面最多才是 10 核 20 线程, 2017 年就推出了 18 核 36 线程的 Core i9-7980XE 处理器, 而服务器产品线上推出了 28 核 56 线程的 Skylake-SP 处理器, 但是英特尔付出的代价也是相当大的, 28 核处理器采用了 XCC 架构布局, 依然复杂无比, 而且核心面积达到 698mm2, 而普通的桌面 4 核, 6 核处理器核心面积还在 100-200mm2 之间.
很显然, 如果我们需要更多的 CPU 核心, 那么核心面积势必要增大, 那么核心面积增大有什么坏处呢? 这个问题完整回答起来需要很长, 最简单的解释就是在同样的制程工艺及晶圆上, 芯片核心面积越大, 产出越低, 而且大核心更容易出现瑕疵, 导致产能 / 良率进一步降低.
核心面积大小对产能 / 良率的影响(图片来源)
上面这个就是 Stack Exchange 上有人回答图像传感器为什么不做大面积的解答, 芯片面积越小, 晶圆利用率就越充分, 良率越高, 浪费就越少, 成本就更低, 而核心面积越大, 浪费就越大, 良率会下降. 虽然例子是图形传感器的, 不过对所有的半导体芯片来说都是如此.
有人要说了, 更先进的工艺不是有助于提高频率, 降低功耗, 减少核心面积吗? 没错, 这就是摩尔定律的作用了, 半导体厂商只要提高工艺技术, 确实能让 CPU 的性能及核心面积受益, 但是问题是摩尔定律早就失效了, 也不是现在的 14nm,10nm 工艺失效的, 严格意义上的摩尔定律在 28nm 之后就失效了 -- 对于这一点, 英特尔一直没有公开承认, 但是从半导体业界多数厂商以及现有芯片的实际表现来看, 摩尔定律这几年真的没用了, 先进工艺带来的晶体管密度, 性能等提升越来越小.
另一方面, 先进工艺的研发, 制造成本也在提升, 这个成本提升是针对整体成本来说, 特别是在 28nm 之后, 从 14/16nm 工艺进入到 7nm 节点更是一次成本大提升. AMD 提到了一个例子, 以制造同样 250mm2 的晶圆核心为例子, 对比了 45nm 到 7nm 工艺的成本, 45nm 工艺的成本为 100% 基准的话, 28nm 工艺的成本大概是 1.8,20nm 节点是 2.0,14/16nm 节点略高于 2.0, 但是到了 7nm 节点, 成本就增长到了 4.0, 相比现在的 14/16nm 工艺成本翻倍.
根据专业的 Semiengingeering 网站之前刊发过一篇文章, 28nm 节点上开发芯片只要 5130 万美元投入, 16nm 节点需要 1 亿美元, 7nm 节点需要 2.97 亿美元.
即便不说先进工艺的巨额投资问题, 但是从技术上来说 10nm 及以下的工艺就难多了, 英特尔迄今都没有能量产 10nm 工艺呢, 台积电, 三星虽然做到了 7nm 级别, 但是工艺水平及用途跟这里所说的高性能处理器还有点距离, 总之指望先进工艺解决 CPU 频率及核心面积的问题也是不行的, 这条路越来越难.
单打不行就群殴, MCM 多芯片重新受宠
在半导体工艺逐渐逼近物理极限的情况下, 指望未来的 7nm,5nm 甚至 3nm 工艺解救处理器是不太可能了, 不过我们上面所说的种种弊端还是针对的单片电路 (monolithic) 的, 既然单一芯片不容易提升, 那就来多个芯片吧, 这就是 MCM(multi-chip module, 多芯片模块)设计了, 这种设计也就是被大家调侃的胶水多核.
MCM 多芯片模块也不是什么新鲜玩意了, 该技术也有数十年历史了, 这么多年的发展也衍生出了诸多不同的 MCM 多芯片技术, 所以尽管看起来都是 "胶水多核", 但是不同的 "胶水" 效果也是不一样的, 芯片封装技术多年来也是在不断进步的.
图片来源
至于 AMD, 英特尔两家公司中, 英特尔还是最早应用 MCM 胶水多核的, 早在 Pentium Pro 处理器上就使用过 MCM 封装技术, 不过大家熟悉的可能还是 Pentium D 双核的胶水, 那个年代为了抢先推出双核处理器, 英特尔不得不在 Presler 架构的 P4 上用了 MCM 胶水技术, 抢到了双核首发的荣誉.
当然, Pentium D 双核在市场上的表现也不尽如人意, 但这跟 MCM 胶水多核关系不大, 更多地还是 Pentium 架构不给力的锅, MCM 只是加剧了大家的不满.
之后英特尔及 AMD 在处理器架构上都极少使用 MCM 技术了, 继续着原生多核架构, 毕竟这种架构本来就应该是多核处理器应有的设计, 不过随着 CPU 核心数逐渐从个位数提升到十位数范围, monolithic 多核心的局限越来越大, 不光是前面所说的制造难度大, 良率低的问题, 也因为它不够灵活, 因为处理器除了核心数量之外, 还要考虑到内存通道, PCIe 通道等 IO 核心的搭配, 如前面的 Skylake-SP 架构所示, 为了配合不同核心的处理器, 英特尔在它上面使用了 XCC,LCC,HCC 三种不同的内部架构, 这样做无疑是增加了芯片的复杂性.
单芯片的设计越来越复杂, 越来越昂贵, 财大气粗而且有工艺优势的英特尔或许还能走下去, 但是 AMD 不行, AMD 不论是桌面处理器还是服务器处理器还得要跟英特尔打价格战, 核心更多, 价格更低是他们的武器, 所以不可能再走单芯片的路线了, 在 Ryzen 锐龙及 EPYC 霄龙处理器上 AMD 也用上了 MCM 多芯片模块.
在这种架构中, AMD 将两组 CCX 单元作为一个模块做成了 8 核 16 线程处理器, 这就是桌面版的锐龙 7 处理器, 而第一代 EPYC 处理器最多 32 核 64 线程, 其内部封装了是 4 个 8 核模块, 详细的技术介绍我们之前的首发评测中做过解答, 这里不赘述, 我们就来看看 AMD 为什么这么做.
答案很简单 -- 省钱. 对于这个问题, AMD 在 EPYC 架构中对比了 MCM 与 Monolithic 两种思路设计 32 核处理器的优劣, 如果使用原生 32 核架构, 核心面积只有 777mm2, 而现在的 MCM 多核芯片架构使用了 4 个 213mm2 的模块, 核心总面积是 852mm2, 与单芯片相比是浪费了 10% 左右的核心面积.
但是制造 4 个 213mm2 的小核心处理器比制造 1 个 777mm2 的大核心容易多了, 后者的良率太低了, 低到多少呢? AMD 今年公布过相关数据, 完整的 32 核处理器良率不到 17%, 这样的代价是 AMD 承受不起的.
MCM 设计除了会浪费部分核心面积之外, 还有延迟问题, 毕竟原生的多核心之间通讯要比外部芯片之间通讯距离短多了, 这也是为什么锐龙处理器之前被人诟病过内存延迟的问题, 但即便有这两个缺点, AMD 还是把 MCM 设计发扬光大了, 光是减少 40% 的芯片制造, 测试成本就足够驳倒负面了, 况且延迟等问题还可以用过别的手段缓解下, 不造成明显影响就没事了.
英特尔之前还表示 AMD 的 MCM 模块有性能及延迟问题
相比 AMD 转向 MCM 设计, 英特尔近年来一直坚持原生多核设计, 为此英特尔的首席架构师早前还专门写文章 Diss 胶水多核一番, 表示原生多核优点多多, 性能上没妥协, 胶水多核就.... 但是这番话没多久, 英特尔自己也推出了一个胶水多核 --Cascade Lake-AP 48 核处理器, 它实际上是两个 24 核的 Cascade Lake 处理器通过 MCM 方式组合出来的, 也不是原生 48 核.
英特尔推 Cascade Lake-AP 48 核处理器显然是要应急, 虽然他们的 28 核处理器性能不比 AMD 的 32 核处理器差, 但是价格贵很多, 而且 AMD 今年还推出了 64 核架构的 7nm 罗马处理器, 进一步拉开了与英特尔 Xeon 处理器之间的核心数差距, 而英特尔 2020 年才有可能拿出 10nm 工艺的服务器芯片, 但也难生产出原生 64 核的处理器, 上胶水多核是迟早的事.
殊途同归, AMD, 英特尔同时走向异构 MCM 之路
MCM 胶水多核就只有现在这个样子了吗? 并不是, AMD 前不久宣布了 7nm Zen 2 架构罗马处理器, 它最大的特点就是将 CPU 核心数提升到了 64 核 128 线程, 比现在又翻了一倍, 多核狂魔名不虚传. 为了实现最多 64 核 128 线程的设计, AMD 是会继续 MCM 胶水多核, 不过这次的多核架 MCM 又不一样了.
从 AMD 公布的信息来看, 7nm 罗马处理器的 MCM 是 8+1 架构, 很有众星捧月的感觉. 在这个 MCM 多芯片架构中, AMD 将 CPU 内核与 IO 单元分离, 四周的 8 个小核心是纯 CPU 内核, 而 DDR 内存控制器, PCIe 控制器, IF 控制器等 IO 单元单独做成了一个核心.
除了 CPU 内核与 IO 单元分离, 7nm 罗马处理器的还使用了不同工艺 -- 核心的 IO 单元是 14nm 工艺的, GF 代工的, 而四周的 CPU 核心是 7nm 工艺的, 台积电代工的. 这样做也是为了降低成本, 因为 IO 单元并不需要那么先进的制程工艺.
AMD 在罗马处理器上的 MCM 结构让人联想到了英特尔之前的 EMIB 多芯片封装技术, 二者在这方面可以说是异曲同工, 殊途同归, 都是在一个处理器封装内集成不同工艺的核心, 英特尔的 EMIB 封装中 CPU 核心, 核显可以是 10nm 的, 通讯及其他 IP 核心可以用 14nm 甚至 22nm 工艺.
此外, 英特尔还对比过 EMIB 封装与传统 2.5 封装的优缺点, 表示 EMIB 技术具有正常的封装良率, 不需要额外的工艺, 设计简单等优点.
总结: MCM 胶水多核或许是未来处理器的常态
从被人调侃到重获重视, MCM 多芯片模块这么多年来又重新成为多核处理器的有力武器, 特别是在核心数超过的服务器处理器上. 另一方面, 如今的 MCM 多芯片设计在技术水平上也跟当年简单粗暴的胶水多核不一样了, 主要担心的延迟问题上, 英特尔之前提到他们的 EMIB 技术相比单片电路的延迟只增加了 10%, 而别的技术方案中延迟甚至会增加 50% 之多.
不过 MCM 多芯片技术对主流桌面处理器影响就没这么大了, 未来两年高端桌面处理器应该或是 8 核 16 线程为主, 所以 AMD 下一代的锐龙 3000 桌面处理器是否还会使用核心, IO 分离的设计很值得关注.
来源: http://biz.51cto.com/art/201811/587344.htm