查看原文
其他

​MIPS架构发展史

泥石流 自主可控新鲜事 2022-07-03
出品自主可控新鲜事

公众号转载请注明出处

正文共3756字,建议阅读时间8分钟



从处理器的设计和能耗比来说,如果要说最经典的RISC处理器,那么非MIPS莫属,就连它的竞争对手,也不得不承认它的优雅,它被作为处理器教科书的典范,很多其他的处理器,都能看到它的身影。接下来,小新带你们了解MIPS架构的发展溯源以及在中国的演变。

 

发展溯源:MIPS架构历史悠久


1981年,斯坦福大学教授约翰·轩尼诗领导他的团队,研发出第一个MIPS架构的处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。

 

  • 1984年,约翰·轩尼诗教授离开斯坦福大学,创立MIPS科技公司

  • 1986年,MIPS公司推出R2000处理器

  • 1988年,推出R3000处理器

  • 1991年,推出第一款64位商用微处理器R4000

  • 1994年,推出R8000处理器

  • 1996年,推出R10000处理器

  • 1997年,推出R12000处理器

  • 1999年,MIPS公司发布MIPS 32和MIPS 64架构标准

  • 2000年,MIPS公司发布了针对MIPS 32 4Kc的新版本以及未来64位MIPS 64 20Kc处理器内核。MIPS 架构在 2010 年以后发展迅速,至 2014 年的 5 年时间共发布了 4 个版本

  • 1992年,SGI公司在收购了MIPS计算机公司

  • 1998年,MIPS公司又脱离了SGI,成为MIPS技术公司;随后,MIPS公司的战略发生变化,把重点放在嵌入式系统

  • 1998年,MIPS科技股票在美国纳斯达克股票交易所公开上市

  • 1999年,MIPS公司发布MIPS32和MIPS64架构标准,为未来MIPS处理器的开发奠定了基础。新的架构集成了所有原来NIPS指令集,并且增加了许多更强大的功能。MIPS公司陆续开发了高性能、低功耗的32位处理器内核(core)MIPS324Kc与高性能64位处理器内核MIPS64 5Kc

  • 2000年,MIPS公司发布了针对MIPS32 4Kc的版本以及64位MIPS 64 20Kc处理器内核

  • 2007年8月16日,MIPS科技宣布,中科院计算机研究所的龙芯中央处理器获得其处理器IP的全部专利和总线、指令集授权

  • 2007年12月20日,MIPS科技宣布,扬智科技已取得其针对先进多媒体所设计的可定制化系统单芯片(SoC)核心“MIPS32 24KEc Pro”授权

  • 2012年,美国MIPS公司被Arm和Imagination瓜分收购,后来Imagination被Canyon Bridge收购,MIPS也随即由Tallwood Venture Capital拿下。随后创企Wave Computin又从Tallwood手中再次接盘MIPS

 

在 MIPS 指令集发展过程中,基本上严格保持新版本向后兼容的特点。比如MIPS Release5 可以向下兼容之前的所有指令集版本。但是在 MIPS Release 6 版本中,这种情况发生了变化。这个版本中增加了一些新的指令并对指令集进行了简化,删除了一些不常用的指令,重新排布了指令的编码,空余出了大量的指令槽用于将来的扩展。因此,可以把 MIPS Release 6 版本看成一个几乎全新的定义。

 


1、MIPS Ⅰ

提供载入/存储、计算、跳转、分支、协处理及其他特殊指令。该指令集架构用于最初的MIPS处理器R2000/R3000。R2000是1985年推出的首款MIPS CPU,由110000个晶体管组成,是一个8MHz的32位处理器。R3000是R2000的下一代产品。与前者相比不过时钟频率不同。


 2、MIPS Ⅱ

添加了自陷指令、链接载入指令、条件存储指令、同步指令、可能分支指令、平方根指令。最初计划用在MIPS 处理器R6000上,但因为工艺选择的问题,R6000从1988年開始设计后,就一直问题不断,终于未能大规模生产。不过,MIPSⅡ指令集架构是后期MIPS32指令集架构的直接先驱。


 3、MIPS Ⅲ

提供了32位指令集,同一时候支持64位指令集。最初用于MIPS处理器R4000。R4000是于1991年推出的64位处理器,首次增加了浮点处理器单元,主时钟频率提高到了100MHz。后来出现了一系列的R4000处理器。


4、MIPS Ⅳ

在MIPS III基础上添加了条件移动指令、预取指令以及一些浮点指令。最初用于MIPS处理器R8000,后来应用于R5000/R10000。MIPS IV增加了一些功能来改善指令级并行性,并为单精度和双精度FPN添加了几个新的FP算术指令。


5、MIPS Ⅴ

在MIPS IV的基础上添加了能够提高代码生产效率和数据转移效率的指令。可是没有一个处理器基于该架构。MIPS V指令集架构是后期MIPS64指令集架构的直接先驱。


6、MIPS32/64

MIPS32/64于1998年提出,MIPS32以MIPS II架构为基础,选择性地增加了MIPS III、MIPS IV、MIPS V,提高了代码生成和数据移动的效率。MIPS64以MIPS V架构为基础,兼容MIPS32。


7、microMIPS32/64

microMIPS32/64指令集架构集成了16位和32位优化指令的高性能代码压缩技术,保持了98%的MIPS32性能,同一时候减少了至少30%的代码体积,从而减少芯片成本,也有助于减少系统功耗。


8、nano MIPS架构

Nano MIPS是专为嵌入式设备而设计的,是一种可变长度指令集架构(ISA),可在显著减小代码大小的情况下提供高性能,与MIPS32相比,它可以交付多达40%的代码。

 

瑕瑜互见:MIPS优缺点共存


MIPS处理器是八十年代中期RISC CPU设计的一大热点。Pace MIPSIDT和东芝等半导体公司都采用MIPS的设计来制造芯片,其生产的芯片也被Sony和Nintendo的游戏机,Cisco的路由器和SGI超级计算机等终端设备采用,尤其是家用路由器市场,到现在每年生产的超过160亿微处理器中,99%是RISC处理器。过去也曾当作高效能计算架构使用到超算平台上。



和英特尔相比,MIPS的授权费用比较低,也就为除英特尔外的大多数芯片厂商所采用。除了费用较低,MIPS之所以近40年来得到追捧,还有以下两个原因:


首先,MIPS的架构授权,并不限制任何对MIPS架构的更改。以龙芯为例,早期的龙芯基本上都是MIPS架构,变化极少,从龙芯2号开始自主扩展指令集。龙芯3早期型号是基于MIPS64 R3的,后来通过不断的扩充指令集形成了现在龙芯使用的LoongISA指令集,目前,龙芯从最初使用的400多条指令集,已自定义到1000多条。所以我们现在可以说龙芯3号已经不是MIPS架构,但是龙芯3至今还兼容MIPS64 R3指令集。 但龙芯的LoongISA只支持到MIPS64 R2/R3,不兼容MIPS 64 R5/R6。


其次,MIPS属于精简指令系统计算结构(RISC),和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。


万物皆有对立面,MIPS架构也有它自身的缺点——需要建设自己的生态。MIPS授权分为处理器核授权(Core License)和结构授权(Architecture License)两类,核授权也称为IP授权。MIPS的定价策略是核授权很贵,而架构授权很便宜。有能力的公司都可以使用MIPS指令集开发自己的CPU,并且可以对指令集进行扩展,而不受限制。


这种模式在短期内造成了百花齐放的效果,但从长期而言,由于允许自行扩充指令,导致生态碎片化,相互不兼容,从而影响了开发者和使用者的热情。再加上由于后期MIPS经营不善,架构的改朝换代缓慢,且未能配合主流操作系统与设备生态优化潮流,这就失去了IP授权所具备的推出速度,软件高兼容的特点。于是,MIPS在2007年到2017年,迎来了没落期,并逐渐边缘化。

 

拥抱开源:MIPS未来或将更加开放


不过,到2018年12月,MIPS迎来了又一波关注。曾经收购MIPS公司的美国AI公司Wave Computing宣布了一则重磅消息:正式启动MIPS Open项目,MIPS架构完全开源,免费提供给全球的开发者、合作伙伴、高校研究机构、客户。这是推广MIPS内核与生态系统,开放ISA指令集的一大重要举措,或将成为开发与创收的平衡点。


随后Wave官网上开始提供MIPS开源相关的指令集及工具了,包括32位及64位的MIPS R6指令集、MIPS SIMD扩展、MIPS DSP扩展、MIPS Multi-Threading (MT)、MIPS MCU、microMIPS Architecture架构、MIPS Virtualization (VZ)虚拟化等等。这意味着“未来,任何人都可以自由获得以上资源,无需任何授权费、版权费,并能在全球范围内得到几百项专利的保护。”


UltraSoC的首席执行官Rupert Baines曾表示:“考虑到RISC-V的发展势头,MIPS走开源道路是一个值得关注的、精明的举措。”他说:“MIPS已经拥有大量优质工具和软件环境。这是放大MIPS自身优势又不损失太多的一个精明手段”。


不过,有消息透露,从2019年11月14号起,Wave 将不再提供包括MIPS 架构、核心、工具、IDE、模拟器和FPGA包等MIPS开放组件的下载。邮件中同时强调,之前的合作不受影响,但是Wave不会再授权任何第三方认证。



如此看来,MIPS的开源之路并不顺畅,但是,开源却是生态建设的必经之路。开源之路难且漫长,未来,MIPS将何去何从,我们拭目以待......

 

MIPS在中国的演变


国内得到MIPS授权的公司有龙芯、君正、珠海炬力等。其中,我们更为熟知的是龙芯和君正。龙芯走的是高性能路线,目标客户是桌面、 服务器、科学计算等。君正走的是低功耗和定制化路线,面向细分市场。


龙  芯


提及MIPS在中国的演变,不得不提到龙芯。龙芯买断了MIPS架构,并基于MIPS做自主设计,打造自己的指令集。2001年,中国科学院计算所开始研发龙芯处理器,2002年龙芯1号流片成功,2003年龙芯2B流片成功,2004年龙芯2C流片成功,2006年龙芯2E流片成功,2007年龙芯2F流片成功,龙芯2F为龙芯第一款产品芯片,2009年龙芯3A流片成功。2010年由中国科学院和北京市政府共同牵头出资,正式成立龙芯中科技术有限公司。十几年过去了,龙芯也进化出了龙芯2H/2J,3A3000/B3000,3A4000/B4000等新处理器。


2019年12月,龙芯发布了龙芯3系列的最新型号3A4000/3B4000。3A4000在3A3000的基础上进行了大幅升级,采用28nm工艺,性能比3A3000提升一倍,主频提升至1.8GHz-2.0GHz,内存升级为DDR4接口,同时支持动态调频调压,可以大幅度延长笔记本电脑的续航时间。据内部消息,龙芯3A5000正在研制中,预计2020年第二季度末将流片成功。值得一提的是,龙芯从2号开始自主扩展指令集,目前,龙芯从最初使用的400多条指令集,现在已自定义到1000多条。


此外,龙芯在不断提升产品性能的同时,多年来孜孜不倦地建设独立开放的龙芯生态圈,包括在社交软件上做开发并回馈开源,联合国内厂商推出各种解决方案,以此希望聚集更多合作伙伴,共同促进国产CPU的发展。


君  正


北京君正成立于 2005 年 7 月,是一家专注于 32 位嵌入式低功耗 CPU 技术的集成电路设计公司,其团队来自于方舟科技,并延续了方舟科技的发展方向,一直强调自主研发CPU内核。


北京君正通过MIPS架构研发出XBurst CPU。公司凭借着低功耗的特性,依靠着自研低功耗XBurst CPU,开拓出低功耗需求明显的物联网、智能穿戴和智能家居等市场。2017年北京君正完成了XBurst2的设计,之后公司一直基于XBurst2 CPU对其进行持续优化。XBurst CPU采用MIPS架构和RISC技术,主打低功耗。在同样的工艺下,XBurst运算性能提升80%,功耗减少70%,芯片大小减小50%。北京君正凭借其在便携消费电子、便携教育电子市场的 CPU 技术优势,在智能家居、智能穿戴、消费类智能摄像头等市场具有一定的竞争优势。

 

芯 联 芯


芯联芯于2018年底已从Wave Computing取得MIPS 架构和CPU核的中国地区独家经营权。芯联芯专注于SoC相关的一站式设计服务,在IoT、AI、通讯等领域有丰富的经验。

 

珠 海 炬 力


珠海炬力,全球知名的个人便携多媒体SOC供应商之一。旗下有炬芯(珠海)科技有限公司、炬力微电子(深圳)有限公司、合肥炬芯智能科技有限公司。其中,炬芯是中国知名的低功耗消费类系统级芯片设计厂商,为无线音频及智能耳穿戴、智能多媒体、智慧计算及物联网等产品领域提供专业芯片及完整解决方案。


参考文献:

[1]MIPS开源项目已终止!http://www.360doc.com/content/19/1117/14/37805727_873716837.shtml

[2]MIPS指令集开源了,32位64位架构免费用

https://baijiahao.baidu.com/s?id=1629583201518503416&wfr=spider&for=pc  [3]MIPS 路在何方?

https://tech.sina.com.cn/roll/2019-12-17/doc-iihnzahi8061427.shtml



—THE END—

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存