指令重排
从源码到指令执行一共有 3 种级别重排序:
- 1、编译器重排序: 例如将循环内重复调用的操作提前到循环外执行;
- 2、处理器系统重排序: 例如指令并行技术将多条指令重叠执行,或者使用分支预测技术提前执行分支的指令,并把计算结果放到重排列缓冲区(Reorder Buffer)的硬件缓存中,当程序真的进入分支后直接使用缓存中的结算结果;
- 3、存储器系统重排序: 例如写缓冲区和失效队列机制,即是可见性问题,从内存的角度也是指令重排问题。
指令重排序类型:
从源码到指令执行一共有 3 种级别重排序:
指令重排序类型: