发布时间:2021-02-19 16:57:59来源:CSDN
作者|马超责编|张红月、屠敏
出品|CSDN(ID:CSDNnews)
“采罢百花成芯后,为谁辛苦为谁甜”。
2020年全球芯片的市场规模约为1500亿美元,虽然桌面与移动终端市场方面的增长乏力,不过以物联网和云数据中心为代表的新兴领域迅速接棒形成行业新的增长极,因此整体而言,芯片行业依旧蓬勃发展。而且芯片的撬动能力强,行业的上游是以EDA为代表的工业软件,下游则辐射工业制造、云计算等规模破万亿美元的巨大IT市场,小小的芯片竟能支撑起上下游十几个产业链的运转,堪称是数字经济时代的绝对支柱。
目前在经济学界也开始有声音指出算力比GDP等传统经济指标更能反应一个国家的经济水平,而芯片作为数字经济的核心底座,历来是科技产业的必争高地。正因如此我们看到去年年中,国家正式将数据中心、智能计算中心等算力基础设施明确纳入新型基础设施范围,定入国家战略。
同时,去年以来围绕芯片领域接连不断的并购布局,也印证了云计算与物联网正在成为行业的第二增长极,去年底英伟达宣布以400亿美元的价格从软银手中收购Arm,补强自己在CPU方面的短板,以CPU+GPU的方式正式进军云数据中心;10月初,英特尔剥离NAND存储业务,以90亿美元的价格卖给了SK海力士,将其重心聚焦于数据中心和PC业务;最近AMD收购Xilinx,同样是希望通过资本手段谋求增长,向未来空间更大的数据中心投入更多资源。这几项并购案有整合有切割,但总体上看芯片行业的三巨头英特尔、英伟达和AMD的目标都非常明确,即自身在云数据中心领域的竞争力。
另外一个增长极物联网领域,RISC-V凭借其开放开源而且零授权费用的优势,迅速在低功耗,低延时的嵌入式IoT方面崭露头角,尤其值得一提的是从去年开始中国厂商拥抱RISC-V的动作频频,比如紫光展锐推出了采用RISC-V处理器的TWS真无线蓝牙耳机芯片—春藤5882,国内实时操作系统的领导者RT-Thread也开始在其官方IDE中加入了对于RISC-V芯片的支持。
根据SemicoResearch的预测,到2025年,市场有624亿个RISC-VCPU核心售出。将在物联网领域形成与ARM分庭抗礼的新力量,可以说RISC-V未来可期,在中国发展前景更加广阔。
指令集CPU的灵魂
“本似云烟易散尽,过眼回眸恼多愁”。几十年前的程序员应该怎么也不会想到现在的汇编语言除了在操作系统内核、黑客入侵等少数领域还有应用以外,在其它场景几乎用者廖廖,甚至在编程语言前百强的榜单中都找不到汇编的位置。
要知道在上世纪七、八十年代,程序员的几乎只能使用汇编语言进行编程,像严援朝、求伯君等大神级的人物,都是汇编语言的顶尖高手,那个时代的程序员既不是面向过程也不是面向对象编程,而是面向指令集编程。
在计算机中,让CPU执行某种运算、处理功能的命令称为指令,是计算机运行的最小的功能单位。指令集是指芯片全部指令的集合,是计算机系统能提供的全部功能体现。而在芯片设计师设计一款芯片时首先要考虑芯片所能提供的功能,并按此需求设计指令集,然后按指令集中的每条指令在硬件电路上实现。
目前指令集的含义已经不单单是指令本身的集合了,还包括了指令格式、寻址方式和数据形式。所以,各计算机执行的指令系统不仅决定了机器所要求的能力,而且也决定了指令的格式和机器的结构。从另一个角度上讲,一种指令格式也需要具有与之相对应的指令集。为此,设计指令集时,要充分指令格式、类型及寻址等多个方面的因素,如果说芯片是计算机的核心,那么指令集就是芯片的核心,指令集与机器的硬件结构密切相关,因此功能齐全、通用性强的指令集,对于计算机系统来说至关重要。
与现在的程序员可以随便选用各种Java、Python、Go等高级语言不同,在四十几年以前,计算机系统的内存、存储、CPU等等资源都非常匮乏,甚至连C语言相对汇编付出5%左右的性能代价都很难被人们接受,因此当时的指令集往往倾向于提供复杂的功能,这也是复杂指令集(CISC)流派出现的根本原因,因此CISC能够帮助那个年代汇编语言的程序员以更少的代码,完成更多的工作。
不过当时那个时代也是摩尔定律绝对支配的时代,芯片在性能、功能等各个方面都在快速提升,存储的价格也在快速下降,高级语言在性能及存储空间上的那一点点代价也就可以忽略了,因此Pascal、Basic、C等高级语言逐渐流行,这使得程序员编程的模式由直接面向指令集编程,变成了面向编译器编程,编译器再面向指令集编程。
指令集开始成为广大程序员不需要再特别关注的隐秘角落,而X86这种CISC风格的指令集,其所提供的很多指令编译器很少用到,甚至部分X86的指令,连编译器的开发人员都不知道如何使用,这样的大背景使指令集瘦身成了大势所趋,这也是简单指令集(RISC)发展壮大的背景。
RISCvsCISC,成熟是变得复杂还是返璞归真
机器指令往往需要完成复杂的操作。我们知道从本质上讲,一切计算操作都可以用加法来进行拟合,比如乘法是几个数连加,除法是若干数连减,因此从这个角度而言,一条复杂指令完全可以通过若干条简单指令的组合来完成相应功能。
RISC的逻辑是大道至简,因为有20%的指令被调用80%,把能精简的指令全部精简掉,只保留核心功能这样无论对芯片设计人员,还是编译器的开发者来说都降低了负担。而且由于精简,以ARM和RISC-V为代表的RISC风格指令集芯片往往会非常省电,这也是ARM快速占领移动市场的关键所在,尤其是在ARM的大小核设计是他们在移动市场致胜的法宝,其中大核专门针对性能优化,小核专门针对功耗优化,可谓忙时用大核干得欢,闲时用小核省电爽。
CISC的理念是20%的复杂指令会消耗CPU80%的处理时间。因此在以X86代表的RISC风格指令集就专门设置了SSE(StreamSIMDExtentions)数据流单指令多数据扩展,从奔腾三代开始英特尔的CPU提供了8个128位的寄存器进行SIMD操作。
我们知道目前主流的CPU都是64位的,也就是CPU每次都只能处理对于64位长的数据,并得到一个64位长的结果,比64位更长的数据只能通过多条指令的组合来处理,而SSE的扩展恰恰就是给64位的CPU增加了128位长的寄存器,使CPU可以一次性处理128位长的数据,并得到128位长的结果,从而大幅提高双精度数据的处理效率,这对于科学计算的提升巨大,因此我们看到很多用于科学计算的软件包底层都是使用C语言内联嵌入SSE汇编指令的代码进行性能优化,并取得极好的效果。
不过这几十年来的相爱相杀,目前RISC与CISC之间的界限已经不再那么泾渭分明了,比如目前英特尔就尝试将X86指令集中的复杂指令转换成为微操作(UOPS),从而融合RISC的思想精髓,而包括RISC-V及ARM在内的RISC也开始引入协处理器,专门处理浮点或者FPGA的运算需求。
而且我们知道一条CPU指令基本分为取指(FI)、译码(DI)、计算操作数地址(CO)、取操作数(FO)、执行指令(EI)、写操作数(WO)等几个并行处理的过程段。如果CPU能同时对六条指令进行加工,将大大加快程序的执行速度,而想获得高的流水线并行度,就涉及到指令预测与乱序发射等技术,而在这方面无论是RISC还是CISC所使用的技术方案几乎都是相同的。可以说目前指令集之间除了IP授权体系不同以外,具体的实现方式已经走向融合,而RISC-V凭借其免费的IP授权体系,肯定能在未来闯出一片天空。
苹果自研M1芯片:巨头就是要玩“芯”跳
历史不会重演,但总押韵。此前在桌面及云计算领域一直是CISC阵营的AMD与英特尔的对台戏,但是苹果自研M1芯片的出现,使战役的天平向RISC方向倾斜。
上世纪末软件行业微软Windows与封闭的苹果Macantoshi之间的大战,似乎又在半导体芯片行业再度上演。苹果M1作为一款以ARM为核心的RISC处理器的代表,在片内集成了CPU、GUP、协处理器与内存,一经发布便在各大性能排行榜上形成了碾压之势,不过M1是一款封闭式的芯片,其具体细节并不对外公开,想让M1运行Linux都要很费一番周折。
读到这里相信不少读者也不禁要问为什么苹果这样的手机厂商非要入局自造芯片呢?之前苹果的灵魂人物乔布斯其实是技术出身,而现任CEO库克则是供应链方面的专家。目前成熟稳定的供应链才是苹果苹果安身立命的根本所在。
虽然整个世界都更加敬仰乔布斯式的天才,对于乔永远走在创新前沿的精神无比期待,更热切的盼望颠覆性的产品出现。但是对于苹果这样一家已经是庞然大物的企业来说,供应链的稳定才是基业常青的关键,体量越大的公司越要求稳。如果由于供应链出现问题,严重波及产品的量产和产能,后续多米诺骨牌效应所带来的一系列损失,这是地让企业元气大伤,甚至难以承受。
那么如何能让供应链稳定且可控呢?
苹果给出的答案就是把供应链牢牢抓在自己手上。
库克当家之后,苹果继续对供应链的稳定进行改进。这些努力包括:让不同的产品尽可能使用兼容组件,要求供应商在苹果组装厂附近建厂生产,投资了最先进的企业资源规划系统等等。
在这样一连串的组合拳之下,苹果的库存周期从数以月计缩短到了数天,也让苹果电脑的生产周期大幅度缩短,甚至击败了被称为业界标杆的戴尔公司。这些改变不仅降低了产品的生产成本,可以留下更多利润外,还能保证苹果产品的市场供给。苹果销量庞大,但发布会后仍然鲜见缺货,这一优势大大增加产品竞争力。
了解了这些背景,就会觉得苹果选择自研电脑芯片是一件十分合乎逻辑的事情。因为自研芯片,可以使产品的升级迭代更加稳定,目前iPhone的新品发布日期多年来集中在9月底,根据笔者的统计近十年来这个发布日前后最多相差5天,其研发节奏和生产、发布节奏都可以完全掌控在自己手中。苹果的清单里,没有核心供应商,苹果发新品不用看任何其它公司的脸色,而M1的推出有望将Mac系列打造成跟iPhone系列一样可以稳定发布的优秀产品。
因此我们可以看到华为同样也选择了自研处理器的道路,其Mate系列新品发布一般都在秋季,前后最多浮动一个月左右,这样的品控能力已经足够优秀。做为对比我们看到之前由于数字旗舰系列的处理器非常依赖高通,小米的发布新品发布实际取决于高通芯片的发布及供货次序,有时候为了首发某代处理器,还需要在备货不充裕的情况下开发布会抢首发,经常被消费者批评是“耍猴”。
为了摆脱这一现状,后来小米也发起了澎湃系列芯片的研发。除了华为、小米之外,OPPO也在去年年初启动了“马里亚纳计划”,将于未来3年投入500亿元进行芯片研发。
可以说未来消费终端厂商涉猎芯片势必成为趋势,而RISC-V凭借其在物联网领域的良好表现,和开源可控的授权方式,会与这些深耕工业制造的厂商不谋而合,未来必将擦出火花。
RISC-V在中国
与苹果M1芯片的研发截然相反的是,以RISC-V为代表的RISC指令集走的是完全开源与开放的路径。
RISC-V(“RISC-FIVE”)加州大学伯克利分校的图灵奖得主DavidA.Patterson教授一手创建。与Linux的理念类似,RISC-V的建设之初的目标就是可以免费地用于所有的设备中——RISC-V允许任何人设计、制造和销售RISC-V芯片和软件。
开源:RISC-V使用BSD开源协议,企业完全自由免费使用,同时也容许企业添加自有指令集拓展而不必开源其基于RISC-V的设计拓展。因此RISC-V是芯片厂商快速提升站在巨人肩膀上的途径。
无缝对接Linux:正如前文所说目前除了部分编译器及操作系统内核引导代码还在用汇编语言外,一般的程序员已经接触不到指令集了,他们只需要面向POSIX(统一操作系统编程接口)进行编程即可。
因此与Linux的全面兼容将使得RISC-V迎来一波争取生态级应用的机会。开发者可以非常方便将运行于Linux和UNIX系统的应用移植到RISC-V平台。这将使RISC-V的芯片逐渐主流化。
模块化设计:RISC-V以模块化的方式组织在一起。用户能够灵活选择不同的模块组合,来实现自己定制化设备的需要,比如针对于小面积低功耗嵌入式场景,用户可以选择RV32IC组合的指令集,仅使用MachineMode(机器模式);而高性能应用操作系统场景则可以选择譬如RV32IMFDC的指令集,选择MachineMode(机器模式)与UserMode(用户模式)两种模式。这使RISC-V的芯片的应用范围可以非常广泛。
最近一名,成为火爆一时的新闻。这其实也从侧面反应了RISC-V的开源策略所蕴含的力量,随着RISC-V吸引Linux社区的目光,并进入Linux主流的支持列表,相信开放的RISC-V会是未来的方向,即将迎来辉煌。
面向未来,对于当下的国内IT企业尤其是行业领军大厂来说,以芯片为首的硬件自研是道必须要迈过去的坎,更是想打造出极致产品的必经之路。除了RISC-V之外,国内的芯片厂商龙芯也买断了RISC另一个重要的MIPS版权同时推出Loongarch芯片指令集,并独创了指令翻译技术,兼容其它平台应用。我们看到Loongarch也借鉴了很多RISC的设计思想,愿在业界的共同努力下RISC-V能够协助中国芯一飞冲天。
☞☞
☞