欢迎访问深圳市中小企业公共服务平台电子信息窗口
了解ARMv指令集的重要性,国产CPU自研指令集为何这么难?
2023-12-05 来源:贤集网
561

关键词: ARM 高通 龙芯

今年也是国产ARM芯片继续停摆的一年。

去年此时,ARM公司正式宣布拒绝向中国企业出售先进的NeoverseV1和V2系列CPU设计IP。这意味着最先进的ARM V9指令集版本,与国内绝大多数企业无缘。在国产ARM迭代停滞的同时,ARM指令集也在日新月异进步。

不得不说,国产ARM芯片落后困境愈发严峻,留给厂商们寻找出路的时间不多了。



ARMv指令集发展史

无论是苹果的自研核心还是ARM的原生IP,都需要以ARMv指令集作为地基。因此,ARMv指令集的强弱至关重要。

在进入以iOS和Android系统为代表的智能手机时代之后,最早的手机处理器都是直接基于ARMv6指令集打造,代表产品有高通骁龙S1(包括MSM7x25),这些处理器连GPU都没有。

ARMv7-A算是一次比较大的迭代更新,高通早期自研的Scorpion微架构就是基于ARMv7-A指令集自主研发而来,代表产品有骁龙S1时期的QSD8x50。

ARM也是从ARMv7-A指令集开始,才大力发展原生核心IP的研发与授权,从Cortex-A5到Cortex-A17,这些早期的32bit处理器核心就都是基于ARMv7-A打造而来。

为了迎接64bit时代,ARM在2016年推出了ARMv8-A指令集,其主打可伸缩矢量扩展,专为高性能计算、数据中心而生。采用这一指令集的代表有Cortex-A53、Cortex-A57、Cortex-A72和Cortex-A73(还有嵌入式领域的A32和A35)。

2017年,ARM发布了ARMv8.2指令集,它引入了新的fp16运算和int8 dot指令,优化得当就能大幅加速深度学习框架的推理效率。从Cortex-A55和Cortex-A75开始至今的所有SoC核心架构都是基于ARMv8.2指令集研发的。

ARM在2021年3月31日正式发布了ARMv9指令集,它在兼容ARMv8的基础上,不再局限于移动/嵌入式市场,未来将发力PC、HPC高性能计算、深度学习等新市场,以满足全球对功能日益强大的安全、人工智能和无处不在的专用处理的需求。

用ARM的话说,ARMv9是10年来最重要的创新,是未来3000亿ARM芯片的基础。



Armv9三大升级,Armv8“遥遥落后”

自Arm于2011年10月首次发布Armv8架构以来,ARM在2021年发布了新的内核架构Arm v9.2,Arm v9.2是针对Arm v8的首次重大升级。“十年磨一剑”,Arm v9.2升级在哪儿?

据ARM高级副总裁、首席架构师兼技术院士Richard Grisenthwaite介绍,Armv9继续使用AArch64作为基准指令集,但是在其功能上增加了一些非常重要的扩展,主要是Arm在新架构上增加了三个主要支柱,分别是安全能力、机器学习能力、改进的矢量和DSP能力。

第一大支柱:安全性。在安全性方面,Armv9进行了重大升级,引入了新的安全功能,在兼容现有安全标准的基础上,对TrustZone和Crypto做了扩展,这些安全功能可以帮助开发者构建更加安全的应用程序,保护用户的数据和隐私。以上的安全特性,国产Armv8处理器是完全不具备的。这就意味着,针对安全需求明显的客户,基于Armv8的国产芯片硬伤明显,而且无法通过软实力的更新进行弥补。

第二大支柱:机器学习/AI能力。从技术演进和发展的态势可以看到,机器学习的负载或者程序类级别在通用平台中的计算和使用已经成为常态。机器学习是Armv9的重要组成部分,Armv9引入了新的AI和机器学习功能,包括支持INT8和BF16运算的向量运算单元以及支持矢量矩阵运算的扩展(SVE2)。这些功能可以提升AI和机器学习的性能,加速语音识别、图像处理等应用的发展。

第三大支柱:改进的矢量和DSP能力。Arm进一步开发了SVE2(Scalable Vector Extension 2),增加了新的矢量运算和矩阵运算指令,以增强机器学习和数字信号处理能力,这些扩展可极大增益基于Armv9架构的处理器在人工智能、图像处理、音频处理和高性能计算等应用领域中实现更高的性能和更低的碳消耗。

与Armv9支持的卓越AI能力相比,Armv8.2就显得非常的局限,在高速发展的AI时代,Armv8.2被抛弃将只是时间问题。当然,我们可以从技术的角度尝试弥补Armv8架构在SVE2实现上的功能弱势,包括但不限于使用软件库或编译器优化来模拟SVE2的行为。但这种招式好比一把双刃剑,杀敌一千自损八百,增加了程序设计的复杂度又带来了性能上的开销成本,如何做好资源的平衡,又是一个囚徒困境的问题。

总之,Armv9在性能上进一步提升了性能,包括更高的运行速度、更低的功耗以及更强的并行处理能力。这些改进使得Armv9能够更好地满足不断增长的计算需求和更好的用户体验。当然对于整体性能而言,Armv9通过改进了系统级性能,如增加内存带宽、降低内存延迟等。以上改进项可以使得基于Armv9的处理器能够更好地支持复杂的多任务处理和高负载应用程序。


主流国产CPU指令集皆来自国外

从零自研CPU最难点在于生态建设,x86与ARM主流地位建立在垄断性的生态根基上。当前国产CPU发展的突围捷径,有且只有借势而为主流指令集生态。

事实上,我国六大主流CPU厂商,兆芯、海光、鲲鹏、飞腾、龙芯、申威,其指令集技术皆来自国外,主要目的在于借势已成熟的指令集生态。

兆芯、海光选用x86架构,兼容了最广泛的x86生态,在服务器、PC领域是平替Intel、AMD的最佳选择。对于用户而言,这意味无需繁琐的编译开发工作,即可将业务数据迁移国产CPU平台,减少时间、人力成本,顺畅过渡到国内的x86体系。

鲲鹏、飞腾则选用ARM架构,一方面在于ARM架构的商业模式,厂商可在授权公版架构基础上进一步研发,从技术角度开发门槛低,成品速度快;另一方面,ARM近些年有意进军服务器市场,虽目前占比仅在7%,但上下游生态发展较为迅速。

而龙芯的LoongArch,也是基于MIPS架构借鉴而来,可直接兼容MIPS架构生态。不过MIPS架构其实早在几年前就已名存实亡,因此龙芯面临着从零建设生态的困难。一边以转译器等方式兼容主流x86生态,一边积极开拓原生应用。好在攻难克艰,生态发展稳步推进。例如,近期腾讯会议宣布已原生支持龙芯系列。

从国内主流CPU厂商的架构选择可看出,发展道路殊途同归。指令集都引自国外,生态也要兼容国外。那么问题又来了,国内以技术引进的方式寻求CPU产业突围,这样还能算是自主发展吗?



国外引进与自主并不相悖,技术可控才是关键

在国外CPU巨头先发优势下,后来者从零赶超难如登天。国内CPU技术发展道路,亦如国产高铁、大飞机“引进消化再创新”一样,国外引进与自主创新并不相悖。

在“引进消化再创新”的过程中,评判技术自主的标志在于,专利不侵权,同时不依赖国外完成差异化创新;更关键的在于可控,即产品有是否的迭代空间、技术是否有进化潜力。当前,国内称得上“自主且可控”,主要为龙芯、申威、海光、兆芯。

龙芯LoongArch架构已获得第三方专利认证,虽存在与MIPS的专利纠纷,但目前已基本解决,仅剩1条为待定事项。同时,龙芯产品经几年的发展追赶,性能基本将近2019年Intel发布的十代酷睿水平,体现出龙芯产品迭代发展的潜力,未来可期。

海光在ZEN1基础上,多年高强度持续研发投入,目前已完成对引进技术的消化吸收创新。从海光增添安全计算模块,解决漏洞堵掉后门,以及三年三款产品自主迭代可以看出,海光的确有能力、有权利动刀ZEN1内核,走出与AMD后续ZEN架构不同的道路。从而证明了海光对技术可以做到自主可控。

而鲲鹏、飞腾等国产ARM厂商,技术发展方面,更多表现为“自主但不可控”。虽然两家厂商在ARM授权架构基础上,可以自主研发出性能不错的ARM芯片;但问题在于ARM公司目前已经断供先进版本授权,这意味着掐断了国内ARM芯片的迭代发展之路。而受专利限制,国内ARM厂商也无权基于现有架构授权,自研微架构迭代。

并且随着ARM赴美上市进度加速,ARM公司卡脖子行为已实质发生。因此国产ARM技术发展,实际已做不到自主可控;国内对ARM架构的摸索,也成为一次错误尝试。

国内CPU发展的发力方向应该在于,完成引进技术的消化与创新,在国外的先进技术基础上实现自主可控。这样才能最大限度发挥后发优势,站在前人肩膀上实现后来者逆袭。