MIPS指令集简史:从CISC、RISC之争到闭源、开源分歧

发布时间:50 阅读次数:50

  集微网报道 在新冠肺炎疫情全球流行和国际局势复杂化的当下,构建自主可控的产业生态已成为共识。要实现完全自主可控,既需要提升包括IP核、EDA工具在内的芯片研发能力和以自主材料、设备为基础的芯片制造能力,也需要建设基于自主指令系统的软件生态。

  指令集是连接硬件架构和软件生态之间的桥梁,过去数十年,随着集成电路和信息技术体系的发展,指令集架构市场风起云涌,从复杂指令集(CISC)与精简指令集 (RISC)之争,到闭源与开源之别,从RISC架构百花齐放,到X86、ARM二分天下,指令集市场平静的湖面下始终暗流涌动。在此过程中,涌现出不少业界耳熟能详的指令集架构,包括学术上认为比较成功的DEC Alpha、被写入经典教科书的MIPS、追求线程级并行的SunSPARC以及近年来异军突起的RISC-V。

  一度被业内认为可以比肩ARM、X86,成为全球三大主流架构之一的MIPS无疑是其中最值得一提的指令集之一。从声名赫赫到多次易手,MIPS见证了指令集格局数十年来的剧烈变动,也见证了中国在自主可控道路上的蹒跚前行。2020年,龙芯中科基于二十年的CPU研制和生态建设积累推出了龙芯架构(LoongArch),标志着中国自主创新正式迈入新的阶段。

  计算机出现的早期,存储速度极慢,广泛使用的慢速磁带存储设备以及大容量内存的缺乏,让计算机对每一字节空间的应用都很珍惜。因此,人们倾向于在一条指令中完成更多的工作。由此形成了后来被称为CISC的指令集,并迅速成为主流。但到上世纪70年代中后期,IBM公司意识到日趋庞杂的指令系统不但不易实现,而且还可能降低系统性能。随即,加州大学伯克利分校的Patterson、斯坦福大学的Hennessy等几位科学家也开始尝试设计精简指令集(RISC)。由此掀起信息技术史上影响深远的CISC与RISC之争。

  图示:Hennessy(左二)在与人讨论MIPS项目(照片摄于1984年)

  作为RISC冲击CISC的领军人物之一,1981年,Hennessy带领团队研发出第一个MIPS架构处理器,这个至今被视为教科书一般的顶级指令集架构自此现世。1983年,“RISC派”的另一位代表人物Patterson和他学生们的成果登陆当年的国际固态电子电路大会(ISSCC),区区几十条指令竟胜过指令数目多达数百条的商业级芯片,业界哗然。在这些“RISC派”的引领下,一个属于RISC的百花齐放的时代正式来临。

  1983年英国Acorn公司开启了基于加州大学伯克利分校RISC项目的新处理器架构研发项目Acorn RISC Machine (ARM),这就是如今统治嵌入式市场的ARM架构的肇始。次年,Hennessy离开斯坦福大学,创立MIPS科技公司。1987年,最成功的早期商业RISC系统之一Sun公司的SPARC正式发布。1992年,DEC公司专为高端台式机、工作站和服务器设计的微处理器架构Alpha问世……

  RISC的凌厉攻势,甚至让“CISC派”代表英特尔不惜投入数十亿美元开发安腾。虽然安腾处理器最终成为英特尔的败笔,但英特尔X86架构在服务器市场的大放异彩与其大胆地引入RISC设计思想关系匪浅。由此亦可见彼时RISC来势汹汹的盛况。

  MIPS便是那个时代最璀璨的群星之一,MIPS指令集被认为是RISC体系中最优雅的一种,DEC的Alpha和惠普的Precision都深受其影响。

  早期的MIPS公司发展迅速,始终立于RISC技术的潮头。公司成立次年,MIPS Release1指令集即问世。1986年,几乎与ARM首款正式商用处理器ARM 2出现的同时,MIPS推出商用处理器R2000。至1988年,MIPS首款在市场上流行起来的产品R3000处理器横空出世。这款处理器销量迅速超过百万颗,不少公司的消费电子产品都用到了R3000,如索尼的PS、思科的路由器和SGI超级计算机等。美国首家电脑公司DEC、爱普生、日本电器等知名企业也都是MIPS的客户。其后续推出的R3000A更是创造了销量过亿的记录。

  32位RISC芯片产品的成功促进了利用商品化部件生产超级计算机的进程,同时也启示业界以更高级的RISC技术迈向超级计算的顶峰,处理器架构掀起由32位向64位发展的浪潮。1991年,MIPS推出第一款64位商用微处理器R4000。次年底,同时代另一RISC架构Alpha问世,全面完成了从32位过渡到64位技术各项任务。自此,在MIPS R4000和Alpha21064处理器引领下,64位技术应用时代到来。

  1996年,MIPS推出R10000处理器,作为RISC阵营的旗舰之一,该处理器投放市场时被认为是世界上最快的CPU。彼时,已在CISC阵营中拔得头筹的英特尔产品与之相比都有所不如。MIPS产品性能强势若此。根据MIPS科技公司的统计,1997年以MIPS架构为基础的CPU出货量为4800万,占RISC CPU总市场份额的49%。

  与此同时,MIPS最大的竞争对手ARM也走出了一条独特的发展道路。早期的ARM业绩平平,没能在那个RISC架构群星璀璨的年代崭露头角,在此情况下,该公司决定改变产品策略——不再生产芯片,转而以授权方式将芯片设计方案转让给其他公司。这种风险共担、利益共享的模式,使以ARM为核心的生态圈形成成为可能。从将产品授权给德州仪器(TI)到迎来首个大客户诺基亚,ARM搭上了移动手机井喷式普及的特快列车。在此过程中,ARM与苹果公司深刻的历史渊源,是ARM抓住手机智能化机遇的重要因素。iphone的热销和谷歌安卓系统基于ARM指令集的事实,让全球移动应用牢牢绑定在ARM指令集上。

  1998年,业务飞速发展的ARM公司同时在伦敦证券交易所和美国纳斯达克股票交易所上市。同年,成立14年的MIPS科技股票也在纳斯达克公开上市。然而,与渐入佳境的ARM不同,MIPS的路却日渐崎岖。

  MIPS授权分为处理器核授权和架构授权两类,MIPS的定价策略是核授权很贵,而架构授权很便宜。同时,MIPS的架构授权,并不限制任何对MIPS架构的更改。这种模式由于允许自行扩充指令,造成了生态碎片化。

  更重要的是,MIPS自成立之初便面向中高端市场,专注产品性能。当移动时代萌芽时,MIPS在功耗上没有太多优势,也未着力打造自己的移动处理器“朋友圈”,不得不在PC向移动进发的时代洪流中进退维谷。

  这时,一个来自中国市场的机会找上了MIPS。2001年,中科院计算所龙芯课题组成立,致力于国产CPU研制。以自主设计为出发点,龙芯课题组看中了架构成熟且可自由更改设计的MIPS。吃足了生态不足苦头的MIPS也极为看重这次机会,有意借助龙芯的力量在新生的中国市场打开一片天地。

  2010年,在北京市和中科院的支持下,龙芯以课题组骨干人员为主体,正式开始龙芯产业化。在此之前,MIPS科技宣布,中科院计算技术研究所的龙芯中央处理器获得其处理器IP的全部专利和总线年,龙芯中科公司又独立购买了MIPS架构授权。

  以生态建设和市场开拓为目标的MIPS与龙芯中科的此次合作诚意十足,龙芯中科用极为优厚的条件拿到了授权。公开报道显示,龙芯中科从MIPS获得的是终生授权,每隔数年续费一次,每个续费周期缴纳固定数额的授权费,且龙芯中科享有续费权(即是否续费的主动权),双方不需要重新谈判,协议不能中止,除非双方破产。

  此后十余年,MIPS都与来自中国市场的客户保持着良好的关系。2016年,中国计算机大会期间,龙芯中科承办的“面向计算机系统能力培养的龙芯CPU高校开源计划”启动仪式上,MIPS还曾派代表出席,并与龙芯中科总裁胡伟武等人一起启动了龙芯开源计划。MIPS对中国市场的期许由此可见一斑。

  2012年底,MIPS被ARM和Imagination瓜分收购。2017年,因苹果宣布弃用PowerVR GPU,Imagination股价下跌70%,面对危局,Imagination只能断臂求生,MIPS被剥离由美国加州投资公司Tallwood 持有。2018年,AI初创企业Wave Computing接盘MIPS。由于几年之间多次被收购,辗转于各个公司之间,致使MIPS支持的力度和开发的持续性都受到了影响,MIPS在中国市场构筑生态的尝试也大受影响。反而是其合作方龙芯中科成为MIPS指令集生态的主要建设者。

  2018年底,创始团队不少人出自MIPS的新东家Wave Computing大胆地宣布对最新的R6指令集进行开源,旨在加速MIPS指令集架构的普及。选择开源是MIPS构筑生态的又一次尝试。不过,从后续的事情来看,这次尝试并不成功。

  2019年末,WaveComputing在发给注册MIPS Open用户的邮件中写道:很遗憾地宣布关闭MIPS开放计划,自2019年11月14号起生效。Wave将不再提供包括MIPS开放组件的免费下载,包括MIPS架构、核心、工具、IDE、模拟器、FPGA包和/或任何与之相关的软件代码或计算机硬件。

  MIPS对开源的尝试就此戛然而止,不过,指令集架构闭源与开源之争方兴未艾。诞生于2010年的开源指令集RISC-V,以物联网、人工智能等技术浪潮为契机,正在向统治移动市场的闭源指令集ARM发起猛烈冲击。RISC-V 架构开发者之一,SiFive公司联合创始人&首席架构师,Krste Asanovic宣称:“开源架构RISC-V将永久免费,成为人类共有财产。相较于X86和ARM架构的高门槛,开源架构RISC-V将带来芯片设计的革命。”公开信息显示,2020年RISC-V基金会全球会员增加了一倍,达到900多名成员,其中包括215个组织。有业内人士甚至指出:“不了解或未布局RISC-V的大厂几乎没有,即便没有量产产品,通常也加入了产业联盟。”

  不过,归根结底,CPU指令系统是计算机的软硬件界面,是CPU所执行的软件指令的二进制编码格式规范。一种指令系统承载了一个软件生态,X86的强大来自Wintel(Windows+Intel)的稳固联盟。ARM的崛起更是合作共赢、生态至上的生动案例,其今日稳固的地位亦是AA(Android+Arm)联盟的胜利。开源与闭源指令集的胜负也必然归于生态。这也是我国必须构建自主指令系统生态的根本原因。

  国外CPU厂商以指令系统作为控制生态的手段,需要获得“授权”才能研制与之相兼容的CPU。采用授权指令系统可以研制产品,但不可能形成自主产业生态,就像中国人可以用英文写小说,但不可能基于英文形成中华民族文化。

  可喜的是,随着龙芯中科推出LoongArch,建设基于自主指令系统的软件生态这一重大课题已经取得全新进展。据介绍,LoongArch包括基础架构部分和向量指令、虚拟化、二进制翻译等扩展部分,近2000条指令,具备完全自主、技术先进、兼容生态的特点。国内第三方知名知识产权评估机构的评估结果显示:(1)LoongArch在指令系统设计、指令格式、指令编码、寻址模式等方面进行了自主设计。(2)LoongArch指令系统手册在章节结构、指令说明结构和指令内容表达方面与ARM、MIPS、RISC-V、X86等国际上主要指令系统存在明显区别。(3)未发现LoongArch基础架构对上述国际主要指令系统中国专利的侵权风险。

  指令系统是软件生态的起点,只有从指令系统的根源上实现自主,才能打破软件生态发展受制于人的锁链。为了推广LoongArch,加速LoongArch生态的建设,龙芯中科计划建立自主指令系统联盟,联盟成员都可以免费获得自主指令系统的使用权。龙芯中科还计划向联盟成员开源部分CPU核心设计,这些核心的最高性能达到ARM A53的水平。此外,2021年龙芯中科将与10所高校合作,围绕自主指令系统进行教学和研究,以及基于精简版本的指令集开展CPU设计实验。这些举动将有助于增强国内整体的CPU设计水平,降低芯片行业的产品研发成本,提高其生存和参与国际竞争的能力。(校对萨米)