CPU的乱序执行、指令流水线技术

原创 2018年04月15日 10:49:00

1、乱序执行
乱序执行(out-of-order execution)是指CPU采用了允许将多条指令不按程序规定的顺序分开发送给各相应电路单元处理的技术。比方Core乱序执行引擎说程序某一段有7条指令,此时CPU将根据各单元电路的空闲状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路执行。
在各单元不按规定顺序执行完指令后还必须由相应电路再将运算结果重新按原来程序指定的指令顺序排列后才能返回程序。这种将各条指令不按顺序拆散后执行的运行方式就叫乱序执行(也有叫错序执行)技术。
这样将根据个电路单元的状态和各指令能否提前执行的具体情况分析后,将能提前执行的指令立即发送给相应电路单元执行,在这期间不按规定顺序执行指令,然后由重新排列单元将各执行单元结果按指令顺序重新排列。采用乱序执行技术的目的是为了使CPU内部电路满负荷运转并相应提高了CPU的运行程序的速度。
分枝技术:(branch)指令进行运算时需要等待结果,一般无条件分支只需要按指令顺序执行,而条件分枝必须根据处理后的结果,再决定是否按原先顺序进行。

2、指令流水线技术
定义:指令流水线是为提高处理器执行指令的效率,把一条指令的操作分成多个细小的步骤,每个步骤由专门的电路完成的方式。
原理:举个例子: 例如一条指令要执行要经过3个阶段:取指令、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么这条指令执行需要3个机器周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。
步骤:指令步骤的并行。常见的六级流水线将指令流的处理过程划分为取指(FO)、译码(DI)、计算操作数地址(CO)、取操作数(FO)、执行指令(EI)、写操作数(WO)等几个并行处理的过程段。这就是指令6级流水时序。在这个流水线中,处理器有六个操作部件,同时对这六条指令进行加工,加快了程序的执行速度。目前,几乎所有的高性能计算机都采用了指令流水线。

参考文献:
https://baike.baidu.com/item/%E6%8C%87%E4%BB%A4%E6%B5%81%E6%B0%B4%E7%BA%BF/9280009?fr=aladdin

https://baike.baidu.com/item/%E4%B9%B1%E5%BA%8F%E6%89%A7%E8%A1%8C/4944129?fr=aladdin

《计算机体系结构 硬件篇2》之 CPU的组成

-
  • 1970年01月01日 08:00

谈乱序执行和内存屏障

十多年前的程序员对处理器乱序执行和内存屏障应该是很熟悉的,但随着计算机技术突飞猛进的发展,我们离底层原理越来越远,这并不是一件坏事,但在有些情况下了解一些底层原理有助于我们更好的工作,比如现代高级语言...
  • dd864140130
  • dd864140130
  • 2017-02-22 19:21:15
  • 6795

RISC和CICS指令流水线的区别

Reprint:http://www.surf.org.uk/articles/CISC_vs._RISC.html RISC architectures lend themselves m...
  • yxc135
  • yxc135
  • 2013-09-13 19:59:59
  • 2026

cpu 乱序执行与问题

“CPU执行乱序”是一个常见的话题,鉴于自己一直对这个概念存在些许理解的差池,故今日写一篇文章留作备忘。注,这里仅仅讨论CPU执行乱序,不涉及编译器的乱序。 1.CPU 为什么会乱序? 本质原因是CP...
  • lizhihaoweiwei
  • lizhihaoweiwei
  • 2016-01-25 16:42:51
  • 2534

cpu乱序执行

转自:http://blog.jobbole.com/40844/ 原文:http://www.gamedev.net/page/resources/_/technical/general-prog...
  • harryhare
  • harryhare
  • 2015-02-22 12:09:08
  • 547

(转)CPU乱序执行原理

处理器基本上会按照程序中书写的机器指令的顺序执行。按照书写顺序执行称为按序执行(In-Order )。按照书写顺序执行时,如果从内存读取数据的加载指令、除法运算指令等延迟(等待结果的时间)较长的指令后...
  • gjq_1988
  • gjq_1988
  • 2014-09-24 11:02:10
  • 2327

CPU指令的流水线执行

指令集是CPU体系架构的重要组成部分。CPU的指令执行一般包括取指、译码和执行,这是经典的三级指令执行流水线。本文阐述CPU流水线设计的由来和改进技术以及软件开发人员对于流水线需要注意的问题。...
  • yueqian_scut
  • yueqian_scut
  • 2014-07-13 23:22:09
  • 4239

《大话处理器》连载——微架构(19) 乱序执行总结

简单来说,指令在乱序执行内核中的处理过程可分为3个步骤:   指令乱序执行步骤   乱序执行步骤   In-order issue ...
  • muxiqingyang
  • muxiqingyang
  • 2011-08-25 22:06:10
  • 5496

指令流水线—你理解多少?

http://blog.csdn.net/yi_zz/article/details/7479912 流水线: 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件...
  • maimang1001
  • maimang1001
  • 2012-05-14 22:34:24
  • 4579

乱序执行中 寄存器重命名(Register Renaming )技术介绍

寄存器重命名技术在乱序执行流水线中有两个作用。一是消除指令之间的寄存器读后写相关(WAR),和写后写相关(WAW);二是当指令执行发生例外或转移指令猜测错误而取消后面的指令时可以保证现场的精确。 寄...
  • edonlii
  • edonlii
  • 2013-04-08 11:36:15
  • 6596
收藏助手
不良信息举报
您举报文章:CPU的乱序执行、指令流水线技术
举报原因:
原因补充:

(最多只允许输入30个字)