论文部分内容阅读
纳米工艺所带来的功耗、线延迟和设计复杂度等问题制约了处理器体系结构的发展,分片式结构设计是解决这些问题的一种方法。分片式流处理器作为一种面向数据密集型应用的处理器结构,可以利用摩尔定律的发展带来的丰富而廉价的晶体管资源,实现处理器结构的可扩展。分片式结构设计的基本思想是将计算、存储和互连资源组织成片式的基本结构单元,这些片式单元是相对简单的、分布式控制且可重用的;大量的片式单元由高能效、可扩展的片上网络连接起来。分片式流处理器的性能是否也具有可扩展性依赖于其支持的编程模型、片上存储层次、片上互连网络以及计算模型。本文分别从分片式流处理器的计算模型、指令系统、体系结构、流编程模型映射四个方面开展研究。主要研究内容和成果包括以下四个部分。(1)研究了类数据流计算模型的原理,提出了一种适合组织分片式流处理器中计算资源的单块多数据(Single Block Multi Data, SBMD)计算模型,设计了支持此计算模型的指令系统DISC-D。SBMD指在一个超块内部处理多份数据,每份数据根据自己对应的数据流依赖关系执行。谓词技术把程序中每份数据所对应的控制流依赖转化为数据流依赖,在超块内部消除控制流转移,这样每份数据可以按照不同的控制流路径执行。SBMD模型支持程序中循环体间显式的消息传递。(2)设计了一种分片式流处理器体系结构TPA-PD。TPA-PD采用类数据流驱动的计算模型来组织计算资源,使用软件管理的片上存储层次开发应用中的数据局部性。TPA-PD采用分片式的设计思想,使用多个片上互连网络把片上的各种资源互连起来。(3)设计并实现了流编程模型在TPA-PD上的映射。TPA-PD支持流编程模型StreamC/KernelC。StreamC/KernelC是为Imagine流处理器开发的,为了能在TPD-PD上运行StreamC/KernelC语言编写的代码,我们实现了流级翻译器和kernel级二进制翻译器,把在Imagine平台上的流级指令信息和kernel级微码翻译到TPA-PD平台上,翻译后的代码膨胀率小于2。(4)实现了TPA-PD的软件模拟环境,并评估了类数据流驱动计算模型及TPA-PD体系结构设计的有效性。文章讨论了物理块资源、计算资源、网络资源的可扩展性,分析了流访存部件的参数设置,提出了优化单个超块执行时间的机制,研究了指令调度算法对程序性能的影响。通过在模拟器上做实验,我们发现TPA-PD在结构可扩展的同时,性能上超过集中控制计算资源的流处理器。