一种数据驱动的可重构计算统一编程模型
第ll期2007年11月
充电桩品牌排行榜子学报
A(XA
ELECIRONICA
SINICA
v01.35
No.11
NOV.卿
一种数据驱动的可重构计算统一编程模型
周学海,罗
赛,王峰,齐骥
(中国科学技术大学计算机科学技术系,安徽合肥230027)
摘要:可重构计算以其优异的性能和高度的灵活性,在国际国内研究领域逐渐引起广泛的关注.然而,在研的可重构计算系统架构多种多样,编程模型多与体系结构相关,使用和移植都非常困难.本文为解决编程通用性问题,从可重构计算的基本特征出发,提出数据驱动的,支持异构任务并行计算的统一编程模型,并讨论其实现方法.该模型基于生产者.消费者通讯机制,支持多种类型的计算结点和通讯网络,具有高度的抽象性.实验结果显示,使用统一编程模型进行应用设计,在不同的架构上能够使用同样的用户程序,并且获得比纯硬件加速方式更高的加速比.
关键词:
可重构计算;编程模型;生产者.消费者通讯模型
中图分类号:TP368.1文献标识码:
文章编号:0372.2112(2007)11.2123.06
AData-DrivenUn.fOrmPrOgrammingModelforReconfigurableComputing
ZHOUXue-hai,LUO
Sai,WAN(;Feng,QIji
(压册删ofComputerScience
and
Tedmology,UniversityofSc/enceandTechndogyofOdna,Hq'e/,Anhd230027,Oh/ha)
Abstract:Due
达成铁路to
theexcellent
perfommce
andflexibility.reconfigurablecomputinghasgained
nx肥andn】(鹏attention
throughouttheworld.Butcurrentlythere’reso
manydifferentplatformsandprogrammingframeworkswhichtakeyouintothede—
tailsofthe
spec疵hardware,andpreventtheirpracticalusage.Inthis
paper,afterdeepstudyofthe
recomfiguratiou
charactedstic,a
noveldata-drivenUlfifolallprogr蛐model
RECUPMisproposed,andits
impl蚴tation
isdiscussed.The
modelsupportspar-
allelhybrid-taskcomputing.It’Sbased
on口o(懈c0幡嘲communication
paradigmand
canbeadaptedonto
differenttypes
of
networks
andnodgs.ExperimentsshowthatapplicationsfeaturingRFL'UPM
reusethesame
source
codes
011
differentarchitectures,
andoutperformthepurehai'dwareaccelerationdesign.
Key
words:,似x,nfigurable
computing;prong
model;prodtlcer-oonsumer
cormnunicatiou
model
1引言
可重构计算(ReeonfigurableComputing)是一种时空域上的计算模式uJ.可重构计算系统通常含有大量的可编程逻辑资源和互联资源.用户根据需要自由定制硬件的功能,具有较高的灵活性;同时,数据运算直接在硬件上完成,可获得很高的性能.相对而言,专用集成电路(ASIC)通过在芯片上设计出专用的电路以执行专用的算法,性能高但功能单一.通用处理器(GPP)通过编程组合不同的指令以实现不同的算法.指令的串行执行性以及指令集的有限性使得CPP的性能并不理想.定制指令集处理器(AsIP)继承了CPP易编程性的优点,同时通过增加特殊指令和专用加速单元,提高了对特定应用的处理能力,如媒体处理器、网络处理器等.但其应用范围仍旧受限.四种计算模式的比较如图1所示.
收稿日期:2006-04-06;修回日期:2007436-28
基金项目:高等学校博士学科点专项科研基金(№.20050358040)
Valiant指出,编程模型是软
件和硬件之间的桥梁[引.可重构篚
计算同时由软件和硬件任务组
成,那么可以说,编程模型是用
户设计与系统硬件之间的桥梁.誓警毳薯篱箸器霁图・…算蕊
言能够有效地编译到该模型,并’。
…。…。。‘’。
有效的实现到硬件上.然而当前可重构计算并没有一个公认较好的编程模型,主要原因足由于系统架构的多样性旧J.从计算粒度考虑,有位级的细粒度单元(如FP.GA)、字级的粗粒度单元(如RAPID、Morphosys等),和层次性的混合粒度单元(如RAW、PipeRench等).从网络拓扑结构考虑,有一维线性式、二维网孑L式,或交叉开关等.这些系统使用专用的、与体系结构相关的编程模型,要求用户具有很高的专业知识并了解硬件结构细节.这
2124电子学报2007钷
虽然有利于充分挖掘系统的计算能力,但不利于可重构计算的普及应用.尤其是近年来高性能FPGA迅速发展,更迫切需要一种通用的跨平台编程模型.Tanigawa[4l在这方面做出了有益的尝试,提出了理想并行结构模型I.PARS,但只关注硬件结构特征而未考虑多任务的调度和通讯等动态信息.Jidin[5J提出了一种多线程编程模型,着重研究任务同步问题,但其性能优势依赖于CPU和FPGA紧耦合的通讯架构.Vuletic[6’7J提出了软硬件虚拟抽象层,讨论硬件模块的虚拟存储管理机制.但其管理器实现开销较大,并且需要软硬件共享存储,只适合总线通讯网络.与本文工作最接近的是周博旧J提出的基于UCOS的可重构计算实时操作系统.实现了任务预配置算法和硬件接口,并讨论了可重构资源管理、硬件任务管理机制,但未考虑到任务间通讯和动态任务调度与配置.
本文将通讯与计算分离,提出了一种数据驱动的可重构计算统一编程模型(UniformProgrammingModelfor
REconfigurableComputing,RECUPM),解决系统中的任务配置、调度和通讯等问题.它具有如下的几个特点:(1)
它是针对可重构计算的特征而提出的一种通用的编程
模型,能够适合各种通讯网络拓扑和计算结点架构.
u盘写保护 无法格式化(2)基于模块化设计原则,能够方便的重用模块m库,
提高了模型的易用性.(3)通讯与计算分离.数据驱动
的生产者.消费者通讯机制,使得用户在模块设计时不
需考虑任务间通讯等问题,只需在末期整合阶段设置
接口的各项属性,不同的设置能够产生出具有不同的
逻辑通讯拓扑关系的系统.(4)末期整合阶段可根据用
户设置做出优化,进一步提高系统性能和资源利用率.2可重构计算系统组成结构
可重构计算系统本质上是一种异构并行的计算环境,至少需要支持任务配置、调度运行和通讯等操作.一般而言,可重构计算系统由可重构器件和通用处理器组成.可重构器件(ReconfigurableHardwareDevice,R皿)是一种支持硬件配置以改变自身功能的器件.基本重构单元(BasicReconfigurableUnit,BRU)是RHD配置的最小粒
度单元.重构RHD功能时至少需改变一个BRU.全片覆写型FPGA的BRU等于RHD.部分覆写型FPGA可只改变一部分,因而一个RI-ID就包含多个BRU.如Xiinx的Virtex系列,BRU就是它的一列.・可重构计算系统的基本组成结构可以描述为图2,包括异构的计算结点和通讯网络.RHD完成空域上数据运算操作,同时可根据需要动态改换配置加载新的计算任务.GPP(或ASIP)处理那些通常不便映射到硬件上的算法,例如随机内存访问、控制流和文件系统等.各处理单元之间并行执行.GPP和ASIP的执行方式相同,下文为简便起见两者统称为GPP.
甲甲…・
<=]匝《>
由卤….
图2可重构计算系统组成结构
处理器和RHD间通过通讯网络连接.我们未规定这些网络的具体形式.可以是低速Io级的以太网、CAN总线等,可以是局部总线比如PCI、内存总线,也可以是高速专用总线如协处理器总线等.另外RHD侧可根据需要组建可重构网络.
3统一编程模型
根据前一节对可重构计算系统的分析,我们提出了一种支持异构任务并行执行的可重构计算统一编程模型RECUPM.本模型描述了通用可重构计算系统所必需的硬件资源管理、任务管理和通讯等机制,以及这些机制提供的操作原语,并以统一编程接口的形式实现这些操作原语.该接口屏蔽了各种可重构系统中底层硬件和通讯的差异,为用户提供了统一的编程界面.在RECUPM模型中,配置和运行的实体是任务(Task).任务可单独运行互不影响,是最小的调度单位.在GPP上执行的由处理器指令构成的任务称为软件任务(SoftwareTask,ST),在RHD上执行的由硬件配置信息构成的任务称为硬件任务(HardwareTask,Ⅲ’).ST在单CPU上串行执行,sT之间共享CPU的执行资源(如寄存器、ALu),其执行能力来自CPU对取指、译码和执行的周期性驱动.HT独享RHD的一部分芯片资源,多个HT之间并行执行,其执行能力来自时钟驱动的硬件电路.3.1资源管理
RECUPM需要管理可重构硬件资源.它使用一个NeRO*J7、rBRU大小的二维数组BRU—RESOURCES,NRHD表示RHD芯片的个数,
NBRU表示每个RHD上
BRU的数目.该数组保
存了BRU的状态,参见
图3.状态初始为空
EMPIT.当加载并运行
HT之后,转变为AC.
1.IvE活动状态.如果结
束(TERMINATE)HT,则
图3BRU状态转换图
冻结它所占据的区域并进入PASSIVE被动状态.如果需要再次加载该HT,则立即激活进入ACTIVE状态,节省了重复加载的时间.如果本区域需要加载其它的m’,
第1l期周学海:一种数据驱动的可重构计算统一编程模型2125
则经由EMtrI'y并在配置完成后激活.
3.2任务管理
任务是RECUPM的最小调度单位.系统整合阶段对每个任务都生成相应的任务描述符,用于描述该任务的映像文件、使用的硬件资源以及通讯m等.它包含这些成员.st—exe—file表示软件可执行文件.胁一瞻一触是硬件配置文件.bru一彬和bru—h表示HT占据BRU的宽度和高度.pos一并、pos—Y和st—pos表示任务的静态调度位置,若为.1则表示该任务可调度到任意的地方.comrlz—iid表示通讯ID(filter/mask对),可以有多组,用于通讯分析和性能优化等.state表示任务状态.pos一髫一瞻、pox—Y一瞻和st—pos一瞻表示实际的调度位置.
RECUPM模型提供任务创建、结束和配置操作原语.
CREATE原语根据任务描述,从硬件资源表中寻可调度的位置,将硬件映像文件配置到该位置上.如果资源不够或者是软件任务,则在CPU上启动该任务.其调度算法如下:
(1)判断胁一瞻一rite是否为空.不空表示是}rr,转下一步;否则是ST,转到(9).
(2)笋lJ断任务是否处于PASSIVE状态.如果是,则立即激活该任务,并跳转至(8).
(3)根据/ms一菇和/ms—r判断用户是否明确指定了加载位置.是则跳转到(6).
(4)在BRU—RESOURCES中寻宽度bru一似,高度bru—h,状态为EMPTY
的BRU矩形区域.如果到,则转至(7).
(5)在BRU—RESOURCES中寻宽度bru一彬,高度bru—h,状态为EMPTY或PASSIVE的BRU矩形区域.如果到,则转至(7).否则跳转至(9),尝试软件加载.(6)查看目标矩形区域内是否有活动的任务存在.如果有则表示静态加载位置冲突,失败返回.
(7)调用CONFIG—HT配置硬件任务,并检查配置结果.如果失败则返回.
(8)更新任务状态和位置信息,更新BRU—RE.SOURCES资源表.成功返回.
(9)检查st—e.qge一.触是否为空.空则失败退出.
(10)调用操作系统的任务创建函数,加载软件任务,更新任务状态,返回.
TERMINATE原语结束任务,更新任务状态和系统资源表.
CONFIG—HT原语通过向RHD配置器发送命令,将硬件任务映像文件加载到RHD的目标区域.本原语仅供系统设计者使用.创建硬件任务时会自动调用本原语.
3.3任务间通讯
为了将计算与通讯分割开来,降低任务之间的耦合度,我们提出了基于生产者.消费者(Producer-Con.saner,P-C)的通讯模型.任务模块将需要的数据从产品池中读取进来(“消费”),经过一系列的加工处理,然后贴上标签发布出去(“生产”).编写任务模块的时候,只用关心它所面对的数据,这使得任务具有更好的独立性.而在通常的通讯模型中(如MPI),数据发送方必须知道接收方的地址(如IP地址、进程编号等),增大了模块间的关联度,并且不易实现多播(一对多通讯)的功能.而P-C则是一种天然的多播模型,每个任务都可以提取自己需要的数据.
从数据与计算的角度分析,P-C模型以数据为中心,模块听令于网络(ModuleServesNetwork,MSN)的通讯架构旧J.应用需求处于优先考虑的位置.模块设计完成后,通过在网络(产品池)上放入不同的数据,就可以驱动模块完成相应的功能.网络上数据产品的不同形态将产生出具有不同功能的应用,这暗合了可重构计算的基本思想.同时不活动的模块可以切换出去以节省硬件资源.反之,通常通讯模型是网络听令于模块(Net.workServesModule,NSM)的架构.网络是事先存在的,处于优先的位置.模块设计不仅要考虑到它自身的功能需求,还必须额外考虑底层网络的结构和通讯手段.通过向网络发送特定的命令,来实现数据通讯.
P-C通讯模型中,每个产品都要附带标签,用于表明该产品的作用,称为用途编号(IntentionID).在生产者一方,数据被分割为多个报文发送出去,报文头部包含了IID.消费者根
据IID抽取其感兴趣的报文,做进一步的处理;并丢弃掉不感兴趣的报文.任务管理命令也通过通讯网络传播。我们为管理通道赋予了特定的编号IID—SYS胝M.
本模型提供PRODUCE和CONSUME操作原语.P-C模型本质上是一种共享总线式的通讯模型,所有消费者必须连接到全局产品池才能够访问到所需的数据,这样就限制了系统的规模.为此,我们划分了多个较小的产品池.对于跨池传输的产品,同时打上目标产品池的标签(PoolID,PID),由专门的转发器负责跨池传输.生产该类产品的操作称为PRODUCE—EXPLICIT.基于数据驱动的P-C模型隐藏了多任务之间的同步操作,因此不需要显式的任务同步原语.
3.4模型接口
操作原语以编程接口的形式提供给用户.RECUPM模型为软件任务和硬件任务提供了统一的视图.但sT和m'通常由不同的语言编写(如c和Verilog),并使用不同的设计流程和工具链.为了支持二者的差异,我们
2126电子学报2007年
提供两套编程接El,分别为统一软件接13(UniformSoft.wareInterfa
ce,USI)和统一硬件接口(UniformHardwareIn.terrace,UHI).
USI比较简单.最小USI实现中包含函数usi—create创建任务、usi—terminate结束任务、usi—register—iid注册感兴趣的数据ⅡD、usi—um℃gister—iid注销liD、usi—pro.duce生产数据、usi—produce—explicit生产跨网数据和usi—consume消费数据.USI不包含CONFIG—HT原语实现,用户不应直接使用它.注意接口与原语的区别,原语是RECUPM对可重构计算逻辑功能的支持,接口是对用户编程的支持,二者并不完全一一对应.如CON.SUME原语由usi—register—iid和usi—consunle共同实现,通讯管理模块经注册后,仅仅提取任务感兴趣的数据,减轻了CPU的负担.
UHI的接口信号如图4所示.本接口共分为2部分,消费者接ElUHIe和生产者接13UHIp.UHIc监听网络并过滤(Filter)出需要的报文.如果是普通数据,则存放到FIFOe中.如果是命令,则生成管理信号rat和term.任务调度器在创建(CREATE)--个新I-IT后,将发送激活命令.UHIc解释该命令,产生复位信号(rat)脉冲,使得HT内部复位并开始工作.类似的,需要结束(TERMINATE)I-IT时,UHIc发送term信号,终止HT的运行.缓冲区FIFOc有3类信号,empty指示FIFO为空,rd读数据,
DB为数据总线.
iid,mask
通讯网络
图4统一硬件接口UI-II
在生产者UHIp一侧,HT可以一直写(WI")rIFOp,直到缓冲区满(full)为止.数据iid/pid号通过sel来选择.这些数据由Arbiter发送到通讯网络上.Arbiter分主、从2种类型.主Arbiter能够主动与其它Arbiter协商并传输数据,需要底层网络具备多主仲裁通讯功能.从Arbiter则被动的听从主设备的访问命令.
CREATE和TERMINATE原语通过使用liD—SYSTEM标号向UHIp中写入相应命令来实现.任务通讯原语通过选择合适的标号并访问数据缓冲区来实现.
UHI是一种平台无关的接口.为了能够更好的匹配目标系统,UHI提供了灵活的可配置参数,如图中虚箭头所示.NFIFO可调节兀Fo的尺寸.SYNC表示兀Fo读写时钟是否同步.如果同步那么FIFOe在(!柚llrd)的时候可写,即即使满的时候读写也可同步进行(FIFOc的full信号供Filter使用,隐藏在UHIc中).这非常适合高效的全速流水线操作,此
时FIFO充当流水线问寄存器的角.iid和mask用来设置过滤器,可以有多组.即当(data—iid&maskl)==iidlI(data—iid&mask2)==iid2|..・Idata—iid==liD—SYSTEM时数据通过过滤器.根据这些参数我们可以更好的优化系统.
对于基于FPGA的平台,UHI与tiT编译在一起并同时配置到RHD上,至少占据一个RBU.我们期望未来的RHD器件能够提供UHI硬核或类似的接口,以及与之相连的充足的片内全局通讯总线.
为了使设计具有更好的通用性和灵活性,我们提出了末期系统整合与优化的概念.当用户完成各任务模块之后,即在设计的最后阶段,用户可以自由确定软硬件任务间的通讯关系.通过设置各任务生产和消费的数据liD号,形成不同的通讯拓扑关系.可设置参数有:UHIc的iid/mask、UHIp的iid/pid,以及软件任务通讯liD表中的filter/mask对.这是一种灵活的设计方法.如果有充足的符合USI/UHI接口的模块库,系统设计简单到只需设置几组通讯参数,用户甚至不必编写一句代码.
4实验测试
我们在2种不同的实验平台上实现RECUPM模型,并测试应用程序的性能.这2个平台具有不同
的处理器结构和通讯架构.在不改变应用程序代码的前提下,通过整合不同的USI/UHI实现,将应用程序平滑移植到不同的架构下,从而验证RECUPM模型的通用性.
4.1实验平台
我们使用REARM一1和XUPV2P作为实验平台.REARM.1中GPP和RI-ID的通讯链路位于内存总线级,XUPV2P位于协处理器级,它们分别代表了两种典型的通讯耦合方式[10J.
图5的REARM—
I是我们自主研发的
动态可重构实验平
台u1|,主要包括通用
处理器ARMCPU和
可重构逻辑器件FP.
GA两个部分,FPGA
挂接到ARM的内存
总线上进行通讯.图5REARA-1可重构实验平台ARM选用CirrusLogic公司的EP7312,支持MMU和Cache,主频74MHz.FPGA使用Xilinx公司的Virtex.II
监耋||-
第ll期周学海:一种数据驱动的可重构计算统一编程模型2127
XC2V1000,总容量等效100万逻辑门,内嵌硬件乘法器
和专用RAM,工作频率270MHz,支持运行时部分重构.
FPGA最高配置速度为50MB/s,全片配置需9.4ms,单列
(折合一个BRU)配置约需0.25ms.
XUPV2P是Xilinx大学计划开放平台.FPGA选用
Virtex.IIProXC2V30,内含一个PowerPC405硬核CPU和
可重构逻辑单元,之间使用处理器局部总线(PLB)通
讯,类似协处理器的耦合方式.PowerPC核最高频率
400MHz,支持MMU和Cache.可重构资源包含逻辑块、
专用乘法器和RAM等,逻辑密度约是VC2V1000的2到
3倍.
实验中我们编写了启动代码和硬件驱动代码,不
需要操作系统,所有软件程序直接运行在处理器上,硬
件任务由FPGA启动时自动加载,或由软件动态加载.
在REARM.1平台采用ADS编泽器和ISE集成开发环
境,XUPV2P平台采用gcc.ppc编译器和EDK嵌入开发
包.
4.2结果及分析
USI/UHI有多种不同的实现方式.根据缓冲区存储
区域的不同,我们在这2个平台上分别实现了3类共6
种UHI接口,即UHI—B、UHI.D和UHI.L.UHI,B的nFo
缓冲区使用FPGA内部的专用的RAM块,UHI.D使用分
散在各个CLB中的查表RAM单元,UHI.L使用FPGA
外部的SRAM.
实验中UHI的参数设置为:字宽16位、读写同步、
只过滤一套iid/mask.我们分析UHI的性能和资源使用
量随NFIFO的变化关系,以及不同类型UHI的区别.结
果如图6所示.因为UHI.L的FIFO使用外部RAM,测试
结果几乎与NFIFO无关,故未画入图中.从图6(a)可
知,XUPV2P平台两类UHI的性能均比REARM平台高,
是因为使用了速度等级更高的芯片.但由于FPGA的架
构相同,二者的UHI性能曲线的相对关系基本一致.考
虑缓冲区的尺寸,在缓冲区较小时UHI.D的性能优于
有关民风民俗的作文UHI.B,较大时UHI.B优.因为UHI.D在尺寸小时只使用
少量的存储单元,译码、读写逻辑简单且速度快;而
UHI.B至少使用一个专用RAM块,该RAM块容量较大
(18Kb),其优势只有在尺寸大时才能体现出来.图6(b)
统计了UHI使用的Slice和LUT资源,纵轴为对数坐标.
t,l
500
蠢400
墅300
墨200
FIFO大小/字
(旬UHI性能《皇1一足1崖量嘲旺趔翳鳆
图6UHI实验结果
FIFO大小/字
(6)UHI资源使用量
由图中可知UHI.D的资源使用量随NFIFO急剧增加,
而UHI—B增加很缓慢.是因为UHI.D的缓冲区就是靠基
本逻辑块来实现的,其资源用量至少与NFIFO成正比;
同时,当NFIFO较大时,布线通道略显不足,将占用一
部分逻辑资源,因此资源用量与NFIFO呈超线性关系.
UHI.B由于使用了专门RAM块,其逻辑资源仅用于译
码、读写控制等,增长较缓慢.
根据结果分析可知,缓冲区小时宜使用速度较快
的UHI.D,大时宜使用资源较少的UHI.B.
同时我们测试RECUPM所提供的软硬件并行运行
机制及不同的UHI实现方式,对系统性能的影响.共实
现5组应用程序.程序xadd计算数据前后依赖的异或
和加法操作.encrypt是加密和消息摘要的程序,使用
Anubis加密算法¨2|.encrypt2改换使用速度更快的UHI.
L接口.firl0和fir20是信号处理程序,分别对输入信号
做10阶和20阶低通滤波,并计算信号的有效值.
我们提供4种运行模式,并比较各种模式下的性
能.模式ST-ONLY只有软件任务,所有的工作都由软件
完成;UHI.1ess是普通的硬件加速方式,不使用UHI接
口,软件直接通过物理端El控制可重构资源;UHI.ful和
UHI.USI均使用了RECUPM模型编程,前者中ST和HT
串行执行,后者同时调度ST和HT,二者并行执行.
通过测量各种模式下各个应用程序的运行时间,
得出两个平台不同模式下对纯软件模式的加速比,如
图7所示.需要注意的是,UHI.ful和UHI.USI模式由于
使用了RECUPM模型编程,两个平台可以使用相同的
程序代码,这大大方便了应用程序移植过程.
应用程序应用程序
(a)REARM-1平台应用程序测试(6)xuPV2P平台应用程序测试
图7应用程序实验结果
由图7可知,可重构计算普遍能够获得几十到几百
倍的性能提升,具体视软硬件运算速度的差异度和通
讯带宽而定.XUPV2P平台的加速较REARM平台偏低,
是因为该平台的PowerPC处理能力本身已很高,从软件
到硬件实现的性能提升空间较小.
RECUPM模型为速度提升做出贡献.四个模式的速
度依次升高.从ST-ONLY到UHI—less速度增幅最大,这
海洋污染通常是指
主要得益于硬件加速.虽然配置HT的时间开销会对性
能造成负面影响,但实验程序中HT的运行时间都比较
长,这种负面影响相对较小.UHI.1ess需要用户程序管
理通讯细节,而UHI.ful通过UHI提供的缓冲能力隐藏
了通讯时间,性能更优.UHI.USI模式同时调度ST和m.简短谢师语10字

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。