论文摘要
随着密集计算类应用蓬勃兴起和VLSI技术不断发展,并行体系结构研究获得了巨大的应用驱动和基础技术支撑,新型并行计算体系结构模型呈现出涌现状态,流(Stream)计算模型就是其中之一,它最初来源于图像和视频为代表的媒体计算环境,目前正在逐步渗透到信号处理、图形图像、科学计算等越来越广泛的密集计算领域。以流计算模型为基础的流体系结构,做为一种面向未来超10亿只晶体管时代的新型体系结构,正成为微处理器体系结构研究关注的前沿焦点之一,学术界和工业界已经设计了一系列经典的流体系结构和流处理器(原型),例如Imagine、Merrimac、STORM、YHFT64-2、MASA等,另外还有一些新型并行体系结构的处理器也兼容了流计算模型或者集成了流加速部件如CELL、Trips、RAW、Clearspeed、Tile64和几乎所有支持三维图形显示的GPU等。在这些处理器和原型系统上,流体系结构不但展现出了巨大的计算性能潜力,而且在面积利用率、工作时钟频率需求、平均Gops/功耗和可编程灵活性上也同样具有突出的优势。本文的作者认为,流体系结构虽然不会在未来完全替代标量体系结构,但却极有可能成为未来高性能处理器的有机组成部分,其设计思想会对未来处理器产生深远的影响。随着流体系结构的不断深入,更多的应用被映射或移植到流体系结构模型上,流体系结构中不断产生一些新的问题,冲击现有流体系结构的组成和结构模型,例如非规则流问题、寄存器过载问题、硬件和性能的可扩展问题等等,其核心是如何保证和提高流处理器的并行效率。在这样的背景下,作者选择了“高效能流体系结构关键技术”做为论文课题。本文对流体系结构进行了深入系统的研究,研究的内容涉及流计算模型、流应用映射、流处理器硬件结构设计、流程序的编程和编译等流体系结构研究的关键领域。设计实现了一套完整的流体系结构研究、实验和验证平台。基于该平台,本文作者从高效能数据并行技术、高效能指令并行技术和高效能多核并行技术三个方面,完成了如下创新性的研究工作:1)提出了一种支持并行非规则访问的片上流存储系统——双模式融合流存储系统DSAM。本文从新的流应用特征出发,建立了非规则流扩展模型,系统地确立了非规则流的定义、性质、分类和处理方法。针对非规则流模型。本文研究并对比了独立的Cache或SRF、串行SRF&Cache、并行SRF&Cache和混合SRF&Cache等多种组合式流存储系统,提出了一种新型的非规则流存储系统设计方案——双模式融合流存储系统DSAM。DSAM结合了软件预调度和硬件动态管理机制,使同一存储器模块可以同时工作于规则流和非规则流两种模式,其关键技术是采用了多模式可选的间接地址映射机制。与普通Cache相比,DSAM支持更高的流访问带宽、软件调度的空间压缩和大范围数据预取功能,减少了数据失效率和平均访存时间;与经典SRF相比,DSAM增加了对动态随机地址访问、细粒度数据管理和访问失效机制的支持;与其它多种组合式流存储系统相比,DSAM动态共享了规则流和非规则流空间,消除了因为流访问模式转换带来的数据搬移,并提高了空间利用率。本文还在已有流编程和编译环境中,扩展了对非规则流访存模式的支持。测试程序的实验结果表明,基于DSAM的新型流存储系统在非规则流的访存效率上要明显优于传统流存储系统,使得更大范围的非规则流应用可以在流处理器上高效执行。2)提出了一种解决流处理器中分布式局部寄存器文件过载问题的编译优化技术——溢出调度技术。溢出调度技术通过负载平移、指令槽插入和基本块重划分三个互补策略,完整的解决了流处理器中计算密集型Kernel程序的寄存器分配和调度问题。溢出调度技术有三个方面的意义:对禁止溢出访存的流存储系统,保证程序编译不会因寄存器过载问题而失败,减轻程序员手工修改程序带来的编程负担和性能损失;对允许溢出访存的流存储系统,可以大幅减少因寄存器溢出造成的访存暂停,提高程序的执行性能;对于流处理器的硬件设计,可以节省寄存器文件的设计容量,在嵌入式等领域是非常有益的。实验结果表明,加入溢出调度技术的流处理器编译器与原有编译器相比,在编译性能“无损”(VLIW序列长度不增加)的情况下将寄存器峰值需求平均降低了45%,最终使Kernel程序在流处理器上的执行时间比经典的溢出访存技术平均缩短了16%。另外在打开补充策略开关后,可以在编译性能稍微受损的情况下进一步降低寄存器峰值需求。测试结果也表明了该技术相对其它常用策略的优越性,是一种高效能指令并行技术。3)提出一种支持多级并行的大规模可扩展流体系结构——TiSA。TiSA流体系结构是一种面向未来单芯片超十亿只晶体管和1K以上ALU规模的Tile化多核流体系结构。TiSA利用流计算模型开发高效能多核并行技术,支持多级并行、流式数据传输和大规模多维扩展。它以Tile结构组织多种异构流处理器核,并通过片上流互连网络进行数据流和控制信息的通信。同时,TiSA扩展了现有流编程模型和执行模式,在经典流体系结构所支持的ILP、DLP并行基础上增加了Kernel级TLP并行。本文完成了TiSA的硬件微体系结构设计、编程和编译模式扩展以及原型系统的实现。建模分析和应用模拟测试的结果显示TiSA在大规模扩展时仍具有良好的硬件开销效率和软件执行效率。