JournalofInformationEngineeringUniversityVol10No1
Mar2009
基于FPGA的可重构硬件实现技术研究
陈一骄,卢泽新,孙志刚
(国防科学技术大学计算机学院,湖南长沙410073)
摘要:依据可重构技术原理,探讨了基于FPGA的可重构硬件实现方法。在介绍目前路由器发展所面临问题的基础上,指出可重构路由器是解决这一问题的理想途径。首先简要介绍了可重构的发展历史以及在路由器中的应用,然后对FPGA的可编程原理和配置实现做了详细介绍。最后提出了基于FPGA的硬件重构方法。关键词:可重构;可重构计算;FPGA;可重构路由器中图分类号:TP302.1文献标识码:A
文章编号:1671-0673(2009)01-0094-04
ImplementationResearchofReconfigurableHardwareBased-onFPGA
CHENY-ijiao,LUZe-xin,SUNZh-igang
(CollegeofComputer,NationalUniversityofDefenseTechnology,Changsha410073,China)
Abstract:Based-ontheprincipleoftechnology,thepaperdiscussestheFPGA-basedreconfigurablehardwareanditsimplementation.Thispaperintroducestheprobleminthecourseofroutersdeve-lopment,andindicatesthatthereconfigurablerouterisanidleroutetoresolvetheproblem.Firstly,thepaperintroducesthehistoryofreconfigurabletechnologyanditsapplicationinrouterdesign,andthenweintroducedtheFPGAprogrammableprinciplesandtheconfigurationmethod.Atlas,tthispaperproposedthehardwarereconfigurableschemebasedonFPGA.
Keywords:reconfigurable;reconfigurable-computing;FPGA;reconfigurable-router随着Internet的飞速发展,网络结构越来越复杂,对网络的关键技术网络互联和路由技术也提出了更高的要求。传统网络技术体系依靠不断提高链路传输带宽和节点处理速度,增大节点处理容量,增加复杂控制算法和协议等一系列技术,来应对不断增长的网络应用需求。这不仅难以满足特性差异日益扩大的用户业务承载需要,也付出了网络复杂度迅速提高和网络传输效率明显降低的代价。现有网络设备无法实现大量差异化用户业务的规模化应用。
近年来,可重构技术成为国际上计算系统研究中的新热点
[1~3]
的优点,具有比两者更广泛的适应性和灵活性。借鉴可重构技术的优点,设计并实现可重构路由器,可使得构建网络不再依据特定用户业务需要的网络服务,而是依据网络服务提供能力来构建网络。因此对路由器可重构技术的研究具有重要意义。本文主要研究可重构路由器的硬件可重构实现技术。
1可重构技术的发展历程
可重构计算(ReconfigurableComputing)技术是指在软件控制下,利用系统的可重用资源(如
,它结合通用处理器和ASIC两者
收稿日期:2008-09-20
基金项目:国家863计划资助项目(2008AA01A325);国家科技支撑计划资助项目(2007BAK34B02)作者简介:陈一骄(1972-),男,副研究员,博士,主要研究方向为高性能路由器与网络安全;
卢泽新(1963-),男,研究员,硕士,主要研究方向为高性能计算机、高性能路由器;
孙志刚(1974-),男,副研究员,博士,主要研究方向为高性能路由器、高性能计算机、网络安全与信息安全。
第1期陈一骄等:基于FPGA的可重构硬件实现技术研究
95
FPGA等可重构逻辑器件),根据应用需要重新构造一个新的计算平台,以达到接近专用硬件设计的高性能。可重构计算技术避免了微处理器计算模式因取指、译码等步骤导致的性能损失,同时也消除了专用集成电路(ASIC)计算模式因前期设计制造的复杂过程带来的高代价和不可重用等缺陷。
早在20世纪60年代末,美国加利福尼亚大学的GeraidEstrin就提出了重构计算
[4]
为了将多种应用动态加载到硬件设备中,华盛顿大学应用研究实验室(AppliedResearchLabora-[12]tory,ARL)为高速网络开发出FPX(Fieldpro-grammablePorteXtender)研究平台,以快速部署网络中的硬件DHP模块(DynamicHardwareProcess-ing)。DHP由FPGA门阵列和内部存储器组成,同时有许多良定义的接口,以便模块收发报文数据及与片外存储器通信。已研制的DHP功能模块包括IP路由、数据排队和应用级报文修改等。基于FPX平台的路由器系统通过加载DHP模块到良定义的DHP模块接口上实现模块的动态加载和卸载,从而实现系统的硬件可重构。FPX通用硬件平台可以用于研究、开发和试验用硬件实现的网络算法,改进传统的设计周期,是一种很好的可重构路由器系统实验床。
的概念,并研
制出原型系统。该系统由非柔性可编程处理器和柔性可重构数字逻辑部件两部分组成。由于当时实现技术尚不完善,故Estrin研制的系统只是其理论设计的粗略近似,但该结构奠定了以后可重构计算系统的核心基础。70年代末,SuetlanaP.Karta-shev和StevenI.Kartashev博士提出了动态可重构系统
[5]
的概念,研究在系统运行时对系统的局部
进行重构,改变其配置。这种复用资源隐藏重构延时的技术,既保持了较高性能,又提高了资源利用率,更能有效提高可重构系统的性能加速比。因此,动态部分可重构系统成为可重构系统研究领域的热点。
随着微电子技术的发展,基于SRAM的FP-GA
[6~8]
2FPGA可编程原理
FPGA既继承了ASIC的大规模、高集成度和高可靠性等优点,又克服了ASIC设计周期长、投资大和灵活性差的缺点,正逐步成为复杂数字硬件电路设计的理想首选。2.1FPGA的基本结构
随着20世纪80年代中期Xilinx公司推出其第一款现场可编程门阵列(FPGA)以来,FPGA的基本结构已经发生了很大变化。一般说来,如图1所示,FPGA由输入输出模块(Input/OutputBlock,IOB)、可配置逻辑模块(ConfigurableLogicBlock,CLB)、布线资源(Routing)、嵌入式资源(如RAM等)和嵌入式专用硬核(如PCI-E核、千兆以太网MAC核和嵌入式CPU核等)等部分组成。
以CLB(ConfigurableLogicBlock)为基本逻
辑单元,能够在电路级别上实现各种逻辑功能,同时具有可重构和可扩展特性,开发周期短,易于仿
真,兼有软件的灵活和硬件的高效等特点。FPGA的出现使得可重构计算从理论研究走向实际应用,到90年代中后期可重构计算有了较快的发展,并在目标识别、字符模式匹配、数据压缩、遗传算法、加解密和图像处理等很多领域得到了成功的应用。
90年代早期完成了第一个性能上有突破的可重构计算系统,也称为定制计算机(CustomComputerMachine-CCM)。它们均采用在一个宿主计算机上连接多片FPGA芯片的方式构成,通过对FPGA的在线编程,实现系统的可重构。这两种结构在需要高度并行和位处理级别运算操作应用中实现了比其它结构更高的性能。
在网络设备中,可重构技术的应用还处在十分初级的阶段。美国加州大学Berkeley分校Handziski等人为了在其研制的无线传感设备中解决高效率和通用性的矛盾,并支持第三方构件,提出了硬件抽象体系结构(HardwareAbstractionArchitecture,HAA)。该结构在节点硬件之上依次抽象出硬件表示层、硬件适配层和硬件接口层。在较低级别层次上可高效实现平台相关任务,而与平台无关的构件可在较高的抽象层次上实现。[11]
[9,10]
图1FPGA的基本结构
输入输出单元是FPGA与外界电路的接口,它被设计为可编程模式,通过软件的灵活设置完成不同电气特性下对输入/输出信号的驱动与匹配
要求。96
信息工程大学学报2009年
可配置逻辑模块是FPGA可编程逻辑主体,可根据设计灵活地改变其内部连接与配置,完成不同逻辑功能。FPGA的基本可编程逻辑单元一般由查找表(LookUpTable,LUT)和寄存器组成。一般情况下FPGA依赖查找表完成纯组合逻辑功能,依赖寄存器完成同步时序逻辑功能。
布线资源位于内部逻辑模块之间,经编程实现CLB与CLB之间、CLB与IOB之间的互联,布线资源的连通与否由其中的开关矩阵(Switch)确定。布线资源中连线长度和工艺决定信号在连线上的驱动能力和数据传输速度。
嵌入式RAM资源和嵌入式专用硬核拓展了FPGA的应用范围,提高了FPAG的处理能力,增强了其灵活性。
2.2FPGA的可编程原理
基于SRAM编程技术的FPGA通过阵列中的SRAM单元对FPGA的逻辑单元进行编程。SRAM单元由一个RAM位和一个PNP晶体管组成,RAM位中存储信息控制PNP晶体管的通断,所有SRAM单元的不同配置组合方式将实现不同的逻辑功能。系统上电时,SRAM单元的配置信息由外部电路写入FPGA内部的RAM中,电源断开后,RAM中的数据将丢失。因此SRAM编程型FPGA可重复使用,且具易失性。FPGA的这一特点可以实现数据的静态重载,也可以实现FPGA的在线动态加载。这使得FPGA成为可重构系统发展的持续驱动力。现在有部分FPGA支持部分动态可重构。在此类FPGA中,SRAM配置单元由许多以垂直阵列方式排列的配置列(ConfigurationColumns)组成,而一个配置列中存储的数据由多个配置帧(ConfigurationFrames)组成。配置帧是配置存储器可以读写的最小单位,是实现部分重构的最小单元。在FPGA内部,FPGA配置地址空间被分为主地址(MajorAddress)和子地址(MinorAddress),每一个配置列在FPGA内都有唯一的主地址空间,每个配置帧在配置列内有唯一的子地址空间。通过配置寄存器(ConfigurationRegister),配置帧能够准确地存储到相应的配置空间。通过FPGA的配置数据总线,可以读写内部配置寄存器,从而实现FPGA的部分重构以及配置数据回读(Read-back)等配置功能。2.3FPGA的配置实现
以ALTERA公司的StratixIIGX系列FPGA为例,其配置方式主要有FPP(快速被动并行)、PS(被动串行)、AS(主动串行)等[8]
[7]
号(nConfig、nStatus、Conf_Done和Init_Done等)、时钟信号(DCLK)和数据信号(DATA)等组成。PS
的配置时序配置如图2所示。
图2AlteraFPGA串行配置时序图
FPGA的配置分3个阶段。第1阶段是配置阶段,该阶段由控制信号nConfig触发,在初始化nStatus信号并复位FPGA以后,nStatus信号由低变高正式触发FPGA的配置过程。当FPGA配置结束以后,Conf_Done信号拉高,配置加入第2阶段,即初始化阶段,在内置振荡器驱动下FPGA的内部控制逻辑根据写入的配置文件完成各SRAM控制位、I/O引脚等的初始化工作。当初始化结束以后,FPGA进入第3阶段用户阶段,开始正式执行用户逻辑。
3基于FPGA的硬件重构方法
在系统加电运行过程中,通过配置控制逻辑主动加载FPGA的配置文件,可以实现FPGA的重构,但需要中断系统的运行。而对象Xilinx公司的Virtex系列FPGA等提供部分可重构功能的FP-GA的配置,则可以在不中断系统运行的基础上更新FPGA的部分逻辑,具有更高灵活性和更好的性能。
可重构实现结构如图3所示,它由可重构代理、配置引擎、配置文件存储器和待配置功能部件(由FPGA及相关器件组成)4部分组成。
[7]
图3可重构部件的重构实现框图
,一般由控制信其中远程用户通过以太网与可重构代理连接,第1期陈一骄等:基于FPGA的可重构硬件实现技术研究
97
远程用户发布的命令通过可重构代理的解析提交配置引擎执行。远程用户通过可重构代理可以完成配置文件的读写、更新以及动态配置。本地CPU也可以通过可重构代理完成上述功能。
配置引擎完成FPGA的配置控制以及配置文件存储器(Flash)的读写控制。
配置文件存储器主要存储FPGA的全局配置文件和局部配置文件。
在全局重构中,用户首先根据应用的需求分别对不同设计进行综合,生成不同的FPGA配置比特流文件。当需要全局重构的时候,可重构代理根据用户命令调度选择对应配置比特流文件,通过FP-GA配置引擎加载该配置文件,从而实现FPGA的静态全局可重构。
在部分动态可重构中,用户首先按照模块化设计方法,将整个设计分解为固定模块部分和可重构模块部分。然后分别对固定模块和可重构模块进行设计综合,根据应用需求生成一个缺省全局配置比特流文件,同时生成所有可重构模块的部分配置比特流文件。此初始配置过程中可重构代理选择加载FPGA的缺省全局配置文件,在动态部分可重构过程中,可重构代理根据用户命令选择加载对应的可重构模块配置文件。
ComputingSystems[C]14thAnnualIEEESymposiumonField-ProgrammableCustomComputingMachines.2006:67-75.
[3]TahirMA,BouridaneA.AFpgaBasedCoprocessorfor
CancerClassificationUsingNearestNeighborClassifier[C]2006IEEEInternationalConferenceonAcoustics,SpeechandSignalProcessing,ings.2006:1012-1015.
[4]EstrinG.ParallelProcessinginaRestructurableCompu-t
erSystem[J].IEEETransonElectronicComputers,1963,12(5):747-755.
[5]KartashevSP,KartashevSI.DynamicArchitectures:
ProblemsandSolutions[J].Computer,1978,11(7):26-40.
[6]RoseJ,GamalAElA.Sangiovann-iVincentell,iArch-i
tectureofField-ProgrammableGateArrays[C]Pro-ceedingsoftheIEEE.1993,81(7):1013-1029.[7]ButelP.ManapingPartialdynamicReconfigurationin
Virtes-ProFPGAS[EB/OL].(2004-07-01)[2008-09-01].
http:www.xilinx.com/publications/
xcellonline/xcess-50/xc-pdf/xc-mbdaso.pd.f
[8]ALIERAcorporation.StratixGXDeviceHandbook
[EB/OL].(2007-10-01)[2008-06-01].http://www.altera.com.cn/literature/lit-s2gx.jsp.
[9]HadleyJ,HutchingsB.Designmethodologiesforpartia-l
lyreconfiguredsystems[C]IEEEWorkshoponFPGAsforCustomComputingMachines.1995:78-84.[10]AmersonR,CarterRJ,CulbertsonWB,eta.lTeram-acre-configurablecustomcomputing[C]Proceedingsofthe1995IEEESymposiumonFPGAsforCustomComputingMachines.Napa:CA,1995:32-38.[11]HandziskiV,PolastreJ,HauerJH,eta.lFlexible
HardwareAbstractionforWirelessSensorNetworks[C]Proceedingsofthe2ndEuropeanWorkshoponWire-lessSensorNetworks(EWSN2005).2005:145-157.[12]McDysanD,LundbergT,Bjorkman,eta.lMult-iserv-iceNetworkingusingaComponent-basedSwitchandRouterArchitecture[C]ProceedingsoftheIEEECon-ferenceonHighPerformanceSwitchingandRouting.2000:97-104.
ICASSP2006Proceed-
4结论
本文基于FPGA的可重配置特性,设计了一
种支持远程用户可在线重配置的电路结构,从硬件角度满足可重构路由器对实时重构的需求,对可重构路由器的研制具有重要意义。
参考文献:
[1]DuncanBuel,lTarekE-lGhazaw,iKrisGa,jeta.lGuest
Editors
Introduction:High-PerformanceReconfigurable
Computing[J].Computer,2007(3):23-27.
[2]ZacharyKBaker,ViktorKPrasanna.AnArchitecture
forEfficientHardwareDataMiningusingReconfigurable
因篇幅问题不能全部显示,请点此查看更多更全内容