ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:565.50KB ,
资源ID:2377692      下载积分:2 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenkunet.com/d-2377692.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(2-3金融广域网路由部署方案-许青邦.doc)为本站会员(晚风)主动上传,文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文库网(发送邮件至13560552955@163.com或直接QQ联系客服),我们立即给予删除!

2-3金融广域网路由部署方案-许青邦.doc

1、本节开始给出的程序例子,I1写目的寄存器rd,I2和I3的源操作数是寄存器rsl或rs2中的数据,且它们的rsl或rs2与I1的目的寄存器号rd相等时才有可能发生数据相关,因此,硬件电路中要有比较器。由于指令格式中源寄存器号rs2与立即数部分重叠,而立即数是不会出现相关的,因此,指令操作码必须要参与检测(区分是寄存器操作数还是立即数)。;另外,如例子中的I1指令,rd一定作为目的寄存器号使用,即结果是要被写入目的寄存器时,后面的指令才有可能与之相关。由于store指令也使用rd,但它不写寄存器,因此,WREG信号也应参与检测(实际上,WREG也是从操作码中得出的)。我们把上述规则用表达式写出如

2、下(它们是在ID级检测数据相关的表达式): DEPENA_DEPEN+B_DEPENA_DEPENEXE_A_DEPEN+MEM_A_DEPEN图635 停止相关指令的执行(表示方法1)图636 停止相关指令的执行(表示方法2) B_DEPENEXE_B_DEPEN+MEM_B_DEPEN EXE_A_DEPEN(1D_rslEXE_rd)(EXE_WREG1)(1D_rsllsReg) EXE_B_DEPEN(1D_rs2EXE_rd)(EXE_WREG1)(1D_rs21sReg) +(1D_rdEXE_rd)(EXE_WREG1)(store) MEM_A_DEPEN(1D_rslMEM

3、_rd)(MEM_WREG1)(1D_nllsReg) MEM_B_DEPEN(1D_rs2MEM_rd)(MEM_WREG1)(1D_rs2IsReg) 十(1D_rdMEM_rd)(MEM_WREG1)(store) ID_rsllsRegand十andi十or十ori十add十addi十sub十subi十load十store ID_rs2IsRegand十or十add十sub 由于一条指令中的两个源操作数都可能与上一条指令的目的操作数相关,因此总的数据相关DEPEN由A_DEPEN和B_DEPEN两部分组成。A_DEPEN指的是源寄存器rsl数据相关;B_DEPEN指的是源寄存器rs2数

4、据相关。另外,两条指令12和13都可能与U相关。如果是在流水线ID级检测数据相关,则对于12来讲,n处在EXE级;对于13来讲,n处在MEM级;因此,A_DEPEN包括EXE_A_DEPEN和MEM_A_DEPEN两部分。EXE_A_DEPEN的意思是处在ID级的指令与处在EXE级的指令数据相关。同理,MEM_A_DEPEN的意思是处在ID级的指令与处在MEM级的指令数据相关。同样,B_DEPEN包括EXE_B_DEPEN和MEM_B_DEPEN两部分。 EXE_A_DEPEN为真的条件是I2的rsl与I1的rd相等(即ID_rslEXErd)、rsl字段是寄存器(1Drs1IsReg)并且I

5、1的rd确实是目的寄存器(即EXE_WREG1)。后一个条件是为排除store指令而加上的。EXEBDEPEN与EXEADEPEN类似,但rs2确实是源寄存器号(1Drs21sReg)所包含的指令要比IDrslIsReg少得多。I3与I1的数据相关判断与此类似,只是把宇头EXE换成MEM。EXE代表流水线EXE级;MEM代表流水线MEM级。EXE_rd和MEM_rd分别是EXE级和MEM级流水线寄存器d的输出。 数据相关条件就这样得出来了。需要注意的一点是,rs2应包含store指令的rd。当条件满足时,要暂停流水线,因此下一步的任务是确定如何暂停流水线。这里要特别注意的一个问题是,不能停止所

6、有指令的流水线,而只是暂停相关指令及其后续的所有指令。上例中,若12与n相关,只暂停12及12以下的指令,而不应把n也暂停,否则的话,处理机将永远暂停下去。 暂停流水线要做以下3件事情:封锁当前正在译码的指令的写控制信号;不把从存储器取来的下一条指令打人IR;不改变当前PC值。我们使用如下的方法实现流水线的暂停: WPC WIR IDWZDecoderWZ IDWMEMDecoderWMEM IDWREGDecoderREG图637给出的是实现暂停流水线的硬件电路。暂停条件判断电路STALL的输入包括OPCODE,IDrsl,IDrs2,EXErd,EXEWREG,MEMrd和MEMWREG。

7、输出为DEPEN。用DEPEN信号来封锁本条指令及后续指令。封锁本条指令的方法是把DEPEN求反,再分别和译码器的输出DecoderWZ,DecoderWMEM和DecoderWREG相与,再送到ID级和EXE级之间的流水线寄存器的输入端。只有这些写信号才改变处理机或存储器的状态,。因而我们不必去封锁诸如ALUOP或多路器的选择信号。封锁其后续指令的方法是禁止向IR及PC写入新的数据,即把DEPEN的非接到IR和PC的写使能端WIR和WPC。当这两个信号为0时,禁止向IR和PC写人数据。读者不妨试着画出它在数据相关前后的时序图。图637 实现暂停流水线的硬件电路 当I2与I1相关时,流水线暂停

8、两个周期;I3与Il相关时流水线暂停一个周期。我们把被暂停掉的周期称作流水线“气泡”。暂停流水线是解决流水线处理机数据相关问题的一种方法。使用这种方法,保证处理机能够从寄存器堆读出正确的数据。但是,暂停流水线两个或一个周期造成了处理机性能的损失。如果没有数据相关,处理机完全可以多执行两条或一条指令。在由使用这种方法的处理机组成的计算机系统中,高级语言的编译器和汇编器在产生最终目标机器码时,应尽量避免出现过多的数据相关指令序列。编译器和汇编器最初可以在相关指令之间插入nop指令,然后进行优化,用一些有意义的不相关的指令替换掉nop,以减少“气泡”的出现。较早的MIPS处理机甚至没有数据相关的硬件

9、检测电路,完全依靠软件优化来保证不出现指令之间的数据相关。下一小节介绍的方法则能完全避免由于与ALU指令相关而造成的“气泡”的出现。653 提高流水线处理机的性能内部前推流水线数据相关问题的本质在于一条指令执行时要用到上面指令的计算结果,但这个结果尚未被写入寄存器堆。如果我们不拘泥于形式,非要ALU使用从寄存器堆读出的数据不可的话,流水线“气泡”问题也可以得到解决。试想,数据相关发生在ALU计算周期,而所有的计算任务均由这一个ALU来按顺序完成。这也就是说,ALU计算时发现与上一条或两条指令的结果发生数据相关的话,这些结果实际上已由ALU计算出来了,只是还没有写入寄存器堆。那么,这时的结果在哪

10、儿呢?当然,它们还在流水线寄存器R和C中。这就好了,把它们直接拿过来用!为此,我们在Al。U的两个数据输入端各加一个多路器,使R和C中的数据能被直接送到ALU的输入端,见图638到图640。这就是所谓的内部前推(internal forwarding)技术。图638 内部前推CC3周期,add指令在EXE级见图6-38,ALU输入端A的多路器有3个输入。无数据相关时,选择0号输入,也就是流水线寄存器A中的内容;相关时,选择2或3号输入,它们来自于流水线寄存器R或。C。在本节的例子中,12与n相关时,选择2号输入;13与n相关时,选择3号输入。1号输入没有被使用,只是标在那里,在设计多路器时可以

11、去掉该输入以使电路简化。ALU输入端B:的多路器有4个输入。无数据相关时,若是寄存器操作数,:选择0号输入:若是立即数,选择1号输入。2号与3号输入等同于ALU的A端多路器。图639 内部前推-CC4周期,add结果在R中,sub使用R的内容运算如何产生这两个多路器的选择信号是内部前推电路的关键所在。表67和表68列出了两个多路器选择信号的输出真值表。注意,表68中的rs2包含了store指令中的rd,参见图639和图640中的电路,其中的rs2来自于寄存器堆前面多路器的输出。表67 ALUA端多路器选择信号的输出真值表输入输出MEM_WREGEXE_rs1= =MEM_rdWB_WREGEXE_rs1= =WB_rdADEPEN1ADEPEN0输入选择0x0X00A100X00A110X10MEM_R0X1000A0X1111W

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报