- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 3. 流水线中各段的功能 * 4.指令序列在流水线中的重叠执行过程 * 5. 载入延迟为两个时钟周期 * 6. 指令序列在流水线中的执行时空图 * 7. R4000流水线的定向路径比DLX流水线的多 ALU输入端的定向源有4个:EX/DF,DF/DS,DS/TC,TC/WB * 8. 分支处理 ◆ 在EX段完成分支条件的计算 基本分支延迟:3个时钟周期 * ◆ 采用单周期延迟分支 ◆ 预测分支:失败分支 ◆ 处理分支指令的时空图 * MIPS R4000 浮点流水线 1. R4000浮点部件 ◆ 1个浮点除法器 ◆ 1个浮点乘法器 ◆ 1个浮点加法器 2.8个流水段 (表3.8) 3. R4000浮点流水线是一种多功能非线性流水线4. 双精度浮点操作指令的延迟、启动间隔以及 流水段的使用情况 (表3.9) * 流水段 功能部件 描 述 A 浮点加法器 尾数加流水段 D 浮点除法器 除法流水段 E 浮点乘法器 例外测试段 M 浮点乘法器 乘法器第一个流水段 N 浮点乘法器 乘法器第二个流水段 R 浮点加法器 舍入段 S 浮点加法器 操作数移位段 U ? 展开浮点数 表3.8 * 浮点指令 延 迟 初始化 间隔 使用的流水段 加、减 4 3 U,S+A,A+R,R+S 乘 8 4 U,E+M,M,M,M,N,N+A,R 除 36 35 U,A,R,D28,D+A,D+R,D+A,D+R,A,R 求平方根 112 111 U,E,(A+R) 108,A,R 取反 2 1 U,S 求绝对值 2 1 U,S 浮点比较 3 2 U,A,R 表3.9 Review today, not so fast in future 对所有数据操作,作用于在寄存器中的数据,通常改变整个寄存器。 利用IR中的寄存器地址去访问通用寄存器组,读出所需的操作数。 应保证不会在同一个时钟周期内在同一数据通路资源上做不同的操作。例如,不能要求一个ALU同时既做有效地址计算,又做减法操作。 流水线为了能够每个时钟周期启动一条新的指令,就必须在每个时钟周期进行PC值的加4操作,并保留新的PC值。这种操作必须在IF段完成,以便为取下一条指令做好准备。 和第i+3条指令的IF段写PC发生冲突 需要多加4. MIPS actutally didn’t interlecok: MPU without Interlocked Pipelined Stages ∑△ti = 执行第一条指令所需的时间,然后每隔△tj 时间出一条指令的结果 假设非流水线实现的时钟周期时间为1ns,ALU和分支指令需要4个时钟周期,访问存储器指令需5个时钟周期, 上述指令在程序中出现的相对频率分别是:40%、20%和40%。 在基本的流水线中,假设由于时钟扭曲和寄存器建立延迟等原因,流水线要在其时钟周期时间上附加0.2ns的额外开销。 现忽略任何其他延迟因素的影响,请问:相对于非流水实现而言,基本的流水线执行指令的加速比是多少? 从流水线的输入端看,每一个流水线周期启动一条指令;同样,从流水线的输出端看,每一个流水线周期执行完成一条指令。当流水线被充满时,如图5.75中的黑框内所示,有8条指令在同时执行。如果把两个流水线周期看作一个时钟周期,则在一个时钟周期内,R4000处理机分时发射了两条指令,同样,在一个时钟周期内,流水线也执行完成了两条指令;因此。R4000是一种很典型的超流水线处理机。?????在取第一个数据(DF)和取第二个数据(DS)流水级期间,R4000要访问数据Cache。首先,存储器管理部件(MMU)在DF和DS流水级把数据的虚拟地址变换成主存物理地址;然后,在标志检验(TC)流水级从数据Cache中读出数据的区号,并把读出的区号与变换成的主存物理地址进行比较;如果比较结果相等,则数据Cache命中。对于STORE指令,如果命中,只要把数据送到写入缓冲器,由写入缓冲器负责把数据写到数据Cache的指定中去。对于非存储器操作指令,在写回结果(WB)流水级要把指令的最后执行结果写回到通用寄存器堆中。 * 流 水 段 分 支 指 令 操 作 IF ID EX IF/ID.IR ← Mem[PC]; IF/ID.NPC,PC ← (if ID/EX.cond {ID/EX.NPC} else {PC+4}); ID/EX.A ← Regs[IF/ID.IR6..10]; ID/EX.B ← Regs[IF/ID.IR11..15];ID/EX.NPC ← IF/ID.NPC + (I
文档评论(0)