MIPS指令五级流水CPU设计资料课件.ppt

上传人:小飞机 文档编号:2167088 上传时间:2023-01-23 格式:PPT 页数:37 大小:2.41MB
返回 下载 相关 举报
MIPS指令五级流水CPU设计资料课件.ppt_第1页
第1页 / 共37页
MIPS指令五级流水CPU设计资料课件.ppt_第2页
第2页 / 共37页
MIPS指令五级流水CPU设计资料课件.ppt_第3页
第3页 / 共37页
MIPS指令五级流水CPU设计资料课件.ppt_第4页
第4页 / 共37页
MIPS指令五级流水CPU设计资料课件.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《MIPS指令五级流水CPU设计资料课件.ppt》由会员分享,可在线阅读,更多相关《MIPS指令五级流水CPU设计资料课件.ppt(37页珍藏版)》请在三一办公上搜索。

1、4.5.1 多周期CPU回顾4.5.2 指令流水基本概念4.5.3 MIPS指令流水的实现,4.5 MIPS指令五级流水CPU设计,4.5.1 多周期CPU回顾,多周期CPU特点指令的执行划分为多个步骤每个步骤占用一个CPU周期不同指令的指令周期不同指令串行执行提高了整体性能各部件利用率依然偏低CPI 1可以如何改进呢?,2.指令的二级流水,1.指令的串行执行,取指令 取指令部件 完成,总有一个部件 空闲,指令预取,若 取指 和 执行 阶段时间上 完全重叠,指令周期 减半 速度提高 1 倍,执行指令 执行指令部件 完成,时间?,4.5.2 指令流水基本概念,一、指令的几种执行方式,二、流水线操

2、作时空图,装入阶段,稳定流水阶段,排空阶段,指令的流水线结构类似于工厂中的装配流水线,使连续操作的多条指令,依次流入四个功能部件,使四个功能部件不停地依次处理不同指令的执行要求,这样在每隔一个部件工作时间t,就可送入一条新的指令,每经过时间t就可得到一条指令执行的结果,指令执行速度可提高四倍。,三、指令流水线的特点,流水线的每个阶段完成一条指令执行过程的一部分不同阶段并行完成不同指令执行过程的不同部分。多条指令同时运行,占用CPU不同的资源。流水线并没有缩短单条指令的时间,但提高了整个系统的吞吐率。连续不断地提供指令才能发挥流水线的效率。,四、影响指令流水线性能的因素,1.结构相关,不同指令争

3、用同一功能部件产生资源冲突,程序中相近的指令之间出现某种关联使指令流水出现停顿,影响流水线效率,解决办法:,停顿(插入汽泡),指令存储器和数据存储器分开,2.数据相关,不同指令因重叠操作,可能改变操作数的 读/写 访问顺序,采用 旁路技术,解决办法,写后读相关(RAW),读后写相关(WAR),写后写相关(WAW),采用乱序执行法解决,控制相关的冲突问题是由转移指令引起的。无条件转移指令条件转移指令子程序调用指令中断指令解决流水线中主要问题的几种方法:1.采用等待法解决指令相关的问题;2.采用分支预测:静态、动态预测.,3.控制相关,4.5.3 MIPS指令流水的实现,指令执行步骤取指令(IF)

4、指令译码(ID/RF)指令执行(EXE)读存储器(MEM)写回(WB)各步骤占用的资源IF:IM、PCID/RF:寄存器组、控制信号生成部件EXE:ALUMEM:DMWB:寄存器组,多周期CPU适合指令流水实现吗?已分解为多个步骤,但步骤间的资源冲突比较频繁,单周期CPU容易实现指令流水吗?,一、流水线的实现,每条指令的实现至多需要5个时钟周期,时钟周期如下取指令周期(IF)指令译码读寄存器周期(ID)执行有效地址计算周期(EX)存储器访问分支完成周期(MEM)写回周期(WB),不同类型的指令在以上5个时钟周期中进行的操作各不相同。,划分流水段,在水线的各个流水段之间加入被称为流水线寄存器的寄

5、存器堆,并在这些寄存器堆上标明所连接的流水段。所有用于在同一条指令的各个时钟周期之间保存临时数据的寄存器,都归入流水线寄存器这一类中。流水线寄存器保存着从一个流水段传送到下一个流水段的所有数据和控制信息。PC多路选择器被移到IF段,这样做的目的是保证对PC值的写操作只出现在一个流水段内,否则当分支转移成功的时候,流水线中两条指令都试图在不同的流水段修改PC值,从而发生写冲突。每个时刻,每条指令都只在一个流水段上是活动的,因此,任何指令所作的任何动作都发生在一对流水线寄存器之间,具体操作由指令类型决定。,各阶段寄存器保存的值,IF/IDPC+4IRID/EXEA、B、imm、PC+4、funcr

6、t/rd EXE/MEM运算结果:PC、ALU、结果状态中间结果:B、目的寄存器MEM/WB目的寄存器、ALU结果、存储器读出的结果,二、流水线的控制,控制到每个功能部件但是,每个部件执行的不是同一条指令解决方案把控制信号和数据一样流动起来为区分起见,把控制信号前面加上标记,如_IF等每个时钟周期往下一步骤传递控制信号使正确的控制信号到达正确的位置,流水控制的实现,在RF/ID阶段生成控制信号1个时钟周期后使用EX要用的控制信号2个时钟周期后使用MEM要用的控制信号3个时钟周期后使用WB要用的控制信号,支持流水的CPU,三种CPU比较,三、冲突时的解决方案,1.结构冲突,如果因资源冲突而无法使

7、用某种指令组合,那么就称流水线产生了结构冲突。暂停流水线执行,插入等待周期增加资源,解决资源冲突,消除结构冲突的最简单方法就是引入暂停周期,这必然要降低流水线的性能。,2.数据冲突,旁路技术解决RAW冲突,将结果尽快传送到需要使用它的位置,旁路技术对数据通路的修改,检测数据冲突,数据冲突的类型EXE段冲突MEM段冲突EXE段数据冲突的检测EXE冲突检测点:当前指令的ID/EX段和上一指令的EX/MEM段本条指令的源寄存器之一和上一条指令的目的寄存器相同上一条指令需要改写目的寄存器,且不是0寄存器EX/MEM.RegWrite AND EX/MEM.RegisterRd!=0 AND EX/ME

8、M.RegisterRd=ID/EX.RegisterReadRs(Rt)MEM段数据冲突的检测,需要将Rs保存到ID/EX段,与EXE段基本类似,略有不同,增加旁路后的CPU,必须进行暂停的数据冲突,解决方案,检测 暂停流水线互锁,检测,检测点:指令译码阶段检测条件上一指令是Load指令(特征:MemRead控制信号)且它的写入寄存器和当前指令的某一源寄存器相同ID/EX.MemRead AND(ID/EX.RegisterRt=IF/ID.RegisterRs OR ID/EX.RegisterRt=IF/ID.RegisterRd),暂停流水线,一旦发生此类冲突暂停流水线一个时钟让当前指

9、令的控制信号全部为0,即不进行任何写入操作让PC值保持不变让IF/ID段寄存器保持不变,能处理数据冲突的数据通路,3.控制冲突,流水线的控制冲突是因为程序执行转移类指令而引起的冲突。转移类指令如无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序的方向,从而造成流水线断流。数据冲突影响到的仅仅是本条指令附近少数几条指令,所以称为局部冲突。而控制冲突影响的范围要大得多,它会引起程序执行方向的改变,使流水线损失更多的性能,所以称为全局冲突。控制冲突会使流水线的连续流动受到破坏。当执行条件转移指令时,有两种可能结果:如发生转移,将程序计数器PC的内容改变成转移目标地址;如不

10、发生转移,只将PC加上一个增量,指向下一条指令的地址。,数据冲突由于数据的缺失引发控制冲突由于PC的缺失引发条件转移和无条件转移指令控制冲突对性能影响更大IF在指令流水的第一个阶段,所有指令都要在IF阶段使用PC对转移指令,至少要到ID阶段才能得到正确的PC暂停流水线一个或两个周期,直到分支指令达到MEM段确定了新的PC值为止,控制冲突的处理,暂停流水线直到有了正确的转移地址造成性能的降低预测分支不成功顺序执行下一条指令预测失败后要清除错误启动的指令预测分支成功更复杂一些,因为要计算转移目的地址预测失败后要清除错误启动的指令动态预测硬件根据上次分支的结果进行本次预测编译器处理延迟槽,支持流水的CPU,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号