精简指令集和复杂指令集在指令系统方面的主要区别?

2024年12月01日 12:46
有2个网友回答
网友(1):

不知道各位是不是程序员,下面以程序员的角度分析一下:

程序员视角:

  • CISC指令相当于粗粒度的接口,一次能做很多事情,且性能高

  • RISC指令相当于细粒度的接口,只能做通用的操作,且调用方需要发送更多指令

软件设计师视角:

  • CISC指令相当于faced模式,组合了更多的操作

  • RISC指令相当于抽出的通用方法,组合方式更多,更灵活

其他我知道的知识:

  • RISC(精简指令集计算机)

    • 能耗低:不太确定原因,不瞎说了(可以参考上面的老哥的回复).想不通具体原因.

    • 可执行代码长(占用空间大):编译出的可执行代码很啰嗦,就像上面的老哥回复的一样.

    • 可用指令少:只实现了常用的指令,精简指令集

    • 指令长度与执行时间整齐:由于精简指令,故指令长度设计成整齐的长度,指令执行时间也几乎都是1个时钟周期.

  • CISC(复杂指令集计算机)

    • 能耗高:不确定原因.(猜测可能与寄存器数量有关)

    • 可执行代码短:可执行代码很短,因为有粗粒度命令.也就是说,同一段程序,若编译成RISC和CISC,那CISC的编译后文件会小很多

    • 可用指令多:实现了更多命令

    • 指令长度与执行时间不整齐:由于指令很多,粒度粗细的都有,(以下 是猜猜)故设计时应将常用的指令设计成短指令,不常用的指令设计成长指令.且由于有粗粒度指令,所以执行的长短无法都规范到一个时钟周期,有些指令可能会执行很久.

网友(2):

泡1杯茶
复杂指令集:1、去泡茶;2、哥,茶泡来了;精简指令集:1、去;2、拿杯子;3、放茶叶;4、泡茶;5、拿来。
显然复杂指令速度快效率高;
泡50杯茶
复杂指令集:1、去泡茶;2、哥,茶泡来了;3、去泡茶;4、哥,茶泡来了;5、去泡茶;6、哥,茶泡来了;7、去泡茶;8、哥,茶泡来了......重复道50次。
精简指令集:1、去;2、拿杯子*50,3、放茶叶*50,4、泡茶*50,5、拿来。
精简指令集效率高耗能少...