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文档。上传文档
查看更多
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) SIMM 选择立刻数 EXE级 ALUOP ALU操作码 WZ 写Z标记 MEM级 WMEM 写储存器 WB级 SLD 选择load WREG 写存放顺堆 表6.5控制信号的产生表达式 BTAKEN=branch+bneZ+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 减 load10加store10加 ALUOPl=add+addi+sub+subi+load+store ALUOPO=or+ori+sub+subi 图6.29流水线办理机的数据路径和控制零件 6.4构造有关及解决方法 流水线办理机的设计存在3个特别有名的问题(hazard)。它们是 1)构造有关问题(structuralhazard); 2)数据有关问题(datahazard); 3)转移有关问题(branchhazard)。 我们将在本节简要介绍第一个问题,下边两节分别介绍第二和第三个问题。构造有关 (structuraldependence)问题指的是,因为硬件资源不充分而致使流水线不通畅。我们将举 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级结束时已把结果放在了流水线存放器 R,在MEM级不做任何运算,不过把它传达 到流水线存放器C,以便

文档评论(0)

150****0527 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档