2.指令调度
在前面乱序设置陷阱的例子中,如果没有那个聪明的士兵,乱序也就无从谈起。同样,处理器的乱序执行内核也需要一个调度器,分析指令间的相关性,分析指令什么时候能开始执行。...指令什么时候能开始执行呢?
对于一条指令来说,它有操作码和操作数,操作码描述指令要做什么,处理器会安排个功能单元( function unit)去执行它。...(2) 该指令的源操作数是否已经准备好。
只要满足这两条要求,指令就可以去执行,而不需要等待前面的指令完成。这样处理器就完成了乱序调度及并行调度。
以前面经过寄存器重命名的指令为例,
?...3.指令的顺序提交
在指令的执行过程中,通常会有中断和异常产生,如在下面的这个例子中,
?...乱序执行后,指令的结果虽然出来了,但是这个结果并没有立即提交到ISA寄存器中,而是先缓存起来,只有当前指令前面的指令提交后,这条指令才能提交。