欢迎来到天天文库
浏览记录
ID:59606068
大小:1.65 MB
页数:66页
时间:2020-11-15
《计算机系统结构-流水线技术---3.2-DLX的基本流水线.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、3.2DLX的基本流水线3.2.1DLX的一种简单实现首先讨论在不流水的情况下,如何实现DLX。1.实现DLX指令的一种简单数据通路第三章流水线技术项目调研与实践项目调研与实践2.一条DLX指令最多需要以下5个时钟周期:(1)取指令周期(IF)IR←Mem[PC]NPC←PC+4操作3.2DLX的基本流水线项目调研与实践项目调研与实践(2)指令译码/读寄存器周期(ID)A←Regs[IR6..10]B←Regs[IR11..15]Imm←(IR16)16##IR16..31操作指令译码和读寄存器是并行进行的。之所 以能做到这一点,是因为在DLX指令格式中, 操作码在固定位置。这种
2、技术也称为固定字段 译码。3.2DLX的基本流水线项目调研与实践项目调研与实践(3)执行/有效地址计算周期(EX)在这个周期,不同的指令有不同的操作。3.2DLX的基本流水线项目调研与实践◆存储器访问ALUOutput←A+Imm操作项目调研与实践◆寄存器―寄存器ALU操作ALUOutput←AopB操作项目调研与实践◆寄存器―立即值ALU操作ALUOutput←AopImm操作3.2DLX的基本流水线项目调研与实践◆分支操作ALUOutput←NPC+ImmCond←(Aop0)操作项目调研与实践(4)存储器访问/分支完成周期(MEM)在该周期处理的DLX指令只有Load、Stor
3、e和分支指令。这里,将有效地址计算周期和执行周期合并为一个时钟周期,这是由DLX指令集结构本身的特点所允许的,因为在DLX指令集结构中,没有任何指令需要同时计算数据的存储器地址、计算分支指令的目标地址和进行数据处理。3.2DLX的基本流水线项目调研与实践◆存储器访问LMD←Mem[ALUOutput]或Mem[ALUOutput]←B操作3.2DLX的基本流水线项目调研与实践项目调研与实践◆分支操作if(cond)PC←ALUOutputelsePC←NPC操作项目调研与实践项目调研与实践(5)写回周期(WB)不同指令在该周期完成的工作也不一样。◆寄存器―寄存器型ALU指令Regs[IR
4、16..20]←ALUOutput操作◆寄存器―立即值型ALU指令Regs[IR11..15]←ALUOutput操作◆Load指令Regs[IR11..15]←LMD操作3.2DLX的基本流水线项目调研与实践寄存器―寄存器型ALU指令Regs[IR16..20]←ALUOutput项目调研与实践寄存器―立即值型ALU指令Regs[IR11..15]←ALUOutput项目调研与实践Load指令Regs[IR11..15]←LMD3.分支指令需要4个时钟周期, 其它指令需要5个时钟周期假设分支指令占总指令数的12%,则:CPI=4.88上述实现无论在性能上,还是在硬件开销上,都不是优化
5、的。3.2DLX的基本流水线3.2.2基本的DLX流水线我们可以把3.2.1中的数据通路流水化:每个时钟周期启动一条新的指令。 这样,该数据通路中的每一个周期就成了一个流水段。1.一种简单的DLX流水线2.简单DLX流水线的流水过程第一种描述(类似于时空图)第二种描述(按时间错开的数据通路序列)3.2DLX的基本流水线3.2DLX的基本流水线按时间错开的数据通路序列3.采用流水技术还应解决好以下几个问题:上述简单DLX流水线中:◆指令存储器(IM)和数据存储器(DM)分开,避免了访存冲突。◆ID段和WB段都要访问同一寄存器文件。ID段:读WB段:写如何解决对同一寄存器的访问冲突?
6、(1)应保证不会在同一个时钟周期内在同一数据 通路资源上做不同的操作。 例如,不能要求一个ALU同时既做有效 地址计算,又做减法操作。3.2DLX的基本流水线◆没有考虑PC问题流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行PC值的加4操作,并保留新的PC值。这种操作必须在IF段完成,以便为取下一条指令做好准备。3.2DLX的基本流水线但分支指令也可能改变PC的值,而且是在MEM段进行,这会导致冲突。为解决问题,我们重新组织数据通路,把所有改变PC值的操作都放在IF段进行。但分支指令如何处理?(2)每一流水段内的操作都必须在一个时钟周期 内
7、完成◆流水线各段之间需设置流水线寄存器(也称为锁存器)◆流水线寄存器组及其所含寄存器的命名例如,ID段和EX段之间的流水线寄存器组中的IR寄存器的名称为:ID/EX.IR◆流水线寄存器的作用把数据和控制信息从一个流水段传送到下一个流水段。(3)流水线寄存器(组)3.2DLX的基本流水线◆流水线寄存器的构成4.DLX流水线的操作对于流水线中的指令来说,在任一时刻,它仅在流水线中的某一段内执行操作。因此,只要知道每一流水段在各种指令下
此文档下载收益归作者所有