查看: 3670|回复: 4
收起左侧

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

[复制链接]

  离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

    发表于 2020-9-8 22:50:31 | 显示全部楼层 |阅读模式

    有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站

    您需要 登录 才可以下载或查看,没有帐号?立即注册

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


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


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


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







    上一篇:RISC-V,开始
    下一篇:源于美国的开源架构RISC-V到底会不会有被“禁”风险?
    RISCV作者优文
    全球首家只专注于RISC-V单片机行业应用的中文网站
    回复

    使用道具 举报

      离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

     楼主| 发表于 2020-9-10 09:32:57 | 显示全部楼层
    都是risc,没有什么本质的区别。risc的众多后代,基因90%都一样。


    逻辑运算都是与或非。


    算数运算都是加减乘。

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


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


    读取存入,都是load,store.


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


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


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


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


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


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


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






    全球首家只专注于RISC-V单片机行业应用的中文网站

      离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

     楼主| 发表于 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的软件来跑。


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



    全球首家只专注于RISC-V单片机行业应用的中文网站

      离线 

  • TA的每日心情
    奋斗
    2021-3-3 12:32
  • 签到天数: 10 天

    [LV.3]

     楼主| 发表于 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协议分发的开源指令集,任何人可以免费使用,且不禁止商业用途。



    全球首家只专注于RISC-V单片机行业应用的中文网站

      离线 

  • TA的每日心情
    拍拍
    2022-6-27 11:09
  • 签到天数: 25 天

    [LV.4]

    发表于 2020-9-13 00:50:09 | 显示全部楼层
    MIPS的棒交到了龙芯手中
    全球首家只专注于RISC-V单片机行业应用的中文网站
    高级模式
    B Color Image Link Quote Code Smilies

    本版积分规则

    关闭

    RISC-V单片机中文网上一条 /2 下一条



    版权及免责声明|RISC-V单片机中文网 |网站地图

    GMT+8, 2024-11-6 07:58 , Processed in 0.735574 second(s), 54 queries .

    快速回复 返回顶部 返回列表