基于ACR路由器的DIRL系统研究与实现
2008-12-15
作者:李 鹏1, 兰巨龙1, 杨光
摘 要: 随着网络业务需求的发展,构建具有可扩展性" title="可扩展性">可扩展性和灵活性的路由器成为网络技术研究领域的热点问题。在传统网络可重构" title="重构">重构技术的基础上,提出了大规模接入汇聚路由器(ACR)中分布式网络可重构" title="可重构">可重构逻辑(DIRL)系统。该系统赋予了分布式路由器网络可重构能力,提高了设备的可扩展性和灵活性,降低了设备的维护和更新成本。
关键词: 接入汇聚路由器; 分布式网络可重构逻辑; 现场可编程门阵列; 闪速存储器
随着互联网用户需求的增加以及网络技术的进步,新一代互联网已经能承载包括语音、视频、图像、数据、流媒体等在内的多种业务,其所蕴含的技术内涵更加丰富。为了适应新一代网络的业务需求,如何构建具有更强可扩展性和灵活性的路由器逐渐成为网络技术研究的一个热点。1999年, LEE D C, HARPER S J等人提出了重构路由器的原型结构,并将结构中的可重构硬件部分用现场可编程门阵列(FPGA)动态实现[1]。此外,HADZIC I, SMITH J等人运用基于SRAM的FPGA证明了可重构技术" title="可重构技术">可重构技术能够为网络设备提供动态的功能扩展[2]。
本文在分析传统重构技术的基础上,结合工程实践,提出了一种分布式网络可重构逻辑(DIRL)系统。
1 重构技术的发展状况
1.1重构的基本思想
重构是指信号处理系统中的硬件功能或硬件功能模块间的通信连接可以重新配置。
近年来,随着微电子技术、计算机技术的发展,尤其是大规模高性能的可编程器件的出现、软硬件设计方法和设计工具上的改进,重构技术逐渐成为国际上计算系统研究的新热点。它的出现使过去传统意义上的硬件软件的界限变得模糊,使硬件系统软件化。电路重构的本质就是利用可编程器件的可多次重复配置逻辑状态的特性,在运行时根据需要改变系统的电路结构,从而使系统兼具灵活、简捷、硬件资源可复用、易于升级等多种优良性能。
1.2 FPGA的可重构性
FPGA是在PAL、GAL、PLD等可编程器件的基础上进一步发展的产物,从结构来看主要有两种:一种是基于逆熔丝技术的FPGA,另一种是基于SRAM 的FPGA。用逆熔丝开关作基本元件的FPGA具有非易失性。编程完成后,即使撤除工作电压,FPGA的配置数据仍然保留,不能重构。而基于SRAM的FPGA通过阵列中的SRAM 单元对FPGA 进行编程。SRAM编程型FPGA具有易失性,每次重新加电后FPGA都要重载配置数据。根据这一特点可以断开先前的电路功能后重新下载不同的配置数据来实现不同逻辑功能。重载配置数据这一特点成为FPGA 在许多新领域得到广泛应用的关键,并成为可重构系统发展的持续驱动力量。
1.3 网络可重构技术
随着基于FPGA的可重构技术的发展以及网络在各个领域的广泛应用,通过网络对异地设备实现远程重构的设计理念逐渐成为可能。支持网络可重构的设备可大幅度减少设备维护、升级的费用。
鉴于网络可重构技术所具有的优势,各大公司和研发单位纷纷推出了支持网络可重构技术的产品和设计方法,其中较为典型的是Xilinx公司推出的网络可重构逻辑IRL(Internet Reconfigurable Logic)的设计思想" title="设计思想">设计思想[3]。IRL设计思想中包含多套组件,如图1所示。
研发主机指设备研发单位所具备的硬件/软件设计环境,可重构设备所需要的重构文件可以在研发主机中生成。这些重构文件可以是远程重构设备中FPGA的配置文件,也可是针对硬件的软件驱动,可重构设备中的应用软件同样也可作为重构文件。网络服务器负责从研发主机获取重构文件,提供针对用户的重构文件下载服务。可重构设备中的处理器负责从网络服务器中获取、验证重构文件,并通过板上系统总线对FPGA进行配置,对软件进行更新。
运用IRL系统可远程升级、可重构设备中的软件、驱动、固件和硬件。
2 基于ACR的DIRL系统及其关键技术研究
2.1 ACR可重构需求分析
国家科技部在“863”计划信息技术领域“高性能宽带信息网(一般称之为3TNet,指T比特的路由、T比特的交换和T比特的传输)[4]”专项中部署了重大课题“大规模汇聚路由器系统性能与关键技术研究”(大规模接入汇聚路由器,Access Convergence Router,以下简称ACR)。ACR是3TNet核心设备之一,具有边缘路由器面向业务面向用户的特点,需要针对3TNet中不断出现的新的网络业务以及运行管理策略对自身的功能、结构进行不断的升级、调整。传统路由器更新、重构解决方案通常采用增添或更换功能板卡的方式,该方式存在以下的不足:
(1)时效性:每次更新都需要专门技术人员对路由器进行现场操作和调试,时效性较差。
(2)经济性:经济代价较大。被替换的功能板卡上的器件一般无法再次回收利用,还要付出额外的人工维护费用。
(3)灵活性:开发商在进行设备研发时必须考虑为今后的更新预留接口或资源。这会给ACR的软件、硬件平台设计带来一定的限制,灵活性较差。
考虑到传统重构技术的不足,把网络可重构设计思想引入到ACR的体系结构中将是一种较为可行的解决方案。通过在ACR中设计网络可重构系统,使ACR设备可以通过网络控制其软件及硬件设备的更新与重构,传统重构方式所存在的不足将迎刃而解。
2.2 现有网络可重构技术不能满足ACR需求
路由器是负责在网络层对IP包进行转发的主要设备。ACR属于高端路由器,其结构的最主要特点是转发与控制相分离。ACR功能结构见图2。
线路接口是数据包进出物理链路的接口。转发处理是在转发表中查找输入包目的地址从而决定目的端口。高速交换网络实现报文的交换。内部通信模块是保证路由器各个模块协调工作、主控模块对其他各个模块进行有效控制的模块。主控板上的主处理器负责运行路由协议、维护并更新路由表等工作。从处理器位于各个功能板上,通过内部以太网络与主处理器进行通信,从主控板获取路由信息、配置文件、控制信息[5]。
在ACR中,接口处理、包转发、路由表查找以及高速交换都是由FPGA完成的,它们分布于各个不同的功能板上,完成不同的任务。现有的网络可重构技术IRL是基于单处理器单电路板的解决方案,不适用于ACR的分布式体系结构中。用单处理器对ACR中不同功能板上的FPGA进行重构是不现实的。
为了解决现有网络重构技术在ACR应用中存在的问题,本文提出了一种适应于分布式路由器的DIRL(Distributed Internet Reconfigurable Logic)系统设计思想。
2.3 DIRL系统设计
DIRL系统的主要功能是通过网络对ACR设备的硬件进行重构,对软件进行更新。该系统采用分布式结构,根据功能分为主控、目标、粒度三种单元。各个单元之间的关系如图3。
DIRL系统为ACR的硬件重构和软件更新部分划分了粒度,它是重构系统的最基本组成单元。传统的增加硬件板卡数量的方式也可以被认为是一种粗粒度的重构,其重构粒度是以每个硬件板卡为单位的。在DIRL系统中,粒度单元的划分遵循高内聚、低耦合的原则。高内聚指粒度单元内部功能紧聚合,如将粒度单元进行更深度的划分将会对功能的实现带来不利影响;而低耦合指粒度单元之间的功能上的关联应尽量小。这样的结构使DIRL系统重构一个粒度单元时不必对其他的粒度单元进行改动,节省重构时间,提高重构效率。根据这个原则,DIRL的粒度单元可以分为以下几类:
(1)FPGA
FPGA是DIRL系统的主要粒度单元,ACR可根据应用环境下载不同的配置数据改变其功能。
(2)VxWorks
嵌入式操作系统VxWorks是支持应用软件运行、DIRL系统下载和重构的软件平台。VxWorks采用模块化设计,用户可以根据需要对系统进行裁减[7]。
(3)应用软件
ACR各个功能板上的应用程序软件可以通过DIRL系统进行更新和升级。
目标单元接收主控单元下发的重构数据并负责所在功能板上所有粒度单元的重构,按功能划分为五个模块:处理器模块、通信模块、内存模块、粒度单元数据存储模块和下载控制模块,如图4所示。
处理器模块是目标单元的核心,用来进行运算并对其它模块进行控制。通信模块与主控单元通过内部以太网进行通信,接收主控单元下发的数据并传送给处理器模块。内存模块为处理器模块提供处理数据所需要的高速存取空间。粒度单元数据存储模块存储目标单元所控制的所有粒度单元的配置数据,一般采用Flash这种非易失性可擦写存储器件。下载控制模块完成对粒度单元的重构(注:由于目标单元和它所控制的粒度单元位于同一块功能板,通过板上系统总线对FPGA进行重构是可行的)。
主控单元从网络服务器中下载重构文件并下发给目标单元。DIRL系统运行流程如图5。
2.4 DIRL系统关键技术-基于分级的地址匹配方法
在DIRL系统中,当主控单元从网络服务器中获取重构文件后,需要选择正确的目标单元和粒度单元进行重构操作。针对DIRL这种分层结构中的粒度单元寻址问题,本文提出了粒度单元地址分级匹配方法。
DIRL系统中重构文件的格式为自定义格式,如图6。
重构文件在文件起始位置分别附带了8bit的目标单元号IOT(Identifier Of Target Unit)、8bit的粒度单元号IOG(Identifier Of Granularity Unit)以及32bit的重构文件长度信息。IOT标识重构文件所对应的目标单元号,每个目标单元在ACR设备中拥有唯一的IOT。IOG标识重构文件所针对的粒度单元号。每个目标单元下属的粒度单元都进行统一的编号。
粒度单元重构的本质是用重构文件覆盖目标单元中Flash上存储的原配置文件,系统重启后就会调用更新后的文件。DIRL分层体系结构决定了对粒度单元配置文件存储地址的查找分为两级进行。
首先根据重构文件中的IOT数据选择正确的目标单元,完成一级匹配。重构文件下载到主控单元后,应用程序读取重构文件的IOT数据,将此数据与主控单元维护的目标单元号列表中的数据相对应。目标单元号列表保存了ACR设备中的每个目标单元的编号。如果在目标单元号列表中查到了重构文件包含的IOT数据,主控单元则通过内部以太网向该目标单元发送更新控制包。如在目标单元号列表中未找到该IOT对应的数据,则提示匹配失败并向网络服务器报告出错。
目标单元接收到主控单元下发的更新控制数据包后,将重构文件下载到本地内存中。下一步进行二级匹配,即根据重构文件中的IOG数据查找对应粒度单元的配置文件在Flash中的存储地址。
为了有效利用Flash的存储空间,单个功能板上所有FPGA的配置文件按粒度号连续存储在Flash中。由于各个功能板上可能使用不同型号的FPGA,其配置文件的长度可能不同,因此相同IOG的FPGA配置文件在不同功能板上的存储地址可能并不相同,IOG与配置文件在Flash中的存储地址不能直接对应。DIRL系统借鉴索引技术的设计思想,在Flash的固定存储位置建立一个的索引表来指示粒度单元配置文件的存储地址。每个索引表项中有64bit,前32bit表示粒度单元配置文件在Flash中的存储起始地址,后32bit表示配置文件的大小。这样通过索引表IOG就可与粒度单元的配置文件在Flash中的存储地址相对应。
对于某种特定型号的FPGA,无论设计简单或是复杂,其配置的数据长度是固定的。查找FPGA配置文件存储地址时还要比较配置文件长度信息是否与索引表中的一致。如果不一致就判断此配置文件无效,向主控单元上报错误信息。而VxWorks映像文件与应用软件根据设计需求长度是不固定的,只需按照索引表指定的地址更新文件即可。
分级的地址匹配方法解决了分布式路由器体系结构中粒度单元的定位问题。通过该方法可将重构文件可靠、准确地下载到目标单元Flash中,进而完成对相应粒度单元的重构。
通过ACR工程实践证明,DIRL系统赋予了分布式路由器网络可重构能力,提高了设备的可扩展性和灵活性,极大地降低了设备的维护、更新成本。若将DIRL可重构设计思想引入到网络体系结构设计中,将构成一个可重构的网络。整个网络的可重构将增强网络的可扩展性,降低网络的升级成本。
参考文献
[1] LEE D C, HARPER S J, ATHANAS P M, et al. A stream-based reconfigurable router prototype. In: Proceedings of the IEEE. Symposium on Field Programmable Gate Arrays for Custom Computing Machines. Virginia, 1999-9: 581-585.
[2] HADZIC I, SMITH J. On-the-fly programmable hardware for networks.In:Proceedings of GLOBECOM. GLOBECOM’99,Sydney, 1998,(11):98-102.
[3] XILINX. Architecting systems for upgradability with IRL (Internet Reconfigurable Logic) [EB/OL].:www.Xilinx.com, 2001-6-29.
[4] 邬江兴.3Tnet与IPTV的未来发展[R].北京:第二届中国国际新媒体产业论坛,2005.
[5] 张兴明.大规模接入汇聚路由器(ACR)总体技术规范[R].国家数字交换系统工程技术研究中心,2005.
[6] 段然,樊晓桠.可重构计算技术及其发展趋势[J].计算机应用研究,2004,21(8):14-17.
[7] 周启平,张杨,吴琼.VxWorks开发指南与Tornado实用手册.北京:中国电力出版社,2004:168-170.