美文网首页
你所不知道的cpu分支预测

你所不知道的cpu分支预测

作者: 春天的尐熊 | 来源:发表于2021-02-04 09:27 被阅读0次

CPU执行一条指令的简单流程

  • 取指令
  • 分析指令
  • 执行程序

我们看一下整个流程,A部件进行取指令,把指令交给B部件去分析,B部件分析完交给C部件去执行。

这里就会引发一个问题,A取完指令之后就只能等B、C去分析和执行吗?

不是的,这时A会顺序的取下一条指令,此时A、B、C部件是一个并行的运作模式。

分支预测

既然A取完一条指令会马上取下一条指令,那么如果在一个分支语句中(if-else),cpu如何知道下一条语句是什么?这时虽然cpu不知道,但是cpu会猜,如果猜对了,那么程序运行就会很顺利,否则就得重来。

分支预测优化

#define likely(x)    __builtin_expect(!!(x), 1) //x经常成立
#define unlikely(x)  __builtin_expect(!!(x), 0) //x经常不成立

c语言下的宏,主要是影响生成的汇编代码,尽可能在分支预测上选择正确的分支,以及减少跳转次数。

相关文章

  • 你所不知道的cpu分支预测

    CPU执行一条指令的简单流程 取指令 分析指令 执行程序 我们看一下整个流程,A部件进行取指令,把指令交给B部件去...

  • 从 CPU 到比特币

    最近在学习计算机的体系架构,学到几个几个提升 CPU 运算能力的关键点: 1 流水线 2 分支预测 3 缓存设计(...

  • 深入理解CPU的分支预测(Branch Prediction)模

    以一个例子引入分支预测的概念:我们用256的模数随机填充一个固定大小的大数组,然后对数组的大于127的元素求和 在...

  • CPU:冒险和预测

    任何一本讲解CPU的流水线设计的教科书,都会提高流水线设计需要解决的三个冒险,分别是 结构冒险 数据冒险 控制冒险...

  • 疯狂展示

    剽悍国内有一所远近闻名的CPU大学,CPU指的是Crazy Presentation University。 你猜...

  • 一文告诉你CPU分支预测对性能影响有多大

    来源于stackoverflow上的一个问题为什么处理有序数组比处理无需数组快,原文中已经有了一些探讨,这里我们首...

  • 你不知道的电脑CPU!

    我们选购电脑时通常会看CPU型号那么电脑cpu后面带的字母是什么意思呢?下面就让我为大家来解释这些字母的意思。 K...

  • jemalloc 之 拾人牙慧

    一、__builtin_expect __builtin_expect 提供分支预测功能,参看这里。likely ...

  • Java 中的分支预测(转载)

    [TOC] 1.引言 分支预测是计算机科学中一个有趣的概念,它对我们的应用程序性能会产生深刻的影响。然而,这个概念...

  • 2018-12-08

    电脑cpu主频是什么意思? CPU的主频,即CPU内核工作的时钟频率(CPUClockSpeed)。通常所...

网友评论

      本文标题:你所不知道的cpu分支预测

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