为什么CISC处理器更难管道?在某种意义上,某些指令比其他指令"更复杂"?

Cel*_*tas 11 x86 instruction-set cpu-architecture pipelining risc

根据Miles Murdoca和Vincent Heuring的"计算机体系结构和组织",

CISC指令不适合流水线架构.为了使流水线有效工作,每条指令都需要与其他指令具有相似性,至少在相对指令复杂性方面如此.

为什么这是真的?指令复杂性是什么意思,并非所有指令都需要一个时钟周期才能开始执行; 如果指令正在读取或写入内存,则需要更长时间,但RISC处理器读取也会写入内存(当然)?

Dan*_*cco 12

指令的"复杂性"与它们的大小和格式可以变化的程度有关.以x86 IA32(Intel 32位)架构为例,即CISC.指令的大小可以在1到12个字节之间,并且它们的格式也有很大差异(格式是每个字段使用多少位,这些位所在的位置等等).

这意味着只有在开始解码后才能知道何时完成取指令.有些指令只需要一个循环来获取,有些则更多,这使得流水线过程变得复杂.

另一方面,所有ARM指令(RISC架构)都有4个字节.因此,一旦获取4个字节,您就知道可以将这些字节发送到管道的解码阶段,并且您可以立即开始获取下一条指令.