如果把单发射流水线比作单车道马路,多发射流水线就是多车道马路。例如Alpha 21264取指阶段每拍可以取4条指令,发射阶段每拍能同时发射6条指令,写回阶段每拍能写回6条指令,提交阶段每拍可以提交11条指令。
多发射流水线的指令和数据通路相比于单发射流水线来说都变宽了,因此寄存器端口、保留站端口、访存端口、ROB(reorder buffer)端口都需要增加。例如Alpha 21264,它的寄存器堆有8个读端口、6个写端口;有2个访存部件,数据高速缓存(cache)通过倍频(double-pumped)来实现的两个访问端口,每拍能访问两次数据高速缓存(cache)。由于采用多发射流水线的处理器的执行能力变强了,因此对数据和指令的供应能力提出了更高的要求。另外,在流水级的各个阶段同一拍中进行操作的多条指令之间可能存在相关性,因此在指令译码或重命名时不仅要判断前后拍指令的相关性,还需要判断同一拍中多条指令的相关性。
多发射流水线在20世纪80年代后期出现,在现代处理器中大量使用。现代处理器一般都包含两个以上访存部件,两个以上定点运算部件以及两个以上浮点运算部件,并通过浮点运算部件支持单指令流多数据流(single instruction multiple data,SIMD)运算。