时至今日,关注电子的人都听说过ARM与x86,两位斗士早已开始短兵相接。但众所周知ARM性能过高,x86功耗过高,未来战场的霸主将花落谁家?ARM架构与X86架构的拉锯战似乎永远也不会有结局。从目前的局势看,虽然两方各有所长,但是也不断在向对方更擅长的领域进攻。
复杂指令集(CISC)和精简指令集(RISC)从CPU发明到现在,有非常多种架构,从我们熟悉的X86、ARM,到不太熟悉的MIPS、IA64,它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。
Intel和ARM处理器的区别是,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC),属于这两种类中的各种架构之间最大的区别。时至今日,有人表示「x86 比 ARM 功耗高」这一点,在事实上已经不再成立了,让我们回顾一下ARM和x86的历史。
x86:Intel一家独大
提到芯片巨头英特尔,每一个互联网用户应该都不会感到陌生,英特尔的CPU制造技术冠绝全球,但是你知道这家巨头企业是如何发家的么?
事情要从1978年6月8日说起,Intel发布了一款新型的微处理器“8086”。而这款处理器在新出现时并没有得到什么关注,可是他却创造了一个新的时代。8086意味着x86架构的诞生,而x86作为特定微处理器执行计算机语言的指令集,定义了芯片的基本使用规则。8086也直接带动了Intel成为全球首屈一指的芯片巨头。
而x86不仅仅使Intel平步青云,也成为了业界的一种标准。在过去的几十年里,无论是笔记本、服务器、超级计算机还是编写设备,都可以看到x86的身影。而且,x86架构还在通过不同的方法进行改进,无论AMD、VIA都可以通过X86指令集的弹性来对付Intel,迫使x86进行改变。
通过几十年的技术积累,x86服务器在服务器领域的地位几乎是独孤求败。小巧灵活的x86服务器在市场上应用十分广泛,互联网以及局域网内的文件、打印、通讯、web、电子邮件、数据库以及应用服务等多个领域都可以一展身手。
x86服务器最大的特色在于可以兼容Windows操作系统,全部都采用了Intel的CPU。而Intel的x86服务器也可以分为两代,最初采用的80x86系列在发布了产品80486后,Intel对该系列产品进行了重新命名并注册,这也就是现在Intel的Pentium系列,当然,这个系列在中国还有个更响亮的名字,即奔腾系列。
x86:40多年一路坚持
x86老么?从时间上来看,确实老了。x86从1978年至今已经将近40年。可经过各种风云变幻之后,x86依然是服务器行业绝对的领导者,说这样的一个服务器行业领袖已经老去,那无非便是在指摘支撑起整个互联网的服务器行业已老。
而且,经历了很多代的改进和变革,x86架构服务器依然是最快的架构之一。而且现在x86也是整个行业的标杆,从技术上来看x86从未落后过,只不过是和其他架构的服务器相比差距大小是否被拉近了。
从指令集架构来看,CISC确实是有些陈旧了。即便是Intel也已经承认,CISC架构确实限制了CPU的发展。在CISC微处理器程序的各条指令相互串联执行,指令操作也需要串行执行,按照这种方式来进行任务执行,其控制当然十分简单,但计算机的整体利用率却被拖了后腿,执行速度相对偏慢。这也是CISC架构为中低档服务器所采用的原因之一。
复杂指令集是一种伴随着计算机诞生便存在的一种指令集。其拥有较强的处理高级语言的能力,对于提高计算机性能有一定好处。而日趋复杂的指令系统不仅带来的效率的低下,还致使系统结构的复杂性增加,这种复杂性也将导致了CISC的通用性不佳。
ARM:移动端异军突起
在PC领域,Intel的CPU一枝独秀。而在移动端呢?那就当属ARM了。ARM全称为AdvancedRISCMachine,也就是进阶精简指令集机器。ARM是RISC微处理器的代表作之一,其广泛的在嵌入式系统设计中被使用。而且ARM处理器最大的特点在于节能,这也是其在移动通信领域无人能敌的原因之一。
打造ARM64位服务器
在过去,ARM专注于发展32位架构,在移动端称霸多年,让Intel眼馋不矣。而在PC和服务器领域,Intel的市场也让ARM十分眼红。ARM于2011年底发布的ARMv8为其首款64位处理器,而戴尔在2013年发布了其首款基于ARM64位构架的服务器,相应的服务器解决方案也被开发出来。
专家认为,尽管Intel的x86处理器在服务器领域依然无敌,但64位的ARM构架应该可以找到自己的一席之地,ARM在内存和网络接口同计算核心间的距离会被尽可能的拉近,并借此承载起密度极高的大量计算进程,这种特性与Web服务器及其应用十分契合。
在服务器领域,Intel的芯片也有很多水土不服的领域,比如内存容量、I/O和处理性能不成比例时,ARM处理器的表现会更加合格。ARM处理器的ISA复杂程度要低很多,开发成本也要低,相应的,ARM服务器厂商针对这些应用场景所开发的服务器也就拥有了打败Intel的前提条件。而从这些应用环境所切入服务器市场的ARM架构服务器其针对客户也正是x86的原有部分客户。
而Intel是不会轻易放手的,在服务器领域,其工艺对ARM保持领先,其处理器性能也远高于ARM处理器,可在功耗方面一直是Intel的一个心病。
此外,Intel也想进军移动端,要打败ARM,在低功耗的服务器领域发力便是一个好的选择。采用了14nm工艺的Xeon-D,其包括的2个1.4G的Broadwell内核和GPU的功耗才仅仅为6W,在性能功耗比方便比ARM要高出不少。
在2008年,Intel推出了Atom处理器,这款处理器是Intel史上体积最小,功耗最低的处理器,其开创出去便是之中弥补自己在移动计算领域先天不足的问题,而这一领域被ARM霸占多年,在技术和经验中Intel都不占优势,想要打败ARM又谈何容易?
既然双方都对对方的领域虎视眈眈,那么ARM和Intel的大战绝对是不可避免的。那么想要进入Intel的服务器领域,ARM就需要拿出来真本事了,以其64位元处理器作为基础的芯片设计,功耗低、成本低,具备构架弹性,以这些优势去硬碰Intel又能有几成胜算呢?
换个角度看,ARM芯片架构具备一定的灵活性,可以实现很多企业的特性需求,比如缓存一致性以及容错和高可用性等,其软件的生态环境成熟度却不及Intel,即便是有了更多的企业关注也未必就能有把握击败Intel,那么又是什么支持这ARM来客场挑战Intel呢?
ARM与X86大比拼
从几个方面比较ARM与X86架构Intel和ARM的处理器,除了最本质的复杂指令集(CISC)和精简指令集(RISC)的区别之外,下面我们再从以下几个方面对比下ARM和X86架构。
1、制造工艺ARM和Intel处理器的一大区别是ARM从来只是设计低功耗处理器,Intel的强项是设计超高性能的台式机和服务器处理器。
一直以来,Intel都是台式机的服务器行业的老大。然而进入移动行业时,Intel依然使用和台式机同样的复杂指令集架构,试图将其硬塞入给移动设备使用的体积较小的处理器中。但是Inteli7处理器平均发热率为45瓦。基于ARM的片上系统的发热率最大瞬间峰值大约是3瓦,约为Inteli7处理器的1/15。其最新的Atom系列处理器采用了跟ARM处理器类似的温度控制设计,为此Intel必须使用最新的22纳米制造工艺。
2、64位计算对于64位计算,ARM和Intel也有一些显著区别。
Intel并没有开发64位版本的x86指令集。64位的指令集名为x86-64(有时简称为x64),实际上是AMD设计开发的。Intel想做64位计算,它知道如果从自己的32位x86架构进化出64位架构,新架构效率会很低,于是它搞了一个新64位处理器项目名为IA64。由此制造出了Itanium系列处理器。
而ARM在看到移动设备对64位计算的需求后,于2011年发布了ARMv864位架构,这是为了下一代ARM指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的64位架构,ARMv8使用了两种执行模式,AArch32和AArch64。顾名思义,一个运行32位代码,一个运行64位代码。ARM设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。这意味着64位指令的解码器是全新设计的,不用兼顾32位指令,而处理器依然可以向后兼容。
3、异构计算ARM的big.LITTLE架构是一项Intel一时无法复制的创新。
在big.LITTLE架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的2个核或者4个核。一个双核Atom处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM通过big.LITTLE向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行一款复杂的游戏时,使用的是高性能的核。
这是什么做到的呢?设计处理器的时候,要考虑大量的技术设计的采用与否,这些技术设计决定了处理器的性能以及功耗。在一条指令被解码并准备执行时,Intel和ARM的处理器都使用流水线,就是说解码的过程是并电脑 行的。
为了更快地执行指令,这些流水线可以被设计成允许指令们不按照程序的顺序被执行(乱序执行)。一些巧妙的逻辑结构可以判断下一条指令是否依赖于当前的指令执行的结果。Intel和ARM都提供乱序执行逻辑结构,可想而知,这种结构十分的复杂,复杂意味着更多的功耗。
那为什么反而ARM的比X86耗电少得多呢。这就和另外一个因素相关了,那就是设计。
设计又分为前端和后端设计,前端设计体现了处理器的构架,精简指令集和复杂指令集的区别是通过前端设计体现的。后端设计处理电压、时钟等问题,是耗电的直接因素。当然,其中任何一项都会使得时钟和电源所控制的模块无法工作。他们的区别在于,门控时钟的恢复时间较短,而电源控制的时间较长。此外,如果条单条指令使用多个模块的功能,在恢复功能的时候,并不是最慢的那个模块的时间,而可能是几个模块时间相加,因为这牵涉到一个上电次序的问题,也就是恢复工作时候模块间是有先后次序的,不遵照这个次序,就无法恢复。而遵照这个次序,就会使得总恢复时间很长。
所以在后端这块,可以得到一个结论,为了省电,可以关闭一些暂时不会用到的处理器模块。但是也不能轻易的关闭,否则一旦需要,恢复的话会让完成某个指令的时间会很长,总体性能显然降低。此外,子模块的门控时钟和电源开关通常是设计电路时就决定的,对于操作系统是透明的,无法通过软件来优化。
再来看前端。ARM的处理器有个特点,就是乱序执行能力不如X86。换句话说,就是用户在使用电脑的时候,他的操作是随机的,无法预测的,造成了指令也无法预测。X86为了增强对这种情况下的处理能力,加强了乱序指令的执行。此外,X86还增强了单核的多线程能力。这样做的缺点就是,无法很有效的关闭和恢复处理器子模块,因为一旦关闭,恢复起来就很慢,从而造成低性能。为了保持高性能,就不得不让大部分的模块都保持开启,并且时钟也保持切换。这样做的直接后果就是耗电高。而ARM的指令强在确定次序的执行,并且依靠多核而不是单核多线程来执行。这样容易保持子模块和时钟信号的关闭,显然就更省电。
电脑ARM和X86现在发展如何?
RISC的大神曾经说过“如果非要说ARM和RISC有什么关系?那或许是名字吧。严格的说,现在已经没有CISC了。
关于X86架构和ARM架构这两者谁将统一市场的争执一直都有,但是也有人说这两者根本不具备可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。现在ARM架构已经具备了进入服务器芯片的能力,众多芯片研发企业纷纷采用ARM架构研发服务器芯片无疑将促进其繁荣,2015年一款采用ARM架构的Windows10平板现身,这也是目前曝光的全球首款非X86架构、运行Windows系统的平板产品。
另外,值得一提是的,18年11月,Windows已开始支持64位ARM应用开发和提交,继续给x86施压。
随着移动网络和互联网融合互通日趋明显,ARM发展后台数据中心已经是大势所趋,所以与其说ARM倒更像是背水一战,无论是ARM还是Intel,双方都没有任何退路可言。
ARM 电脑vs x86
有知乎er表示ARM vs. x86 不是一个技术问题,而是一个商业问题。为什么这么说呢?且听我细细分解:
首先,「x86 比 ARM 功耗高」这一点,在事实上已经不再成立了,具体的数据和分析可以参考这张表:
这里比较的是两个平板设备:采用 NVIDIA Tegra 3 (40nm ARM 处理器) 的 Microsoft Surface RT 平板电脑和采用 Intel CloverTrail Atom (32nm x86 处理器) 的Acer W510 平板电脑。可以看到,每一个测试项目中 Atom 的功耗都比 Tegra 3 低不少。这还不是最要命的,更要命的是 Atom 的性能比 Tegra 3 高,也就是说 Atom 可以在更短的时间内完成同样的任务然后进入低功耗休眠状态以节省电力,而且在休眠状态下 Atom 的功耗也只有 Tegra 3 的差不多一半。
当然,Atom 并不能完全代表 x86 处理器,Tegra 3 也只是诸多 ARM 处理器中比较费电的一款,但这个例子的教育意义在于它打破了传统上认为「ARM 比 x86 省电」的迷思:没错,在对性能要求不高的情况下,ARM 的确比 x86 省电,因为ARM 天生就是为低功耗这一目标打造的;但随着应用的不断深入,人们对移动设备的性能要求越来越高,目前在高端平板(或者说普通笔记本替代品)这个尺度的应用上以 Atom 为代表的 x86 处理器已经具有相当的功耗优势。假以时日,在给定性能基础上 x86 做到比 ARM 功耗更低并不存在太大技术上的障碍。
其次,处理器功耗只是整个设备功耗的一部分,甚至不是最主要的部分,特别是在触屏移动设备上还有屏幕、无线通讯模块这样的耗能大户。比如从上面那张表可以看出,处理器的功耗占总功耗的比例,在绝大多数情况下都不超过 20%,实际使用场合下的功耗占比更是会低于 10%(处理器大部分时候在休眠)。技术的进步可以相对快速的降低处理器的功耗,但由于物理规律的限制,比如屏幕始终需要维持足够的亮度、无线通讯始终是需要发射足够强的电磁波,设备上的其他耗能大户功耗降低的幅度要小得多。
这就意味着单纯削减处理器功耗以延长续航时间的边际效用会越来越小,到一定程度后对整个设备的续航时间的影响变得微乎其微、花大成本提高处理器功耗的回报太低以至于不经济。Intel 的下一代平台 Haswell 之所以要强调全平台的低功耗也部分是出于这个原因。当然目前我们还没有到那个时候,现在还不用操心这个,但要记住这一点。
如果现在你和我一样相信 Intel 有能力在功耗和性能上都战胜 ARM,为什么现在绝大部分移动设备采用的是 ARM 而不是 x86 处理器呢?或者说为什么 Intel 会在移动市场上如此「失败」呢?
因为 ARM 代表的产业模式对于 Intel 而言是一场商业灾难。
Intel 这么多年习惯的模式是生产制造几十、几百美元的处理器,在这个价位上的生产制造毛利率高得吓人。而正是丰厚的毛利率使得 Intel 敢于付出高昂的代价研发下一代处理器技术和生产线制程,从而保持领先竞争对手至少一个代际的技术优势。比如现在 Intel 的主流 Core 系列的制程是 22nm,同时期的 ARM 还处于40nm 到 32nm 或者 32nm 到 28nm 的过渡阶段,而 Intel 已经在新建 14nm 的生产线了。
反观一片 ARM 处理器才卖几美元,利润率微薄,即便出货量大不少,但不要忘了出货量和生产线投入之间的准线性关系,却也不能满足 Intel 这样的巨鳄的胃口,更不能让它保持目前的「高研发/高毛利相互驱动」的商业模式。不玩自家的游戏规则,Intel 沦为二三流厂商那是分分钟可能发生的危险。Intel 管理层不希望看到这个未来,Intel 的股东们更不希望。
另外,移动 SoC 市场中公司之间的合作模式也不适合 Intel。为了节省制造成本和降低功耗,移动 SoC 经常需要集成多家厂商的 IP 块于一片上,那么两个问题就随之而来了:1) Intel 会不会授权自己的 IP 块给其他厂商,比如苹果?这可不是 Intel 擅长的,因为授权设计的收入比销售最终产品的收入要低得多;2) 最终生产的时候用谁的生产线?Intel 可不会白白的让出自己投入巨资研发制造的最新制程的生产线给别人用;就算Intel 愿意,别人也不见得用得起,毕竟有低毛利率的限制。而 ARM 则没有这些顾虑:ARM 设计和生产是分离的,设计的 IP 块可以单独授权给各家厂商自行定制整合,而制造采用的是比较成熟的生产线,成本低、可选厂家也多。
这就是为什么 Intel 在移动领域涉足很晚也很勉强、为什么功耗低、单价更低的 Atom 处理器始终比最先进的 Core 处理器落后一两代的原因。非不能也,乃不为也;因何不为?利益使然尔!
然而市场现实是台式机、笔记本的出货量稳步下降,Intel 寄予厚望的 Ultrabook 不成气候也没能让笔记本市场死灰复燃;与此同时,移动设备份额稳步飙升,ARM 处理器的性能在多数场合都能满足需求,甚至有威胁 Intel 在服务器市场的潜能。这一切都迫使 Intel 不得不面对 ARM 这个难题;而这个难题的主要症结不在于技术,而在于 Intel 能不能否定自我、推倒重来。
还有人表示虽然现在ARM很强大,但它距离X86还是非常遥远,并没有因为这几年的进步而缩短,实际上反而在被更快的拉大。毕竟它们设计的出发点不一样,因此根本不具备多少可比性,X86无法做到ARM的功耗,而ARM也无法做到X86的性能。这也是为什么ATOM一直以来都不成功的原因所在——Intel试图用自己的短处去和别人的长处对抗,结果自然是不太好的,要不是Intel拥有这个星球上最先进的半导体工艺,ATOM根本都不可能出现。而ARM如果尝试去和X86拼性能,那结果自然也好不到哪儿去,原因刚刚也解释过了。不过这也不意味着ARM以后就只能占据低端,毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。只要能为ARM找到合适的应用与适合的领域,未来ARM也未必不可以进入更高的层次。
还有网友表示这种局面应该会持续下去。RISC是想通过精简指令达到简化处理器结构的目的。采用RISC的处理器在功耗上肯定要低于CISC。性能上因为RISC采用硬布线技术,应该也会高于微程序的CISC。RISC是对CISC的简化,但更是优化。随着RISC思想被业界接受,CISC在设计过程中也开始借鉴RISC的思路了。这就造成了目前RISC和CISC不分高低的局面。
这是一场商业战争而不是技术战争,当年intel干翻别的指令集并不是因为他在技术上的绝对优势,因为在他有技术的绝对优势之前他首先拥有了在IBM老大哥带领下的绝对的生态优势,赚钱后就有更多的钱投入研发,从而让自己CPU取得了绝对的性能优势,然后市场再度扩大,如果不是美国政府强制AMD活下去,intel早就一手遮天了。这么说我是有理由的,因为你看当年在PC市场吃瘪的ARM如果真是性能或者设计就是天生比X86差的话,那么ARM这些年手机芯片的速度是怎么一步步追上台式机的,甚至放言要重新回归CP市场和intel正面重新较量一次。这种底气不是技术的底气,而是市场的底气,ARM有钱了他就变快了,当年斗不过IBM搞出的巨大硬件和软件的生态环境而死翘翘。
现如今自己依托手机这种移动设备搞出了新的硬件软件的生态环境,并且世界上各大芯片设计公司为他改进芯片设计,华为也参与其中,这是intel闭门造车比不了的,短短几年就让intel亚历山大了。所以不要埋怨中国自己芯片的速度慢,因为它没有什么人用,没那个生态环境而已,他发展的速度就一定是苟延残喘的那种。一旦中国自己的芯片能够被用起来,他也会像ARM一样,速度越来越快的,至于怎么打破没人用的尴尬处境,这是商人需要考虑的问题,也是每一个商人的必备技能,没这个技能的商人都死了。专业的事还是交给专业的人吧,未来属于那种架构的芯片,要商人来决定,而不是技术。没准是龙芯的MIPS也说不定呢?梦想总是要有的。
至于谁会胜利还不好说,毕竟在移动设备上,性能能耗仅仅是一方面,外围SoC啥的都要考虑,举个例子,高通之前产品性能并不强(ARM11 和A8的时代),但是还是有很高的市场,谁让他有一堆通讯专利,基带集成好。
随着移动端的应用的复杂度的增加,ARM不得不继续提升性能,这不是ARM的强项,而是Intel的强项,Intel只需要在原来的路上走着,不被这种ARM的低价商业模式打垮,那么必然赢到最后。
另外,除了功耗问题,还要提出Ecosystem的问题,这一问题是很关键的。就处理器本身而言,ARM一直专注于嵌入式市场,A15也是针对嵌入式服务器的,ARMv8还是瞄准嵌入式应用。而嵌入式系统对可靠性和低成本的追求就导致了现在SoC的高集成性,实际上现在不是多核,是众核。比如一个应用处理器上会有高性能的ARM内核,也会有低性能超低功耗的ARM内核,还可以加上专用的DSP,或者GPU,VPU以及其他专用的IP。这样集成出来的片上系统才能适合多种多样的嵌入式应用场景的需求。
而满足这些需求的众多处理器不是一家半导体厂商提供的,是一堆,因此各种细分市场都会得到照顾。而Intel虽然的SoC上已经迈出步伐,甚至于在下一代的面向嵌入式的BayTrail平台中把IOH也集成了,但是Intel一家能满足嵌入式的众多需求吗?
答案显然是不可能的,因此在ARM的巨大生态系统面前,Intel即使在专注的移动市场砸钱打造X86的应用市场(它肯定能做到)扶持X86的嵌入式生态系统,成功的变数也很大。Intel把Windriver收购了就能拥抱嵌入式OS吗?RIM把QNX收购了也没见Z10能惊天动地。当然Intel比RIM有钱多了,烧钱是其强项,在性能不是问题的前提下,或许HTML5会是X86扳平软件生态落后的机会,如果是这样X86就要尽早踢开微软,否则两盘棋下不到一处去。
RISC-V加入战场
芯片指令集架构是沟通软硬件运算之间的桥梁。RISC-V是伯克利大学发明的一种特定指令集架构,严格说起来,并不是一种全新的架构,它与我们熟悉的ARM同属RISC(精简指令集,Reduced Instruction Set Computer)范畴。目前市面上主流的架构分为RISC和CISC(复杂指令集,Complex Instruction Set Computer)两种,RISC专注于低功耗、高性能功耗比,主要面向小体积以及移动设备领域,CISC强调运算性能,专注桌面电脑、服务器和超算市场。RISC的代表为ARM,而CISC的代表则是我们耳熟能详的x86。
RISC-V可以看做是现有RISC的更升级版,从架构的推出在时间上来说,具备后发优势,可以规避许多现代计算机体系结构中存在的漏洞,如前段时间大热的Spectre以及meltdown漏洞,已经明确是与现代计算机体系中分支预测和乱序执行功能有关。由于计算机体系结构经过多年的发展已经成为比较成熟的技术,多年来在不断成熟的过程中暴露的问题都已经被研究透彻,ARM和x86无法轻易堵住的问题,RISC-V架构的新诞生没有向后兼容的历史包袱,则可以轻松避免。
为何RISC-V的诞生还是受到了业界的大力追捧?答案有以下四点:1、 免费是最好的招牌,2、 大道至简 ,RISC-V指令格式不同type之间规律性很强。,3、 RISC领域市场巨大,4、 新技术意味着新机遇
随着WD宣布支持RISC-V并投资Esperanto Technologies,显示RISC-V指令集架构正成为ARM和x86的可行替代方案,储存巨擘Western Digital (WD)宣布将在RISC-V处理器上实现标准化,并投资了一家新创公司Esperanto Technologies——该公司主要采用开放来源指令集架构设计高阶SoC和核心。
RISC-V对ARM的影响
免费RISC-V的诞生对同属RISC阵营的ARM影响巨大。据某ST内部人员表示,虽然目前还没有基于RISC-V的芯片量产,但是ARM以后日子肯定不太好过了。
“ARM最火的是其AArch64执行状态,AArch64执行状态主要针对64位处理技术,基本全是软硬一体的打包方案,用户换硬件的时候就是换软件的时候,没有人关心前向兼容问题,即没人要求自己的手机今后10年都要支持Android 2.3。AArch64的最佳设计来自高通和苹果,ARM自己的设计基本都是给二流厂商用的。”
同时由于ARM的授权费天下苦ARM久矣。Cortex-A系列的典型下游企业苹果、谷歌和高通,苹果已经多次换arch了,可谓轻车熟路,高通的CPU本来就是自己写的,换个arch轻而易举,谷歌是纯软件商,编译器支持什么它支持什么。“这三家反水易如反掌,只要RISC-V时机成熟,估计离他们改弦更张已经不远了。”“至于其他家直接用Cortex A + Mali的企业,很多都是墙头草,谁家便宜用谁的。如果高通和谷歌转投RISC-V,它们还会给ARM交近百元一部的设备授权费?那用高通RISC-V的小米能分分钟碾压它们”,朋友补充道。不知道以ST-M32闻名的ST被同是欧洲大厂,有很多业务重合的英飞凌收购,是不是和RISC-V的诞生和威胁论有关。
RISC-V对x86的影响
与ARM相比,RISC-V的诞生对基于CISC的x86影响相对较小。一方面是因为多年来CISC和RISC应用之争基本已经形成了渭分明的市场划分,CISC适合于强调运算和性能的通用机,如电脑、数据存储等领域,RISC 则主要针对特殊应用领域,适合对功耗比要求更高的专用领域。
除此之外,以x86为代表的Intel本身就是一家设计实力很强的芯片公司(还有自己的fab厂),而非专利授权公司,围绕x86已经形成了庞大的应用生态体系链路,产业链路上下游企业反水的可能性不大。此外,用户对于商业计算机较长的使用周期要求也非便携式设备能比,这就需要不管是Intel、AMD还是国内的兆芯、海光都要考虑产业兼容问题,即二进制历时遗留问题,满足不同用户的应用需求。
最重要的一点,x86阵营与ARM阵营不同,x86玩家俱乐部中的成员需要交叉授权,入门门槛极高。除了初始几年,Intel吸纳了AMD、VIA(即现在的兆芯)之外,后来者几乎无法踏入其门槛。表面上虽然显得势单力薄了些,但与此同时,经过多年的历史积累,也大大凝聚了3家企业的一致性与向心性,毕竟隔夜的金子不如到手的铜啊。
三分天下
Intel主导的x86市场应用规模目前难以被RISC-V架构取代,而RISC-V架构看似有相当大的发展空间,但实际上也有不少问题,目前RISC-V架构虽然吸引不少一线厂商采用,但现阶段要成为市场主流,似乎还需要更多时间投入发展。
以目前CPU市场来看,大致区分以Intel为主的x86架构,以及ARM推行的ARM架构设计为大宗,虽然过去也有诸如MIPS或IBM主导的PowerPC等架构设计,但规模并未像x86、ARM架构占据大部分处理器市场。而自2010年从加州大学伯克利分校以研究专案打造的RISC-V架构设计,本身以开源架构形式吸引包含IBM、恩智浦、Western Digital、NVIDIA、Qualcomm、三星、Google、华为、Tesla在内厂商加盟,或许未来将有机会以“CPU界的Linux”形式蓬勃发展。
相比Intel提出的x86架构封闭性,目前仅有AMD、威盛(VIA)在内厂商使用,而ARM提出的ARM架构则必须支付高昂授权费用才能使用,或由ARM同意是否继续授权,RISC-V架构由于采彻底开源设计,并且使用BSD License开源协定,允许使用者任意取用,并且可任意进行修改,甚至允许用于商业销售,因此从2010年提出以来就受到不少关注。
由于采精简架构设计,RISC-V架构指令集最初仅有不到50组的指令,同时研究团队更仅以3个月时间便完成第一版指令集,后续更因为采开源使用模式,使得RISC-V架构陆续加入更多指令集,甚至因应特定使用需求增加更多专属指令。
目前包含IBM、恩智浦、Western Digital、NVIDIA、Qualcomm、三星、Google、华为、Rambus、美高森美、Marvell、联发科、SK hynix、Seagate、CEVA、阿里巴巴、Allwinner、猎户星空,以及加州大学伯克利分校、麻省理工学院、普林斯顿大学、苏黎世联邦理工学院、印度理工学院、罗伦兹国家实验室、新加坡南洋理工大学及中国中科院计算所等学术机构,均先后加入采用RISC-V架构,就连Tesla也在近期内宣布加盟,预计借由RISC-V架构打造其车型使用处理器。截至2017年11月,RISC-V架构已经吸引超过138家公司、35所学术机构加盟使用,甚至更获得印度政府机构采用,借此发展国家资助处理器设计。
以RISC-V架构精简形式设计,现阶段已经可以对应执行64位元运算模式,相比采用ARM Cortex-A5架构设计的处理器相比,使用RISC-V架构打造的处理器约可在运算效能提升10%,并且在占用面积精简49%,时脉运作功耗仅为Cortex-A5的43%,因此用于嵌入式装置可带来不少竞争优势。
因此,Western Digital便表示将以RISC-V架构打造储存设备控制器,而NVIDIA也计画将RISC-V架构用于GPU内部控制元件,甚至美国国防高等研究计划署(DARPA)也计画资助以RISC-V架构打航太设备控制芯片,另外也有不少新创团队开始透过RISC-V架构设计物联网设备使用芯片,软件方面也陆续加入JVM、LLVM、Python等常见开发工具。
RISC-V能否有望改变Arm和Intel X86主导的处理器架构竞争格局?
过去数年,Arm依赖于在智能手机处理器市场的绝对垄断,MCU市场的持续开拓构筑壁垒;X86架构则在桌面PC和服务器芯片横扫,而RISC-V这一新生力量能否成就这一使命,并为国内处理器IP带来“自主可控”的发展契机?
就在2018年6月,Arm还建立专门的网站riscv-basics.com对RISC-V从“成本、生态系统、碎片化风险、安全性和设计保证”五个方面进行攻击,彰显出Arm对RISC-V这个潜在对手的高度重视。而且MIPS最近也将其一些指令集开源,亦足以表明RISC-V的潜能。
从目前来看,2016年成立的RISC-V基金会已吸引了众多高手,包括IBM、NXP、西部数据、英伟达、高通、三星、谷歌、特斯拉、华为、中天微、中兴微、阿里、高云、中科院计算所等国内外150多家企业与科研机构已然加入。此外,今年9月中国RISC-V产业联盟成立,由芯原控股、芯来科技、上海赛昉科技(SiFive China)、杭州中天微、北京君正、兆易创新、紫光展锐、地平线等单位共同发起,芯原控股担任联盟首任理事长单位,旨在助推RISC-V产业生态的建设,加快RISC-V 的市场推广和产业化应用,提升产业核心竞争力。
值得注意的是,RISC-V虽然开源但不等于免费。虽然基于RISC-V开发CPU核,不需要支付指令集授权费用,但如果直接用RISC-V的内核设计SoC,也是要支付授权费的。诚然, SiFive的授权比Arm大方一些,比如E31收取30万美元,E51收取60万美元。 也就是说,RISC-V并不等于免费,而且随着商业模式的变化,以及将来RISC-V变得强势,授权费用也许会水涨船高。
虽然采完全开源架构,以及免费授权形式,RISC-V架构目前要超越Intel的x86架构,以及ARM架构,或许仍有相当大难度。主要因素除了Intel推动的x86架构市场已经相当庞大,几乎从传统PC到数据中心规模的服务器都会使用x86架构处理器,同时相关软件带动的应用服务也有长达40周年发展历史,而ARM架构所产生庞大市场应用规模更难以被RISC-V架构取代,因此目前市场恐怕还是会由x86、ARM架构持续分占一段时间。
相比ARM和Intel X86数十年之功与生态之强大,RISC-V要想有所作为,仍有漫长的路要走。比如,要想从RISC-V指令集架构受益,对技术水平、资金投入和时间的要求都不低;RISC-V目前还处于早期的阶段,没有太多的实现和验证,先行者需要承担更多的验证,测试等工作。此外,RISC-V还存在自身的短板——生态破碎化和不完善,目前真正宣布基于RISC-V指令集开发IP核的企业仍是凤毛麟角。而国内企业的跟随策略究竟能让RISC-V在“国产化”之潮中掀起多大的浪花呢?
而RISC-V架构看似有相当大的发展空间,但实际上也有不少问题,例如强调完全开源的设计,并且让取用者可任意加上专属指令集,甚至选择将架构封闭或维持开源,导致RISC-V架构目前也与过往MIPS架构发生一样问题,因为允许增加更多指令集,使得虽然都是以RISC-V架构设计,但可能无法共用相同指令集。
在持续分化情况下,意味RISC-V架构将与目前Linux情况相同,虽然同样采Linux架构设计,却分化成不同使用环境,甚至有部分相容问题,因此目前RISC-V架构虽然吸引不少一线厂商采用,但现阶段要成为市场主流,似乎还需要更多时间投入发展。
电脑