流水线设计目录流水线设计流水线定义高级流水线1234处理器性能参数目录流水线设计流水线定义高级流水线1234处理器性能参数倍频系数主频主频=外频*倍频系数外频处理器性能参数流水线制造工艺前端总线频率指令集缓存处理器性能参数目录流水线设计流水线定义高级流水线1234处理器性能参数流水线定义流水线定义流水线定义流水线定义Ifetch取指1Reg/Dec:取操作数和译码2Exec:执行3Mem:存储器访问4Wr:写回5从指令存储器取出指令取寄存器和指令译码计算存储器的地址从数据存储器中读取数据将数据写回到寄存器堆理想流水线假设所有指令均完全独立流水线定义流水线技术无助于减少单个任务的处理延时,但有助于提高整体工作负载的吞吐率多个不同任务同时操作,使用不同资源流水线的速率受限于最慢的流水段123流水线性质流水段的执行时间如果不均衡,那么加速比就会降低开始填充流水线的时间和最后排放流水线的时间降低加速比相关将导致流水线暂停456流水线性质目录流水线设计流水线定义高级流水线1234处理器性能参数流水线级数选择流水线的相关问题流水级分配流水线级数选择每一级的逻辑通路就越短,时钟周期就越快,处理器的性能也就越高流水级数大的优势流水线级数选择流水级数大的劣势3、锁存硬件开销也将逐渐增大2、传输延迟变大还需要有固定的锁存开销时间1、指令流的断流所产生的延迟增加max(1)Lknt流水线级数选择L:逻辑通路长度t:锁存开销时间k:连续执行指令数nmax:最佳流水线长度流水线级数选择减少t值价格目标性能流水级分配RRRLL/2L/2RRclockclock流水级分配优点:流水级之间彼此独立,中间信号可以减少,减少中间锁存的开销依据功能划分缺点:很难完全平衡流水线中各流水级的操作1前一个子功能流水级的输出是下一个子功能流水级的输入234所划分的子功能流水线的功能等价于原功能5在各子功能流水级之间仅存在输入与输出的联系,而无其它任何内部联系各子功能流水级的功能实现可由硬件完成各子功能流水级的执行时间通常相等流水级分配原则原则原则原则原则流水线的相关问题流水线的相关会造成流水线的断流,影响整个流水线的效率流水线相关:是指邻近指令之间由于某种关系,出现了不能同时被流水操作的现象流水线的相关问题资源相关局部性相关数据相关全局性相关变址转移中断在同一机器时钟周期内争用同一个功能部件所发生的冲突资源相关解决方法:①将取指操作推迟一个时钟②增设一个存储器,将指令和数据分开存放③采用双端口存储器流水线的相关问题流水线的相关问题解决办法1解决办法2流水线的相关问题在程序中,一条指令的执行需等前一条指令执行完后才能进行例:132321RRRRRRSUB)()(;,,451514RRRRRRADD)()(;,,解决方法:①推迟ADD指令的取数操作②采用数据旁路(内部向前)技术,直接把结果送给下一条指令。取数译码取指ADD执行取数译码取指SUB4321时钟指令数据相关流水线的相关问题由条件转移指令引起变址转移解决方法:①延迟转移法:加入空操作,等待转移条件形成②猜测法:选择出现概率较高的分支进行指令预取流水线的相关问题由中断引起的转移中断解决方法:中断处理目的不是如何缩短断流时间,而是如何处理好断点现场和中断后的恢复问题。流水线的相关问题不论在哪条指令的哪一段发生了中断申请,都不再允许当时还未进入流水线的后继指令再进入,但已在流水线中的指令可流动到执行完为止,然后再转入中断处理程序。例:输入输出设备申请的中断不精确断点法流水线的相关问题采用后援寄存器来保存进入流水线的各指令的现场状态。所以不管在进入流水线的指令的任何段发生中断申请,断点都是精确的。例:执行错误的中断精确断点法流水线的相关问题目录流水线设计流水线定义高级流水线1234处理器性能参数超标量流水线超流水线标量流水线超标量流水线超标量流水线是指在每个时钟周期向流水线发射多条指令,并能从流水线流出多个结果。把一般完成一条指令的流水线段再细分成更多的流水线段。这样原时钟周期的几分之一的时间间隔就可以发射一条指令,并从流水线流出一个结果0123456789时间(以基本周期表示)取指译码执行写回超流水线超流水线周期时间图8-9四种标量流水技术的时空图(阴影方框表示指令的执行阶段)(d)超标量超流水周期时间周期时间(c)标量超流水(b)超标量流水(a)一般标量流水周期时间指令序列指令序列指令序列指令序列