论文部分内容阅读
随着半导体技术和计算机体系结构技术的发展,分片式处理器逐渐成为多核领域的一个发展方向。分片式处理器有效解决和缓解了线延迟、功耗、可扩展性等现代处理器面临的主要问题。分片式处理器采用全局控制流和局部数据流相结合的执行模型,将程序划分成单入口、多出口的超块结构,超块之间维护控制依赖关系,超块内部采用数据流驱动的方式执行以开发指令级并行性。分片式处理器结构的类数据流执行模型对编译器提出了更多的要求,指令调度器作为分片式处理器编译系统的重要组成部分,是完成软硬件协同设计提高程序性能的关键。本文围绕分片式处理器TPA-PI,分析研究影响指令调度的各种因素,设计并实现适用于TPA-PI结构的指令调度器。论文的主要研究内容和成果包括以下几个方面:(1)设计并实现了TPA-PI处理器的指令调度器。TPA-PI指令调度器将程序以超块为单位映射到TPA-PI处理器执行单元阵列上。它以TPA-C程序作为输入,生成TPA-S格式的汇编代码程序。指令调度器在将TPA-C指令格式转化为TPA-S指令格式时插入软件扇出树。指令调度器采用启发式的方法将程序以超块为单位映射到处理器单元阵列上,在映射时要综合考虑超块内指令级并行性和硬件资源的利用率之间的关系。最后指令调度器生成TPA-S格式的汇编代码程序。(2)对影响程序执行性能的因素进行量化分析,改进指令调度的启发式函数。首先使用TPA-PI的编译器和软件模拟器为指令调度器搭建实验平台,在这个实验平台上实现一个基于贪心的启发式指令调度算法。然后以这个调度实现为基础,分别将关键路径、负载平衡、数据局部性、寄存器指令、锚点指令、加权路径和平均路径、片上网络等参数加入到启发式函数中,衡量这些参数对程序执行性能的影响。并根据实验数据结果对启发式函数进行修改。(3)提出基于AVBLON和ARBLON启发式函数的指令调度算法。将锚点指令(A)、加权路径信息(V)、负载平衡(B)、数据局部性(L)、寄存器依赖(O)、片上网络(N)等参数加入到启发式函数中,形成最后的AVBLON指令调度算法。实验表明,基于AVBLON启发式指令调度器比基于贪心算法的调度器的程序性能提高了28%。为了弥补加权路径参数必须得到程序剖析信息的缺陷提出使用平均路径参数代替加权路径参数。本论文的研究工作为TPA-PI提供了可用的指令调度器,为处理器开发更多的指令级并行性提供帮助。实验得到的结果也可以指导编译系统设计者和处理器结构设计者对编译系统和处理器结构进行进一步优化。