2-流水线处理机及其设计.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2-流水线处理机及其设计

6.3.3 流水线各级信号的产生 至此,我们已经描述过了所有3种指令类型的流水线操作。下面我们来总结控制信号的产生方法。控制信号分布在流水线处理机的各级,我们当然可以在它们要被使用的流水线级产生,例如SIMM可在EXE级产生。但这样,除了译码将会造成本级一些延迟之外,还要使用流水线寄存器来传递必要的信息,例如指令操作码等。我们采用的方法是,控制信号集中在ID级由译码电路产生,并使用流水线寄存器把每一个控制信号传递到它被使用的流水线级。我们把所有的控制信号归纳在表6.4中。表6.5列出了除了ALUOP的各控制信号的产生表达式。表6.6列出了ALUOP控制信号的产生表达式。 由以上表达式,我们可以有如图6.29所示的控制电路。图中使用了流水线寄存器来把控制信号传递到合适的流水线级。我们可以看出,流水线控制部件的设计方法与非流水线单周期处理机的控制部件的设计方法非常类似,而有限状态机和微程序的设计方法显得不太适合。 表6.4 流水线各级控制信号的定义 流水线级 控制信号 注释 IF级 BTAKEN 转移发生 ID级 SST 选择store(rd) EXE级 SIMM 选择立即数 ALUOP ALU操作码 WZ 写Z标志 MEM级 WMEM 写存储器 WB级 SLD 选择load WREG 写寄存顺堆 表6.5 控制信号的产生表达式 BTAKEN=branch+bne+beqZ SST=store SIMM=andi+ori+addi+subi+load+store WZ=andi+ori+addi+subi+and+or+add+sub WMEM=store SLD=load WREG=andi+ori+addi+subi+and+or+add+sub+load 表6.6 ALU控制信号的产生表达式 指令 ALUOP1 ALUOP0 操作 指令 ALUOP1 ALUOP0 操作 and 0 0 与 andi 0 0 与 or 0 1 或 ori 0 1 或 add 1 0 加 addi 1 0 加 sub 1 1 减 subi 1 1 减 load 1 0 加 store 1 0 加 ALUOPl=add+addi+sub+subi+load+store ALUOPO=or+ori+sub+subi 图6.29 流水线处理机的数据路径和控制部件 6.4 结构相关及解决方法 流水线处理机的设计存在3个非常著名的问题(hazard)。它们是 (1)结构相关问题(structural hazard); (2)数据相关问题(data hazard); (3)转移相关问题(branch hazard)。 我们将在本节简要介绍第一个问题,下面两节分别介绍第二和第三个问题。结构相关(structural dependence)问题指的是,由于硬件资源不充足而导致流水线不畅通。我们将举3个例子来说明结构相关问题及其相应的解决方案。, 第一个例子,也是最典型的例子,就是设想只为流水线处理机配备一个外部公共存储器模块。这在现代计算机系统设计中是常见的。它的好处是程序和数据可以共享这个存储器模块,二者之间的界限是可以动态调整的。使用分开的两个外部指令存储器模块和数据存储器模块的计算机被称为具有哈佛(Harvard)结构的计算机。依程序类型的不同,有的需要较大的程序空间和较小的数据空间;有的则需要较小的程序空间和较大的数据空间。在这种情况下,哈佛结构的存储器不能被灵活、充分地利用。 然而,如果只采用一个存储器模块而不采取任何其它的措施,则会出现结构相关问题,造成流水线堵塞。图6.30示出了由于存储器端口资源的不充足而使取指令和load/store指令访问存储器的动作不能同时进行。 图6.30 单个存储器模块所造成的流水线堵塞 图6.30中的存储器模块只有一套访问端口。当load/store指令访问存储器时,必须暂停取指令操作。当然也可以让取指令优先而暂停load/store指令的存储器访问操作。然而,不管是哪一种情况,计算机的性能将会有很大的损失。那么,采用一个外部存储器模块的现代计算机是如何解决这个问题的呢?说起来很简单,如图6.31所示,在处理机内部,设置两个分开指令和数据的高速缓冲存储器(CACHE)。把存储器中经常使用的程序段和数据分别放在指令CACHE和数据CACHE中。访问CACHE命中时,处理机可直接从CACHE得到指令和数据,而不再访问外部存储器。有关CACHE的原理和结构,我们将在9章详细讨论。 再举第二个例子。把ALU指令的WB级提前一个周期。由以前的描述可知,ALU指令在EXE级结束时已把结果

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档