当一条指令发送到 CPU 时,可能需要多个时钟周期才能完成,CPU 何时知道该指令已完成并可以开始处理下一条指令?我对 RISC 架构最感兴趣,因为它很简单,因为 CISC 可能包含复杂的微代码。
答案1
通常,对于不超标量并且没有复杂的预取或流水线逻辑,这是通过实际的电路连接完成的。当一条指令退出时,从退出逻辑到提取单元的线路将触发下一条指令的提取。
答案2
通过谷歌搜索“处理器时序图”,可以找到你要问的内容:
在时序图中,您可以看到指令何时被放到总线上,以及何时完成,它可以触发下一个要获取的指令等等。
是的,不同的指令具有不同的时钟周期数 - 例如,来自英特尔架构的那些 XMM 指令将比简单的 XOR 操作花费更长的时间。此外,由于缓存和流水线,相同的指令甚至可能具有不同的总体延迟。
既然您要求 RISC,那么也许您应该阅读 ARM 处理器时序图:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0301h/I998937.html