【知乎】ARM、MIPS、RISC-V三种指令集本质上有何区别?
失传技术
编辑于 2023年05月23日 09:52

ARM、MIPS、RISC-V三种指令集本质上有何区别?

专题收录

TOP 云厂商都青睐 ARM :趋势已来!

如题。

另外,还有优劣势之分吗?

被浏览

504,367

17 个回答

昌维

我不生产代码,我只是代码的搬运工。

指令集大体上可以分为两大类:

  • CISC(complex instruction set computer)

  • RISC(reduced instruction set computer)

由于 CISC 和 RISC 不像物理和数学概念一样可以做出无二义性的严谨定义,所以主流观点都认为

CISC 的指令隐含有对总线的 load / store 操作,即 add, sub 等算术逻辑指令的操作数允许是一个内存地址,执行操作数为内存地址的算术逻辑指令

会先将数据从内存加载到 位于 Execute Unit 里面的 ALU 中进行运算

RISC 的指令若要读写总线则需要使用显式 load / store 指令,除此之外其他类型的指令不能读写总线

(这里的总线(BUS)读写是包括内存读写和外设 I/O 接口的输入和输出)

按照这种分类,以上三种指令集都属于 RISC

但是讨论 RISC 时还需要关注 RISC 系列指令集中每一条指令的原子化粒度

,也就是这个指令集中每一条指令做的事情是否足够简单,指令集中的指令功能之间是否存在相互正交性(即功能之间互相不重复)

这也是 ARM,MIPS,RISC-V 三种 RISC 指令集的主要差别所在

先来看目前最流行的 ARM

从这里可以看出 ARM 指令几乎全部都带有 cond 条件码

,也就是说 ARM 的一条指令其实做了两件原子操作——判断+执行

另外这还只是 ARM 的 instructions 本身的特性,ARM Cortex 系列 CPU 还存在双 stack 机制和一些独特的权限切换方式,例如 BX LR 指令会判断某些 bit 来决定跳转目标应该使用的权限和 stack 段,如果抛开 load/store 这种狭义的 RISC 定义来看,ARM 其实已经算不上简单指令集了,因为它一条指令其实做了很多复杂的操作

再来看看 MIPS,MIPS 是早期龙芯

的指令集,也是早期很多低端家用路由器,嵌入式设备,VCD/DVD 音响设备的 CPU 主要使用的指令集

MIPS 的机器码已经非常简单了,从图上可以看出 MIPS 仅仅有三种不同的 format

看幻灯片表格中的 comments 介绍,有人可能会惊讶地发现 MIPS 居然没有 CPU 中最常用的 MOVe 指令,这个指令去哪了呢?

回想一下我之前提到的指令的“正交性”,MIPS 其实在正交性上做得很好。因为 MOV 操作的本质是将一个寄存器的数据复制到另一个寄存器上,如果要实现这个操作,其实完全可以用多条现有的算术逻辑运算指令实现

举个例子:

MOV R0, #0 // R0=0

完全可以用 XOR R0, R0

并且事实上现在很多编译器

真的就是用这条指令实现寄存器归零操作,大家可以想想看为什么?

其实你用反汇编工具仔细比较一下 MOV 和 XOR 就能看出端倪,只要任何指令引入了 immediate 立即数

,就不可避免地增加指令长度,带来的就是 cache 的占用,总线读取周期的占用,存储代码用的 ROM 或硬盘空间的占用,在上个世纪九十年代存储器还是寸土寸金的时代这种浪费是不可接受的

但是绝对的指令正交

也会引入其他问题,例如指令正交将会导致实现一个小操作需要多个指令来完成,某些情况下多个指令仍然会需要占用更多 cache 空间以及指令预取

队列长度

指令少并且功能正交的好处就是 CPU 可以做得非常简单,因为无论是解码单元

还是执行单元都只需要用少量逻辑就能实现大部分程序逻辑,并且也会更加省电,这也是为什么早期家用电器等没有复杂控制逻辑的电子设备采用 MIPS 的原因(当然还有一个原因是授权费

相对也不高)

最后再来看看当下非常热门的明星级开放指令集 RISC-V

可以说 RISC-V 综合了 ARM 和 MIPS 的优点,做到了指令功能的平衡与规整,平衡意味着在空间和时间上都控制得当,规整意味着解码单元会很好做,有大量逻辑门

可以复用

另外 RISC-V 比较有特色的地方是对指令集功能做了良好分割,以实现渐进式兼容和灵活的扩展性,也方便 IP 厂商根据需要定制与裁剪内核

RISC-V 是多个 RV 指令集系列的总称,我们在大学教科书中接触的最多的是 RV32I 也就是上图所示的指令

除此之外还有专门面向小内存低功耗设计的 RVC,其将寄存器裁剪至 16 个,指令位宽也缩减到 16-bit

还有 64-bit 环境下的 RV64 系列等

当然 RISC-V

与 ARM 和 MIPS 最大的差别还是在于其为 RISC-V 基金会进行标准的制定和维护工作而非商业公司,任何人可以无偿使用该指令集开发自己的 CPU ,或者往自己已有的芯片中集成开源免费的 RISC-V IP Core,这是比较吸引电子设备厂商的重要原因。

PS:之前的内容更多关注在 RISC-V,忽视了题目本身是比较 ARM,MIPS 和 RISC-V 三大指令集的原始题意,所以现在对答案进行完整修改以符合题意。

编辑于 2022-01-21 21:48

真诚赞赏,手留余香

还没有人赞赏,快来当第一个赞赏的人吧!

歪睿老哥

都是risc,没有什么本质的区别。risc的众多后代,基因90%都一样。

逻辑运算都是与或非。

算数运算都是加减乘。

左移右移,要不要循环或者算数?

没事比比大小,比完跳转下一个执行,或者不管了直接跳。

读取存入,都是load,store.

甚至他们都定义了16或32个通用寄存器。

什么?你有特殊控制寄存器啊,我也定义一个,比你的还多。

你有特殊指令可以加速?我也有。我还能push和pop.

你支持位运算?这也是高科技,你真是想瞎了心了。

有的只是商业模式的区别。

举个例子,和英语,法语,德语的区别差不多。

只不过要发表文章,大家选择英语较多。

发布于 2019-05-27 09:24

XIVN1987

懂Python的单片机工程师

有一个比较大的差异似乎没人提:ARM和MIPS指令都是固定长度的,RISC-V指令是变长的

ARM A64指令集固定32位,这通常被认为是优点,因为简化了解码,容易提升性能

但是随着ARM往A64里面塞入越来越多的指令,,恐怕固定长度的缺点也在逐渐显现

比如ARM为了发力AI计算,加入了SVE指令集扩展,,SVE也是ARMv9的主要提升点,,在SVE指令中已经能感觉到一些指令长度的限制了,比如:

指令中需要编码Px寄存器,因此目的寄存器和第一源寄存器必须是同一个,这限制了灵活性

SVE ADD指令中立即数宽度只有8位,如果向量元素是16位,那向量加立即数就要拆成两条指令完成

如果ARM不想再增加一套指令集的话(现在的Cortex-A处理器需要同时支持A32、T32、A64三套指令集),,A64支持变长指令恐怕在所难免

编辑于 2021-04-04 11:45

Wei S

明月直入,无心可猜。

在2019年的今天看,最本质的区别是生态系统的差别。

arm 在移动端,消费类产品上有强大的生态。网络侧服务器侧千里之行,路程过半(对比x86)

MIPS曾经有很强的网络市场的生态,产品演进没有跟进,生态分裂……消亡中。

Risc-V 嵌入式市场起步,千里之行才走第一步。

发布于 2019-05-25 08:28

DOT小文哥

珠海国产芯片小厂打杂工程师

我司这三种指令集的架构的芯片都做过,其中:

ARM是我们祖传老手艺了,A7、A53、A55用得很多,每年出货量超过1亿颗,比较有名的芯片有A33,R16,H3(稚晖君

的小电视用的就是这颗芯片),H616,V3s(DIY掌机圈网红芯片),V853等

RISC-V芯片是这几年新上的架构,之前业内敢为人先的D1系列用的就是阿里平头哥的RISC-V架构CPU 玄铁C906,是业内最早可以跑起标准Linux内核的RISC-V

量产芯片。另有V853、V851、A523等芯片,都有RISC-V作为辅核。

经常有人比对ARM核和RISC-V核的性能差异,但从我们的应用场景实测来看,ARM和RISC-V在性能上其实没有特别大的差别。比如同是22nm的制程,不会说用了RISC-V架构的C906,性能就比Arm的A7强一个数量级。想要更强的性能,要么降低制程,要么给更多的面积。物理限制在那里,想通过架构的改变让性能有数量级的跃迁,几乎是不可能的。

参考:

A7和C906 core_mark分数对比

bbs.aw-ol.com/topic/1317/share/1

在我们看来,几个指令集之间的本质差别更多地是在生态和模式上。这里我引入X86作为比对,替换掉相似性比较高的MIPS,把几个指令集模式作一个介绍。

我经常举这样一个例子:

如果把做芯片比做做菜,那么指令集(ISA)就是食谱。

最开始,X86的食谱是掌握在【御膳房】的御厨手中的,菜都很高级,有很复杂的制作流程,菜谱也是不外传的,只有御膳房的御厨可以做,也只有达官贵人可以享用,做出来的菜高端、好吃、严格遵守菜谱,宫外的人很难享受到。

但是,不只是达官贵人要吃饭啊,社会中的新兴中产阶级也想吃好吃的。这个时候ARM就出来了,他们就像是KFC,也有他严格的、体系的制作流程,更低的价格让更多人人可以享用。同时,KFC是可以开放加盟的,不过加盟费比较贵,你需要按照KFC的标准装修门面、购置炸鸡和炸薯条的器材、雇佣足够数量的员工并接受总部的统一培训等等,加盟费

很贵,一个门店没有大几百万加盟不了,同时对员工素质、门店面积有明确的要求。很多小厂商没有能力加盟,只能帮助总部运营他加盟好的店铺,但是每卖出一份汉堡、一杯可乐,都要给总部分钱,比如全志、瑞芯微

等;有的厂商确实有实力自己盘下一个店面装修加盟,这样就只需要给一次性加盟费就行,比如华为(但是想上总部新研制的菜品,还是要另外交钱)。

显然,KFC的模式让更多人吃到了好吃的炸鸡汉堡,但这还不够,还有广大的人民群众,连KFC都还消费不起的,他们在匆匆上班的路上,没有时间进入KFC买一份早餐,只能在地铁口的煎饼果子摊顺手买一份煎饼果子

。这样就需要更多的煎饼果子摊,而开一个煎饼果子摊的费用,就比加盟KFC便宜多了,几千块钱就能买一套设备(小推车+摊子炉)。这就是RISC-V的模式。

并且,煎饼果子没有摊没有太严苛的质量标准,每个煎饼果子摊都可以根据自己对客户喜好的判断做自己独特的煎饼果子。比如有的口味比较辣,有的烤得比较焦,有的会加自己的特色酱料……

但是这样也引来了一个问题,就是质量标准不统一,容易踩雷(RISC-V生态碎片化问题)。

这个时候,就需要一个组织来统一一下标准——煎饼果子行业协会(RISC-V国际基金会

有了基金会,就可以对煎饼果子指定基本的行业标准,比如面糊要开多稀、要烤几分钟、青菜的比例是多少等等。

基金会是非盈利的,由各家煎饼果子摊捐款运营,并派人当代表制定标准。出得钱越多,在基金会内就越有话语权,就越能引导行业走向。

同时,上下游产业链也出现了。

有的公司不做煎饼果子,但是卖煎饼果子的预制菜(IP),比如平头哥、芯来等IP设计商

有的公司把预制菜拿过来,加热,再配上一起其他小吃,做成煎饼果子套餐(SoC)卖给顾客,比如全志等芯片SoC设计及应用厂商

———————————————————————————————— 显然,菜谱只存在于少数利益集团的手里是不合理的,就像传统的ISA存在的问题:

  • 技术壁垒 - 当前主流架构都是商业授权模式,技术不开放。产业链下游厂商的技术发展严重依赖上游核心技术厂家的既有成果,影响产业链下游创新效率;由于处理器架构技术复杂,再加上产业链模式长期封闭,下游厂家即使有创新想法,也没有办法付诸实现。

  • 架构技术

  • - 最大的问题是功耗(能效比),Dennard Scaling失效导致能效比增加(晶体管尺寸和电源电压一起变化,单位面积晶体管的总电容上升,但是电源电压在相应变小使得单位面积能量消耗基本保持不变);其次是并行计算、延时等问题。

  • 授权成本

  • - 高端IP市场基本上被几家公司垄断,授权费用高昂,占据大部分的产业链利润;高校、研究机构等科研机构也无力去付费购买这些专业IP。

但是,开源架构

也并不完美。在架构技术方面,它其实面临同商业架构一样的问题。在架构生态方面,同商业架构相比,硬件生态和软件生态环境也是导致开源架构无法产品化的关键因素。产业链缺少性能高、稳定性好的IP、软件生态不完善等现象,导致开源处理器

架构没有得到很好的发展与利用。

++++++++++++++++++++++++++++++++++++++++++++++++

另外需要指出的是,开源开放

不是免费

如果你的公司根据RISC-V国际基金会制订的标准进行IP设计并商用,那是免费的(即参考菜谱免费)。

但是如果你使用平头哥设计好的C906 CPU,你销售的每一刻芯片都要给平头哥一小笔授权费(即买平头哥做好的预制菜要收费)。虽然平头哥把玄铁C906几个核都开源出来了,你可以免费看和用来预研,但是你真正量产是要交授权费的。因为平头哥目前还在烧钱推广阶段(以前互联网公司的玩法),这个授权费不会很贵,甚至可能不收你钱,但是你要跟平头哥商务上聊好,象征性地收一分钱也是收钱。收钱是道理,不收钱是人情、是格局、是商业模式

Arm的模式其实是类似的,只不过入门门槛会高很多,而且你要买他的菜谱的话非常贵,基本是不卖的。但是他的预制菜

是卖的。卖预制菜也是他们的主要盈利模式。只不过买他的预制菜可能要先充他们家会员(买高性能的IP会需要较高的初次开案费),所以很多中小企业、科研高校拿不到Arm的高级别IP,项目都启动不了。

编辑于 2023-04-04 23:54

芯片中屡屡提到的MIPS是什么?哪位大佬来科普下MIPS?

MIPS和芯片之间有什么关联啊,很重要吗?

被浏览

37,292

10 个回答

孙卫

IT工程师

MIPS是一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(Microprocessor without interlocked pipelined stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。 MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。有一个著名的主机公司SGI就是用MIPS处理器做图形图像工作站的。

类似于Intel,AMD,DEC,IBM,Apple,SUN都有不同的计算机,服务器,超算的处理器,目前主流的是微软,AMD,IBM三大家。DEC,MIPS,SUN已经不是主流,但是还存在。龙芯就是MIPS架构的,申威就是DEC架构的。

发布于 2021-06-13 11:16

传说中的胖子

战斗工程猫

MIPS啊,它是超级玛丽里桃子公主的兔子宠物。超级玛丽的历史地位是怎么强调都不为过的。

∠( ᐛ 」∠)_

如果是说处理器,常见有两组相关的。

一是“每秒百万次指令”,用于衡量处理性能。显而易见,由于不同处理器完成同样任务的指令不同,直接说指令意义有限。所以实践中采用运行一个基准测试程序,根据执行花费的时间算出相对值。从很早起就被普遍接受的,用来测试整数性能(一般的处理逻辑)是Dhrystone,对应的跑分成为MIPS;用来衡量浮点性能(一般的计算)是Whetstone。

二则是一个很长的故事。最早是80年代初的一个研究项目的名字,是RISC实践的源头之一。后来主要研究者成立公司称为MIPS计算机系统公司,所用的指令集架构(ISA)被称为MIPS ISA。在八十年代末到九十年代中曾经一度有较高的业界地位。此后三十多年里MIPS公司被反复辗转收购、出售,它的指令集架构也历经多次改版,如今MIPS ISA和MIPS公司都早已经边缘化。最近的新闻是今年濒临破产的MIPS再次被出售后放弃了MIPS ISA,改为使用RISC-V指令集,但公司仍称为MIPS技术公司。

而之所以总有人念叨MIPS嘛,大概率是在说龙芯,龙芯购买了MIPS ISA授权。龙芯如何是另一个事情,就不在这里展开了。

发布于 2021-06-09 14:22

千千结

桐花万里路,连朝语不息。心似双丝网,结结复依依。

每秒钟执行1百万条指令的次数,类比主频这个概念

发布于 2021-06-19 12:42

vampire

屌丝IC男

一种指令集,和arm、x86、risc-v一样的,发明该指令集的公司已经被收购收购再收购,目前已经没人要了,还在继承该指令集的就是国内的龙芯了

发布于 2021-06-07 23:05

IM You

MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。

和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。

1、R(register)类型的指令。该类型指令从寄存器堆(register file)中读取两个源操作数,计算结果写回寄存器堆。

2、I(immediate)类型的指令。该类型指令使用一个16位的立即数作为一个源操作数。

3、J(jump)类型的指令。该类型指令使用一个26位的立即数作为跳转的目标地址(target address)。

MIPS的指令种类有:1、算术运算。2、逻辑运算。3、数据传送。4、条件转移。

5、无条件跳转。6、特殊指令。7、例外指令。8、协处理器指令。9、系统控制协处理器指令。

MIPS的系统结构及设计理念比较先进,其指令系统经过通用处理器指令体系MIPS I、MIPS II、MIPS III、MIPS IV到MIPS V,嵌入式指令体系MIPS16、MIPS32到MIPS64的发展已经十分成熟。在设计理念上MIPS强调软硬件协同提高性能,同时简化硬件设计。

发布于 2021-06-09 13:45

与非网

已认证帐号

上世纪90年代,诺基亚以阻击摩托罗拉,合作德州仪器

(下称TI),首战即为研发适用于2G手机的通讯芯片,最终Arm以面积与成本优势,从MIPS与TI自有MCU核心中脱颖而出,迎来被苹果公司“抛弃”后第二春,成为被“命运”选中的手持设备架构。

彼时正是MIPS(Microprocessor without Interlocked Piped Stages)的黄金时代

。作为最早商用的64位多核RISC(Reduced Instruction Set Computing)架构,因高性能优势,以及完善的微处理设计,是X86在PC、路由器与服务器端处理器领域的主要竞争对手。

随后,走上快车道的Arm在低功耗、Java加速、单指令多数据以及代码压缩等方面持续发力,满足诺基亚需求。2004年,推出Cortex系列芯片,补齐性能短板。2010年,发布Cortex-15

方案,性能足够进入桌面与服务器领域,挑战Intel。

而在此期间,由于过早选择高性能策略,而在功耗降低

方面并未取得重大突破,同样其也失去了获得移动市场早期红利的机会。当MIPS调转船头,发现身后一片汪洋。

最新消息显示,MIPS母公司Wave Computing正计划申请美国《破产法

》第11章的破产保护

,其表示目前并未解雇所有员工,目的为资产重组,但最大的疑点“MIPS将何去何从”仍没有定论。

2018年,Wave Computing从风险投资者Tallwood Venture Capital处收购MIPS,表示MIPS仍将以IP事业部门进行独立运营。在此之前,MIPS的掌舵者是IP解决方案供应商Imagination Technologies。

对于MIPS未来走势,目前有三种可能性:Wave Computing为其寻找下家;Wave Computing破釜沉舟,继续经营MIPS,与其共进退;最后一种较极端的方式为MIPS被宣告死亡

Wave Computing于2018年12月开放MIPS指令集

,成立“MIPS Open Initiative”,聚焦片上芯片SoC与物联网终端的生态建设。

值得注意的是,芯片设计公司仍需向Wave Computing支付注册与认证费用,以获得完整的MIPS专利保护

。11个月后,该计划被官方中止。

雪上加霜的是,2020年2月,Linux内核官网Kernel Org的MIPS维护名单中,两位负责更新的Paul Burton与Ralf Baechle宣布退出,目前仅剩一名人员。作为生态成熟度的衡量指标,MIPS Linux内核维护团队的缩减,释放负面信号。

MIPS官网首页头屏位置显示其与联发科

签署专利许可协议,表明后者将在其网络连接设备

中使用基于MIPS内核的处理器。以上新闻发布时间为2019年7月,目前虽然无法得知MIPS具体商务表现,但从官网更新频率,侧面反映MIPS指令集并不太理想的市占率。而据RISC-V官网数据显示,目前其生态中共有超过500家合作伙伴。

因此,结合Wave Computing运营状态与MIPS市场潜力,其继续经营MIPS的可能性并不大。据与非网

资深用户“剑客浪芯”(化名)分析,目前MIPS在中国与菲律宾

等国家仍有部分客户,收益也较为稳定,直接宣告破产的可能性不大,最终结局可能是被再次抛售。

发布于 2021-06-15 14:03

伙烨

MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。

像是一个Intel80386 电脑可以每秒处理3百万到5百万机器语言指令,即我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。

MIPS是世界上很流行的一种RISC处理器。MIPS的意思“无内部互锁流水级的微处理器”(Microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。

它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。

发布于 2021-06-09 11:09

rrrrr

MIPS是高效精简指令集计算机(RISC)体系结构中最优雅的一种,即使连MIPS的竞争对手也这样认为,这可以从MIPS对于后来研制的新型体系结构比如DEC的Alpha和HP的Precision产生的强烈影响看出来。

虽然自身的优雅设计并不能保证在充满竞争的市场上长盛不衰,但是MIPS微处理器却经常能在处理器的每个技术发展阶段保持速度最快的同时保持设计的简洁

发布于 2021-06-08 11:09

Charmve

Momenta.ai Senior R&D Engineer

MIPS的概念

https://blog.csdn.net/tigeryang0203/article/details/113437442

https://blog.csdn.net/weixin_44827418/article/details/106627686

https://www.dsi.unive.it/~gasparetto/materials/MIPS_Instruction_Set.pdf

发布于 2023-04-06 17:23

卓卓

指令集是存储在CPU内部,对CPU运算进行指导和优化的硬程序。拥有这些指令集,CPU就可以更高效地运行。

MIPS指令集属于精简指令集,MIPS的所有指令都是32位,指令格式简单,而X86的指令长度不是固定的。简单的指令和格式易于译码和流水线操作,但是代码密度不高,导致二进制文件大。

低端的CPU物理面积只有1.5平方毫米(在SOC系统里面肉眼很难找到)。而高端的R10000处理器,第一次投放市场时可能是世界上最快的CPU,它的物理面积几乎有1平方英寸,发热近30瓦特。虽然MIPS看起来没什么优势,但是足够的销售量使其能健康发展:1997年面市的44M的MIPS CPU,绝大多数使用于嵌入式应用领域。

发布于 2021-06-08 11:58