经典的MIPS五级流水介绍ppt课件.ppt

上传人:飞****2 文档编号:69254266 上传时间:2023-01-01 格式:PPT 页数:31 大小:680KB
返回 下载 相关 举报
经典的MIPS五级流水介绍ppt课件.ppt_第1页
第1页 / 共31页
经典的MIPS五级流水介绍ppt课件.ppt_第2页
第2页 / 共31页
点击查看更多>>
资源描述

《经典的MIPS五级流水介绍ppt课件.ppt》由会员分享,可在线阅读,更多相关《经典的MIPS五级流水介绍ppt课件.ppt(31页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、经典的经典的MIPS五级流水介绍五级流水介绍三种MIPS核心指令1 算术逻辑运算指令(ALU instruction)2 存储指令(load or store instruction)3 分支指令(branch instruction)三种指令格式:三种指令格式:op rs rt rd shamt functR型I型型 op rs rtconstant or addressJ型型 op address五种寻址模式:五种寻址模式:1)寄存器寻址,寄存器寻址,操作数是寄存器2)基址或偏移寻址基址或偏移寻址,操作数在内存中,其地址是指令中基址寄存器和常数的和。3)立即数寻址立即数寻址,操作数是指令中

2、的常数.4)PC相对寻址相对寻址,地址是PC计数器和指令中常数的和。5)伪直接寻址伪直接寻址,跳转地址是指令中26位和PC计数器的高位相连而成五种五种MIPS寻址模式的图示:寻址模式的图示:1.立即数寻址 op rs rt immediate2.寄存器寻址 op rs rt rd funct寄存器3.基址寻址 op rs rt address寄存器 半字 字内存内存字节五种五种MIPS寻址模式的图示:寻址模式的图示:4.PC相对寻址 op rs rt addressPC字5.伪直接寻址 op addressPC.字内存通常,一条通常,一条MIPS指令包含的五个处理步骤:指令包含的五个处理步骤:

3、1)从存储器中读取指令。2)指令译码的同时读取寄存器。MIPS的指令格式允许指令译码和读取寄存器同时进行。3)执行操作或地址计算。4)在数据存储器中读取操作数。5)将结果写回寄存器堆。利用流水线实现MIPS指令流水线流水线 是一种可以降多条指令的执行过程相互重叠的实现技巧。理想情况下,流水线化带来的加速比是流水线的级数。流水线所带来的性能提升是通过提高指令的吞吐率来实现的,单挑指令的执行时间并没有减少。流水线的三种冒险结构冒险结构冒险 即硬件不支持多条指令在同一时 钟周期内执行。数据冒险数据冒险 在一个操作必须等待另一个操作完成后才能进行时,流水线必须停顿,我们称这种情况为数据冒险。控制冒险控

4、制冒险 处理器需要根据一条指令的结果做出决策,此时其他的指令可能仍在执行过程中。五级流水线的数据通路把指令划分为五个阶段意味着这是一个五级流水线,任意一周期内,最多五条指令在执行。把数据通路也划分为五个部分,每部分用相应的阶段命名。1)IF:取指令。2)ID:指令译码,读寄存器堆。3)EX:指令执行或地址计算。4)MEM:数据内存访问。5)WB:写回。五级流水线的数据通路五条指令对应的多时钟周期流水线图传统表示方式下多周期流水线图单周期数据通路图引入流水线寄存器从之前的流水线数据通路图可以看出,数据通路需要的值都是从上一级寄存器中流入下一级中。我们用被这些寄存器分开的两个阶段来命名它们,如IF

5、和ID阶段之间的流水线寄存器叫做IF/ID。引入流水线寄存器图流水线每级的工作流水线中的控制流水线中的控制一共9条控制线,根据流水线的五个步骤将控制线分为五组:1)取指令:读取指令内存和写PC的控制信号总是确定的,没特别需控制的。2)指令译码/读取寄存器:每个时钟周期内这个步骤所完成的工作都是相同的,不需设置控制线。3)指令执行/地址计算:设置的控制线有RegDst、ALUOp和ALUSrc。根据这些信号选择结果寄存器,确定ALU的操作,同时读取数据2或经过符号扩展后得到的立即数。4)内存访问:设置的控制线有Branch、MemRead和MemWrite,这些控制信号分别由相等分支、取和存指令

6、设定。除非控制信号指示这是一条分支指令同时ALU输出为0,将选择线性地址中的下一条指令作为PCSrc信号。5)写回:两条控制线分别是MemtoReg和RegWrite,前者决定是将ALU结果还是将内存数据传送寄存器堆,后者记录所要写入的数据。信号名称信号名称 设为设为0时的效果时的效果 设为设为1时的效果时的效果RegDst写入寄存器的目标编号来自rt字段(20:16)写入寄存器的目标号来自rd字段(15:11)egWrite无将写入数据的输入写入至写入寄存器输入对应的寄存器ALUSrcR第二个ALU操作数来自第二个寄存器堆的输出(读出数据2)第二个ALU操作数为已符号化扩展的指令低16位PC

7、SrcPC的值替换为计算PC+4的加法器的输出PC的值置为计算分支目标地址的加法器的输出MemRead无输入地址对应的数据内存的内容放置到读出数据的输出MemWrite无输入地址对应的数据内存的内容替换为写入数据的输入MemtoReg ALU提供寄存器写数据的输入值数据内存提供寄存器写数据的输入值三种流水线冒险结构冒险 如果由于资源争夺导致几条指令不能在同一时钟周期内执行,就称处理器中含有结构冒险。阻塞(stall)也叫气泡(bubble),解决结构冒险的一种方式。三种流水线冒险数据冒险 一个操作必须等待另一个操作完成后才能进行时,流水线必须停顿,我们称这种情况为数据冒险。转发(forward

8、)也叫旁路(bypass)。上一个操作的结果产生以后不必写回寄存器,直接转发给下一条指令。可以消除部分数据冒险。阻塞(stall)当一条指令试图读取一个寄存器而它前一条指令是load指令,并且该load指令写入的是同一寄存器时,必须采用相应的机制阻塞流水线。三种流水线冒险分支冒险 也叫控制冒险。每周期都取指令,但对与分支指令,必须等到MEM阶段才能确定是否执行分支。这种为了确定预取正确的指令导致的延迟叫做分支冒险。静态预测 阻塞直到分支发生完毕的速度实在太慢。比较普遍的提高分支阻塞速度的方法是假设分支不发生,继续执行;或者假定分支发生,跳到转移地址执行。可以将分支冒险的代价减半。动态分支预测

9、查找指令的地址观察上一次执行该指令时分支是否发生,如果上次执行时分支发生就从上次分支发生的地方开始取指令。一种实现方法是采用分支预测缓存或分支历史表。缩短分支的延迟 在流水线中提早分支指令的执行过程,就能减少需要清除的指令数,可以降低执行分支的代价。异常异常(exception)是控制冒险的另一种形式。MIPS流水线中可能发生的异常。异常处理 可以采用与发生分支时同样的基址,清除异常后面的所有指令并且从一个新的地址开始预取指令。许多异常要求我们最终完成那条产生异常的指令,就像没有异常一样。最简单的方法就是将这条指令消除掉,进而在异常处理的地方将这条指令重新执行一次。异常处理的最后一步将导致异常的指令的地址保存到异常程序计数器(EPC)中。Thanks

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁