分片式处理器上谓词执行技术的实现与优化
发布时间:2021-06-24 02:11
随着计算机体系结构和工艺的发展,计算机性能提升的方式由提高主频变为增加处理器核数。处理器资源匮乏的问题得以缓解,随之而来的问题是如何在功耗允许的情况下合理使用这些资源来获得最大性能。分片式处理器体系结构将计算资源和存储资源均匀分布在整个芯片上,解决了现代处理器设计中面临的存储墙、资源利用率、线延迟和可扩展性等问题,成为微处理器体系结构发展的一种趋势。本文为分片式处理器TPA-PI实现了编译器后端的谓词执行技术,并对其执行过程进行优化。主要研究工作和成果包括:(1)研究了基于LLVM编译框架的后端实现技术,实现了适合TPA-PI处理器的谓词执行技术。该技术对程序的控制流图进行遍历,寻找谓词执行的候选块,再根据图中节点的依赖关系对候选块进行谓词化操作。(2)研究了超块构造中基本块选择的过程,分析了选择过程中程序各因素对其的影响,利用剖析信息对基本块的选取过程进行动态决策。(3)研究了影响超块分裂的各种因素,为超块分裂技术提供了启发式选择算法。通过衡量超块分裂的执行开销和分裂后的超块质量,为超块分裂节点的选取提供评判标准,以改进超块的执行效率,提高处理器的整体执行性能。初步实验表明,本文设计...
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
if-conversion技术
它们被留在了程序代码中,这些分支就叫 wish 分支。wish 分支的目的是对难于预测的动态分支使用谓词执行,对容易预测的动态分支使用分支预测,由此获得最好的性能。当硬件取出一个 wish 分支时,它用置信区间估计判断这个分支是否为难于预测分支。如果这个 wish 分支是难于预测分支,为了消除可能的分支误预测,硬件执行谓词化代码。相反,如果这个 wish 分支是一个容易预测,硬件用分支预测器去预测 wish 分支的方向,忽略谓词信息。因此,wish 分支为硬件提供一种方式,依据运行时分支行为的信息动态地在条件分支预测和谓词执行之间进行选择。wish 分支有三种类型:wish jumps,wish joins 和 wish loops。wish jumps 和wish joins 用于前向(forward)条件分支,wish loops 用于后向条件分支。wishjumps/joins 的目标是减少谓词执行的开销。wish loops 的目的是使该技术能使用于适用后向(backward)分支,减少难于预测循环分支导致的误预测损失,从而增加谓词执行的有效性。
高置信模式等同于用普通条件分支预测。为了实现这个,wish jump 指令用分支预测进行预测。wish jump 指令中的源谓词值(图 2.2c 中的 p1)基于预测分支走向进行预测,这样基本块 B 和 C 中的指令在谓词值准备好之前就能执行。当wish jump 被预测为 taken,谓词值被预测为 TURE(整个块 B,包含 wish join,不会进行取指操作)。当 wish jump 被预测为 not taken,谓词值被预测为 FALSE,同时 wish join 被预测为 taken。低置信模式基本等同于用谓词执行,但是它包含额外的 wish 分支指令。在这个模式中,wish jump 和接下来的 wish join 总是被预测为 not taken。wish jump指令中的源谓词值不被预测,依赖于谓词的指令只有当谓词值的结果计算出来以后才能执行。当对 wish jump 进行的置信评估比较精确时,要么节省谓词执行的开销(高置信),要么消除分支误预测(低置信)。当 wish jump 在高置信模式中误预测,处理器需要冲刷流水线,就如普通分支误预测一样。但是在低置信模式中,即使分支预测是错误的,处理器也不需要冲刷流水线,因为在谓词化代码中,没有在正确控制流路径中的指令都将变成 NOP(无操作指令)。
【参考文献】:
期刊论文
[1]激进块执行模型的数据依赖分析[J]. 张军,安虹,从明,任永青,赵灿明. 小型微型计算机系统. 2010(04)
[2]Spec CPU2000基准程序运行路径分析[J]. 葛仁北. 计算机工程. 2007(07)
[3]基于GCC的IF转换算法的分析与改进[J]. 田祖伟,赵克佳. 计算机科学. 2005(07)
博士论文
[1]类数据流驱动的分片式处理器上的编译及优化技术[D]. 王莉.中国科学技术大学 2009
硕士论文
[1]分片式处理器上指令调度器的设计及优化[D]. 路璐.中国科学技术大学 2010
本文编号:3246146
【文章来源】:中国科学技术大学安徽省 211工程院校 985工程院校
【文章页数】:81 页
【学位级别】:硕士
【部分图文】:
if-conversion技术
它们被留在了程序代码中,这些分支就叫 wish 分支。wish 分支的目的是对难于预测的动态分支使用谓词执行,对容易预测的动态分支使用分支预测,由此获得最好的性能。当硬件取出一个 wish 分支时,它用置信区间估计判断这个分支是否为难于预测分支。如果这个 wish 分支是难于预测分支,为了消除可能的分支误预测,硬件执行谓词化代码。相反,如果这个 wish 分支是一个容易预测,硬件用分支预测器去预测 wish 分支的方向,忽略谓词信息。因此,wish 分支为硬件提供一种方式,依据运行时分支行为的信息动态地在条件分支预测和谓词执行之间进行选择。wish 分支有三种类型:wish jumps,wish joins 和 wish loops。wish jumps 和wish joins 用于前向(forward)条件分支,wish loops 用于后向条件分支。wishjumps/joins 的目标是减少谓词执行的开销。wish loops 的目的是使该技术能使用于适用后向(backward)分支,减少难于预测循环分支导致的误预测损失,从而增加谓词执行的有效性。
高置信模式等同于用普通条件分支预测。为了实现这个,wish jump 指令用分支预测进行预测。wish jump 指令中的源谓词值(图 2.2c 中的 p1)基于预测分支走向进行预测,这样基本块 B 和 C 中的指令在谓词值准备好之前就能执行。当wish jump 被预测为 taken,谓词值被预测为 TURE(整个块 B,包含 wish join,不会进行取指操作)。当 wish jump 被预测为 not taken,谓词值被预测为 FALSE,同时 wish join 被预测为 taken。低置信模式基本等同于用谓词执行,但是它包含额外的 wish 分支指令。在这个模式中,wish jump 和接下来的 wish join 总是被预测为 not taken。wish jump指令中的源谓词值不被预测,依赖于谓词的指令只有当谓词值的结果计算出来以后才能执行。当对 wish jump 进行的置信评估比较精确时,要么节省谓词执行的开销(高置信),要么消除分支误预测(低置信)。当 wish jump 在高置信模式中误预测,处理器需要冲刷流水线,就如普通分支误预测一样。但是在低置信模式中,即使分支预测是错误的,处理器也不需要冲刷流水线,因为在谓词化代码中,没有在正确控制流路径中的指令都将变成 NOP(无操作指令)。
【参考文献】:
期刊论文
[1]激进块执行模型的数据依赖分析[J]. 张军,安虹,从明,任永青,赵灿明. 小型微型计算机系统. 2010(04)
[2]Spec CPU2000基准程序运行路径分析[J]. 葛仁北. 计算机工程. 2007(07)
[3]基于GCC的IF转换算法的分析与改进[J]. 田祖伟,赵克佳. 计算机科学. 2005(07)
博士论文
[1]类数据流驱动的分片式处理器上的编译及优化技术[D]. 王莉.中国科学技术大学 2009
硕士论文
[1]分片式处理器上指令调度器的设计及优化[D]. 路璐.中国科学技术大学 2010
本文编号:3246146
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3246146.html