本文来自微信公众号:CSDN(ID:CSDNnews),作者:马超,题图来自:视觉中国
“MIPS 岂是无情物,化为 RISC-V 更护芯”。
曾经在 PC 时代与 X86、ARM 三分天下的 MIPS,几经辗转之后,于近日迎来了命运的终章,正式加入同属精简指令集 RISC-V 的阵营。
在这个万物互联的 IoT 时代,基于精简指令集的芯片在能耗、效率等方面拥有明显的优势, 尤其在开源光环的加持下,RISC-V 近期的发展风声水起,无往不利。相对比下,MIPS 作为入门 CPU 工作原理时必学的经典架构,在这一片大好的形势下黯然退场,着实令我们广大程序员群体无限唏嘘。
MIPS——曾经独自扛起 RISC 大旗的指令集
MIPS (Microprocessor without interlocked pipelined stages),即“无内部互锁流水级的微处理器”,其关键思想是尽量利用软件办法避免流水线中的问题,而不使用硬件锁。
1981 年,斯坦福大学的第十任校长、冯诺依曼奖与图灵奖的双料得主约翰·轩尼诗教授做出了世界第一款 MIPS 架构的处理器。这几乎也是世界上第一款真正实践了精简指令思想的处理器。
而如今将 MIPS 收入麾下的 RISC-V,直到 30 年后的 2010 年才诞生,除此之外,与 MIPS 同场竞技三十年的 ARM 系列,也是彼时的 4 年后才由 ARM 公司的前身 Acorn 设计出第一代原型产品。
不过在当时的那个年代 ARM 还没有什么上台面的机会,刚出生不久 ARM 就面对着各种动荡与波折。在一手创办出前两代 ARM 芯片之后,有着“英国苹果公司”之称的 Acorn 后来轰然倒在了个人电脑时代到来之前,可以说在当时的很长一段时间内,MIPS 几乎是以一己之力独自扛起了 RISC 阵营的大旗。
精简时代的天之骄子 MIPS
可谓 30 年河东,30 年河西。如今回看 MIPS,也曾一度辉煌。
众所周知,在计算机中,让 CPU 执行某种运算、处理功能的命令称为指令,是计算机运行的最小的功能单位。指令集是指芯片全部指令的集合,是计算机系统能提供的全部功能体现,最关键的是指令集决定了指令的格式和机器的结构,因此指令集也常被称作芯片架构,如果说芯片是计算机的核心,那么指令集就是芯片的核心。
在复杂指令集大行其道的上世纪 60 到 70 年代,计算机系统的内存、存储、 CPU 等等资源都非常匮乏,用户对于性能的要求往往是第一位的,而且当时大型的软件项目还不多,高级语言便于组织协同、提升工程效率的特点还无法显现,汇编语言做为性能保证在当时是拥有绝对的统治地位的,从某种意义上讲汇编语言就是指令集的 API,因此当时的指令集往往倾向于提供更多的 API 指令,使程序员以更少的代码,完成更多的工作。
但随着时间的推移,指令的增加似乎没有尽头,据说当时一台摩托罗拉大型机的汇编语言参考手册相当于 5 本新华字典,一般资质的程序员不折腾一年半载可能连个 HELLO WORLD 都写不出来,甚至很多指令连芯片厂商的设计人员都只能机械式的从上个版本中继承,却不知道实际有何作用,天下苦复杂指令集久矣。
MIPS 是一出生就显示出天选之子的气象,正如上文所述,在当时那个年代精简指令集对于复杂指令集有着碾压式的优势,在这样的大背景下,1984 年,约翰·轩尼诗教授离开斯坦福大学,正式创立 MIPS 科技公司。
1985 年,MIPS 科技设计出 R2000 芯片;1988年,MIPS 将 R2000 升级为 R3000,不负众望,R3000 一经推出便风靡全球,即使现在年轻的读者已经完全没听过什么 R3000 芯片了,但相信你也一定知道索尼的游戏平台 Play Station,这款首发于 1994 年的创世神机,搭载的就是 MIPS R3000A CPU。
Play Station 在 30 年前那个时代就带来了令 IT 界为之震撼的 3D 图像效果,很快占据了家庭娱乐市场的 C 位,Play Station 的横空出世也为 MIPS 做了一波最好的代言,R3000 这款芯片强到没朋友。
MIPS VS Itanium 服务器双雄,却接连落幕
借 Play Station 成功上位之后,MIPS 又成功进军服务器市场,先是在 1991 年登陆 SGI 的 Indigo 工作站。随后又在 1997 年,随 NEC Cenju-4 超级计算机共同亮相,这台超算极具划时代意义,它最多可集成 1024 个 MIPS R10000 CPU,具有很多类似于同步广播、多级网络连接等超前的设计。
这两款服务器产品,不但为 MIPS 带来良好的业绩,更在业界为 MIPS 赢得了极佳的口碑。
如果说 MIPS 仅仅用在游戏机上的话,那我想英特尔大概率会选择忍耐,不过当战火烧到了企业级的服务器市场,这块兵家必争之地时,英特尔这位芯片界的霸主就只能亲身下场与 MIPS 展开决战了。
为应对 MIPS 系列芯片带来的冲击,20 年前的英特尔上来就甩了王炸,直接抛弃了 X86 架构,推出 Intel Architecture 64 架构的安腾(Itanium)系列服务器级 CPU,我们知道由于历史原因 X86 系列的 CPU 始终都要保持向后兼容,也就是为 286 编写的程序,也要能完美运行在 486 上,不过 286 是 16 位而 486 却是 32 位,让两个位长都不一样的 CPU 运行同样的程序,还不出问题,这可真是难为英特尔的程序员了,X86 系列 CPU 经常要在各种保护模式、实模式之间来回横跳,没有过硬的技术功底,想弄明白 X86 的系统是如何加载引导的都十分困难。
Intel Architecture 64 架构号称真 64 位芯片,也就是说基于这种架构的安腾 CPU 不需要在各种兼容模式下切换,不过这样做的代价却是要与 x86 决裂。
按理来说,同一厂商的 CPU 往往都要考虑相互兼容的问题,没有哪个客户能接受把 CPU 从 I3 升级成 I7 后,Word 都无法运行的后果,因此推出与 X86 说再见的安腾系列肯定是最后的无奈之举了,但这也从侧面让我们能感受到当年 MIPS 正面硬刚英特尔这个芯片业老大时的不凡风范。
记得笔者在多年前刚刚到金融行业工作时,第一次接触小型机就是基于安腾系列芯片的,其性能、稳定性等等方面表现都是很不错的,当然彼时的小型机在去 IOE 风潮之下,现在已经很难再见到了,安腾系列自从 2017 年 9700 系列也就停止了更新, 并在 2019 年被正式砍掉,历史总是拥有对称之美,2001 年时任英特尔 CTO 的帕特·基辛格亲自发布了安腾 2,见证了安腾的从无到有。
而在现在帕特·基辛格回归英特尔出任 CEO 时,又正值 MIPS 轰然倒下,这真可谓是世事难料,诸行无常。
MIPS 落幕
十年前笔者还经常混迹于 CSDN 论坛,担任嵌入式大版的版主,当时 MIPS 架构的应用开发与移植,包括 WINCE、ucLinux 等各类式操作系统区的热门话题,在当时的势头还很好。
不过与诺基亚一样,MIPS 由于始终没有搞定能耗的问题,而痛失移动时代的机遇,最终慢慢淡出大众的视线,开始了漫长的告别。
2013~-2014 年,拥有 PowerVR GP 的图片处理芯片公司 Imagination,在一系列的复杂操作下收购了 MIPS 及 MIPS 所有的知识产权,但是并入 Imagination 后 MIPS 继续萎缩,后来又被 AI 数据流处理器的初创公司 Wave Computing 所收购,巧合的是 Wave Computing 与 RISC-V 一样都成立于 2010 年。
对于 Wave Computing 收购 MIPS 不知是否是出于情怀,毕竟彼时的 MIPS 一直耕耘的 CPU 领域其实与 AI 数据流处理器完全不同,CPU 本身是中央控制单元,所谓控制就是跳转,而且 CPU 进行的计算主要是将任务转换成加法来进行的,比如减法是加一个有符合的负数,乘法是多个数相加。
但是在 AI 的神经网络世界中,神经元的工作可以抽象为对于输入数据乘以权重以表示信号强度乘积加总,再由 ReLU、Sigmoid 等应用激活函数调节,本质是将输入数据与权重矩阵相乘,并输入激活函数,对于有三个输入数据和两个全连接神经元的单层神经网络而言,需要把输入和权重进行六次相乘,并得出两组乘积之和。这实际上就是一个矩阵乘法运算。因此 AI 的运算中向量与矩阵的运算才是基础。
在这其中,我们看到针对 AI 计算的特殊性,各大科技巨头在励精图治后都给出了自己的独门绝技。比如华为推出的“达芬奇架构”,具体来说,达芬奇架构采用 3D Cube 针对矩阵运算做加速,以 N*N 的矩阵乘法为例,3D Cube 技术通过优化的运算单元,可以将运算复杂度直接降低幂级,这也造就了基于达芬奇架构的昇腾 910 芯片成为地表算力最强的 AI 芯片。
另外谷歌 TPU 选择了复杂指令集作为其架构基础,谷歌创建了一个编译器和软件栈,将来自 TensorFlow 的 API 调用直接转化成 TPU 指令,这也印证这样一个逻辑,在 AI 的世界中几乎所有的运算都需要对应的指令与电路进行专门的优化才能真正提升效率。
从这个角度上看从事 AI 处理器的 Wave Computing 还是选择复杂指令集更为合理,收购 MIPS 似乎将注定是一次美丽的错误。
成也开源,败也开源
MIPS 的回光返照发生于 2019 年,前 MIPS 授权许可业务总裁 Art Swift 正式接任 Wave Computing CEO 一职,并提出 MIPS OPEN 计划,将 MIPS 架构开源,以期像 RISC-V 那样通过免费与开放战略吸引到更多企业客户与开发者。MIPS 开源的举措,在当时被认为既向 ARM 示威,又向 RSIC-V 宣战,更为即将开始的 IoT 时代做好了准备。
但选择开源就要厚积薄发与时间为伴,我们看到像 Linux、RT-Thread、TiDB 等成功的开源项目,都有长时间的社区人气积累与技术沉淀的加持,想要立竿见影的效果去急功近利的开源只能适得其反。
MIPS 开源后不久,Wave Computing 便陷入人事调整,刚刚指掌公司不到半年的 CEO Art Swift 宣布离任,这位 MIPS 铁杆人物的出走也让业界对 Wave Computing 及 MIPS OPEN 的发展打上了一个大大的问号,更使 MIPS 开源社区的士气大受打击。
今年 2 月 10 日,Wave Computing 正式宣告资产重组,在其最后的声明中宣布 MIPS 正在开发基于 RISC-V 的“第八代标准体系结构”。
3 月 8 日,MIPS 宣布将履行之前的 MIPS OPEN 计划,并正式加入 RISC-V 阵营,至此 MIPS 与 RISC-V 正式官宣合体。
值得欣慰的是,MIPS 和 RISC-V 在中国发展得都还不错,比如国内的芯片厂商龙芯和芯联芯都买断了 MIPS 的知识产权,尤其是龙芯在吸收 MIPS 精华之后,还推出了自主的 Loongarch 芯片指令集,并独创了指令翻译技术,兼容其它平台应用。在去年的操作系统全国高校联赛中,国产的开源操作系统 RT-Thread Smart 与国产全志 RISC-V 处理器的组合已经成功登台亮相,获得组委会大奖,这一切似乎预示着开源与中国有源,最后祝愿 MIPS 能够借助于 RISC-V 的开源理念再回巅峰,也愿 RISC-V 能够助我国早日去除“芯”痛。
本文来自微信公众号:CSDN(ID:CSDNnews),作者:马超