我们知道,三星奥斯汀研发中心(sarc)的定制cpu核心项目已于2019年10月结束。对于在2016年推出具有exynos m1功能的exynos 8890的这种宣传而大受鼓舞的项目,它可悲的结局。sarc为什么要折叠项目?exynos 990 soc中包含的exynos m5自定义内核是在可预见的将来三星设计的最后一个全定制内核,事后看来,很容易看出三星为何放弃自定义内核,因为它们根本没有竞争力。足够。现在知道,exynos m5内核的功率效率不足为100%反对arm的cortex-a77,这说了很多。但是,事实并非如此。exynos m1和exynos m2的设计显示了一些希望,而当时的定制cpu核心项目对移动cpu领域的竞争非常重要。尽管ipc大幅增加,但exynos m3仍然是一个严重的低迷时期,而exynos m4和exynos m5未能赶上arm的现有cpu ip。下一个自定义核心(已取消的exynos m6)的微体系结构变化是什么?

到目前为止,该问题的答案尚不清楚。但是,现在,sarc cpu开发团队在ieee会议的国际计算机体系结构研讨会(isca)上发表了一篇题为“三星exynos cpu体系结构的演变”的论文(我们通过anandtech知道)。它揭示了有关以前的exynos m系列cpu以及已取消的exynos m6的体系结构的许多详细信息。

sarc cpu开发团队提交的论文详细介绍了该团队在成立八年中的努力,还揭示了自定义arm内核的关键细节,这些内核从exynos m1(猫鼬)到当前的exynos m5(lion),甚至是预计在取消之前,未发布的exynos m6 cpu将在exynos 990的2021 soc后续产品中使用。

三星的sarc cpu团队成立于2011年,以开发自定义cpu内核,然后将其应用于三星系统lsi的exynos soc。第一个使用定制内核的exynos soc是exynos 8890,该芯片在2016年的三星galaxy s7中得到了体现。自定义内核一直是exynos soc的一部分,直到具有exynos m5内核的exynos 990成为exynos支持的三星galaxy s20变体中的特色。(即将面世的exynos 992,可能会在galaxy note 20中使用,预计将使用arm的cortex-a78而非exynos m5。)但是,sarc在cpu团队得到解散消息之前就已经完成了exynos m6架构。解散将于2019年10月生效,解散将于12月生效。

isca的论文概述了三星从exynos m1到exynos m6的定制cpu内核之间的微体系结构差异。该公司在2016年hotchips大会上的首次m1 cpu架构深入研究中公开了该设计的一些众所周知的特征。在2018年hotchips上,三星对exynos m3进行了深入研究。exynos m4和exynos m5内核以及m6的体系结构也已详细介绍。

anandtech 指出,多年来三星设计的一个主要特征是它基于与exynos m1 mongoose内核相同的蓝图rtl。多年来,三星继续改进内核的功能模块。exynos m3代表了从第一次迭代以来的一次变化,因为它在几个方面大大扩展了内核,从4宽设计到6宽中核。(另一方面,apple a11,a12和a13的解码宽度为7宽,而cortex-a76,a77和a78的解码宽度为4宽。cortex-x1将解码宽度增加为5 -宽。)

该报告还披露了有关exynos m5和m6的一些公开信息。对于exynos m5,三星对内核的缓存层次进行了较大的更改,用新的更大的共享缓存替换了私有l2缓存,并公开了l3结构从3组设计到2组设计的变化。更少的延迟。

就微架构而言,取消的m6核心将是一个更大的飞跃。sarc进行了重大改进,例如将l1指令和数据缓存从64kb翻了一番至128kb – anandtech 指出,这是迄今为止仅由apple的a系列内核实现的设计选择,从apple a12开始。

l2的带宽能力增加了一倍,最高可达64b /周期,而l3的带宽能力将从3mb增加到4mb。exynos m6本来是8宽解码核心。正如anandtech所指出的那样 ,这将是目前在解码方面已知的最广泛的商业微体系结构。但是,即使内核宽得多,整数执行单元也看不出太多变化。一个复杂的流水线增加了第二个整数除法功能,而加载/存储流水线与m5相同,只有一个加载单元,一个存储单元和一个加载/存储单元。浮点/ simd管道本来可以看到具有fmac功能的第四个单元。l1 dtlb从48页增加到128页,而主tlb从4k页增加到8k页(32mb覆盖)。

exynos m6自从m3以来首次增加了内核的无序窗口,这将是其前代产品的另一个重大变化。将会有更大的整数和浮点物理寄存器文件,并且rob(重排序缓冲区)将从228增加到 256。anandtech 注意,自定义exynos内核的一个重要弱点仍然存在于m5上,并且在m6上也会存在。它将是更深层次的流水线阶段,这将导致昂贵的16周期错误预测损失,这比具有11周期错误预测损失的arm cpu内核要高。sarc论文更深入地介绍了分支预测器设计,展示了cpu内核基于scaled hashed perceptron的设计。在过去的几年和实施中,该设计将不断得到改进,从而提高分支的准确性,并不断减少每公斤指令的错误预测(mpki)。sarc提供了一个表,该表显示了分支预测变量在前端内所占用的存储结构量。该论文还详细介绍了内核的预取技术,

sarc在本文中还详细介绍了在自定义exynos内核中改善内存延迟的工作。在exynos m4中,sarc团队采用了负载-负载级联机制,将后续负载的有效l1周期等待时间从四个周期减少到三个。m4内核还引入了路径旁路,并带有一个新接口,该路径从cpu核心直接到内存控制器,避免了通过互连的流量。根据anandtech的说法 ,这解释了该出版物可以使用exynos 9820进行测量的更大的延迟改进。exynos m5引入了推测性缓存查找旁路,该旁路同时向互连和缓存标签发出了请求。在正在进行内存请求时,如果发生高速缓存未命中,这可能会节省延迟。从m1上的14.9个周期到m6上的8.3个周期,平均负载等待时间也不断提高。

尽管上述微体系结构特性在技术上是相当专业的,但cpu爱好者会熟悉术语“每时钟指令(ipc)”,这表示单线程cpu性能中的每mhz性能(这是决定单线程cpu性能的主要主要因素,另一个因素是核心的时钟速度)。整数ipc和浮点ipc都是ipc的决定因素。从m1到m6,sarc团队平均每年获得20%的改进。尤其是m3,尽管受到其他因素的影响,但在ipc方面却代表了很大的提高。exynos m5的ipc改善了15-17%,而未发布的exynos m6的ipc改善平均为2.71,而m1为1.06,比m5改善了20%。

该论文的主持人布莱恩·格雷森(brian grayson)在问答环节中回答了有关该程序取消的问题。他说,团队始终如一地按时完成目标,并在每一代提高性能和效率。(这是否意味着目标首先还不够高?)。另一方面,团队最大的困难在于对未来的设计更改要非常谨慎,因为团队没有从头开始或完全重写块的资源。事后看来,团队过去在某些设计方向上会做出不同的选择。与之形成鲜明对比的是,arm拥有多个cpu团队,它们在实际上彼此竞争的不同位置工作。这样就可以进行“地面重新设计”,例如cortex-a76。的cortex-a77和cortex-a78是a76的直接后继产品。

sarc团队对改进即将推出的内核(例如假想的exynos m7)有想法。但是,据说是三星的一个非常高尚的人决定取消自定义核心程序。正如 anandtech 指出的那样,与任何特定一代的arm cpu相比,定制内核在功率效率,性能和面积使用(ppa)方面都没有竞争力。上个月,arm宣布了采用新cortex-x1的cortex-x custom程序,是面向2021年移动设备的下一代核心。它的设计理念是打破cortex-a ppa的界限,而是追求绝对的性能。因此,exynos m6很难与它竞争。即便如此,三星似乎也不会采用cortex-x1,而只能在exynos 992中使用cortex-a78 cortex-a55组合产品-但它可能会在明年的galaxy s旗舰产品中采用。

sarc团队目前仍在为samsung systems lsi设计定制的互连和存储器控制器。该公司还致力于定制gpu架构,但三星系统lsi与amd签署了一项协议,将从2021年开始在未来的exynos gpu中使用amd的下一代(next图形架构)rdna gpu架构。

总体而言,定制cpu核心项目为移动芯片供应商提供了关于可能出问题的启发性课程。sarc cpu团队具有与苹果竞争的雄心壮志,后者是移动cpu领域无可争议的领导者。不幸的是,它未能与arm竞争,更不用说苹果了。这些问题本来可以解决,但是年复一年,sarc的努力落后了一两步,并且在诸如三星galaxy s9的exynos 9810变体等产品中不利地反映出来。现在,所有主要的android移动芯片供应商将从2021年开始使用arm的库存cpu ip,其中包括高通,三星,联发科和海思。苹果将​​采用诸如cortex-x1之类的内核,而不是从头开始设计的定制arm内核。