美文网首页
第一章 理解高性能程序(5) 乱序执行

第一章 理解高性能程序(5) 乱序执行

作者: 耕田者 | 来源:发表于2022-07-08 21:13 被阅读0次

乱序执行

       流水线的另一个改进策略甚至可以更高地提升CPU资源利用率。即是处理器制造商开始增加冗余处理单元(例如Intel P6已经有两个整数处理单元和两个浮点数处理单元),这让并发执行两条指令成为可能。

       在Pentium Pro(P6)之前,指令以它们地出现次序顺序地进入流水线。但是当两条连续指令之间有数据依赖时,则他们不能被并行处理,必须在下一条指令执行完后,再执行下一条指令:

           a = b + 1; // 1

           c = a + 5; // 2

           d = e + 10; // 3

            f = d + 15; // 4

        这个问题的解决方案是取下一条没有依赖的指令,先于有依赖的指令执行。参见下图的可视化解释:

Fig.3 乱序执行示意图

       左图是保持指令顺序的传统执行策略。右图通过重新排序的并发执行,指令3将先于指令2执行。

相关文章

  • 并发编程:乱序执行的那些事儿五分钟给你整明白

    什么是乱序执行 乱序执行 [1] ,简单说就是程序里面的代码的执行顺序,有可能会被编译器、CPU 根据某种策略调整...

  • 乱序和随机抽人程序

    乱序小程序 输出乱序前:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13...

  • cpu乱序执行指令

    什么是“cpu乱序执行指令”代码,最终会变成指令,如下: 证明cpu乱序执行指令 参考博客Java并发编程之hap...

  • JVM-004-内存屏障

    cpu层级保证有序性  cpu指令乱序执行虽然提升了效率,但是在某种特定的情况,我们并不需要指令乱序执行。为了保障...

  • ios基础之一天一道笔试题(5)

    请写出程序执行后的输出结果: 结果:0,1,4,5,3,2解析:本题主要考察对队列、线程执行顺序、同步、异步的理解...

  • 处理器结构--ReorderBuffer

    ReorderBuffer的作用 Reorder Buffer用来保存在乱序执行之前的(OOOE)指令执行顺序,当...

  • 前端学习

    书:《高性能HTML5》、《CSS SECRETS》、《JavaScript高级程序设计》、《JavaScript...

  • 乱序执行(指令重排)

    乱序执行(指令重排) 是这样说的: private static Service service = null...

  • CPU乱序执行反证

    循序运行 主条目:指令周期在早期的处理器中,指令的执行一般在以下的步骤中完成: 1 指令获取。2 如果输入的运算对...

  • 读《深入理解Java虚拟机》- 笔记03

    《深入理解Java虚拟机:JVM高级特性与最佳实践》第2版 第5章 调优案例分析与实战 23. 高性能硬件上的程序...

网友评论

      本文标题:第一章 理解高性能程序(5) 乱序执行

      本文链接:https://www.haomeiwen.com/subject/vpyibrtx.html