指令乱序执行给我们带来了什么?
在冯.洛伊曼时代计算机各个操作只能串行完成,任何时刻都只能进行一条指令待上一条指令执行完了才能执行下一条指令,随着社会生产力水平提高,人们追求的目标之一就是高运算速度,因此并行处理技术便成为计算机发展的主流。
|
下面看一幅图展示了CPU一条指令执行经历了取指令、指令译码、执行指令、访存取数、结果写回等5个阶段。
假如有5条指令,第一条指令去内存读数据,等数据读回来后才开始执行下面一条数据。会有什么效果呢?下面是一副烧水泡茶图。
如何才能在最短时间内喝上茶呢?一种方案要等20分钟后才能喝茶另一种方案16分钟后就能和上茶。毫无疑问第二种并行的方案更节省时间。同理CPU要在最短时间内执行完指令也需要用像烧水泡茶那样的并行技术处理一些指令。
|
- 时间并行的概念就是采用流水处理部件,保证计算机有较高的性能价格比。
- 空间并行即资源重复,主要体现在处理器系统和多计算机系统。
- 时间+空间并行指时间重复和资源重复的综合应用,是时间并行和空间并行的结合,例如奔腾CPU就采用了超标量流水技术,结合了时间并行和空间并行的形式,引入了指令的乱序执行和分支预测技术,大大提高了处理器的性能。因此,超标量指令流水线结构一直延续到现代处理器
|
这是一幅“CPU流水结构”图,指令流水线属于CPU流水结构中执行部件之一,流水线分别有指令流水线、算术流水线、处理机流水线三种类型,而计算机则使用的是指令流水线。那么超标量指令流水线又是什么呢?
解释超标量指令流水线包含三个概念:指令流水线、标量、超标量。
-
指令流水线又叫指令步骤的并行,处理过程分为取指令、译码、取操作数、执行、写回等几个并行处理的过程
-
超标量指令流水线也具有取指令、译码、取操作数、执行、写回这个几个步骤
-
标量指计算机只有一条指令流水线
-
超标量值计算机具有两条以上的指令流水线
通过上面一组图直观比较后发现,非标量,标量,超标量在相同单位时间内执行的指令得出如下结论
类别 | 单位时间 8 |
---|---|
非标量 | 2条指令 |
标量 | 5条指令 |
超标量 | 10条指令 |
显然,流水技术的应用使计算机的速度有了大大提高,现代计算机CPU由于采用了超标量流水技术从而引入了指令乱序执行。不过CPU也不是随时都能乱序执行的,前提是指令之间不能有依赖关系。如下图中所示
|
输出:
第1894020次 (1,1)
第1894021次 (1,1)
第1894022次 (1,1)说明cpu乱序执行指令之间不能有依赖关系。
参考;百度百科,计算机组成原理