《体系结构第3章-第2讲-第三章:流水线技术课件.ppt》由会员分享,可在线阅读,更多相关《体系结构第3章-第2讲-第三章:流水线技术课件.ppt(42页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、计算机体系结构计算机体系结构计算机体系结构计算机体系结构 1 1 1 1国家精品资源共享课程:计算机体系结构国家精品资源共享课程:计算机体系结构第三章:流水线技术计算机体系结构计算机体系结构计算机体系结构计算机体系结构 2 2 2 2第三章第三章 流水线技术流水线技术计算机体系结构计算机体系结构计算机体系结构计算机体系结构 3 3 3 33.2 MIPS基本流水线基本流水线3.2.1 MIPS的一种简单实现的一种简单实现3.2.2 基本基本MIPS流水线流水线3.2.3 流水线性能分析流水线性能分析计算机体系结构计算机体系结构计算机体系结构计算机体系结构 4 4 4 4图图3.93.9给出了实
2、现给出了实现MIPSMIPS指令的一种简单数据通路指令的一种简单数据通路u这是一种非流水方式这是一种非流水方式u将指令执行划分为将指令执行划分为5 5个阶段个阶段取指令周期取指令周期指令译码指令译码/读寄存器周期读寄存器周期执行执行/有效地址计算周期有效地址计算周期存储器访问存储器访问/分支完成周期分支完成周期写回周期写回周期3.2.1 MIPS3.2.1 MIPS的一种简单实现的一种简单实现计算机体系结构计算机体系结构计算机体系结构计算机体系结构 5 5 5 5计算机体系结构计算机体系结构计算机体系结构计算机体系结构 6 6 6 62.2.指令译码指令译码/读寄存器周期读寄存器周期(ID)(
3、ID)操作为:操作为:进行指令进行指令译码译码,读,读IRIR寄存器(指令寄存器),按照寄存器(指令寄存器),按照相应寄存器号相应寄存器号读寄存器文件读寄存器文件,并将读出结果放入两,并将读出结果放入两个临时寄存器个临时寄存器A A和和B B中。同时对中。同时对IRIR寄存器中内容的低寄存器中内容的低1616位进行位进行符号扩展符号扩展,然后将符号扩展之后的,然后将符号扩展之后的3232位立位立即值保存在临时寄存器即值保存在临时寄存器ImmImm中。中。ARegsIRARegsIR6.106.10 BRegsIRBRegsIR11.1511.15 Imm(IRImm(IR1616)1616#I
4、R#IR16.3116.31)MIPSMIPS的固定字段译码技术的固定字段译码技术:图示图示计算机体系结构计算机体系结构计算机体系结构计算机体系结构 7 7 7 73.3.执行执行/有效地址计算周期有效地址计算周期(EX)(EX)操作为:操作为:存储器访问存储器访问:ALUoutputA+ImmALUoutputA+Imm寄存器寄存器-寄存器寄存器ALUALU:ALUoutputA op BALUoutputA op B寄存器寄存器-立即值立即值ALUALU:ALUoutputA op ImmALUoutputA op Imm分支操作分支操作:ALUoutputNPC+ImmALUoutput
5、NPC+ImmCond(A op 0)Cond(A op 0)问题:为什么执行和有效地址计算可以合并?问题:为什么执行和有效地址计算可以合并?计算机体系结构计算机体系结构计算机体系结构计算机体系结构 8 8 8 84.4.访存访存/分支操作完成周期分支操作完成周期(MEM)(MEM)操作为:操作为:访存操作访存操作:LoadLoad:LMDLMDMEMALUoutputLMDLMDMEMALUoutputStoreStore:MemALUoutputBMemALUoutputB分支操作分支操作:if(Cond)PCALUoutputif(Cond)PCALUoutputelse PCNPCel
6、se PCNPC计算机体系结构计算机体系结构计算机体系结构计算机体系结构 9 9 9 9计算机体系结构计算机体系结构计算机体系结构计算机体系结构 101010106.6.性能分析性能分析在该数据通路上,在该数据通路上,分支指令需要分支指令需要4 4个时钟周期个时钟周期其它指令需要其它指令需要5 5个时钟周期个时钟周期假设分支指令占总指令数的假设分支指令占总指令数的12%12%,问,问CPI=?CPI=?CPI=412%+5(1-12%)=4.88CPI=412%+5(1-12%)=4.88结论:结论:就性能和硬件开销而言,上述实现不是一种就性能和硬件开销而言,上述实现不是一种 优化实现!优化实
7、现!计算机体系结构计算机体系结构计算机体系结构计算机体系结构 111111117.7.改进方法改进方法u在在MemMem周期完成周期完成ALUALU指令指令u假设假设ALUALU指令数占指令总数的指令数占指令总数的44%44%,则在时钟周,则在时钟周期时间不变的同时,期时间不变的同时,CPICPI可以降低至可以降低至4.44.4u如要进一步降低如要进一步降低CPICPI,可能会增加时钟周期时间,可能会增加时钟周期时间u采用单周期实现,可以将采用单周期实现,可以将CPICPI降低为降低为1 1,但时钟周,但时钟周期时间却会增加为原来的期时间却会增加为原来的5 5倍倍一般不采用这种方法,为什么?一
8、般不采用这种方法,为什么?u流水技术流水技术计算机体系结构计算机体系结构计算机体系结构计算机体系结构 12121212计算机体系结构计算机体系结构计算机体系结构计算机体系结构 131313133.3.实现流水技术应解决的一些问题实现流水技术应解决的一些问题(1 1)应保证流水线各段不会在同一时钟周期内使用)应保证流水线各段不会在同一时钟周期内使用相同的寄存器通路资源。相同的寄存器通路资源。u例如,不能要求一个例如,不能要求一个ALUALU既做有效地址计算,又既做有效地址计算,又做减法操作做减法操作uIFIF与与MemMem两个阶段都要访问存储器,怎样避免访两个阶段都要访问存储器,怎样避免访存冲
9、突?存冲突?uIDID和和WBWB两个阶段都要访问寄存器,是否存在冲两个阶段都要访问寄存器,是否存在冲突?怎样避免?突?怎样避免?计算机体系结构计算机体系结构计算机体系结构计算机体系结构 14141414计算机体系结构计算机体系结构计算机体系结构计算机体系结构 15151515(3 3)合理划分流水段,每段内的操作都必须在一个)合理划分流水段,每段内的操作都必须在一个时钟周期内完成。时钟周期内完成。(4 4)流水线寄存器设计)流水线寄存器设计u为防止寄存器中的值在为流水线中某条指令所用为防止寄存器中的值在为流水线中某条指令所用时被流水线中其它的指令所重写,可在流水线各时被流水线中其它的指令所重
10、写,可在流水线各段之间设置段之间设置流水线寄存器文件流水线寄存器文件,也称锁存器。,也称锁存器。u流水线寄存器文件的流水线寄存器文件的命名命名u段段A A与与B B之间的流水线寄存器文件称为之间的流水线寄存器文件称为A/BA/Bu流水线寄存器的作用流水线寄存器的作用u流水线寄存器文件的构成流水线寄存器文件的构成计算机体系结构计算机体系结构计算机体系结构计算机体系结构 161616163.MIPS3.MIPS流水线的操作流水线的操作在任一时刻,流水中的指令仅在流水线中的某一段在任一时刻,流水中的指令仅在流水线中的某一段内执行操作。内执行操作。因此,只要知道每一流水段在各指令下进行何种操因此,只要
11、知道每一流水段在各指令下进行何种操作,就知道了整个流水线的操作。作,就知道了整个流水线的操作。P67 P67 表表3.13.1给出了给出了MIPSMIPS流水线中每一段的操作流水线中每一段的操作计算机体系结构计算机体系结构计算机体系结构计算机体系结构 17171717计算机体系结构计算机体系结构计算机体系结构计算机体系结构 18181818计算机体系结构计算机体系结构计算机体系结构计算机体系结构 19191919计算机体系结构计算机体系结构计算机体系结构计算机体系结构 20202020计算机体系结构计算机体系结构计算机体系结构计算机体系结构 21212121计算机体系结构计算机体系结构计算机体
12、系结构计算机体系结构 22222222计算机体系结构计算机体系结构计算机体系结构计算机体系结构 23232323计算机体系结构计算机体系结构计算机体系结构计算机体系结构 24242424计算机体系结构计算机体系结构计算机体系结构计算机体系结构 25252525计算机体系结构计算机体系结构计算机体系结构计算机体系结构 26262626计算机体系结构计算机体系结构计算机体系结构计算机体系结构 27272727计算机体系结构计算机体系结构计算机体系结构计算机体系结构 28282828计算机体系结构计算机体系结构计算机体系结构计算机体系结构 29292929计算机体系结构计算机体系结构计算机体系结构计
13、算机体系结构 31313131计算机体系结构计算机体系结构计算机体系结构计算机体系结构 35353535计算机体系结构计算机体系结构计算机体系结构计算机体系结构 36363636计算机体系结构计算机体系结构计算机体系结构计算机体系结构 37373737流水段流水段表表3.1 MIPS3.1 MIPS流水线的每个流水段的操流水线的每个流水段的操作作任何指令类型任何指令类型ALU ALU 指令指令Load/Store Load/Store 指令指令分支指令分支指令IFIFIDIDEXEXIF/ID.IR IF/ID.IR MemPC MemPCIF/ID.NPC,PC IF/ID.NPC,PC (
14、if EX/MEM.condEX/MEM.ALUOutput else PC+4);(if EX/MEM.condEX/MEM.ALUOutput else PC+4);ID/EX.A ID/EX.A RegsIF/ID.IR RegsIF/ID.IR6.106.10;ID/EX.B;ID/EX.B RegsIF/ID.IR RegsIF/ID.IR11.1511.15;ID/EX.NPC ID/EX.NPC IF/ID.NPC;ID/EX.IR IF/ID.NPC;ID/EX.IR IF/ID.IR;IF/ID.IR;ID/EX.Imm ID/EX.Imm (IR(IR1616)1616#I
15、R#IR16.3116.31;EX/MEM.IR ID/EX.IR;EX/MEM.IR ID/EX.IR;EX/MEM.ALUOutput EX/MEM.ALUOutput ID/EX.A op ID/EX.B ID/EX.A op ID/EX.B 或或EX/MEM.ALUOutput EX/MEM.ALUOutput ID/EX.A op ID/EX.Imm;ID/EX.A op ID/EX.Imm;EX/MEM.cond 0;EX/MEM.cond 0;EX/MEM.IR ID/EX.IR;EX/MEM.IR ID/EX.IR;EX/MEM.B ID/EX.BEX/MEM.B ID/EX.
16、BEX/MEM.ALUOutput EX/MEM.ALUOutput ID/EX.A+ID/EX.Imm;ID/EX.A+ID/EX.Imm;EX/MEM.cond 0;EX/MEM.cond 0;EX/MEM.ALUOutputEX/MEM.ALUOutputID/EX.NPC+ID/EX.Imm;ID/EX.NPC+ID/EX.Imm;EX/MEM.cond EX/MEM.cond (ID/EX.A op 0);(ID/EX.A op 0);流水段流水段表表3.1 MIPS3.1 MIPS流水线的每个流水段的操作(续)流水线的每个流水段的操作(续)任何指令类型任何指令类型ALU ALU 指
17、令指令Load/Store Load/Store 指令指令分支指令分支指令MEMMEMWBWBMEM/WB.IR EX/MEM.IR;MEM/WB.IR EX/MEM.IR;MEM/WB.ALUOutput MEM/WB.ALUOutput EX/MEM.ALUOutput;EX/MEM.ALUOutput;MEM/WB.IR EX/MEM.IR;MEM/WB.IR EX/MEM.IR;MEM/WB.LMD MEM/WB.LMD MemEX/MEM.ALUOutput;MemEX/MEM.ALUOutput;或或MemEX/MEM.ALUOutput MemEX/MEM.ALUOutput EX/MEM.B;EX/MEM.B;RegsMEM/WB.IRRegsMEM/WB.IR16.2016.20 MEM/WB.ALUOutput;MEM/WB.ALUOutput;或或RegsMEM/WB.IRRegsMEM/WB.IR11.1511.15 MEM/WB.ALUOutput;MEM/WB.ALUOutput;RegsMEM/WB.IRRegsMEM/WB.IR11.1511.15 MEM/WB.LMD;MEM/WB.LMD;计算机体系结构计算机体系结构计算机体系结构计算机体系结构 41414141计算机体系结构计算机体系结构计算机体系结构计算机体系结构 42424242 谢谢!