评述中国科学院学部科学与技术前沿论坛微纳电子专刊引用格式:魏少军,刘雷波,尹首一.可重构计算处理器技术.中国科学:信息科学,2012,42:1559{1576,doi:10.1360/112012-505中国科学:信息科学2012年第42卷第12期:1559{1576可重构计算处理器技术魏少军,刘雷波,尹首一清华大学微电子所,北京100084*通信作者.E-mail:liulb@tsinghua.edu.cn收稿日期:2012–08–13;接受日期:2012–11–13摘要本文首先分别分析了基于指令流驱动和基于数据流驱动的传统计算技术所面临的问题,并介绍了可重构计算处理器的发展趋势;接着,讨论了可重构计算处理器的硬件架构和编译技术,重点分析了其在软硬件架构及系统应用上所面临的挑战;然后,介绍了所设计的REMUS(REcongurableMUltimediaSystem)可重构计算媒体处理器及其相应的集成开发工具;最后,展望了面向通用计算的可重构技术的发展前景.关键词可重构计算REMUS通用计算1计算方式的演进与可重构计算的发展以指令流驱动为特征的处理器通常具有很强的灵活性,其典型代表包括通用处理器(generalpur-poseprocessor,GPP)、可编程数字信号处理器(programmabledigitalsignalprocessor,PDSP)、专用指令集处理器(applicationspecificinstruction-setprocessor,ASIP)和嵌入式处理器等.然而,正是基于指令驱动的执行方式,以及有限的运算单元和存储带宽,使得此类处理器的整体性能和功耗很不理想,无法满足日益膨胀的应用需求.例如,每执行一个操作,无论这个操作简单与否,必须经过类似“取指”、“译码”、“寄存器访问”、“执行”和“数据回写”等过程.这些过程当中,只有“执行”过程才是真正所需要的动作,而“取指”、“译码”等过程实际上耗费了大量额外的时间和能量.此外,一个功能的实现往往还需要执行多条指令,这就使得其运行效率更加低下.为了提高运行效率,同时也为了降低不断攀升的功耗,人们从各个层次和角度提出了许多改进的方法,如超标量、超长指令字(VLIW)、单指令多数据(SIMD)、多指令多数据(MIMD)等等.传统的单核处理器也经历了不断提高运算频率,继而不断增加运算核心数量的过程,如从单核到双核到多核,再到现在的众核处理器.然而,这些改进的方法的基础仍然是指令流的驱动方式,不可能从根本上解决所面临的上述瓶颈.与指令流驱动相对应的是数据流驱动,相应的计算类型通常被称为定制计算或者专用计算.例如ASIC(applicationspecificintegratedcircuits)所采用的计算方式就属于这一类.专用计算根据特定的应用来定制电路结构,无需指令集,其执行速度因而很快,功耗很低.但专用计算存在着致命的缺陷,即其灵活性和扩展性很差,无法满足层出不穷、不断演进的应用需求.针对不同的应用,必须设计不同的专用计算芯片,因此硬件的设计往往严重滞后于应用的发展.同时,专用计算系统的设计周期长,NRE(non-recurringengineering)投入成本过高.随着纳米时代来临,高昂的设计和掩膜成本更加成为限制专用计算系统今后大范围应用的重要因素之一.例如,16nm特征尺度芯片的设计成本将达到1.5亿2亿美元.这必魏少军等:可重构计算处理器技术表1集成电路设计、制造和研发费用Table1ThecostofICdesignandfabricationProcess(nm)453222K(gate/mm2)824K1098K1566KUSDper300mm2wafer4024USD4817USD6638USDUSDpergate7.67microcent6.89microcent6.6microcentUSDperpilotline3.5B5BUSD5B6BUSD8B10BUSD将极大限制基于数据流驱动的计算技术的发展.可重构计算采用的是一种将指令流驱动处理器的功能灵活性和数据流驱动处理器的高能量效率(即性能功耗比)结合在一起的计算方式,其在性能、功耗和功能灵活性等芯片的关键指标之间具有更好的平衡.可重构计算处理器可以在运行时通过配置流来动态改变运算单元阵列的功能(功能的改变往往只消耗几个或者十几个时钟周期),然后通过数据流来驱动运算单元阵列进行计算,因此是一种由配置流和数据流来共同驱动的计算方式.借助于这种特殊的计算方式,可重构计算处理器在功能灵活性方面与指令流驱动处理器相似;在能量效率上,可重构计算正在接近专用计算.其实,可重构计算并不是一个全新的概念.加州大学洛杉矶分校的GeraldEstrin教授早在上世纪60年代就第一次提出:计算机可以通过一个主处理器加上一组可重构硬件来组成.主处理器负责控制可重构硬件的行为,可重构硬件根据任务的计算特点,通过剪裁、重组,可以达到加速执行某一特定任务的目的[1].受制于当时的半导体工艺水平,直到上世纪90年代之后,这一创新性的概念才重新获得人们的重视,对可重构计算的研究成为国际学术界和产业界的热点,各类不同的可重构计算软硬件系统被不断研制出来.目前,对可重构计算比较公认的定义是由加州大学伯克利分校的可重构技术研究中心于1999年提出的一种更加广义的定义[2].该定义表明可重构计算体系结构具有区别于其它组织结构的两类突出特点:(1)制造后芯片的功能单元具有可重构能力(即,“硅实现”以后,计算功能仍旧可以改变);(2)能实现很大程度的算法到计算引擎的空间映射.凡具备以上两个特点的计算方式都归为可重构计算的范畴.可重构计算处理器没有特定的指令集,不受指令流驱动的约束.这与基于冯诺依曼体系结构的指令流驱动的处理器存在着本质的不同.冯诺依曼体系结构是60多年前在硬件计算资源极其匮乏的情况下被提出的.在该模式下,指令和数据均被预先保存在存储器中,CPU(centralprocessingunit)在指令存储器中依次取出指令并执行,指令在存储器中的存储顺序决定了该进程的执行过程.这种计算模式的缺陷在于:(1)程序的串行执行隐藏了程序中潜在的并行性,降低了该进程的执行效率;(2)CPU与存储器之间有限的带宽是冯诺依曼计算模型的瓶颈,正是这个问题导致了Cache(缓存)结构和虚拟存储技术的出现.其实,冯诺依曼体系结构的基本出发点是通过指令和数据的有序访问和存取来复用严格受限的硬件资源(例如,复用计算单元和存储单元).这种“硬件资源受限”的架构一直持续了60多年,直到现在仍旧是最主流的计算架构.尽管在不断地演进和变化,但指令流驱动的本质并没有改变.然而,随着集成电路工艺技术的不断进步,单个芯片上集成的晶体管数量依旧会成倍地增长,从当前的几千万到几亿、几十亿甚至更多的晶体管.根据ITRS(国际半导体技术蓝图)预测,2016年主流工艺线宽为22nm,2022年将达到10nm,传统的芯片制造技术有可能会支撑到35nm的范围.表1给出了从45nm到22nm线宽的集成电路制造工艺在集成能力、晶圆生产成本、单位门的制造成本等方面的信息.从表中数据我们可以看出,摩尔定律依然会在很长一段时间内继续提升芯片性能、减少功耗和降低晶体管成本.单个芯片上集成的晶体管数量依旧会成倍地增长,从当前的几1560中国科学:信息科学第42卷第12期XPP-III,PACTDAPDNA-2,IPFIexADRES,IMECDMEMCGAViewVLIWViewControlUnitsICacheVLIWSectionCGASectionMRC6011,FreescaleMUX-Input&RoutingMUX-Input&RoutingSlave-IOSlave-IORAM/IOPAEsALU-PAEsRAM/IOPAEsFunction-PAEsI/OI/OI/OI/OTomemoryherarchyXPP30.12.6DataflowArrayconfigurationFNCI/O-BusDAP(32bitCPU)DNAConfigurationMemaryMRC6011图1部分商用可重构处理器的代表Figure1Someofthecommercialreconfigurableprocessor亿到几十亿甚至更多的晶体管.在这种背景下,硬件资源将极大丰富,能够“容纳”越来越多的计算功能.以“硬件资源不受限”为基本出发点的可重构计算或将成为另一种主流计算方式.目前,国际上对可重构计算的研究主要集中在对某些特定应用领域上.这些特定的应用领域主要包括:媒体处理(音频/视频/语音/图形/图像等)、通信基带处理、加解密运算、数据变换处理、计算机视觉处理、模式识别等.其主要特点是计算密集、数据间依赖关系较弱、运算形式规则且具备较强并行性、控制流和数据流能够有效分离等.这些可重构计算处理器相对成熟的代表主要有PACT公司的XPP-III[36]、IPFlex公司的DAPDNA-2[7]、IMEC的ADRES[8],Freescale公司的MRC6011[9]处理器等如图1所示.从国际学术界来看,美国的斯坦福大学、加州大学伯克利分校、卡内基梅隆大学、麻省理工学院等,英国的剑桥大学、荷兰的德尔夫特大学、德国的凯泽斯劳滕大学、意大利的博洛尼亚大学等正在对可重构计算进行深入研究,在国际上比较活跃.2可重构计算处理器的硬件架构可重构处理器的基本架构可用图2来表示.从图2可以看出,与传统的指令流驱动处理器一样,可重构处理器也主要由控制单元、数据通路、存储器和输入/输出接口组成.与指令流处理器的主要差别在于,控制单元通过配置信息而不是指令来控制数据通路的行为,存储器当中所存储的指令也被配置信息所取代.数据通路往往由运算单元阵列(processingelementarray,PEA)组成,其计算功能之所以能够被重构,主要是因为PEA内部集成了众多基本算术运算单元(如加法器、乘法器等)和逻辑运算单元(如与、或、非、异或等逻辑门).控制单元可以通过配置信息来选择和组织这些运算单元,以1561魏少军等:可重构计算处理器技术Memory(context,data)ControlunitDatapathDatainputDataoutputCon-text图2可重构计算处理器的基本架构Figure2BasicarchitectureofreconfigurablecomputingprocessorPEPEPEPERouterPEPEPEPERouterPEPEPEPERouterPEPEPEPERouterI/ObufferConfigcontextbufferAHBInterface(Date/Context)Interruptinterface图3可重构计算处理器数据通路PEA的实例Figure3PEA(datapath)ofreconfigurablecomputingprocessor实现特定的功能.以下将分别介绍数据通路、控制单元和存储单元的基本架构和设计难点.2.1数据通路图3是可重构计算处理器数据通路的一个具体实例.该数据通路由44个运算单元(processingelement,PE)组成.PE之间通过路由逻辑(Router)互相连接起来组成PEA.PEA通过I/OBuffer和1562中国科学:信息科学第42卷第12期ControlunitPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEAPEADMAMemoryOn-chipprogrammanager图4数据通路中由多个PEA组成PEA群的实例Figure4PEAgroupindatapathAHB接口(advancedhighperformancebus)与存储器交换计算数据,通过ConfigContextBuffer和AHB接口与控制单元和存储器交换配置信息.在某些情况下,PEA还会通过