高等计算机体系结构作业-流水线1.docxVIP

  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文档。上传文档
查看更多
PAGE 1/ NUMPAGES 6 PAGE 4/ NUMPAGES 8 PAGE 1/ NUMPAGES 6 高等计算机体系结构 作业3: 流水线1 流水线 50分 观察以下程序: MUL R3 R1, R2 ADD R5 R4, R3 ADD R6 R4, R1 MUL R7 R8, R9 ADD R4 R3, R7 MUL R10 R5, R6 分别计算该程序在以下的机器上执行时花费的时钟周期数: (a) 非流水线机器 (b) 采用计分板(scoreboarding)的流水线机器,有5个加法器、5个乘法器,没有数据转发逻辑 (c) 采用计分板(scoreboarding)的流水线机器,有5个加法器、5个乘法器,带数据转发逻辑 (d) 采用计分板(scoreboarding)的流水线机器,有1个加法器、1个乘法器,没有数据转发逻辑 (e) 采用计分板(scoreboarding)的流水线机器,有1个加法器、1个乘法器,带数据转发逻辑 对于所有上述的机器模型,采用以下4阶段的基本指令周期: 1)取指 (1 个时钟周期) 2)译码 (1 个时钟周期) 3)执行 MUL(5个时钟周期) ADD(2 个时钟周期) 乘法器和加法器内部不是流水线的 4) 写回 (2 个时钟周期) 请列出你为了计算对流水线结构的所有假设(例如如何在流水段之间做数据转发) 答:首先做如下的设计假设: 非流水线机器采用多周期CPU结构,多周期CPU的设计是将整个CPU的执行过程分成几个阶段,每个阶段用一个时钟去完成。不仅能提高CPU的工作频率,还为组成指令流水线提供了基础。 记分牌算法的实现结构: 记分牌基本思想:记分牌硬件实现了对指令的动态调度。支持乱序执行,在没有结构冲突时尽早地执行没有数据冲突的指令,使多条指令同时处于执行阶段。 动态调度技术需要将ID译码段分成两个阶段:1是发射,2是读取操作数。 发射阶段对指令进行译码,检查结构冒险(例如有四个运算器:整数运算、加法器、乘法器、除法器,检查该指令需要使用的运算器是否正在被占用)。 读取操作数阶段检查数据冒险(读之前检查寄存器的值是否已经写回,或者是否会覆盖了之前的值)。数据冒险的解决方法(读写冒险(RAW):将指令和操作数保存起来,然后只能在读操作数阶段进行读取;写写冒险(WAW):检测是否有其它指令会写回到相同的寄存器(检测到冒险),有则等待,直到其它的完成) 发射阶段:假如检测到没有结构冒险和数据冒险,那么记分板将会将指令发射到相关的运算器,假如结构冒险或者写写冒险发生了,那么该指令将会等待,直到冒险消失为止。 读取操作数:没有数据相关以后(之前的指令不会写回源寄存器或者正在写寄存器的情况时,读写冒险),读取操作数。读取操作数后将交给运算器,之后开始运算。发送到运算器的顺序可能是乱序的。 记分板由三个部分组成,维护三张表项: part1 指令状态表:记录指令究竟处于4个阶段中的哪一个阶段 part2 功能部件状态表:有9个域,分别是: ?a) Busy 标识该器件是否正被使用 ?b) OP 该器件正在执行或将要执行的运算 例如 + - * / 等等 ?c) Fi 目标寄存器 ?d) Fj, Fk 源操作寄存器 ?e) Qj,Qk指出源操作寄存器Fj, Fk正在被什么单元所处理 f) Rj, Rk 表示Fj Fk 是否准备好的标志位,yes表示Fj, Fk中的操作数就绪且还未被取走,否则就被置为No part3 寄存器结果状态表:指出哪个功能部件将把结果写入该寄存器。 假设记分牌算法按照有(2)中介绍的完整设计思路,并且设计如下的电路: 指令缓存队列,用于储存每一条译码后的指令,以及相应指令的状态。(包括发射状态Issue、读操作数状态Read Operands、执行完毕状态Execution Complete、回写状态Write Result),对应指令状态表。 功能部件状态电路,为每个功能部件设计相应的功能部件状态电路,对应功能部件状态表。 寄存器状态电路。为每个寄存器设计相应的寄存器状态电路,用于指示哪一个功能部件将要把结果写回哪一寄存器,对应寄存器结果状态表。 假设记分牌算法三个状态表的更新通过设计电路实现,不占用任何的时间周期。 假设寄存器的写操作发生在时钟周期的前半段,读寄存器发生在后半段,因此读操作可以读取到最新的写入的数值。即在WB的两个时钟周期中前一个时钟周期写入数据,后一个时钟周期ID就可以读取数据。(**重点设计思路**:详见(b)机器WB和ID阶段,WB两个阶段相当于MEM+WB两个,书上设计是在WB前半时钟沿写入寄存器,在后边时钟沿ID读取寄存器,参考如上设计,在WB第二个时钟周期就可以执

文档评论(0)

浙江工程信息通 + 关注
实名认证
服务提供商

网络工程师持证人

本人已从事浙江省工程咨询5年,对浙江省内工程信息非常熟悉,可获取新建工程相关联系人、设计院、业主等关键信息。另外从事楼宇自控专业已10年,考取了一建二建等资格证书,有关考试方面的问题(考试心得、方法、学习资料等)都欢饮来咨询交流。

领域认证该用户于2023年05月11日上传了网络工程师

1亿VIP精品文档

相关文档