专栏名称: EETOP
EETOP电子网(中国电子顶级开发网)是国内最顶级的电子行业工程师社区,涉及:嵌入式、智能硬件、半导体集成电路设计及制造等。 为您分享论坛精华内容、行业最新资讯、产品及技术 。 网址:www.eetop.cn bbs.eetop.cn
目录
相关文章推荐
ZOL中关村在线  ·  AI 是不是噱头?我给你盘点一下 ·  12 小时前  
EETOP  ·  三星3纳米开始量产Exynos ... ·  昨天  
EETOP  ·  原厂培训通知:LabVIEW ... ·  3 天前  
ZOL中关村在线  ·  小米Civi系列的必胜绝招:要做低配版的小米15? ·  3 天前  
51好读  ›  专栏  ›  EETOP

看ARM如何抢走英特尔的X86市场––CPU市场上的逆袭!

EETOP  · 公众号  · 硬件  · 2017-05-05 22:08

正文

本文选自中国台湾作者lynn的科技博客,由于是科普文章,所以很多地方讲的比较基础,本文前半部分为基础知识讲解,可以略过。

什么叫「架构」? INTEL面临的移动市场逆袭

2016年7月时,软银(SoftBank) 宣布斥资234亿英镑买下全球最大移动芯片设计授权商安谋(ARM),写下「欧洲科技企业史上最大笔收购案」的纪录。

软银董事长孙正义指出,预计未来20 年内,ARM 片的年产量将达到1 兆片的规模。

等等,到底什么叫ARM 片?

你听过Android、iOS 手机,那你知道无论Android 还是iOS 手机都是用ARM 架构的 片、连NVIDIA 的CPU 片也是使用ARM 架构吗(可惜现在已经退出)? 所以ARM 到底是在干麻?

你知道你自己正在用的手机的CPU,正是ARM 架构吗?

那你知道你的手机如果不是iPhone 或三星,很有可能就是用高通设计的 片吗? 蛤? 那 ARM 和高通又有什么关系?

听说,是ARM 卖架构给高通这家IC 设计公司、高通买回来再设计自己的 片… 所以讲来讲去,到底什么是「架构」? 片架构、处理器架构… 到底这个「架构」是在讲什么?)

听说,伺服器用的 片架构主要是x86、手机 片用的则都是ARM,到底为什么?

怎么那么多的为什么啦! 吼,绕来绕去听不懂啦。 别急,看完这篇文章就知道ARM 和Intel 在干麻、又是怎么在移动通讯市场上打群架的了ˋ_ˊ


对电脑下命令: 高级语言与低级语言

CPU (Central Processing Unit, 中央处理器) 是驱动整台电脑运作的中心枢纽,就像是电脑的大脑;若没有CPU,电脑就无法使用。

CPU 的功能主要是执行电脑的指令、以及处理电脑软件中的资料。

什么是指令呢?指令是低级语言的命令。我们可以对电脑以程式下达命令,比如加减乘除的运算; 在高级语言中的命令称为「叙述」 (statements),在低级语言中则称为「指令」 (instructions)。

所谓的程式,就是指我们要电脑完成某一项工作,所下达的一连串命令。

等等! 什么又是高级语言和低级语言呢?

高级语言是目前最常见的程式语言,平常我们听到的程式语言,比如C/C++、都是高级语言。 高级语言以人类的日常语言英文为基础,使用一般人易于接受的文字来表示,可读性高。

然而电脑是看不懂高级语言的,因此我们需要将高级语言透过编译器(Complier) 将高级语言再转成能直接与硬体沟通的低级语言。

电脑唯一能读懂的语言就是二进位制的「机器语言」 (Machine Language),由0与1组成,比如00101001010101100111…. 别说你会撰写到发疯,连看懂都有困难。

因此后来又发展出了「组合语言」 (Assembly Language),改用较短的字串取代机器语言的0与1,让人类比较好看的懂。

由于CPU只认得机器语言,因此组合语言所撰写的程式依然需要经由「组译器」 (Assembler) 来转译为机器码。 组合语言每一行直接对应到的几乎就是一个机器码,高级语言则无。

这个流程简单来说,就是高级语言(C/C++) 得透过编译器(Complier) 转成组合语言(Assembly Language)、再透过组译程式(Assembler) 转译成机器码(Machine Code),机器才能读得懂。

低级语言不用耗费编译流程、即可被CPU 所执行,因此以低级程式语言编写的程式,其运作效率会较高级语言更高。

然而可能别人写两三行就解决的程式、你要写数十行数百行而已。 就是看人类方便(高级语言)、还是机器方便(低级语言)。

这么讲大家可能很难理解,来做个示范吧! 如果我们希望电脑输出「Hello, World!」这行字,在高级语言中会这样写(范例为C语言):

这时候电脑会输出Output结果:Hello, World!。

同样的一行字,来看看在组合语言中是怎么写的:

这时候你可能已经有:「这东西是什么!!!」的想法了… 别急,最后来看看机器语言会怎么写:

…天啊。 这谁看得懂。

我们可以明显发现,高级语言的一个叙述可以对应到多个低级语言的指令,比低级语言更易撰写、也较好阅读。 这样的话,为什么还要有低级语言呢?

事实上,不是「为什么还要有低级语言」,而是一开始的电脑就只有低级语言! 高级语言是后面才发展出来的东西,方便人类好写且好读懂。

可以说:「 低级语言是要给机器看的、高级语言是给人看的」。如果是底层的嵌入式系统,有些工程师还是要直接去写组合语言。

也就是说,高级语言和低级语言的功能不同,不能直接相比。 高级语言是来帮助我们进行抽象化的设计、让我们能描述出需要的行为,而不是去Micro Control 每一行机器要跑的指令。

但高级语言要让机器理解,还须经过编译器的「编译」这个步骤。编译后的结果,会直接影响电脑执行该程式的效能。

就像是一个翻译人员把中文翻成英文一样,如果翻的好的话一样很优美、能达到最理想的效果;如果翻不好的话,就会变得很糟糕。 台湾一家新创 Skymizer 就是在做编译器的优化,让相同的程式码经过更优化的编译器后、能在电脑上跑更快噢!

低级语言虽然难懂,但硬 能不经编译器、直接执行。 (不过机器只能看懂0/1,所以如果是组合语言的话,还要经过组译器翻译=>机器语言噢~)

也因为低级语言对硬 直接操作,一种组合语言会专用于某种电脑架构,而不像许多高级语言可以在不同系统平台之间移植。 根据这种特性,我们能透过组合语言订定「指令集」,和该指令集依附的「指令集架构」。

指令集架构: 电脑的制作基础

一天到晚听到ARM 架构、x86 架构,听得很烦、却又不知道是什么意思吗ˊ_>ˋ… 别再当科技新闻小白,了解低级语言的概念后,终于可以来看看什么是处理器的「架构」啦!

低级语言的「指令」是处理器(CPU )可以执行的最基本运算, 一款处理器所能支援执行的「所有指令的总集合」,就称为指令集(Instructions)。

在低级语言指令中,会出现资料于特定硬 上操作或存取的资讯,工程师须受过硬 训练才能了解低级语言;现在一般写个网站、写APP 都用高级语言,无须了解记忆体和或硬体便可以操作了。

然而要造计算机,除了指令、还得制定与该指令集相关的硬 规定,就叫「指令集架构」(Instruction Set Architecture)。

现在让我们要来讲一个如何造出一颗CPU的故事。 有天有位软 工程师小智、和设计CPU的硬 工程师小皮凑在一起。 『工具人_软 小智』:「好基友,一起来造颗CPU吧!看要怎么合作呢?(贴图)」


『社畜__硬件小皮』:「好!不然这样好了,你负责编写能跑在CPU 上的指令,我负责设计CPU的硬体零件。咱分头进行,一年后在这边碰面,两边再合在一起!」

『工具人_软件小智』:「等等,这样我们各干各的,谁知道一年后合在一起时会不会爆炸!怎么能保证我写的指令,能在你设计的CPU 上跑得起来呢?」

『社畜_硬件小皮』:「 这样好了,我们共同把规则定好,再去分头进行设计软件和硬件,才能保证一年后碰面时,软件和硬件能顺利地结合在一起、你我不分开

这个规则,就是「指令集架构」(ISA),包含了软 与硬 两部分。

可以说,从上游设计、到下游制造的IC 工业链,全部都是围绕着一个指令集为基础,来量身定做该指令集的「软 指令」和「其所依附的硬 零件」。

所以说,指令集就是造计算机的规格。 一旦决定了指令集后、我们就可以着手设计计算机。 相同规格的计算机,可以有不同的实作方式;但依据相同指令集架构所造出来的计算机、要能执行指令集中的每一道指令。

所以你会看到ARM 指令集有很多不同的处理器(高通、联发科、展讯…),但他们都可以执行所有ARM 架构的指令。 差别在不同厂商的 片,会再加上其他作为竞争力的功能,比如通讯、照相等等。

发现了吗,这是一件很惊人的事情! 一旦决定了指令集架构,整个IC工业链几百亿几千亿的市值,都会围绕在该指令集架构上从头到尾进行量身定做 ,因此一旦被市场所接受、就相当容易形成垄断的情况。

指令集架构是电脑的基础,也会影响作业系统的种类以及软 的支援程度,每个指令集架构皆有各自的生态。现行的指令集架构非常多,知名的架构包括x86、ARM、MIPS等。

x86 由Intel 主导,也是目前个人电脑的主流架构,ARM 则是采用授权的方式释出, 在移动装置的市占率高达九成。 MIPS 则被应用于任天堂和Sony 的游戏机上。

指令集可依据CPU 的设计目的,分为「复杂指令集」 (CISC) 和「精简指令集」 (RISC)。 在1980年代前,指令集越做越复杂;为了支援这些指令集,导致电脑的硬 结构也越来越复杂。 然而,在复杂指令集中,仅有20% 的指令最常被使用、剩下80% 指令使用率相对低。

事实上,规格简单、造出来的机器才会简单且效能强。

1979 年美国加州大学伯克莱分校提出了RISC 的概念,精简指令集(RISC) 只提供基本指令,剩下的复杂指令由基本指令拼凑而成,讲求CPU 执行速度。

想想看,不会因为英文只有26 个字母,就让我们的沟通受到限制;同理,指令集也不会因为个别指令能完成的功能较简单而受到限制。

当然CISC 并没有被淘汰掉,CISC 与RISC 各有优劣,依据硬 制作需求而有所选择。

还记得本文开头举例的高级语言和低级语言程式码的行数差异吗? 相同的道理, CISC 提供较佳的程式撰写环境,能在较短程式码内达到目标。 不仅让工程师能在撰写程式上更轻松、在早期电脑记忆体容量有限时,也能以较少的指令运作复杂的运算。

RISC 处理器的规格则是要简单许多,高级语言藉由编译(Compile) 转成RISC 指令很有效率,容易量产、价格更便宜、提升速度也很快,重点是低功耗、耗电量低。 片业由传统巨头Intel 导向ARM 的翻盘, 来自RISC 的革新绝对是位大功臣。



INTEL 与ARM: 高效能与低功耗之争

片的运算效能与功耗成正比,代表若是 片功能越强大,相对就更加耗电。

片设计常要为了增强效能而牺牲功耗表现。 比如2015 年高通旗下产品Snapdragon 810 的「发热门」事件──无论是CPU 还是GPU,Snapdragon 810 性能与前代产品Snapdragon 801 相比都有所提升。

可惜Snapdragon 810 ,和下一代的Snapdragon 820 都有着功耗大、发热严重的问题,使得当年使用该产品的各厂牌旗舰智慧型手机纷纷陷入争纷。

Intel和ARM间的竞争,莫过于高效能与低功耗的取舍,与传统「一人吃饼、你吃饼屑」和「把市场养大大家一起吃饼」的经营差异。

ARM的前身为Acorn Computer (艾康电脑),1978年创立于英国剑桥。 后来因为艾康电脑的财务出现状况,1990年分割出ARM成为独立子公司。

ARM建立之初,苹果还持有其40% 股份,只是后来陆续出脱,成为开发iPod、iPhone的资金。 虽然苹果一度想要买回ARM 股权,甚至还提出了收购邀约,可惜被ARM执行长拒绝。 想想如果苹果当初还持有ARM,到现在会变成多惊人的结果XDD~

1985年,艾康电脑与苹果公司研发出采用精简指令集的新型处理器,命名为ARM (Acorn RISC Machine,后来更名为Advanced RISC Machine),又称ARM 1。同年十月,Intel也发表了80386处理器。

ARM1 的功能显得相对简单,效能也不敌80386,但耗电量明显更低。 这样的差异使得ARM 系列处理器往后的设计路线明显与Intel 不同,Intel持续迈向高效能的x86 架构,ARM 专注于低成本、低功耗的研发方向。

早期电脑的 片注重效能更甚功耗,当时的桌上型电脑都有电源连接插座,在无须担心耗电量的情况下只需比拼效能即可。

然而当笔电、智慧型手机与平板逐渐普及,取代桌电成为主流电子市场时,面对运算性能要求不高却注重续航力的产品,低功耗与低价位的 片成为比效能更重要的考量点。

(当然,无论ARM还是Intel都会号称自家产品具备低功耗高效能的特点啦…。)

加上ARM 独特经营模式所拥有的竞争优势──ARM 本身并不直接生产 片,商业模式采用授权智慧财产权的方式,由高通、联发科、三星等厂商使用ARM 的指令集架构,再加入自家研发的技术,比如内显GPU、3G/4G 支援、省电机制… 最后整合成一颗SoC (System on Chip, 系统单 片) 处理器。

获利模式简单来说分成两块:一是一次性的对外授权收入,二是版税、客户每生产一块 片就要支付ARM 一笔提成。

这与Intel 的经营方式大相径庭,自行研发、制造、出售的产品毛利高达50%,比纯作授权的微薄利润还高,大概得卖百来片ARM 的 片才抵过Intel 卖一片 片。

其他厂商若要从头开始研发x86 这样的架构可能得耗时二、三十年。 藉由赚得的高额利润,Intel能再投入大量的成本研发下一代处理器技术与生产线制程,甩竞争对手又一个世代。

以其对手AMD 来说好了AMD 的资本额与Intel 相差几十倍,制程技术落后(谁叫他要包给格罗方德呢…)、研发资金也不足,比起Intel 的正向循环, AMD 几回恶性循环后导致公司亏损。

AMD之所以被Intel留着只是为了不被反垄断法控诉…。这种由Intel一家独霸技术与市场的经营方式,也就是所谓的「 一人吃饼、你吃饼屑 」。

相比之下,ARM 用便宜的价格进行大量的授权,不用投入高额资本于工厂产线。

ARM 架构能兴起、还要感谢幕后功臣苹果,除了早期共同研发精简指令集架构(RISC)、出资让ARM 公司独立出来,更重要地,还以使用ARM 架构的iPhone、iPad 打开了移动运算市场,让其他厂商纷纷能以低价购入ARM 授权,进行智慧型手机 片的研发。

RISC之所以成为目前主流指令集,与移动装置相辅相成,可谓时也、运也、命也,所谓「 把市场养大大家一起吃饼 」。







请到「今天看啥」查看全文