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

上传人(卖家):三亚风情 文档编号:2491439 上传时间:2022-04-25 格式: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页
点击查看更多>>
资源描述

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. 指令的串行执行指令的串行执行取指令取指令 取指令部件取指令部件 完成完成总有一个部件总有一个部件 空闲空闲指令预取指令预取若若 取指取指 和和 执行执行 阶段时间上阶段时间上 完全重叠完全重叠指令周期指令周期 减半减半

2、 速度提高速度提高 1 倍倍执行指令执行指令 执行指令部件执行指令部件 完成完成取指令取指令 1执行执行指令指令 1 取取指令指令 2 执行执行指令指令 2 取取指令指令 3 执行指令执行指令 3取指令取指令 2执行指令执行指令 2取指令取指令 1执行指令执行指令 1时间时间?4.5.2 指令流水基本概念指令流水基本概念一、指令的几种执行方式二、二、 流水线操作时空图流水线操作时空图装入阶段装入阶段稳定流水阶段稳定流水阶段排空阶段排空阶段执行操作执行操作取数操作取数操作分析指令分析指令取指令取指令 空间空间T0 T1 T2 T3 T4 T5 T6 T7 T8 T9 时间时间I234567 指令

3、的流水线结构类似于工厂中的装配流水线,使连续操作的多条指令,指令的流水线结构类似于工厂中的装配流水线,使连续操作的多条指令,依次流入四个功能部件,使四个功能部件不停地依次处理不同指令的执行要依次流入四个功能部件,使四个功能部件不停地依次处理不同指令的执行要求,这样在每隔一个部件工作时间求,这样在每隔一个部件工作时间t,就可送入一条新的指令,每经过时间,就可送入一条新的指令,每经过时间t就可得到一条指令执行的结果,指令执行速度可提高四倍。就可得到一条指令执行的结果,指令执行速度可提高四倍。三、指令流水线的特点三、指令流水线的特点指令指令 1 与指令与指令 4 冲突冲突指令指令 2 与指令与指令

4、5 冲突冲突指令指令1、指令、指令3、指令、指令 6 冲突冲突COFOEI WODIFICOFOEIWODIFICO FOEIWODIFICO FOEI WODIFICOFOEIWODIFICO FOEIWODIFICOFOEIWODIFICOFOEI WODIFICO FOEIWODIFI指令指令 1指令指令 2指令指令 3指令指令 4指令指令 5指令指令 6指令指令 7指令指令 8指令指令 9 1 2 3 4 5 6 7 8 9 10 11 12 13 14t四、影响指令流水线性能的因素四、影响指令流水线性能的因素1. 结构相关结构相关不同指令争用同一功能部件产生资源冲突不同指令争用同一功

5、能部件产生资源冲突程序中相近的指令之间出现某种关联程序中相近的指令之间出现某种关联使指令流水出现停顿,影响流水线效率使指令流水出现停顿,影响流水线效率解决办法解决办法: 停顿(插入汽泡)停顿(插入汽泡) 指令存储器和数据存储器分开指令存储器和数据存储器分开2. 数据相关数据相关不同指令因重叠操作,可能改变操作数的不同指令因重叠操作,可能改变操作数的 读读/写写 访问顺序访问顺序 采用采用 旁路技术旁路技术解决办法解决办法 写后读相关(写后读相关(RAW)SUB R1,R2,R3ADD R4,R5,R1;(;(R2) (R3) R1;(;(R5)+(R1) R4 读后写相关(读后写相关(WAR)

6、STA M,R2ADD R2,R4,R5;(;(R2) M 存储单元存储单元;(;(R4)+(R5) R2 写后写相关(写后写相关(WAW)采用采用乱序执行乱序执行法解决法解决MUL R3,R2,R1SUB R3,R4,R5;(;(R2) (R1) R3;(;(R4) (R5) R3n控制相关的冲突问题是由转移指令引起的。控制相关的冲突问题是由转移指令引起的。无条件转移指令无条件转移指令条件转移指令条件转移指令子程序调用指令子程序调用指令中断指令中断指令n解决流水线中主要问题的几种方法解决流水线中主要问题的几种方法: 1.采用等待法解决指令相关的问题采用等待法解决指令相关的问题; 2.采用分支

7、预测采用分支预测: 静态静态 、动态预测、动态预测.3. 控制相关控制相关4.5.3 MIPS指令流水的实现指令流水的实现指令执行步骤 取指令(IF) 指令译码(ID/RF) 指令执行(EXE) 读存储器(MEM) 写回(WB)各步骤占用的资源 IF:IM、PC ID/RF:寄存器组、控制信号生成部件 EXE:ALU MEM:DM WB:寄存器组多周期CPU适合指令流水实现吗?已分解为多个步骤,但步骤间的资源冲突比较频繁单周期CPU容易实现指令流水吗?SignImmCLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegister

8、File0101ARDDataMemoryWDWE01PC01PCInstr25:2120:1615:05:0SrcB20:1615:112+ALUResultReadDataWriteDataSrcAPCPlus4PCBranchWriteReg4:0Result31:26RegDstBranchMemWriteMemtoRegALUSrcRegWriteOpFunctControlUnitZeroPCSrcCLKALUControl2:0ALU1010010100一、流水线的实现一、流水线的实现 每条指令的实现至多需要5个时钟周期,时钟周期如下取指令周期(取指令周期(IF)指令译码读寄存器

9、周期(指令译码读寄存器周期(ID) 执行有效地址计算周期(执行有效地址计算周期(EX) 存储器访问分支完成周期(存储器访问分支完成周期(MEM) 写回周期(写回周期(WB) 不同类型的指令在以上5个时钟周期中进行的操作各不相同。划分流水段划分流水段SignImmECLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegisterFile0101ARDDataMemoryWDWE01PCF01PCInstrD25:2120:1615:0SrcBE20:1615:11RtERdE2+ALUOutMALUOutWReadDataWWri

10、teDataEWriteDataMSrcAEPCPlus4DPCBranchMWriteRegM4:0ResultWPCPlus4EPCPlus4FZeroMCLKCLKWriteRegW4:0ALUWriteRegE4:0CLKCLKCLKFetchDecodeExecuteMemoryWriteback在水线的各个流水段之间加入被称为流水线寄存器的寄存器堆,并在这些寄存器堆上标明所连接的流水段。 所有用于在同一条指令的各个时钟周期之间保存临时数据的寄存器,都归入流水线寄存器这一类中。 流水线寄存器保存着从一个流水段传送到下一个流水段的所有数据和控制信息。PC多路选择器被移到IF段,这样做的

11、目的是保证对PC值的写操作只出现在一个流水段内,否则当分支转移成功的时候,流水线中两条指令都试图在不同的流水段修改PC值,从而发生写冲突。每个时刻,每条指令都只在一个流水段上是活动的,因此,任何指令所作的任何动作都发生在一对流水线寄存器之间,具体操作由指令类型决定。各阶段寄存器保存的值各阶段寄存器保存的值IF/ID PC+4 IR ID/EXE A、B、imm、PC+4、func rt/rd EXE/MEM 运算结果:PC、ALU、结果状态 中间结果:B、目的寄存器MEM/WB 目的寄存器、ALU结果、存储器读出的结果二、流水线的控制二、流水线的控制控制到每个功能部件但是,每个部件执行的不是同

12、一条指令解决方案把控制信号和数据一样流动起来为区分起见,把控制信号前面加上标记,如_IF等每个时钟周期往下一步骤传递控制信号使正确的控制信号到达正确的位置流水控制的实现流水控制的实现在RF/ID阶段生成控制信号 1个时钟周期后使用EX要用的控制信号 2个时钟周期后使用MEM要用的控制信号 3个时钟周期后使用WB要用的控制信号支持流水的支持流水的CPUSignImmECLKARDInstructionMemory+4A1A3WD3RD2RD1WE3A2CLKSign ExtendRegisterFile0101ARDDataMemoryWDWE01PCF01PCInstrD25:2120:161

13、5:05:0SrcBE20:1615:11RtERdE2+ALUOutMALUOutWReadDataWWriteDataEWriteDataMSrcAEPCPlus4DPCBranchMWriteRegM4:0ResultWPCPlus4EPCPlus4F31:26RegDstDBranchDMemWriteDMemtoRegDALUControlDALUSrcDRegWriteDOpFunctControlUnitZeroMPCSrcMCLKCLKCLKCLKCLKWriteRegW4:0ALUControlE2:0ALURegWriteERegWriteMRegWriteWMemtoRe

14、gEMemtoRegMMemtoRegWMemWriteEMemWriteMBranchEBranchMRegDstEALUSrcEWriteRegE4:0三种三种CPU比较比较三、冲突时的解决方案三、冲突时的解决方案1.结构冲突结构冲突如果因资源冲突而无法使用某种指令组合,那么就称流水线产生了结构冲突。 暂停流水线执行,插入等待周期 增加资源,解决资源冲突消除结构冲突的最简单方法就是引入暂停周期,这必然要降低流水线的性能。2. 数据冲突数据冲突旁路技术解决旁路技术解决RAW冲突冲突将结果尽快传送到需要使用它的位置旁路技术对数据通路的修改旁路技术对数据通路的修改检测数据冲突检测数据冲突数据冲突

15、的类型 EXE段冲突 MEM段冲突EXE段数据冲突的检测 EXE冲突检测点:当前指令的ID/EX段和上一指令的EX/MEM段 本条指令的源寄存器之一和上一条指令的目的寄存器相同 上一条指令需要改写目的寄存器,且不是0寄存器 EX/MEM.RegWrite AND EX/MEM.RegisterRd != 0 AND EX/MEM.RegisterRd = ID/EX.RegisterReadRs (Rt)MEM段数据冲突的检测需要将Rs保存到ID/EX段与EXE段基本类似,略有不同增加旁路后的增加旁路后的CPU必须进行暂停的数据冲突必须进行暂停的数据冲突解决方案解决方案 检测 暂停流水线互锁检

16、测检测检测点: 指令译码阶段检测条件 上一指令是Load指令(特征:MemRead控制信号) 且它的写入寄存器和当前指令的某一源寄存器相同 ID/EX.MemRead AND (ID/EX.RegisterRt = IF/ID.RegisterRs OR ID/EX.RegisterRt = IF/ID.RegisterRd )暂停流水线暂停流水线一旦发生此类冲突暂停流水线一个时钟 让当前指令的控制信号全部为0,即不进行任何写入操作 让PC值保持不变 让IF/ID段寄存器保持不变能处理数据冲突的数据通路能处理数据冲突的数据通路3.控制冲突控制冲突流水线的控制冲突是因为程序执行转移类指令而引起的

17、冲突。转移类指令如无条件转移、条件转移、子程序调用、中断等,它们属于分支指令,执行中可能改变程序的方向,从而造成流水线断流。数据冲突影响到的仅仅是本条指令附近少数几条指令,所以称为局部冲突。而控制冲突影响的范围要大得多,它会引起程序执行方向的改变,使流水线损失更多的性能,所以称为全局冲突。控制冲突会使流水线的连续流动受到破坏。当执行条件转移指令时,有两种可能结果: 如发生转移,将程序计数器PC的内容改变成转移目标地址; 如不发生转移,只将PC加上一个增量,指向下一条指令的地址。 数据冲突由于数据的缺失引发控制冲突由于PC的缺失引发条件转移和无条件转移指令控制冲突对性能影响更大IF在指令流水的第一个阶段所有指令都要在IF阶段使用PC对转移指令,至少要到ID阶段才能得到正确的PC 暂停流水线一个或两个周期,直到分支指令达到MEM段确定了新的PC值为止控制冲突的处理控制冲突的处理暂停流水线 直到有了正确的转移地址 造成性能的降低预测分支不成功 顺序执行下一条指令 预测失败后要清除错误启动的指令预测分支成功 更复杂一些,因为要计算转移目的地址 预测失败后要清除错误启动的指令动态预测 硬件根据上次分支的结果进行本次预测编译器处理 延迟槽支持流水的支持流水的CPU

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(MIPS指令五级流水CPU设计资料课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|