- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 习题四
4.1 解释下列术语:
指令级并行: 指令序列中存在的潜在的并行性称为指令级并行。
指令调度: 指令调度是一种用以避免冲突的方法, 但并不改变相关。 通过改 变指令在程序中的位置, 将相关指令间的距离加大到不小于指令执行延迟的时钟 数,以此消除相关指令造成的流水线冲突。
指令的动态调度: 在程序执行过程中, 依靠专门的硬件对代码进行调度, 重 新安排指令的执行顺序,来调整相关指令实际执行时的关系,减少可能的冲突。
指令的静态调度: 在程序的编译期间, 由编译器进行代码调度和优化, 重新 安排指令的执行顺序,把相关的指令拉开距离,以减少可能产生的冲突。
保留站: 在 Tomasulo 算法实现结构中,保留站设置在运算部件的入口,每 个保留站中保存一条已经流出并等待到本功能部件执行的指令的相关信息, 包括 操作码、 操作数以及用于检测和解决冲突的信息。 在一条指令流出到保留站的时 候, 如果该指令的操作数已经在寄存器中就绪, 则将之取到该保留站中。 如果操 作数还没有计算出来,则在该保留站中记录将产生这个操作数的保留站的标识。
CDB:公共数据总线, 是 Tomasulo 算法实现结构中的一条重要的数据通路, 所有功能部件的计算结果都要送到 CDB 上,由它把这些结果直接送到各个需要 该结果的地方。
动态分支预测技术: 用硬件动态地进行分支处理的方法。 这些方法是在程序 运行时, 根据分支指令过去的表现来预测其将来的行为。 如果分支行为发生了变 化, 预测结果也随之改变。 其目的有两个: 预测分支是否成功和尽快找到分支目 标地址(或指令),从而避免控制相关造成流水线停顿。
BHT :分支历史表,也称之为分支预测缓冲器,用来记录分支指令最近一 次或几次的执行情况(成功或不成功),并根据此进行预测。
分支目标缓冲: 将分支成功的分支指令的地址和它的分支目标地址都放到一 个缓冲区中保存起来, 缓冲区以分支指令的地址作为标识, 取指令阶段, 所有指 令地址都与保存的标示作比较, 一旦相同, 就认为本指令是分支指令, 且认为它 转移成功,并且它的分支目标地址就是保存在缓冲区的分支目标地址。
前瞻执行: 基于硬件的前瞻执行结合了以下三种思想:
(1) 动态分支预测。用来选择后续执行的指令。
(2) 在控制相关的结果尚未出来之前,前瞻地执行后续指令。
(3) 用动态调度方法对基本块的各种组合进行跨基本块的调度。
ROB :再定序缓冲,前瞻执行允许指令乱序执行,但要求按程序顺序确认, 为此设置 ROB,用以保存指令执行完毕到指令得到确认间的所有指令及其结果。
超标量: 超标量处理机的典型结构是有多个操作部件, 每个时钟周期流出的 指令数不定,但有上限。可通过多个独立的操作部件实现多指令的并行,使CPI 的值小于 1。
超流水: 将流水段进一步化, 在一个时钟周期内能够分时流出多条指令, 使 CPI 的值小于 1。
超长指令字: 这种指令字很长, 被分割成多个字段, 每个字段称为一个指令
槽, 直接独立控制一个功能部件。 每个时钟周期流出的指令数是固定的, 它们构 成一条长指令,或说是一个混合指令包,只能通过编译静态调度。
循环展开: 通过多次复制循环体并改变结束条件来相对增加有效操作时间, 用于指令调度的一种方式。
4.2 简述 Tomasulo 算法的基本思想。
(1)记录和检测指令相关,操作数一旦就绪就立即执行,把发生 RAW 冲 突的可能性减少到最小;
(2)通过寄存器换名来消除 WAR 和 WAW冲突。
4.3 根据需要展开下面的循环并进行指令调度, 直到没有任何延迟。 指令的延迟 如表 4.3。
表 4.3 本章使用的浮点流水线的延迟
产生
产生结果指令 使用结果指令 延迟时钟周期数
浮点计算
另外的浮点计算
3
浮点计算
浮点存操作(SD)
2
浮点取操作(LD) 浮点计算 1
浮点取操作(LD) 浮点存操作(SD) 0
LOOP: L.D
MULT.D L.D ADD.D S.D DSUBI DSUBI
BNEQZ
F0, 0(R1)
F0, F0, F2
F4, 0(R2)
F0, F0, F4
0(R2), F0
R1, R1, #8
R2, R2, #8
R1, LOOP
(一次空转)
(二次空转)
(二次空转)
(一次空转)
循环展开三次:
LOOP:
LD
LD
LD MULTD MULTD MULTD LD
LD
F0,
F3,
F6,
F0,
F3,
F6,
F4,
F5,
0(R1)
-8(R1)
-16(R1)
F0, F2
F3,
文档评论(0)