文档详情

2016-第3章-3-增加内容流水线处理器设计教程.ppt

发布:2017-05-01约9.25千字共123页下载文档
文本预览下载声明
二、流水线转移指令控制;31 26;转移指令在ID级由专用加法器计算转移地址;条件转移指令同时判断转移条件。;向前转移和向后转移 100:load r1,0(r2) …… 227:bne 11111111111111111110000000 偏移量为-128,不为零转向100 …… 444:branch 00000000000000000011111111 偏移量为255,转向700 …… 700:add r4,r5,r6;无条件转移指令和条件转移指令的流水线操作;* 空操作指令(nop):占用一个时钟周期的位置,而不对处理机状态产生任何影响。 * 条件转移指令:需要EXE级结束产生的Z标志,故需要插入2条nop,如图1.23(a)。 * 无条件转移指令:不需判断Z标志,只需要插入1条nop,如图1.23(b)。 * 延迟指令:转移指令的下一条指令。模型机结构只有1条延迟指令(如果目标地址计算在EXE级,延迟指令有2条)。 ;1、无条件转移指令流水线执行过程 …… branch t1 nop …… t1: add r1, r1, 1 ;无条件转移指令的流水线操作——计算转移地址 ID级:计算转移目标地址,从IR获取偏移量进行符号扩展; IF级:nop被取出; BTAKEN=1,选择符号扩展偏移量disp;地址加法器计算转移目标地址,等时钟上升沿(本周期结束)将目标地址打入PC。;无条件转移指令的流水线操作——转向目标地址;无条件转移指令branch在ID级计算转移地址,所需要的控制信号: BTAKEN为1,转移地址= (PC)+ disp ;2、条件转移指令流水线执行过程: 无论是否转移延迟指令nop都要执行 Loop:add …… sub r1, r1, 1 nop bne/beq loop nop or …… ;图1.26 条件转移指令的流水线操作-——ALU计算条件Z(转移时);图1.27 条件转移指令的流水线操作一一使用Z判断是否转移;  bne或beq指令判断Z,以确定是否转移。 如果条件满足,BTAKEN为1,转移地址= (PC)+ disp 否则,BTAKEN为0,PC加1计算nop下一条顺序指令的地址。 在时钟上升沿到来时,计算出的地址被打人PC。若是转移目标地址,则从目标地址取出指令;否则取nop后的顺序指令。   综上所述,转移发生的条件(BTAKEN为1)为: BTAKEN=branch + bne + beqZ BTAKEN在ID级产生,但要注意,产生Z的指令要早它两个周期。;三、流水线各级信号的产生;流水线处理机的数据路径和控制信号; BTAKEN = branch+bne +beqZ SST = store SIMM = andi+ori+addi+subi+load+store WZ = andi+ori+addi+subi+and+or+add+sub WMEM = store  SLD = load  WREG = andi+ori+addi+subi+and+or+add      +sub+load;指令;;; BTAKEN = branch+bne +beqZ SST = store SIMM = andi+ori+addi+subi+load+store WZ = andi+ori+addi+subi+and+or+add+sub WMEM = store  SLD = load  WREG = andi+ori+addi+subi+and+or+add      +sub+load ALUOP1 = add+addi+sub+subi+load+store ALUOP0 = or+ori+sub+subi ;思考题:各流水级存放控制信号的流水线寄存器有何异同?;*;A.3.4 结构相关及解决方法;相关(冒险)分类;相关总是可以用停顿解决;结构相关:流水段竞争;多重访问寄存器堆;在一
显示全部
相似文档