指令流水线的工作原理

电子说

1.3w人已加入

描述

要理解指令流水线,先大概回顾一下CPU的内部结构:

流水线

图a

流水线

图b

由上面两个图我们知道,一条指令要被执行,需要通过一个电路把指令从存储器中取出,放进CPU里面,再由CPU里面的另一个电路ALU去执行(图b中的左边部分)。也就是说,取指令和执行指令是由两部分不同的电路完成的。

流水线

图1

上图是指令一条一条执行的过程。

流水线

图2

图2表示,当指令执行部件的某一部分电路空闲的时候,这个时候就可以采用流水线的方式。图中的一个方框表示一个时间周期。

流水线

这一部分表示对于第一条指令来说,当进入第二个时间周期,它已经处于执行阶段,ALU电路部分在工作,但是用于取指令的那部分电路空闲了,所以这部分取指令电路可以用于取出第二条指令,这就是指令流水线的基本原理。

 

图3

这个和我们工厂的流水线是一样的道理,流水线上不同的工人代表不同的电路部分。

流水线

上图是一条指令需要六个不同的电路进行配合。

流水线

当采用流水线以后,会出现一些问题,比如,在写后读相关问题中,第二条指令开始工作的时候,R1的内容必须已经确定,否则就会出错。对于这样的问题,就要有相应的解决办法。

由流水线产生了一些相应的技术:

流水线

流水线

上图中的一个方格代表一个时钟周期,在同一个时钟周期里面,可以有4条或者3条指令同时并发执行。注意,是并发,而不是并行,意味着CPU还是一个,只不过是利用不同的时间片。

流水线

流水线

上图中的一个时钟周期被多条指令分开,也就是说,执行指令的某一个动作的某个电路部分,不必等这个时钟周期结束,在同一个时钟周期内,就可以执行另外一条指令。比如,假定图3中的每个工人完成一个动作(检查一个零件或者打一个螺丝)规定为1分钟(时钟周期),但在超流水线技术里面,这个工人10秒钟就检查完了一个零件,剩下的50秒就可以检查另外的零件。

 审核编辑:汤梓红
 
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分