类数据流驱动的分片式处理器上的编译及优化技术
发布时间:2020-07-20 16:59
【摘要】:分片式处理器体系结构能够很好地应对纳米工艺代的功耗、线延迟、设计和验证复杂度等一系列问题,是一种具有良好性能扩展潜力的片上多处理器结构设计方案。如何在分片式处理器体系结构上支持通用目的程序设计是决定这种结构成败的关键。要解决这个问题,只有通过软硬件的协同设计才能找到突破口。分片式处理器结构上软硬件协同设计的首要问题就是要设计能高度暴露程序并行性、降低能耗的指令集体系结构;其次是为这种体系结构设计和实现一个高效的编译系统。本文围绕一种分片式处理器TPA-PI,研究一种类数据流指令集体系结构及其编译和优化技术,包括如何通过软硬件系统协同工作,管理片上大量计算、存储和网络资源;如何利用并行编译器挖掘和表示程序中的并行性;以及如何开发适合新结构新应用的编译优化技术,进一步提高处理器性能等。主要研究内容和成果包括: (1)为分片式处理器TPA-PI设计了指令集系统DISC-I。DISC-I是一种类数据流指令集体系结构,具有块原子执行、指令间直接通信的特点,并具有高效支持指令级并行性、降低单条指令的执行开销、简化硬件结构,以及支持多粒度、多层次开发程序并行性等众多优势。 (2)基于LLVM编译框架,设计和实现了TPA-PI并行编译器。该编译器将程序划分为多个超块,为每个超块分配硬件资源,并将每个超块内的指令映射到硬件衬底上。TPA-PI编译器最重要的特点是称为TPA-C的中间表示,将程序表示成以超块为单位的控制流图和超块内部以指令为单位的局部数据流图两层结构;以及一种面向硬件结构和应用的指令空间调度方法,使编译器能够根据应用程序的计算特征为其分配硬件资源,在充分开发程序并行性的同时,提高硬件资源利用率。 (3)研究了编译技术对程序控制流可预测性的影响,提出了根据应用程序特征选用与之相适应的基本块选择算法构造超块的准则,提高超块控制流可预测性。实验表明,构造超块时使用路径执行频率、路径宽度等作为选择基本块的启发式算法,可以提高构造出的超块的控制流可预测性,从而提高超块级分支预测器的成功率,特别是多级预测时的成功率;同时应用程序本身的控制流特征对基本块选择启发式效果有很大影响。本文由此总结出根据应用程序本身的控制流特征选用合适的基本块选择启发式的准则:当程序关键路径较多时选择以路径执行频率主导的启发式,当程序关键路径很少时选择以路径宽度主导的启发式。 (4)研究了如何利用编译器简化硬件分支预测器结构,提出了一种软硬件协同的超块级分支预测器。该预测器既有软件预测器实现代价小的优势,又有硬件预测器的灵活性和高效率。实验表明,该预测器能在保持预测成功率的同时,将硬件分支预测器使用的存储空间降低到1/2,将硬件分支预测器的调用次数减少0.1%到15%,从而降低超块级分支预测器的硬件开销和功耗。 (5)针对DISC-I指令集的类数据流编码风格,提出了在TPA-PI体系结构中实现谓词执行技术的方法。该方法对指令集的改动很小,只需要1bit谓词位;不需要额外的微体系结构支持,因此开销很小。本文还提出了一种利用剖析技术,有选择地为指令指定谓词的编译优化方案,进一步降低谓词执行带来的软件输出树开销。该优化方法能够维持程序的高并行度,并降低无效执行的代价。 本文的研究工作研究结果可用于指导分片式处理器上的并行编程模型和并行编译系统软件的设计,帮助结构设计人员设计高效能的片上多处理器体系结构,以尽可能小的并行程序设计难度、系统软件复杂性和硬件实现代价尽可能多地从应用程序中开发出分片式处理器结构上可利用的并行性。
【学位授予单位】:中国科学技术大学
【学位级别】:博士
【学位授予年份】:2009
【分类号】:TP332
【图文】:
基本块合并到了一个基本块中。式处理器上编译器的作用和任务算机系统抽象成不同的层次是为了掩盖低层硬件的变化对(ISA)、系统软件、应用软件带来的影响,提供更多的兼容重的线延迟和功耗等问题,仅仅在底层使用新技术新材料已艺发展变化带来的影响,指令集体系结构、软件系统也必须耗等问题作出相应的变化。因此软件系统,特别是编译器系提升处理器性能的工作中。图 1-3(Dongshen Wang, 2006)清体工艺的发展,在多核处理器中软件系统在提升处理器性能越大,越来越被处理器设计者关注。未来多核软件系统的研和开发可靠易用的并行编程环境,研究和开发面向众核结构的运行时环境、虚拟机或众核操作系统来管理硬件资源和发展其他软件技术协助硬件管理电源以合理分配和降低功下的并行编译器将发挥重要作用。
图 2-3 TRIPS 结构示意图图 2-4 TFlex 结构示意图.1.3 软件系统TRIPS 和 TFlex 结构都采用了 EDGE 类数据流指令集体系结构,因此它大的软件系统,将程序划分为指令块,以及在指令块内部构建数据流图
图 2-4 TFlex 结构示意图2.2.1.3 软件系统TRIPS 和 TFlex 结构都采用了 EDGE 类数据流指令集体系结构,因此它们需要强大的软件系统,将程序划分为指令块,以及在指令块内部构建数据流图,同时还需要指令空间调度器将指令映射到硬件衬底中。目前 TRIPS 和 TFlex 都采用了 Scale 编译器,以及他们自己开发的调度器。为了达到负载平衡,提高硬件资源的利用率,TFlex 结构还开发了一个运行时动态管理资源分配的动态调度器,在程序运行过程中,根据程序的计算量和并行度,为它分配合理的计算资源。2.2.1.4 优势及存在的主要问题TRIPS 和 TFlex 结构具有许多显著的优势,除了利用分布的硬件结构解决线延迟、功耗的问题外,它们还具有以下优势:1. 用块原子执行代替传统超标量机器中的指令,通过超块和谓词执行技术
本文编号:2763704
【学位授予单位】:中国科学技术大学
【学位级别】:博士
【学位授予年份】:2009
【分类号】:TP332
【图文】:
基本块合并到了一个基本块中。式处理器上编译器的作用和任务算机系统抽象成不同的层次是为了掩盖低层硬件的变化对(ISA)、系统软件、应用软件带来的影响,提供更多的兼容重的线延迟和功耗等问题,仅仅在底层使用新技术新材料已艺发展变化带来的影响,指令集体系结构、软件系统也必须耗等问题作出相应的变化。因此软件系统,特别是编译器系提升处理器性能的工作中。图 1-3(Dongshen Wang, 2006)清体工艺的发展,在多核处理器中软件系统在提升处理器性能越大,越来越被处理器设计者关注。未来多核软件系统的研和开发可靠易用的并行编程环境,研究和开发面向众核结构的运行时环境、虚拟机或众核操作系统来管理硬件资源和发展其他软件技术协助硬件管理电源以合理分配和降低功下的并行编译器将发挥重要作用。
图 2-3 TRIPS 结构示意图图 2-4 TFlex 结构示意图.1.3 软件系统TRIPS 和 TFlex 结构都采用了 EDGE 类数据流指令集体系结构,因此它大的软件系统,将程序划分为指令块,以及在指令块内部构建数据流图
图 2-4 TFlex 结构示意图2.2.1.3 软件系统TRIPS 和 TFlex 结构都采用了 EDGE 类数据流指令集体系结构,因此它们需要强大的软件系统,将程序划分为指令块,以及在指令块内部构建数据流图,同时还需要指令空间调度器将指令映射到硬件衬底中。目前 TRIPS 和 TFlex 都采用了 Scale 编译器,以及他们自己开发的调度器。为了达到负载平衡,提高硬件资源的利用率,TFlex 结构还开发了一个运行时动态管理资源分配的动态调度器,在程序运行过程中,根据程序的计算量和并行度,为它分配合理的计算资源。2.2.1.4 优势及存在的主要问题TRIPS 和 TFlex 结构具有许多显著的优势,除了利用分布的硬件结构解决线延迟、功耗的问题外,它们还具有以下优势:1. 用块原子执行代替传统超标量机器中的指令,通过超块和谓词执行技术
【引证文献】
相关博士学位论文 前2条
1 徐光;分片式流处理器体系结构[D];中国科学技术大学;2010年
2 任永青;逻辑核动态可重构的众核处理器体系结构[D];中国科学技术大学;2010年
本文编号:2763704
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/2763704.html