18. 超标量流水线

1. 超标量流水线的定义

超标量结构:通常,具有两条或两条以上并行工作的流水线结构就称为超标量结构。

上一篇笔记说到,优化流水线的方向可以加深流水线,这一篇笔记介绍另一个方向,就是拓宽流水线。

还拿做菜的例子来看,上一篇笔记只有一条流水线,叫做标量流水线。下图进行了拓宽,洗菜池子加宽1倍,后续步骤都拓宽一条,那么每个环节就同时会有两道菜在被处理。这也叫双发射流水线。继续拓宽流水线可以得到三发射、四发射。

超标量流水线做菜

2. Pentium超标量处理器 - 第一款超标量x86 CPU

双流水,5级流水线。

两条流水线,U流水和V流水。

两条流水线共用取指和译码部件,各自拥有自己的地址生成逻辑、ALU及数据Cache接口。

在一个时钟周期内,可以同时发射两条指令。

Pentium超标量处理器流水线示意图
Pentium处理器结构简化示意图

其实,第一台超标量计算机是CDC6600,但是并没有采用流水线技术。只不过现在使用超标量技术的处理器也都采用了流水线技术。

3. Cortex-A9的超标量流水线

4发射,8~11级流水。

Cortex-A9超标量流水线

4. 标量流水线和超标量流水线的比较

之前,我们将单周期处理器改进为标量流水线结构,是时间并行性的优化,主要是对现有硬件的划分。

标量流水线变成超标量流水线,是空间并行性的优化,需要成倍增加硬件资源。

5. 超标量流水线与多核的关系

如下图所示,

超标量流水线与多核的关系

比如上图的core i7处理器,有4个cpu核,每个核中都集成了一个4发射16级超标量流水线。

这就是多核和超标量流水线的关系。

你可能感兴趣的:(18. 超标量流水线)