ISSCC 2020已经落下了帷幕。除了传统在模拟和射频上的亮点,本次会议也有不少在数字设计中让人惊艳的内容,比如将近几年兴起的物联网IoT相关技术作为一个单独章节,包括物联网低功耗无线互联技术,物联网的安全相关问题等。从投稿者角度分析,既有不少业界科技巨头参与,如英特尔,AMD,三星,IBM,德州仪器,ADI,Xilinx,联发科等纷纷“秀肌肉”,将19年的主力产品尽出,如2019年处理器领域火爆的zen2产品。同时,也有一些新晋业界产品首次公开亮相,如阿里巴巴达摩院自成立后,发布的首款AI处理器产品“含光”。除了业界,学界的所取得的成果也是比较丰硕。
由于笔者所研究的领域是传统处理器相关,因此在这里主要对本次会议中几篇处理器文章进行一些简要综述,因笔者知识积累有限,可能一些方面的表述不够精确和深入,欢迎各位同仁积极提出指正和改进建议。笔者与矽说平台合作将对今年ISSCC的几款亮点处理器分别进行简单综述,主要分为三个章节,一个是移动处理器,一个是高性能处理器和人工智能处理器。本次为第一章节——移动处理器。
2019年对三星的奥斯汀研发中心(SARC)来说是动荡的一年,主要发生了两个大的变动,一是裁掉了自己多年组建的自研CPU核心团队,二是在后续的产品上,放弃了自研CPU核心路线,改为ARM公版架构。奥斯汀CPU团队从2016年至今一共发布了4代自研CPU核心架构,代号为猫鼬(Mongoose),2016年发第一代M1核心,基于ARM公版A57核心做了改动,接着是M2(基于A72的改动?), M3(2018年发布,基于A75核心的改动),而本次会议中发布的芯片采用的M4核心,笔者推测,可能是基于A76核心的改动。
回到本次会议发布的9820处理器,其采用三星第一代7nm(也有说法是8nm+ )工艺实现,整个处理器由大中小3簇的8核心架构组成,其中两个自研大核心M4,运行频率为2.73Ghz,两个中核心为公版A75核心,工作在2.4Ghz频率,四核小核心为公版A55核心,运行在1.9Ghz。其GPU部分为12个ARM G76核心。其NPU部分,运行在933Mhz频率点。整个处理器的框架如下所示:
而整体芯片的裸片die面积达到122平方毫米。9820这款芯片虽然是一款4G芯片,但从版图直观的感触,面积大的有些过分,127平方毫米的面积甚至大于集成5G基带的华为麒麟990处理器(113mm2,数据来源tech insights拆解),而华为的上一代处理器980,面积仅仅为74平方毫米。同期的苹果A系处理器(纯处理器,不含基带,也均能维持在100平方毫米以内),直观的对比如下图所示:
在移动处理器寸土寸金的设计场景里,越小的SoC实现面积,意味着更小的芯片封装尺寸,也就会给手机主板留出更多的冗余空间和设计余量。多模块的SoC设计一般分为channel-based土豪做法,这样的好处是方便做跨不同模块之间的通信feedthru和信号中继repeater设计,而另一种是高面积利用率的channel-less做法,如华为,高通,苹果,联发科均采用channel-less的做法,在版图上尽可能紧凑,甚至苹果为了尽可能提升自家A系处理器性能,手工定制NUCA结构的缓存(non-uniform cache arch)和一些关键信号路径模块。而令人费解的是三星历代自研处理器均采用基于channel的SoC设计,不同模块之间间隔的空间很大,整个芯片的最终实现面积也很大。也印证了一句话,有自己的代工厂,就是土豪任性,面积成本是小事。
回到9820处理器本身,可以看出两个大核心M4(版图中的Big CPUs)的面积远超其余六个核心的面积,大核心延续了三星自研核心的一贯风格,面积大,性能巨兽。性能巨兽是因为在自研核心里舍得下成本,往里面堆料,不仅增加处理器的流水线逻辑,而且堆片上缓存。M4核心的一级缓存与A75核心一致,而二级缓存高达1MB,三级缓存更是达到了3MB,设计风格越来越向着苹果的A系处理器堆料提升性能的做法靠近。
对M4大核心进行一个简单回顾:
(1)首先是流水线前端
采用6条指令发射宽度,尽可能拉宽流水线,对比同期A76核心,其发射宽度为4 条指令。拉宽了流水线发射端,自然需要更多的资源来保证乱序执行的正常进行,其ROB(reorder buffer)提升至228条表项,已经达到同期英特尔的X86高性能桌面处理器的级别。一级缓存为64KB的指令缓存+64KB的数据缓存结构,二级缓存增大至1MB。相应的,其访存相关的BTB(Branchtarget buffer,分支目标缓冲器,用于存储预判分支指令的目标地址)设计进行了改进,micro-BTB提升为128条表项容量,main BTB为4K容量。而二级缓存,则为32K的表项容量。为了提升分支预测的精度和性能,近几年神经网络技术也被广泛应用到分支预测器的设计中,9820也毫不意外采用了神经网络结构进行分支预测。
对于乱序超标量处理器架构,提高流水线宽度可以显著提升单位时间内处理器所能执行的操作,但一味的增加发射宽度,又会带来新的问题,一个是功耗问题,同一时间段可以同时执行多个指令了,执行单元数目要增加,功耗自然增加。另一个是为了防止不同指令在执行时不会相互打架,抢夺资源,因此在调度逻辑,以及最后的顺序退休逻辑,会变得更加复杂,设计成本明显提升。
在移动处理器里,有两种代表性的设计思路,一个是剑走偏锋,尽可能拉大宽度,代表公司为苹果家的A系处理器,其性能也是最强,但其架构限制了多核核数,苹果处理器的风格是走少而精的路线。而另一种是考虑到性能与功耗,成本之间的平衡折衷,以3-4的发射宽度为最佳设计点,代表作为ARM的公版架构,走的是多核结构,小马拉大车。
(2)接着是流水线的执行级:execution stage
执行级是决定处理器性能的最关键部分,这里面的计算单元ALU,乘法单元MUL,除法单元DIV,访存单元Load/store单元,直接影响到处理器的运算能力。而执行级按照处理数据的不同,划分为两条并行线,一个是整数部分(Integer),一个是带小数计算的浮点部分FP(floating point)。
M4核心的整数流水线部分如下图所示,共包含4组算逻辑算单元ALU,两个常规ALU,两个复杂ALU,一个包含乘法功能(ALU+MUL),一个包含乘除功能(ALU+MUL+DIV)。访存部分,相较于上一代M3核心,增加了一组LSU。
(3)性能跑分
与上代M3核心, 同期A76公版的各项跑分对比。跑分结果很“三星”,适合跑分,但实际应用中总是出现各种翻车。三星自研处理器长期存在一个问题,跑分很好看,实际使用体验很差。观察其架构框图,以及版图中结构,不难找到原因。三星的处理器始终没有处理好自研核心与公版核心之间的互联总线问题,使得处理器整体性能无法得到有效发挥。
究其原因,不过“总线”二字。两个M4核心采用了Ring-bus总线互联,而其他公版核心采用了ARM的标准总线。互联总线问题一直是限制三星过往几代处理器性能的瓶颈所在,M系列自研核心确实优秀,功能强悍,但总线问题却限制了其整体性能。回顾三星前两代产品9810和8890,均采用四大核(自研核心)+四小核(公版核心)的结构。四大核也是采用Ring-bus总线,而与小核的总线之间总是有兼容性问题。如下图所示为18年初发布的9810处理器结构,采用10nm LPP工艺实现,4个M3核心(基于A75的改进型)采用瓦片形的并排排布。
需要注意的是,2017年ARM发布了针对big.LITTILE多核协议的改进版,名为Dynamic IQ协议,其最显著的改进就是引入DSU单元和private L2缓存,9810处理器是三星的第一款于Dynamic IQ结构的处理器产品。
在本届会议的9820上,从版图结构上,架构图上分析,三星依然未能解决好自研核心与公版核心的互联总线问题。希望这次不要翻车太多。说完了M4核心,再提一下9820里这次比较新颖的几处亮点。一个是三簇多核心的功耗调度,一个是基于硬件的全局自动化钟控门技术HWACG (HW Automatic Clock Gating),还有自研的神经网络处理器NPU。
总结一下,此届会议中的Exynos 9820处理器,应该是三星自研架构的谢幕产品,最后一代公开并商用的猫鼬M4架构带来了一些新颖的改进和提升,芯片总体也采用了更多的新技术。只可惜,三星在奥斯丁的SARC团队已经解散,后续三星也会回归到公版架构路线,猫鼬核心虽然不是非常顺利的产品,但它的技术实力,和一些方面的敢于改进和探索,是值得很多业界设计师去学习和思考的,为SARC团队的多年付出点赞。他们是继苹果处理器之后,敢于进行性能大改和尝试的,很有魄力的团队。
近几年联发科的处理器在市面上存在感比较弱,主要原因是其一直被人诟病的处理器性能。联发科是最早,也是最善于堆多核心的厂家,但也是最不善于做好多CPU核心调度,多任务调度的厂家,民间俗称“一核有难,八核围观”,足以见其口碑之差。此次在ISSCC会议上发布的天玑1000处理器,却是联发科这几年憋着口气,想重回高端市场的表现。
天玑1000处理器,采用台积电的第二代7nm+工艺实现。台积电的7nm工艺分为三代,第一代为2018年上市的各大芯片所采用的的初代7nm工艺,包括麒麟980,苹果A12,高通855处理器,AMD zen2处理器等。而第二代7nm,也称作7nm+,采用的是DUV光刻改进工艺,联发科天玑1000处理器,苹果A13处理器均采用的是DUV版的二代7nm工艺。而第三代7nm工艺,则是采用最先进的EUV曝光技术的7nm工艺,可以说是7nm这一代最强的工艺,目前被用在华为麒麟990的5G版处理器中,而4G版的麒麟990采用的是DUV曝光的二代7nm+工艺。
本次的天玑处理器,其各项设计指标都诚意满满,比如在CPU端,最早采用ARM最新,最强的A77大核心架构,GPU端也是一步到位,采用了最新的G77架构。多核设计方面,没有采用以往三簇结构(联发科在三簇调度方面一直做不好,2017年Heilo P30那个10核心设计翻车事故,同为三簇结构的华为麒麟处理器980.990,高通处理器855就做的不错),采用了简单的4大核A77+4小核A55的两簇结构,其中大核运行在2.5Ghz主频(A77配合7nm工艺的建议频率是3Ghz,但功耗会明显提升。联发科降频处理是为了功耗上的折衷考量,A77功耗以现有的7nm工艺能否承载住,是个问题),四个A55小核均运行在2.0Ghz主频上。GPU核心数,运行频率未知。NPU部分,联发科的内部命名为APU,运行频率未知。对于A77核心,由ARM发布于2019年5月份,代号Deimos,是对上一代A76核心的进一步提升和改进,与A76相比主要几个大的改进方面:
按照ARM官方给出的对比数据,A77核心相较于上一代A76核心,总体性能有大约25%的提升,但需要注意的是A77的设计面积成本,功耗也是显著上升。相较于7nm工艺实现A77核心,5nm也许才是最优选择,可以把A77的高性能完全发挥出来。GPU部分,采用的是ARM最新的公版G77架构。G77的使用,带来的效果也是立竿见影的,这款处理器可以支持手机屏幕以120hz的高刷新率,运行在Full HD 的1080p物理分辨率下,2020年手机行业的一个标杆就是高刷新率的2k分辨率显示,并兼容低刷新率(60hz)的3k甚至4K高分辨显示。而其重要的人工智能加速引擎单元APU的介绍,则专门单列出一篇文章在session 7中进行了讲解和介绍,矽说后续会进一步介绍本文在此不做重述。
通信模组部分,联发科天玑1000也是继华为麒麟990处理器 5G版后,市面上第二款5G SoC处理器芯片,集成联发科自研的M50基带,支持SA和NSA两种5G通信模式,但毫米波段缺席。
总结一下,联发科天玑1000作为联发科2019年的一个重磅产品,也彰显了联发科在5G时代SoC端布局的决心。该产品已经被成功应用到OPPO的第一代5G手机Reno 3系列中,目前市场反应比较好,但能否跻身与高通,华为麒麟等同一水准,仍需要时间去验证。
(本文授权自公众号矽说,作者:豆角,转载请联系矽说公众号;责编:Demi Xia)