Execution Units and Issue Ports

每个时钟周期,执行核可能向4个发射口中的1个或多个口分发微指令。在微架构层面,存储操作进一步被分为两个部分:存储数据以及存储地址操作。下图示出了Pentium 4处理器的全部4个发射口,通过这些发射口,微指令被分发到了不同的单元,或执行计算操作,或执行读取操作,或执行数据/地址存储操作。由于某些执行单元能够以2倍的速度执行微指令,所以有些发射口可以在一个时钟周期内分发两条微指令。那些2倍速的执行单元被标记为“Double Speed”(即ALU0和ALU1)。

Pentium 4处理器流水线(9)

Port0在第一个周期的前半段,0号发射口可以分发:或1条浮点MOVE微指令(包括浮点stack move,浮点exchange或浮点store data),或1条算逻单元微指令(包括算术,逻辑或者存储数据)。在同一个周期的后半段,0号发射口可以再分发1条类似的算逻单元微指令。

Port1在第一个周期的前半段,1号发射口可以分发:1条浮点执行微指令(包括所有的浮点操作(move除外),所有的SIMD操作)或1条常速整型操作微指令(乘法,移位和循环移位),或1条算逻单元微指令(算术,逻辑或者分支)。在同一个周期的后半段,1号发射口可以再分发1条类似的算逻单元微指令。

Port2每个周期,2号发射口可以分发1条读取操作微指令。

Port3每个周期,3号发射口可以分发1条存储地址操作微指令。

因此,所有发射口的总计最大带宽可以达到每周期6条微指令。每个发射口下方的流水线包括多个执行单元。微指令被分发到相应操作类型的流水线中。例如,算逻单元和浮点执行单元(加法器,乘法器,与除法器)共享一条流水线。

相关文章: