我的中(zhōng)國(guó)“芯”,手把手教你设计CPU
|
作(zuò)者:admin 发布时间:2020-09-27 17:23
|
芯片,是整个電(diàn)子信息产(chǎn)业的基石。目前,全球半导體(tǐ)市场规模达3200亿美元,全球54%的芯片都出口到了中(zhōng)國(guó),但國(guó)产(chǎn)芯片的市场份额只占10%。中(zhōng)國(guó)芯片产(chǎn)业每年进口需要消耗2000多(duō)亿美元外汇,超过了石油和大宗商(shāng)品,在进口商(shāng)品中(zhōng)占有(yǒu)相当大的比重。 CPU作(zuò)為(wèi)芯片的“心脏”,可(kě)谓“芯中(zhōng)之心”,國(guó)内的产(chǎn)业实力在此方面一直比较薄弱。CPU实现國(guó)产(chǎn)自主化对我國(guó)的发展至关重要,但是CPU的主流指令集架构(譬如x86和ARM)一直為(wèi)國(guó)外公(gōng)司所垄断,國(guó)内公(gōng)司需要支付高昂的专利费用(yòng)且受制于人。CPU作(zuò)為(wèi)一种特殊的芯片,其要求指令集架构具(jù)有(yǒu)普世的通用(yòng)性且能(néng)够共享生态系统,因此囿于一國(guó)范围内发明一套封闭的指令集并不具(jù)备实用(yòng)性,必须走与世界主流架构接轨的道路。在这种背景下,开放的RISC-V架构给中(zhōng)國(guó)CPU芯片产(chǎn)业的发展带来了巨大的战略机遇,有(yǒu)希望彻底实现CPU的國(guó)产(chǎn)自主化和架构主流化。 目前,我國(guó)正处于大力发展芯片设计行业的关键时期,实现中(zhōng)华民(mín)族伟大复兴的重任需要广大科(kē)研和工(gōng)程工(gōng)作(zuò)者孜孜不倦地努力与拼搏,需要很(hěn)多(duō)像作(zuò)者这样求真務(wù)实的技(jì )术中(zhōng)坚力量来担负起國(guó)产(chǎn)芯片振兴的重任。而國(guó)内CPU领域人才的奇缺是長(cháng)期制约行业发展的主要因素,《手把手教你设计CPU》作(zuò)者作(zuò)為(wèi)一名(míng)長(cháng)期工(gōng)作(zuò)在一線(xiàn)的资深CPU设计专家,将其经验撰写成书,资料翔实,文(wén)字生动。配合作(zuò)者所在公(gōng)司开发的蜂鸟E200系列处理(lǐ)器核作(zuò)為(wèi)实例,非常适合用(yòng)于教學(xué)领域以及爱好者學(xué)习,对于普及CPU的设计技(jì )术具(jù)有(yǒu)十分(fēn)正面的意义。 新(xīn)兴的RISC-V架构在全球范围内已经掀起了一场热潮,在國(guó)内也引起了广泛的关注,但是由于没有(yǒu)很(hěn)好的中(zhōng)文(wén)普及书籍,很(hěn)多(duō)人对于RISC-V仍然是“只闻其声,未见其形”。作(zuò)者作(zuò)為(wèi)國(guó)内第一批接触RISC-V架构,并最早研发成功RISC-V处理(lǐ)器的技(jì )术专家,在工(gōng)作(zuò)之余将其自研的处理(lǐ)器核开源,并著书详细解读其实现细节,體(tǐ)现了作(zuò)者极高的专业水准和推进國(guó)产(chǎn)CPU产(chǎn)业发展的强烈情怀。 ISA请扛起这口锅——為(wèi)什么國(guó)产(chǎn)CPU尚未足够成功 众所周知,芯片是我國(guó)信息产(chǎn)业发展的核心领域,而CPU则代表了芯片中(zhōng)的核心技(jì )术。在此方面,我國(guó)与发达國(guó)家相比有(yǒu)着明显的差距。虽然经过多(duō)年的努力,技(jì )术差距已经有(yǒu)了显著的缩小(xiǎo),但是在民(mín)用(yòng)商(shāng)业领域内,仍然没有(yǒu)看到太多(duō)國(guó)产(chǎn)CPU的身影。是什么原因造成國(guó)产(chǎn)商(shāng)业CPU尚未足够成功这一现状呢(ne)?接下来,我们便细数一下國(guó)内自主开发CPU的公(gōng)司与现状,以及它们选择的指令集流派。通过逐一分(fēn)析其过去与现状,相信能(néng)够让读者得到答(dá)案。 MIPS系——龙芯和君正 新(xīn)兴的RISC-V架构在全球范围内已经掀起了一场热潮,在國(guó)内也引起了广泛的关注,但是由于没有(yǒu)很(hěn)好的中(zhōng)文(wén)普及书籍,很(hěn)多(duō)人对于RISC-V仍然是“只闻其声,未见其形”。作(zuò)者作(zuò)為(wèi)國(guó)内第一批接触RISC-V架构,并最早研发成功RISC-V处理(lǐ)器的技(jì )术专家,在工(gōng)作(zuò)之余将其自研的处理(lǐ)器核开源,并著书详细解读其实现细节,體(tǐ)现了作(zuò)者极高的专业水准和推进國(guó)产(chǎn)CPU产(chǎn)业发展的强烈情怀。 1.龙芯 龙芯CPU由中(zhōng)國(guó)科(kē)學(xué)院计算技(jì )术所龙芯课题组研制,由中(zhōng)國(guó)科(kē)學(xué)院计算技(jì )术所授权的北京神州龙芯集成電(diàn)路设计公(gōng)司研发。以下是龙芯CPU芯片的相关简介。 龙芯1号的频率為(wèi)266MHz,最早在2002年开始使用(yòng),如图1-3所示。龙芯2号的频率最高為(wèi)1GHz。 龙芯3A系列是國(guó)产(chǎn)商(shāng)用(yòng)4核处理(lǐ)器。最新(xīn)龙芯3A3000基于中(zhōng)芯28nm FDSOI工(gōng)艺,设计為(wèi)4核64位,主频為(wèi)1.5GHz,功耗仅為(wèi)30W,非常适合筆(bǐ)记本平台。 龙芯3B系列是國(guó)产(chǎn)商(shāng)用(yòng)8核处理(lǐ)器,主频超过1GHz,支持向量运算加速,峰值计算能(néng)力达到128GFLOPS,具(jù)有(yǒu)很(hěn)高的性能(néng)功耗比。龙芯3B系列主要用(yòng)于高性能(néng)计算机、高性能(néng)服務(wù)器、数字信号处理(lǐ)等领域。2.君正 國(guó)内的MIPS系还有(yǒu)另外一家公(gōng)司——北京君正。君正和龙芯同属于MIPS阵营,与龙芯着力于桌面PC处理(lǐ)器不同,北京君正是國(guó)内较早专注于可(kě)穿戴、物(wù)联网领域的本土IC设计公(gōng)司之一。由于嵌入式芯片的软件一般按需求定制。这导致在智能(néng)可(kě)穿戴市场,相当一部分(fēn)可(kě)穿戴产(chǎn)品和应用(yòng)软件具(jù)有(yǒu)专用(yòng)性,软件生态链相对较短,加上应用(yòng)需求的多(duō)样化,因此不能(néng)用(yòng)一套通用(yòng)方案来满足所有(yǒu)人的要求,所以在这个领域没有(yǒu)某个厂商(shāng)可(kě)以实现垄断。因此,在智能(néng)穿戴市场不容易出现PC和移动手机市场那样被x86与ARM架构垄断的情况。 智能(néng)穿戴芯片和物(wù)联网芯片对性能(néng)要求不高,大部分(fēn)应用(yòng)场景更关注低功耗、廉价和尺寸等因素,君正的产(chǎn)品完全满足性能(néng)要求,x86处理(lǐ)器不可(kě)能(néng)应用(yòng)于该领域,ARM阵营IC设计公(gōng)司受制于相对较高的授权费,在芯片产(chǎn)量较小(xiǎo)的情况下,并不具(jù)备价格上的竞争力。君正拥有(yǒu)十多(duō)年的芯片设计经验和技(jì )术积累,其最大的特点就是具(jù)有(yǒu)较高的性能(néng)功耗比。國(guó)内第一批上市的智能(néng)手表包括果壳的第一代智能(néng)手表、土曼一代、土曼二代智能(néng)手表等都采用(yòng)了君正的方案。 x86系——北大众志(zhì)、兆芯和海光 1.北大众志(zhì) 北京北大众志(zhì)微系统科(kē)技(jì )有(yǒu)限责任公(gōng)司成立于2002年11月,是國(guó)家集成電(diàn)路设计行业的重要骨干企业。2005年,AMD与中(zhōng)國(guó)政府达成了协议,科(kē)技(jì )部指定北大微電(diàn)子中(zhōng)心接收AMD Geode-2处理(lǐ)器的技(jì )术授权,AMD的处理(lǐ)器无疑是x86架构,中(zhōng)國(guó)因此获得了x86技(jì )术。不过Geode处理(lǐ)器属于AMD嵌入式处理(lǐ)器,因此AMD授权给北大的x86技(jì )术属于嵌入式架构。 2.兆芯 另外一家使用(yòng)x86架构的國(guó)内企业——兆芯,也许被更多(duō)的人所熟知。众所周知,核心的x86架构是 Intel和AMD公(gōng)司的核心技(jì )术,美國(guó)政府也会严格控制其技(jì )术的授权。不过,除了Intel和AMD,另外一家中(zhōng)國(guó)台湾公(gōng)司威盛(VIA)也曾经拥有(yǒu)x86架构授权。据称,如图1-8所示,兆芯自主研发的ZX-C处理(lǐ)器于2015年4月量产(chǎn),28nm工(gōng)艺,4核处理(lǐ)器,主频可(kě)达2.0GHz,并且支持國(guó)密算法加密。2017年兆芯宣布其最新(xīn)一代ZX-D系列4核和8核通用(yòng)处理(lǐ)器已经成功流片,并透露将在2018年推出16nm的ZX-E 8核CPU。 3.海光 除了上海兆芯,还有(yǒu)一家诞生不久的新(xīn)锐公(gōng)司——天津海光。2016年,AMD宣布与中(zhōng)國(guó)天津海光投资公(gōng)司达成了协议,将x86技(jì )术授权给海光公(gōng)司,获得授权费,并且双方还会成立合资公(gōng)司,授权其生产(chǎn)服務(wù)器处理(lǐ)器。据称,為(wèi)了打开中(zhōng)國(guó)高性能(néng)服務(wù)器市场,AMD这次授权给中(zhōng)國(guó)公(gōng)司的x86很(hěn)可(kě)能(néng)是最尖端的x86技(jì )术。对于海光的表现,也值得我们拭目以待。 Power系——中(zhōng)晟宏芯 蓝色巨人IBM的Power架构一直是高性能(néng)的代言。IBM于2013年联合NVIDIA等公(gōng)司成立OpenPower开放联盟,其他(tā)公(gōng)司也可(kě)以获得Power架构授权。此后还推动成立了中(zhōng)國(guó)POWER技(jì )术产(chǎn)业生态联盟,与多(duō)家中(zhōng)國(guó)公(gōng)司签署了授权协议,中(zhōng)晟宏芯就是其中(zhōng)的一家。中(zhōng)晟宏芯成立于2013年,相信宏芯能(néng)用(yòng)若干年的时间实现技(jì )术的消化吸收和推陈出新(xīn)。 Alpha系——申威 申威处理(lǐ)器或申威CPU,简称“SW处理(lǐ)器”。 申威对自主的Alpha架构在不断深化升级,在双核Alpha基础上拓展了多(duō)核架构和SIMD等特色扩展指令集,主要面向高性能(néng)计算、服務(wù)器领域,在2016年國(guó)际超算大会评比中(zhōng),基于申威26010处理(lǐ)器的“神威太湖(hú)之光”超级计算机系统(如图1-9所示)首次亮相并夺冠,其峰值性能(néng)达每秒(miǎo)12.5×108亿次浮点运算,成為(wèi)世界首台运行速度超109亿次的超级计算机。 ARM系——飞腾、华為(wèi)海思、展讯和华芯通 為(wèi)了更好地理(lǐ)解本节的内容,有(yǒu)必要先对ARM的授权模式进行介绍。简而言之,ARM公(gōng)司的主要授权模式可(kě)以分(fēn)為(wèi)两种。 授权“ARM处理(lǐ)器IP”给其他(tā)的芯片生产(chǎn)商(shāng)(合作(zuò)伙伴),后者直接使用(yòng)ARM处理(lǐ)器IP设计SoC芯片。授权“ARM架构”给其他(tā)的芯片生产(chǎn)商(shāng)(合作(zuò)伙伴),后者基于ARM架构自研其处理(lǐ)器核,然后使用(yòng)自研处理(lǐ)器核设计SoC芯片。1.飞腾 飞腾公(gōng)司是中(zhōng)國(guó)國(guó)防科(kē)技(jì )大學(xué)高性能(néng)处理(lǐ)器研究团队建立的企业,國(guó)防科(kē)大多(duō)年来在CPU领域的耕耘积累了雄厚的技(jì )术实力。2016年天津飞腾公(gōng)布了最新(xīn)产(chǎn)品FT2000,它最早亮相于2015年的HotChips大会,代号“火星”,定位于高性能(néng)服務(wù)器、行业业務(wù)主机等。FT2000采用(yòng)ARMv8指令集,但是使用(yòng)自研内核,不同于市面上ARMv8的Cortex-A53\A57\A72(直接購(gòu)买于ARM公(gōng)司的内核)。 FT2000之所以引人注目还因為(wèi)它在性能(néng)方面,包括高达64个FTC661处理(lǐ)器核,其公(gōng)布的Spec 2006测试中(zhōng),成绩為(wèi)整数672、浮点585,足以和Xeon E5-2699v3相媲美。这也是國(guó)产(chǎn)服務(wù)器芯片第一次在性能(néng)上追平Intel,存储器控制芯片总聚合带宽為(wèi)204.8GB/s,超过目前的E5V3和E7V3,接近IBM POWER8(230GB/s)。跑分(fēn)与Intel的Xeon E5-2699v3相媲美意味着飞腾2000对于很(hěn)多(duō)商(shāng)业应用(yòng)来说已经完全够用(yòng)了,只要软件生态跟得上,完全可(kě)以在商(shāng)业市场上取代Intel的某些产(chǎn)品。 2.华為(wèi)海思 华為(wèi)海思目前是我國(guó)技(jì )术最强大的芯片开发商(shāng)之一。华為(wèi)的麒麟芯片在性能(néng)上与高通、三星这些领先的芯片企业处于一个水平。同时华為(wèi)目前也是國(guó)内四大服務(wù)器提供商(shāng)之一,华為(wèi)、联想、浪潮等國(guó)产(chǎn)服務(wù)器企业占有(yǒu)中(zhōng)國(guó)服務(wù)器市场的份额已经超过65%。华為(wèi)在几年前便已经購(gòu)买了ARM指令集架构授权,开始研发自有(yǒu)的处理(lǐ)器核,主攻服務(wù)器市场。 在“十二五”科(kē)技(jì )创新(xīn)成就展上,华為(wèi)展出了其第一台ARM平台服務(wù)器“泰山(shān)”,配备自主研发ARM架构64位处理(lǐ)器“Hi1612”,采用(yòng)台积電(diàn)16nm工(gōng)艺,拥有(yǒu)多(duō)达16个核心,兼容ARMv8-A指令集。凭借华為(wèi)强大的研发实力与市场运作(zuò)能(néng)力,相信一定会有(yǒu)不俗的表现。 3.展讯 除华為(wèi)之外,展讯是另一家國(guó)内手机芯片的翘楚。2016年展讯的芯片出货达到67000万套,2017年6月宣布成功研发其自主的ARM架构处理(lǐ)器,展讯宣称在SC9850 4核(Cortex-A7)芯片同样大的面积上实现了6核的设计,功耗和性能(néng)都可(kě)以按照自己的需求调配,标志(zhì)着展讯成為(wèi)了除苹果、三星两家智能(néng)手机厂商(shāng)之外(三星和苹果的自主芯片主要都是自用(yòng)),继高通之后,第二家拥有(yǒu)自主ARM CPU关键技(jì )术的手机芯片厂商(shāng)。 4.华芯通 2016年,高通与中(zhōng)國(guó)贵州政府合资在华成立了一家芯片公(gōng)司——华芯通半导體(tǐ),旨在专门為(wèi)中(zhōng)國(guó)市场设计与开发服務(wù)器专用(yòng)芯片的公(gōng)司。华芯通已获ARM v8-A架构授权,并表示中(zhōng)國(guó)成為(wèi)全球第二大数据中(zhōng)心市场,该授权将帮助华芯通半导體(tǐ)在快速扩张的中(zhōng)國(guó)服務(wù)器市场推出先进服務(wù)器芯片组技(jì )术,帮助中(zhōng)國(guó)企业在本土市场提供基于ARM的服務(wù)器技(jì )术,从而推动高效服務(wù)器解决方案的大规模部署。 背锅侠ISA 从上述几个章节中(zhōng),我们已经了解了國(guó)内CPU设计的英雄榜。但是如前文(wén)所述,目前在民(mín)用(yòng)商(shāng)业领域内,仍然没有(yǒu)看到太多(duō)國(guó)产(chǎn)CPU的身影。可(kě)以说,國(guó)产(chǎn)处理(lǐ)器在民(mín)用(yòng)商(shāng)业领域至今尚未足够成功的主要原因在于ISA,这口锅ISA必背无疑。 论述了指令集架构(ISA)对于CPU的重要性,那么对于一款CPU而言,绝对的硬件技(jì )术水平不是最重要的。 目前商(shāng)业主流的指令集架构在不同的领域已经各自出现了明显的霸主格局。 x86架构统治着桌面PC与服務(wù)器领域。ARM架构统治着移动手持领域,同时对桌面PC和服務(wù)器领域全面进军。ARM在嵌入式领域占据绝对优势。因此作(zuò)者之前一直认為(wèi),只有(yǒu)依附于x86与ARM阵营的商(shāng)业公(gōng)司,才能(néng)够真正地实现全面的商(shāng)用(yòng)化。相信这也是為(wèi)什么在近几年来國(guó)内CPU设计的英雄榜上涌现出来的大多(duō)為(wèi)x86或者ARM系的原因。 但是,國(guó)产(chǎn)自主对我國(guó)的國(guó)计民(mín)生又(yòu)至关重要,追求國(guó)产(chǎn)自主安(ān)全可(kě)控是我國(guó)在战略上必须坚持的方向。从这个角度上来看,选择x86或者ARM架构终究也有(yǒu)其局限性,分(fēn)别论述如下。 1.x86架构 · 由于Intel与AMD本身是芯片公(gōng)司而不是知识产(chǎn)权(IP)公(gōng)司,因此x86架构是其生命線(xiàn),假设其他(tā)得到授权的芯片公(gōng)司使用(yòng)x86架构生产(chǎn)的芯片对Intel和AMD造成了实质(zhì)威胁时,Intel与AMD完全可(kě)以拿(ná)起专利的大棒停止授权。 · x86架构的授权费用(yòng)极為(wèi)高昂,遠(yuǎn)非普通公(gōng)司或者组织能(néng)够染指。 2.ARM架构 · ARM架构的局面会乐观很(hěn)多(duō),因為(wèi)ARM架构虽然也是属于ARM公(gōng)司且受专利保护的架构,但是ARM公(gōng)司的商(shāng)业模式是以开放共赢為(wèi)基本原则。ARM公(gōng)司是ARM生态的主导者和核心规则的制定者,通过基础架构授权、IP核授权等方式获得经济收益。而生态系统中(zhōng)大量的上下游软硬件企业则遵循ARM统一制定的标准规范,对接众多(duō)客户需求而实现经济利益的获取。 · 國(guó)内基于ARM生态的CPU产(chǎn)业已有(yǒu)较好基础,华為(wèi)海思、展讯、联芯和飞腾等众多(duō)企业均已累积多(duō)年的ARM芯片研发经验,在移动终端领域我國(guó)芯片设计技(jì )术已与國(guó)际主流水平同步,國(guó)外的巨头高通、三星和谷歌等也属于ARM生态系统阵营的成员。因此,从全球范围来看,國(guó)内外的芯片公(gōng)司能(néng)够在开放共赢的生态下进行公(gōng)平的竞争。基于上述原因,國(guó)内CPU英雄榜上使用(yòng)ARM架构的CPU公(gōng)司,其成就更加令人可(kě)期。 · 尽管如此,ARM架构毕竟属于ARM公(gōng)司,一方面需要為(wèi)ARM公(gōng)司支付极其高昂的授权费(一次数千万美金),另一方面被软银收購(gòu)后ARM现在属于一家日本公(gōng)司。因此,从绝对的自主可(kě)控的角度来看,受制于人那是在所难免的。 所谓“成也萧何,败也萧何”,读到此处,读者可(kě)能(néng)要问,难道就没有(yǒu)一种ISA具(jù)备如下几个特点吗? (1)它开源共享,不属于某一家商(shāng)业公(gōng)司私有(yǒu),因此也就不会有(yǒu)受制于人与自主可(kě)控的隐忧,更加不需要向商(shāng)业公(gōng)司支付高昂的授权费。 (2)它以开放共赢為(wèi)基本原则,有(yǒu)一个统一的非盈利组织作(zuò)為(wèi)主导者和核心规则的制定者,任何公(gōng)司和个人都可(kě)以永久免费地使用(yòng)其架构。 生态系统中(zhōng)大量的上下游软硬件企业应遵循该组织统一制定的标准规范,对接众多(duō)客户需求而实现经济利益的获取。 同样从全球范围来看,國(guó)内國(guó)外的芯片公(gōng)司能(néng)够在此开放共赢的生态下进行公(gōng)平的竞争。相信很(hěn)多(duō)人都与作(zuò)者一样,在很(hěn)長(cháng)的一段时间内,非常期待有(yǒu)这样一种ISA的出现,业界甚至出现过希望由國(guó)家主导指定一种國(guó)家标准ISA,从而统一國(guó)内CPU各ISA派系的声音。然而,國(guó)家标准ISA这种被局限在一國(guó)范围内的技(jì )术在当今全球化的趋势下,必然是格格不入且不可(kě)能(néng)成功的。于是所有(yǒu)人都认為(wèi)不可(kě)能(néng)出现这样一种ISA了,作(zuò)者作(zuò)為(wèi)一名(míng)CPU设计的老兵,也不得不用(yòng)一首诗来表达一下彼时的心情:“死去元知万事空,但悲不见九州同。王师北定中(zhōng)原日,家祭无忘告乃翁”。 然而在2016年,有(yǒu)一位叫做RISC-V的新(xīn)生突然自带光环登场。它完全符合上述提到的两个条件,属于全人类的免费开放架构,无任何专利的桎梏,众多(duō)國(guó)际知名(míng)大公(gōng)司均加入其中(zhōng),将以开放共赢的生态下进行公(gōng)平的竞争。作(zuò)者隐隐感到,如果这个ISA真能(néng)够发展起来,这似乎可(kě)能(néng)是國(guó)产(chǎn)CPU崛起的真正机会。刚才我们提到曾有(yǒu)人建议制定一种國(guó)家标准的指令集架构,而当RISC-V诞生不久,我们的邻國(guó)印度迅速地采用(yòng)了RISC-V作(zuò)為(wèi)其國(guó)家标准的指令集,推荐其國(guó)内的大學(xué)和研究机构均采用(yòng)RISC-V架构,并且已经制定规划且投入专项资金用(yòng)于开发几个不同系列的RISC-V处理(lǐ)器。 有(yǒu)道是“山(shān)穷水尽疑无路,柳暗花(huā)明又(yòu)一村”,有(yǒu)关新(xīn)生的RISC-V架构。 人生已是如此艰难,你又(yòu)何必拆穿——CPU从业者的无奈 对于每一个行业的普通从业者而言,都希望所在行业能(néng)够蓬勃发展、欣欣向荣,能(néng)够有(yǒu)大量的商(shāng)业公(gōng)司参与并产(chǎn)生大量工(gōng)作(zuò)岗位的需求。倘使所在的行业或是日暮西山(shān),或是走向寡头化成為(wèi)一潭死水,自然也就无法诞生大量的工(gōng)作(zuò)需求,那普通的从业者们可(kě)能(néng)就只有(yǒu)“寻寻觅觅,冷冷清清,凄凄惨惨戚戚”,或者“门前冷落鞍马稀,老大嫁作(zuò)商(shāng)人妇”了。 处理(lǐ)器设计便是一个典型的例子。虽然处理(lǐ)器设计是一门开放的學(xué)科(kē),其所需的技(jì )术均已成熟,很(hěn)多(duō)的工(gōng)程师与从业人员都已经掌握,也具(jù)备开发的处理(lǐ)器的能(néng)力。但是: · 由于处理(lǐ)器架构長(cháng)期以来主要由以Intel(x86架构)与ARM(ARM架构)為(wèi)代表的商(shāng)业巨头公(gōng)司所掌控,及其软件生态环境衍生出的寡头排他(tā)效应,成為(wèi)了普通公(gōng)司与个人无法逾越的天堑。 · 由于寡头的排他(tā)效应,众多(duō)的处理(lǐ)器體(tǐ)系结构走向消亡,國(guó)产(chǎn)的商(shāng)用(yòng)CPU也无法足够成功,从而造成了CPU设计这项工(gōng)作(zuò)变成了极少数商(shāng)业公(gōng)司的“堂前燕”,普通平民(mín)“只可(kě)遠(yuǎn)观,而不可(kě)亵玩焉”,國(guó)内長(cháng)期没有(yǒu)形成有(yǒu)足够影响力的相关产(chǎn)业与商(shāng)业公(gōng)司。 综上,作(zuò)者作(zuò)為(wèi)曾经在國(guó)际一流公(gōng)司任职的CPU高级设计工(gōng)程师,竟一度在换工(gōng)作(zuò)时面临择业无门的窘境,更扼腕叹息众多(duō)同仁被迫转行的情形。正可(kě)谓“曲高者和寡,大音者稀声”,CPU设计从业者,颇无奈也。读至此,被迫转行的同仁们可(kě)能(néng)已经老泪纵横:“人生已是如此的艰难,你又(yòu)何必拆穿啊”。 好消息是最近几年来國(guó)内CPU产(chǎn)业的情形终于发生了的改观,由于中(zhōng)國(guó)的巨大市场与产(chǎn)业支持,國(guó)内涌现出了如上节中(zhōng)我们提到的兆芯、飞腾、华為(wèi)、展讯、海光和华芯通等从事CPU设计的公(gōng)司,且随着《手把手教你设计CPU》介绍的RISC-V架构之诞生,都将催生更多(duō)的市场需求。 东边日出西边雨,道是无晴却有(yǒu)晴——RISC-V登场 RISC-V架构主要由伯克利大學(xué)的Krste Asanovic教授、Andrew Waterman和Yunsup Lee等开发人员于2010年发明,并且得到了计算机體(tǐ)系结构领域的泰斗David Patterson的大力支持。伯克利大學(xué)的开发人员之所以发明一套新(xīn)的指令集架构,而不是使用(yòng)成熟的x86或者ARM架构,是因為(wèi)这些架构经过多(duō)年的发展变得极為(wèi)复杂和冗繁,并且存在着高昂的专利和架构授权问题。并且修改ARM处理(lǐ)器的RTL代码是不被支持的,而x86处理(lǐ)器的源代码根本不可(kě)能(néng)获得到。其他(tā)的开源架构(譬如SPARC、OpenRISC)均有(yǒu)着或多(duō)或少的问题(第2章将详细论述)。有(yǒu)感于计算机體(tǐ)系结构和指令集架构已经过数十年的发展非常成熟,但是像伯克利大學(xué)这样的研究机构竟然“无米下锅”(选择不出合适的指令集架构供其使用(yòng))。伯克利大學(xué)的教授与研发人员决定发明一种全新(xīn)的、简单且开放免费的指令集架构,于是RISC-V架构诞生了。 有(yǒu)关RISC-V的诞生,有(yǒu)兴趣的读者可(kě)以自行到网络中(zhōng)查阅文(wén)章《伯克利希望将RISC-V开源架构推向主流》。 RISC-V(英文(wén)读作(zuò)“risk-five”),是一种全新(xīn)的指令集架构。“V”包含两层意思,一是这是Berkeley从RISC I开始设计的第五代指令集架构;二是它代表了变化(Variation)和向量(Vectors)。 经过几年的开发,伯克利大學(xué)為(wèi)RISC-V架构开发除了完整的软件工(gōng)具(jù)链以及若干开源的处理(lǐ)器实例,得到越来越多(duō)的人的关注。2016年,RISC-V基金会(Foundation)正式成立开始运作(zuò)。RISC-V基金会是一个非盈利性的组织,负责维护标准的RISC-V指令集手册与架构文(wén)档,并推动RISC-V架构的发展。 RISC-V架构的目标如下。 成為(wèi)一种完全开放的指令集,可(kě)以被任何學(xué)术机构或商(shāng)业组织所自由使用(yòng)。成為(wèi)一种真正适合硬件实现且稳定的标准指令集。RISC-V基金会负责维护标准的RISC-V架构文(wén)档和编译器等CPU所需的软件工(gōng)具(jù)链,任何组织和个人可(kě)以随时在RISC-V基金会网站上免费下载(无需注册)。 RISC-V的推出以及基金会的成立,受到了學(xué)术界与工(gōng)业界的巨大欢迎。著名(míng)的科(kē)技(jì )行业分(fēn)析公(gōng)司Linley Group 将RISC-V评為(wèi)“2016年最佳技(jì )术”,如图1-12所示。 开放而免费的RISC-V架构诞生,不仅对于高校与研究机构是个好消息;為(wèi)前期资金缺乏的创业公(gōng)司、或成本极其敏感的产(chǎn)品、或对现有(yǒu)软件生态依赖不大的领域,都提供了另外一种选择,而且得到了业界主要科(kē)技(jì )公(gōng)司的拥戴,包括谷歌、惠普、Oracle和西部数据等硅谷巨头都是RISC-V基金会的创始会员,如图1-13所示。众多(duō)的芯片公(gōng)司已经开始使用(yòng)(譬如,三星、英伟达等)或者计划使用(yòng)RISC-V开发其自有(yǒu)的处理(lǐ)器用(yòng)于其产(chǎn)品。 RISC-V基金会组织每年举行两次公(gōng)开的专题讨论会(Workshop),以促进RISC-V阵营的交流与发展,任何组织和个人均可(kě)以从RISC-V基金会的网站上下载到每次Workshop上演示的PPT与文(wén)档。RISC-V第六次Workshop于2017年5月在中(zhōng)國(guó)的上海交大举办(bàn),如图1-14所示,吸引了大批的中(zhōng)國(guó)公(gōng)司和爱好者参与。 简单就是美——RISC架构的设计哲學(xué) RISC-V架构作(zuò)為(wèi)一种指令集架构,在介绍细节之前,让我们先了解设计的哲學(xué)。所谓设计的“哲學(xué)”便是其推崇的一种策略,譬如我们熟知的日本車(chē)的设计哲學(xué)是经济省油,美國(guó)車(chē)的设计哲學(xué)是霸气等。RISC-V架构的设计哲學(xué)是什么呢(ne)?是“大道至简”。 作(zuò)者最為(wèi)推崇的一种设计哲學(xué)便是:简单就是美,简单便意味着可(kě)靠。无数的实际案例已经佐证了“简单即意味着可(kě)靠”的真理(lǐ),反之越复杂的机器则越容易出错。一个最好的例子便是著名(míng)的AK47冲锋枪,正是由于简单可(kě)靠的设计哲學(xué),使其性价比和可(kě)靠性极其出众,成為(wèi)世界上应用(yòng)最广泛的单兵武器。 在格斗界,初學(xué)者往往容易陷入追求花(huā)式繁复技(jì )巧的泥淖,迷信于花(huā)拳绣腿。然而顶级的格斗高手,最终使用(yòng)的都是简单、直接的招式。所谓大道至简,在IC设计的实际工(gōng)作(zuò)中(zhōng),作(zuò)者曾见过简洁的设计实现其安(ān)全可(kě)靠,也曾见过繁复的设计長(cháng)时间无法稳定收敛。简洁的设计往往是可(kě)靠的,在大多(duō)数的项目实践中(zhōng)一次次得到检验。IC设计的工(gōng)作(zuò)性质(zhì)非常特殊,其最终的产(chǎn)出是芯片,而一款芯片的设计和制造周期均很(hěn)長(cháng),无法像软件代码那样轻易地进行升级和打补丁,每一次芯片的改版到交付都需要几个月的周期。不仅如此,芯片的制造成本费用(yòng)高昂,从几十万美金到成百上千万美金不等。这些特性都决定了IC设计的试错成本极為(wèi)高昂,因此能(néng)够有(yǒu)效地降低错误的发生就显得非常重要。现代的芯片设计规模越来越大,复杂度也越来越高,并不是要求设计者一味地逃避使用(yòng)复杂的技(jì )术,而是应该将好钢用(yòng)在刀(dāo)刃上,将最复杂的设计用(yòng)在最為(wèi)关键的场景,在大多(duō)数有(yǒu)选择的情况下,尽量选择简洁的实现方案。 作(zuò)者在第一次阅读RISC-V架构文(wén)档之时,不禁赞叹。因為(wèi)RISC-V架构在其文(wén)档中(zhōng)不断地明确强调其设计哲學(xué)是“大道至简”,力图通过架构的定义使硬件的实现足够简单。其简单就是美的哲學(xué),可(kě)以从几个方面看出,后续小(xiǎo)节将一一加以论述。 无病一身轻——架构的篇幅 如果对ARM的架构文(wén)档熟悉的读者应该了解其篇幅。经过几十年的发展,现在的x86与ARM架构的架构文(wén)档多(duō)达数千页(yè),打印出来能(néng)有(yǒu)半个桌子高,可(kě)真是“著作(zuò)等身”。 想必x86与ARM架构在诞生之初,其篇幅也不至于像现在这般長(cháng)篇累牍。之所以架构文(wén)档長(cháng)达数千页(yè),且版本众多(duō),一个主要的原因是其架构发展的过程也伴随了现代处理(lǐ)器架构技(jì )术的不断发展成熟,并且作(zuò)為(wèi)商(shāng)用(yòng)的架构,為(wèi)了能(néng)够保持架构的向后兼容性,不得不保留许多(duō)过时的定义,或者在定义新(xīn)的架构部分(fēn)时為(wèi)了能(néng)够兼容已经存在的技(jì )术部分(fēn)而显得非常的别扭。久而久之就变成了老太婆的裹脚布——极為(wèi)冗長(cháng),可(kě)以说是积重难返。 那么现代成熟的架构是否能(néng)够选择重新(xīn)开始,重新(xīn)定义一个简洁的架构呢(ne)?可(kě)以说是几乎不可(kě)能(néng)。Intel也曾经在推出Itanium架构之时另起灶炉,放弃了向前兼容性,最终Intel的Itanium遭遇惨败,其中(zhōng)一个重要的原因便是其无法向前兼容,从而无法得到用(yòng)户的接受。试想一下,如果我们买了一款具(jù)有(yǒu)新(xīn)的处理(lǐ)器的计算机或者手机,之前所有(yǒu)的软件都无法运行,那肯定是无法让人接受的。 现在推出的RISC-V架构,则具(jù)备了后发优势。由于计算机體(tǐ)系结构经过多(duō)年的发展已经是一个比较成熟的技(jì )术,多(duō)年来在不断成熟的过程中(zhōng)暴露的问题都已经被研究透彻了,因此新(xīn)的RISC-V架构能(néng)够加以规避,并且没有(yǒu)背负向后兼容的历史包袱,可(kě)以说是无病一身轻。 目前的“RISC-V架构文(wén)档”分(fēn)為(wèi)“指令集文(wén)档”和“特权架构文(wén)档”。“指令集文(wén)档”的篇幅為(wèi)100多(duō)页(yè),而“特权架构文(wén)档”的篇幅也仅為(wèi)100页(yè)左右。熟悉體(tǐ)系结构的工(gōng)程师仅需一两天便可(kě)将其通读,虽然“RISC-V的架构文(wén)档”还在不断地丰富,但是相比“x86的架构文(wén)档”与“ARM的架构文(wén)档”,RISC-V的篇幅可(kě)以说是极其短小(xiǎo)精(jīng)悍。 |