关于指令执行周期的细节思考

这篇主要以2012年真题为例说明一些重要问题

关于指令执行周期的细节思考_第1张图片

分析:I3的ID段阻塞比较好理解,因为要等I2把数据写回以后才可以取数据。

 I4的IF段被阻塞de 原因:与题目中说的“”按序发射,按序完成“有关,答案并没有给我解释,为此我特地翻阅了《计算机组成与设计》发现了这样的概念:

(1)多发射:一种单时钟周期内发射多条指令的机制

(2)按序完成:流水线执行的结果以取指顺序写回程序员可见寄存器的一种提交方式,顺序执行。

这就可以解释IF阻塞的原因,要等I3的ID取完数据你在取指令啊,要不然你也取了指令,接下来要取数据,就不一定能保证I3和I4顺序执行了。

 

接下来是对于最后一问的分析,我有了一个有趣的发现,也明白题目为什么那么说?

两种指令执行的路线

关于指令执行周期的细节思考_第2张图片

这个时候画出来的图:

关于指令执行周期的细节思考_第3张图片

此时指令执行需要18个时钟周期,怎么答案不对,发现我与答案的不同就在于R1和R2的处理顺序的问题,换一下顺序,

关于指令执行周期的细节思考_第4张图片

关于指令执行周期的细节思考_第5张图片

现在就是17个时钟周期了,所以题目说至少多少个时钟周期是有它的含义在的,也就是命题老师希望我们在答案解答的时候考虑到了两种方法,并且已经学会了取舍!

你可能感兴趣的:(计算机组成原理,指令执行周期)