MIPS 架构和 ARM 架构有什么异同点,它们的优势和劣势分别是什么?(mips架构cpu)

2023-07-25 14:43:08 阅读:

 

怎么觉得大家都各种旁征博引,甚至连CISC都出来了,也没说出区别和优缺点。我随便说两句。

----

1. 向后兼容

先说一个区别就是架构的兼容性,MIPS基本上是完全向后兼容的,也就是MIPS32可以在MIPS64上跑,MIPS I可以在MIPS II上跑。(Power, SPARC皆是如此)

(from Wikipedia:

File:MIPS instruction set family.svg

)

而ARM指令集事实上不是完全向后兼容的,每隔一两代就要有一些变化。但这不是什么大的问题,因为不像x86没有和操作系统绑定,而且桌面应用少嵌入式应用多 。这带来了一些好处之一就是根据时代和应用场景的变化可以抛弃一些不需要的东西。

PS:不兼容的缺点之一就是旧软件要重新编译,存在风险也耗费时间。

PS2: MIPS16或许可以算作MIPS不兼容的特例,有待考证。

PS3:现在很火的Cortex-M3也是一个不错的案例,是ARM侵蚀8/16位市场的主力军。以后在补充。

2. 目标

这个很重要,外界条件的差异会进化出不同的物种。 MIPS最初是面向高性能科学计算的,甚至还差点被WinNT支持。所以在指令集设计的时候更注重速度和性能,而非功耗和面积。

而ARM从92年的Apple Newton PDA,到后来诺基亚,在到现在基本占领了手机处理器市场。低功耗是主旋律。为了降低功耗、面积以及目标程序的footprint(RISC的缺点之一就是编译出来的程序比CISC大不少)。ARM要做很多自己的选择。

我把指令集编码表拉出来给大家看看就知道了,同样是32-bit的指令宽度

MIPS的非常简单,只有三种指令类型,简单到爆,加减乘除逻辑运算逻辑跳转等等都可以框进去。

(from Wikipedia)

ARM就非常复杂,拼了命的让一条指令多做事情,里面包含了各种条件执行(条件满足才把结果写入寄存器否则好像什么都没发生)等等。

(from:

http://re-eject.gbadev.org/files/armref.pdf

)

OK,有了指令集,我现在要实现电路了,那区别就来了。

- MIPS指令很简单,格式很规整,就可以做很快(频率很高)。这符合RISC的初衷,但是功耗可能会比较大些(和频率有关),然后编译生成的代码一大佗(你不得不用大一点的Cache)。

- ARM指令巨复杂,不论是肉身写还是读都很蛋疼。而且电路实现起来会比精简的指令相对复杂,当面积和功耗优先级高时,最高运行频率可能不会太高(感谢

@泰罗Taro

指正)。不过生成的代码还是很可人儿的。

附:关于MIPS的两个国内的例子:龙芯和君正。

- 龙芯走的是高性能路线,目标客户是桌面、服务器、科学计算等等。

- 君正走的是低功耗和定制化(可能不准确)路线,面向细分市场(早期的MP4播放器,到现在的谷歌眼镜)。

3. 商业模式&生态系统

MIPS起家很早,但是ARM的授权模式让他占领了大片的江山,他可以更多的集中精力去做指令集的优化。另一方面,AMBA总线和IP核的规范也让所有人都受益,更加巩固了他的地位。另外,ARM目前也是很多标准单元库以及IP核的提供商而非只是一个标准制定者。

4. 指令集很重要么?

TBD

5. 家用路由器中的MIPS和ARM

TBD

待续。。。


以上就是关于《MIPS 架构和 ARM 架构有什么异同点,它们的优势和劣势分别是什么?(mips架构cpu)》的全部内容,本文网址:https://www.7ca.cn/tg/40939.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明