我们常常在教科书 甚至很多文章上看到
RISC就是什么只加总
CISC有什么很复杂的操作阿,加减乘除之类的
在2020年的今天 他们究竟还存在那些差别呢?
https://i.imgur.com/KXLZkm0.jpg
(图为MIPS架构)
这架构就是很经典的RISC
他没有复杂的分支预测 uops感知器阿
甚至他只有单纯的ALU 执行整数运算
这就是RISC最原本的样子
那现在的ARM处理器又是什么样子呢?
我们拿一个最经典的处理器 ARM公版架构
也就是S835拿来魔改的A73架构
https://i.imgur.com/Xl0kLa3.png
(图为ARM A73架构)
已经不是只有单纯的ALU
又了很大量的ROB
再加上不论是NEON/ FP合并的运算
或者是INT 和AGU
早就违背当初RISC简单的初衷
RISC早期会快是因为元件设计简单
流程相对较短 执行的东西也单一
可以在一个周期 数次快速重复指令运算
但是如果要他执行一些比较进阶的命令
难度会高出许多
从上面这架构图来分析
我能很清楚的告诉你 这绝对早就不是RISC
因为RISC当时的定义是不可能有后面这些东西的
https://i.imgur.com/TaUVej8.png
(intel core 2架构)
从经典的X86架构图来看
A73架构所说的那些 X86也几乎都有
顶多就是运算器的不同
导致指令集的编写也不同
只有最早期的那几种东西
才是真正符合那种精神
后面大家都互相学习优缺点
让自己的架构更加完善且进步
RISC 常说是什么精简指令集
CISC 是复杂指令集
那个是为了应对 架构而写的指令集
你今天架构已经不是以前单纯的模样
那指令集也该为了架构而做出改变
毕竟 指令集的产生 就是应对着架构而去工作的东西
如果你要说 现在的ARM仍然是精简指令集
那配上这个架构 明显应该有那些地方是不符合的
以上这是我对ARM和X86架构的理解
可能有些部分是错误的
欢迎多多讨论
我之后应该也会写篇文章讨论M1跑分高的原因
也谢谢大家耐心看完