1. 超标量流水线的定义
超标量结构:通常,具有两条或两条以上并行工作的流水线结构就称为超标量结构。
上一篇笔记说到,优化流水线的方向可以加深流水线,这一篇笔记介绍另一个方向,就是拓宽流水线。
还拿做菜的例子来看,上一篇笔记只有一条流水线,叫做标量流水线。下图进行了拓宽,洗菜池子加宽1倍,后续步骤都拓宽一条,那么每个环节就同时会有两道菜在被处理。这也叫双发射流水线。继续拓宽流水线可以得到三发射、四发射。
2. Pentium超标量处理器 - 第一款超标量x86 CPU
双流水,5级流水线。
两条流水线,U流水和V流水。
两条流水线共用取指和译码部件,各自拥有自己的地址生成逻辑、ALU及数据Cache接口。
在一个时钟周期内,可以同时发射两条指令。
其实,第一台超标量计算机是CDC6600,但是并没有采用流水线技术。只不过现在使用超标量技术的处理器也都采用了流水线技术。
3. Cortex-A9的超标量流水线
4发射,8~11级流水。
4. 标量流水线和超标量流水线的比较
之前,我们将单周期处理器改进为标量流水线结构,是时间并行性的优化,主要是对现有硬件的划分。
标量流水线变成超标量流水线,是空间并行性的优化,需要成倍增加硬件资源。
5. 超标量流水线与多核的关系
如下图所示,
比如上图的core i7处理器,有4个cpu核,每个核中都集成了一个4发射16级超标量流水线。
这就是多核和超标量流水线的关系。