前言
本书的由来
基于冯·诺依曼体系结构的传统程序设计模型和体系结构模型已经很好地运行了六十多年。但是,这个模型在当前VLSI工艺下,可靠性、功耗、计算效率、成本等都存在问题。全世界大量从事计算机系统研究、设计和制造的科学家和工程师们一直在设计新一代计算机体系结构方面做着不懈的探索。
近二十年来,国防科技大学计算机学院有很多老师带领研究生们一直专注于新型体系结构的研究,并且取得过很多创新性成果。我们课题小组的主要成员在20 世纪90年代初期攻读博士、硕士学位时,就开始关注国际上新型并行计算机体系结构的研究工作;随后的10年间,承担和参与了一系列国家自然科学基金项目、863项目和国家重点工程项目,获得了多项国家和部委级科技成果奖。2000年以后,我们课题组的老师和研究生们把学术研究的重点集中在高并行处理器技术领域。经过一段时间的学习和研究,到2003年,我们对该领域的研究进行了总结,课题组的研究重点逐步聚焦到以下4种并行结构:
(1)以传统处理器为基础的片内多核结构;
(2)以多向量处理器部件为基础的结构;
(3)以阵列处理器为基础的结构;
(4)以处理(计算)单元阵列为基础的结构。
当时,我们认为(1)和(3)两种结构面临的问题与现有的MPP相似,主要技术壁垒在于如何提高计算资源的使用效率,在当前程序设计模式下,要攻克这个壁垒是比较困难的。我们在结构(2)和(4)方面做了更为前沿的探索,资料表明,这种探索的结果是有吸引力的。国防科技大学计算机学院研制的银河-Ⅰ和银河-Ⅱ巨型计算机,都采用了向量处理器的结构,在向量计算机系统研究和应用程序向量化等关键技术方面都有比较好的技术积累,同时对向量处理技术中存在的难点问题也有更加深刻的体会。我们课题组在讨论了学术新颖性和研究复杂性后,选择了结构(4)作为研究重点,而作为重点研究的方向则慎重地选择了以处理单元阵列为基础的新型计算模型——流计算模型。
美国斯坦福大学Imagine原型系统是以流计算模型为基础的流处理器经典代表。Imagine在处理器的适用性、功耗、程序效率、单位成本等因素上做了很好的权衡,其公布的研究成果非常有吸引力,鼓励我们更加深入地开展流体系结构的研究。2004年,我们申请了自然科学基金,得到2005年度探索项目的资助。在此期间,我们不但阅读了能够得到的所有资料,研究了流处理器的体系结构和程序设计工具链,而且启动了一个基于FPGA的32 位流处理器验证系统的设计,该处理器被命名为“MASA”(Multi-dimension Adaptive Stream Architecture)。我们同时启动了MASA模拟器的设计和实现以及配套工具链的构造,并将课题组命名为“MASA课题组”。到2005年秋,我们课题组成功地在Altera的StratixII EP2S180上实现了一个完整的32位MASA处理器演示原型MASA-Ⅰ,其清晰的结构和主要测试结果与当初的模拟结果非常接近。
MASA课题组的研究工作得到了国防科技大学计算机学院的重视和支持。从2004年开始,我们加入了学院“高性能联合博导组”。2005年5月,MASA课题组主要成员又参加了学院承担的国家重点工程——“飞腾64”(FT64)。为配合工程需要,从2005年7月下旬开始,MASA课题组4名成员不舍昼夜,用两周的时间完成了共300余页计40余万字的技术研究报告,系统全面地总结了在MASA研究中取得的成果,对“飞腾64”的研制起到了积极的促进作用。课题组的主要成员也因此而获得了科技进步奖。
结合应用需求和学术创新的考虑,我们在前期研究的基础上,构造了多个流处理器原型,主要包括面向图像处理的MASA-M1、面向多线程的MASA-SMT、面向大规模扩展的TiSA(Tiled-MASA)等。
从2005年开始,MASA课题组在流体系结构研究领域累计申请了4项自然科学基金项目和1项863高技术计划项目;在有关学术会议和杂志上发表了一系列的学术论文并被检索,也得到国内外同行专家的认可。国内有很多关注流体系结构的老师和研究生与我们进行了大量的学术交流,也使我们对在中国开展流体系结构的研究更加充满信心。2007年,我们有幸遇到电子工业出版社高等教育分社的张濮先生和凌毅女士,并得到他们的建议和鼓励,把研究成果形成学术专著,以供国内从事流体系结构计算机研究的同行参考。在张先生和凌女士的鼓励和指导下,MASA课题组经过近一年的努力,终于完成了这本专著。
关于本书
本书的主要宗旨就是介绍流计算模型的主要思想和流体系结构。流(stream)计算模型是基于“生产者-消费者”的计算模型,其产生的根源是媒体处理的大量出现,新的应用需求引发了对新型计算模型的思考和完善,随着人们对媒体处理领域计算特征的认识,流计算模型也不断发展和逐渐明晰起来。
流体系结构一般采用大规模的运算阵列和多级存储,通过片内并行和专用指令,从体系结构对应用高效支持。与通用处理器体系结构相比,这种结构大幅简化了片内控制,拥有大量的可编程运算功能单元,并且支持通信信道可编程,能够较好地缓解现有通用处理器面临的计算压力,特别适应VLSI技术的发展。进一步的研究表明,流处理器在媒体应用、信息处理等多种计算密集型应用领域可获得与专用芯片相当的性能。新兴流处理器包括学术界研究的原型系统Imagine、Merrimac、VIRAM、RAW、SCORE、FT64、MASA等,工业界的则有Cell、NVIDIA G80、AMD-ATI R580、Storm DSP、Tiles64等,这些流处理器都得到了广泛的关注。可以预计在未来单芯片超十亿只晶体管的时代,流体系结构将成为体系结构发展的一种主流方向。
流体系结构与应用结合十分紧密,因此本书还介绍了流应用特征、流编程编译的基本方法。此外,由于流体系结构起源于媒体处理,在面向更广泛的应用领域如科学计算时,有许多方面值得深入研究和改进,所以本书还结合课题研究,阐述了我们对未来流处理器的发展和研究方向的一些观点。全书比较全面地反映了我们在流计算领域从体系结构、理论方法、模拟系统、测试程序、芯片设计、编译、编程环境到典型应用等方面取得的研究成果。
全书共分8章,内容安排如下:
第1章主要阐述了流体系结构的产生背景、研究现状及发展趋势,并且介绍了当前几种新兴的流处理器。
第2章介绍了流体系结构的一些基本概念和基于流处理的硬件结构模型,并以实例说明了流处理器与向量处理器的区别。
第3章以MASA流体系结构为例,剖析了一个完整的流处理器核体系结构,深入研究流处理器内部硬件结构,包括指令集实例、流水线及各功能模块的设计等,并且对提高性能的优化设计进行了讨论。
第4 章针对流体系结构系统运行模式和协同机制进行研究探讨,重点介绍了标量处理器核和流处理器核之间的软/硬件协同控制机制,包括机制的组成及协同过程。
第5章介绍流体系结构的编程模型及编译器设计。首先介绍其编程模型及与之配套的KernelC/StreamC语言,然后介绍其编译器原理及设计,最后介绍一些目前国际上已有的其他流编程模型及编译环境。
第6章先介绍了流应用的概念和领域,并以JPEG编码算法为例阐述了应用的基本流化方法;然后分别讨论了媒体处理领域中的H.264视频编码和科学计算领域中的梅森素数求解这两个应用的流化过程和流化效果。
第7章从流体系结构多维可扩展性出发,首先介绍了流体系结构簇内扩展、簇间扩展和多核扩展;然后重点介绍了多核流体系结构设计、多核流体系结构程序设计与编译以及多核流处理器VLSI特性等多个方面的内容。
第8章从流处理器发展的角度,重点讨论流处理器未来可研究的工作。
本书由MASA课题组成员合作完成,由张春元教授、文梅副教授策划和统筹,并与伍楠、何义、任巨和管茂林4位博士(生)共同执笔完成。第1章由张春元撰写,第2章由张春元和文梅撰写,第3章由张春元、伍楠撰写,第4章由文梅和何义撰写,第5章由文梅、任巨和管茂林撰写,第6章由文梅和任巨撰写,第7章由何义和伍楠撰写,第8章由张春元和何义撰写。杨乾明、荀长庆、吴伟、柴俊、苏华友和全巍等硕士研究生收集和整理了大量的资料,提供了良好的素材,并参与了部分章节的编写。本书写作过程中,参阅了国内外许多作者的论文及著作,特别是Rixner的专著,参考了其中部分材料,在此深表谢意。
流计算模型和流体系结构的研究仍在发展之中。本书试图在前人的研究基础上,结合我们多年科研工作的体会,向同行介绍流处理器和我们的研究成果。由于作者的能力和知识面有限,疏忽、不当和错误难免,恳请读者批评指正。
有关MASA课题组的情况,读者可参见我们课题组的主页http://masa.nudt. edu.cn。
MASA课题组 张春元
于湖南长沙国防科技大学
2009年2月