皋陶 发表于 2020-9-8 22:50:31

ARM、MIPS、RISC-V三种架构本质上有何区别?

mips是RISC的开山之作,但是生态没有起来,ARM还是结合了一些cisc的特点,大流行。


RSV是综合以上特点新开发的,完全开源,但是生态链还在路上。


虽然看好RSV,但是硅谷在ARM上已经累计了太多的劳动汗水,只有在中国这个新世界才是RSV的方向。


补充一下,RSV看好的方向是高低两个方向,低端MCU很快就要火,不过要做工具链,开发器的多努力,可能卖工具的先会赚到钱,中间和ARM搞PK的没戏,高端,做服务器的也能忽悠到钱,做不做的出来就不好说了,sev的生态链实在太窄。



皋陶 发表于 2020-9-10 09:32:57

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


逻辑运算都是与或非。


算数运算都是加减乘。

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


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


读取存入,都是load,store.


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


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


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


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


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


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


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






皋陶 发表于 2020-9-10 09:34:25

要说本质区别,那绝不是很多其它答主说的什么生态区别,设计思想区别,CISC和RISC的区别之类的,甚至还有答主说没有本质区别。我就一脸问号了,学过计算机体系结构的都应该知道本质区别是什么,是指令集的区别。


可能有人觉得,这是废话,说了等于没说。但是我认为,题主可能并不知道指令集是什么,意味着什么。否则,问题不会这么问,而是问诸如这三种架构现状如何、前景如何之类的。至少,知道指令集相关知识的人会认为,本质区别我已经知道是什么了。

CPU只认识二进制编码,也就是只认识0和1。CPU最主要的功能是计算,可以算加法、减法、与或非等等的计算。也可以做内存存数取数的操作。
那么你要让CPU计算,你就要告诉CPU你要算什么东西,这时候就要用机器语言。其实是二进制串。


不同的体系结构,其实本质区别就在于它们的机器语言不一样。CPU能识别的机器语言也就是指令集了(这是我简单说的,不是严格定义,严格定义还是查课本吧)。所以说,本质区别是指令集不同。


例如,同样是做一次加法,可能一个是用00001111,一个是用11000011,一个是用10100101,之类的,反正根本就是不一样的指令。还有一些其它的区别。


那你可以想想,一段为ARM体系结构CPU写的机器语言,如果让MIPS体系结构的CPU来执行,结果会怎么样。不是无法识别就是识别错误,肯定是达不到这段程序预期的效果的。


所以,ARM的CPU只能运行ARM程序,MIPD的CPU只能运行MIPS程序,一个CPU只能运行用它的指令集来写的程序。


那么有答主强调的生态的区别是怎么回事呢?


比如windows为什么一度只能在x86的CPU上跑?因为windows是C和汇编写的,汇编语言基本和机器语言完美对应。


汇编的那一部分,不同体系结构的机器语言不一样,汇编语言也不一样。如果要跑在ARM体系结构的CPU上,显然要把汇编这一部分用ARM汇编再写一遍,这个只能由微软来做,毕竟不开源,除了微软没人动的了。而微软一直不做,那自然就不行了,你总不能把x86版本的拿到ARM上跑的。


可能还不光操作系统,连普通应用软件都有可能要针对某种具体的体系结构做优化,于是用到汇编语言或者机器语言(一般如果是人来写的话都是用汇编),那么这种软件也是只能在一种体系结构上跑的。


也就是说,如果没人给你RISC-V写软件,你RISC-V就没有软件可用,毕竟不能拿ARM或者x86的软件来跑。


于是就产生了生态的问题。



皋陶 发表于 2020-9-10 09:37:41

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


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


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


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



MIPS 和RISC-V的设计思路极为相似,本质区别就是三种不同的解决问题的方法


不要说RISC里面的这三种。。。在我看来技术上CISC和RISC也没什么本质区别。现在的ISA的区别都不叫区别……
优劣之分就是哪种架构被用得多哪种就“优”——未必代表技术上更好,只是有更多人用而已。有没有更多人用,要看个人奋斗,但是个人奋斗只占一小部分;更多还是看历史潮流。



大概2003年吧第一次使用arm,是intel产的strongarm跑206mhz。当时翻看指令手册印象最深也是本人认为arm最有创意最有特点的是,指令条件执行。通常的处理器都是使用jz,jnz等指令进行条件跳转,而arm可以根据上条指令的执行状态选择忽略或执行下条指令,这样在很多场合就避免跳转从而避免流水线被打断,大大提高了运行速度。


mips和riscv不了解体系结构,欢迎大佬补充。


以下介绍几个和本题无关的几个得有特点的处理器


mcs51,小单片机有位寻址功能


msp430,小单片机,内部有几个常用常数寄存器,像一些比如0,1等立即数就不用到内存去取了,这玩意还有个很好玩的乘法器是外挂的,不在alu里!
adi的blackfin,二级无开销硬件循环,二级以内循环无任何开销并不打断流水线



简单说指令就是机器语言,指令集就是一款CPU支持的所有机器语言。指令系统诞生之初就有两种设计思想或者说流派,CISC(复杂指令集)和RISC(简单指令集),CISC系统复杂庞大8086CPU的指令就有300多条,而大多数RISC只有几十条指令。x86系列指令集属于CISC是Intel的专利,其他人在取得Intel的授权前是不能够使用的。ARM、MIPS、RISC-V都是属于RISC,只是前两个是商业公司的专利产品,他人使用前要取得授权,RISC-V是加州大学伯克利分校以BSD协议分发的开源指令集,任何人可以免费使用,且不禁止商业用途。



sky 发表于 2020-9-13 00:50:09

MIPS的棒交到了龙芯手中
页: [1]
查看完整版本: ARM、MIPS、RISC-V三种架构本质上有何区别?