专利名称:用fpga器件实现机群交换网络路由芯片的方法
技术领域:
本发明涉及一种采用FPGA器件实现机群互联网络路由芯片的方法。
背景技术:
机群系统从硬件结构上看,是把若干个高性能处理结点通过高速交换网络连接起来构成的,可实现高速并行处理的计算机系统。机群系统中的单个结点的性能越来越高,要求交换网络的性能必须与结点性能相匹配,否则将会成为整个系统的瓶颈。路由芯片是构造机群交换网络的核心部件,路由芯片的性能对机群交换网络的性能具有决定性影响。设计构造可扩展、高性能机群交换网络的路由芯片具有重要意义。一种可扩展交换网络见附图1。
路由芯片的功能是从输入端口接收数据包,识别数据包内包含的路由信息,根据预先定义好的路由方法确定输出端口,把输入数据交换到相应的输出端口,从而为连接在交换网络上的各个处理结点之间提供高速、可靠的数据传送通道。
传统的路由芯片设计采用专用集成电路(ASIC)器件来实现,ASIC器件虽然通过精心设计和先进的工艺可以保证良好的性能,但由于开发成本高、开发周期长以及生产测试成本开销大等原因,当芯片没有形成批量时,不具备较高的性能价格比;另外,ASIC器件一旦设计定型,其逻辑结构和性能就不能再改,所以新的路由方法和逻辑设计思想不能及时获得应用。
发明内容
本发明的目的提出一种用FPGA器件实现构造机群交换网络路由芯片的方法,采用该方法设计实现了一个具有8个全双工端口,每个端口的单向传输带宽达到4Gbit/S的路由芯片。
一种用FPGA器件实现机群交换网络路由芯片的方法,方法包括步骤利用可编程逻辑器件的门阵列资源,在芯片内部设置对称的输入-输出端口;在芯片内部设置对称的逻辑交叉开关;通过仲裁逻辑调度输入至输出端口间的数据通道;完成多端口之间的数据交换的任务。
本发明方法的核心是最通用的完全交叉开关,因而使用该类数字交换芯片构造的机群通信系统非常易于组建和扩展,可应用在各种网络拓扑中。同时,由于本发明有效地简化了通信协议,相应的交换设备可以安全高效地实现机群结点间的通信。本发明充分利用了可编程器件FPGA的资源优势和串-并/并-串转换接口器件的速度优势。接口处数字信号工作在双速率时钟下,发挥了器件的效能,系统的通信带宽比单沿时钟运行条件下提高一倍。使用本发明的多链路化传输方法,未来通信系统的性能可以随着可编程器件的发展而发展。由于该方法中各链路都是完全对等的,所以在未来器件水平进步的同时,逻辑上只需稍作修改就可以将芯片的性能成倍的提高。
图1是现有技术双向多级机群交换网络示意图;图2是本发明路由芯片结构图;图3是本发明路由芯片内各模块间的连接关系示意图;图4是输入端口示意图;图5是输出端口示意图;图6是仲裁器示意图;图7是数据选择器示意图。
具体实施例方式
与ASIC器件相比,FPGA器件具有现场可编程的优点,随着生产工艺的不断完善,现在FPGA器件的集成度和工作速度都获得了极大改进,其内部提供的逻辑资源如数字时钟管理器、块状存储器、多路选择器、双倍速率触发器等,完全可以满足路由芯片对逻辑资源和时钟频率的要求。用FPGA器件实现路由芯片具有设计周期短、便于进行设计改进、性能价格比高等优点。用FPGA实现的成熟逻辑也可以方便的转换成ASIC。
下面结合附图详细描述本发明。
如图2所示,所述方法实现了一个具有8个双工端口,每个端口的单向传输带宽达到4Gbit/S的路由芯片。用此路由芯片可以构造出可扩展的机群交换网络。
下面分别描述本发明的方法。
1.路由方法路由芯片采用源址路由方法,即路由信息由发送结点添入到数据包的头部,路由芯片根据此路由信息选择输出端口转发数据。被传送的数据包采用可变长度,这里的可变长度有两层意义(1)头部的路由信息可以有一个或多个,每级路由芯片使用一个路由信息,因此可以把多个路由芯片级连起来,构成多级网络,支持网络规模的扩展;(2)数据包中的有效数据长度可变,可以很方便地将各种上层协议的数据包嵌入到路由芯片的数据包中,由此可降低协议间的转换开销,提高协议效率。
2.交换机制和流量控制路由芯片采用缓冲虫洞路由机制实现交换和流量控制。路由芯片的输入端口收到数据包的头部路由信息后,就根据此路由信息请求输出端口,如果输出端口可用就把数据直接交换到输出端口,而不必等待收到完整的数据包,这种方法可减少路由芯片的交换延迟。当输出端口不可用时,只要输入端口有缓存空间,就继续接收数据,当缓冲区内的数据达到规定的缓冲区上界时,发出流量控制信号,通知上级输出端口停发数据。这种流量控制方法当输入端口的缓冲区较大时,在阻塞情况下可以容纳下整个数据包,减少了对物理通道的占用;对于较大的数据包,阻塞时将分散存储在各级路由芯片的缓冲区内,也不会引起丢包。从而实现了对可变长度数据包传送的支持。
3.芯片内部数据通道调度
路由芯片采用分布式结构实现对内部数据通道的调度,即为每个输出端口配备一个仲裁器,此仲裁器接收来自所有输入端口的通道请求信号,并根据优先级队列中的优先级顺序给出仲裁响应信号。仲裁器按近期最少服务优先原则对请求信号进行调度,每个仲裁器内设置一个优先级队列,芯片复位后优先级队列设定一个初始优先级,当同时收到多个请求时,优先级最高的请求获得响应;服务完成后被响应的请求设置为最低优先级,原来优先级高于被响应请求的,其优先级不变;原来优先级低于被响应请求的,其优先级依次提高一个等级。仲裁器的分布式结构可以提高对请求的处理速度,进而减小仲裁延迟,分布式仲裁也方便路由芯片未来对多播通信的支持;近期最少服务优先原则可保证对各请求的公平性,不会发生某些请求被饿死的现象。
4.端口带宽扩展方法路由芯片的每个端口都采用双通道技术来扩展数据通道的宽度,实现了既能增加数据传送带宽,又能利用现有的高速串-并/并-串转换芯片,以支持长线传输并减少信号线数量。在路由芯片的输入端口内设置两个独立的输入数据通道,用两个独立的异步FIFO缓冲区分别缓存两路数据,缓冲区的读出控制逻辑根据两个缓冲区的空标志、读出数据的状态标志,控制对缓冲区的读操作,补偿两路数据在物理线路上传送时产生的时钟扭斜,以实现两个通道数据间的同步。
为进一步增加端口的数据传送带宽,采用在时钟信号上升沿和下降沿同时传送数据的双倍数据速率(DDR)技术,并利用了FPGA器件内的专用DDR逻辑资源。为降低芯片内的时钟工作频率,在芯片内采用加宽数据通道的方法以实现与外部数据速率的匹配。采用DDR技术使路由芯片的数据传输带宽增加了一倍。
5.信号传送方式路由芯片的数据传输采用源时钟同步方法实现,源时钟是指输出端口发送数据时,同时送出与数据同步的时钟信号,下级路由芯片的输入端口用此时钟信号驱动异步FIFO缓冲区的写控制逻辑,异步FIFO缓冲区的读控制逻辑由本地时钟信号驱动。这样就实现了不同端口间的输入数据从异步FIFO缓冲区读出后获得同步,进而可以简化交叉开关、仲裁器和输出端口的逻辑设计。同步传送的另一个含义是输出端口发送数据时按固定的时钟节拍进行,而不必与下级芯片的输入端口间建立请求、应答关系。发生流量控制时,由下级芯片发出停止或继续传送的命令,该命令通过全双工通道中的反向通道传送到输出端口,控制输出端口的数据发送过程。使用异步FIFO缓冲区使输入数据的时钟信号与芯片内的全局时钟信号隔离,从而简化了芯片内的时钟同步逻辑;同步信号传送方法消除了请求、应答产生的传送延迟,提高了信号传送速率。
6.路由芯片结构路由芯片的逻辑设计采用模块化方法,按功能把路由芯片划分成输入端口、输出端口、仲裁器和交叉开关4类基本模块。各模块间的连接关系见附图3,把图中的8个数据选择器总称为交叉开关。
输入端口 输入端口的主要功能包括(1)将双倍速率(DDR)数据转换成数据线宽度加倍的单时钟沿数据;(2)对数据进行8B/10B解码、并分离出数据传送的协议控制字符并做相应处理、识别出数据包的头尾位置;(3)把数据包写入输入端口的异步FIFO缓冲区内,同时监测缓冲区内的数据量,当达到预定的缓冲区上界时,送出流量控制信号;(4)根据两个异步FIFO缓冲区的状态信息,控制对缓冲区的读操作,并将两路数据合并成一路数据,分析数据包的路由信息并向仲裁器发出输出端口请求信号;(5)收到仲裁器的应答信号后,控制数据向输出端口的传送过程。如附图4所示,输入端口包含了两个数据通道,在异步FIFO缓冲区后的读控制逻辑把两路数据合成为一路数据,送到交叉开关进行交换。
输出端口 输出端口的主要功能包括(1)把经过交叉开关送来的数据写入到输出端口的同步FIFO缓冲区中,同时监测缓冲区的满标志,以便实现芯片内部的流量控制;(2)从缓冲区中读出数据,并附加上数据传送协议规定的头尾标志和其他控制字符,形成协议数据包;(3)将数据包分成两路,分别控制其传送过程;(3)两个数据通道分别对数据进行8B/10B编码,单沿数据到双倍数据速率(DDR)转换,转换后的双路DDR数据从输出端口的引脚上送出,同时送出用于同步的时钟信号;(4)对下级路由芯片的输入端口送来的流量控制做出响应,即暂停或继续数据传送;(4)实现通道协议规定的其他控制功能。附图5示出了输出端口内部各主要模块及其连接关系。
仲裁器 仲裁器接收来自8个输入端口的请求信号,根据仲裁器内优先级队列中存储的优先级顺序,选出当前优先级最高的请求信号,并对其做出响应,同时送出对交叉开关的选择控制信号和输出允许信号。当一个数据包传送完成时,请求信号撤销,仲裁器对其优先级队列内的优先级顺序进行重新排序,近期最少服务的请求排在最高优先级,刚获得服务的请求排在最低优先级。仲裁器的结构如附图6所示。
交叉开关 交叉开关的功能是为输入端口和输出端口间建立可变的数据通道,从而实现数据交换。采用8个独立的多位8选1数据选择器实现,每个数据选择器的输出连接一个输出端口,8个输入分别连接到8个输入端口,选择控制信号和输出允许信号连接到相应的仲裁器。数据选择器如附图7所示。
各功能模块采用硬件描述语言编写,仿真、调试后下载到FPGA器件内,即可实现路由芯片。
权利要求
1.一种用FPGA器件实现机群交换网络路由芯片的方法,方法包括步骤利用可编程逻辑器件的门阵列资源,在芯片内部设置对称的输入-输出端口;在芯片内部设置对称的逻辑交叉开关;通过仲裁逻辑调度输入至输出端口间的数据通道;完成多端口之间的数据交换的任务。
2.如权利要求1所述的方法,其特征在于所述的对称是输入端口个数与输出端口个数相同,编号相同的一对输入输出端口为对偶端口。
3.如权利要求1所述的方法,其特征在于所述内部交叉开关的调度采用优先级轮换的方法。
4.如权利要求3所述的方法,其特征在于所述优先级轮换的方法包括步骤赋予每个输入端口的优先级序号;在发生多个输入端口竞争同一输出通道的时候,将通过权交给参与竞争的输入端口中优先级序号最高的一个;并且在本次数据传输完成后,对相关的输入端口的优先级序号作相应的调整。
5.如权利要求1所述的方法,其特征在于在输入输出端口之间进行的数据传输过程的流量控制信号通过对偶输出端口以字符命令形式向数据包发送端口的对偶输入端口传递,经由该对偶输入端口解释命令后传递给正在发送数据包的输出端口知晓,实现数据字级别上的流量控制。
6.如权利要求1所述的方法,其特征在于输入端口和输出端口内部使用可编程器件的逻辑资源FIFO来构造数据缓冲区,以实现带缓冲的虫洞路由机制。
7.如权利要求1所述的方法,其特征在于数据传输以数据包为单位,每个数据包的第一个数据携带路由信息,指明数据包的传出路径。
8.如权利要求1所述的方法,其特征在于端口上数据采用8b/10b形式编码。
9.如权利要求1所述的方法,其特征在于端口上数据按同步时钟双沿传输,通过专用串-并/并-串转换器件传输数据。
10.如权利要求1所述的方法,其特征在于每个端口至少有2条相同的物理链路联合构成,每个链路使用自己独立的时钟,接收方将多路数据合并为一路,发送方将一路数据分配到多路送出。
全文摘要
一种用FPGA器件实现机群交换网络路由芯片的方法,方法包括步骤利用可编程逻辑器件的门阵列资源,在芯片内部设置对称的输入-输出端口;在芯片内部设置对称的逻辑交叉开关;通过仲裁逻辑调度输入至输出端口间的数据通道;完成多端口之间的数据交换的任务。本发明方法的核心是最通用的完全交叉开关,因而使用该类数字交换芯片构造的机群通信系统非常易于组建和扩展,可应用在各种网络拓扑中。同时,由于本发明有效地简化了通信协议,相应的交换设备可以安全高效地实现机群结点间的通信。本发明充分利用了可编程器件FPGA的资源优势和串-并/并-串转换接口器件的速度优势。
文档编号H03K19/173GK1507285SQ02154519
公开日2004年6月23日 申请日期2002年12月6日 优先权日2002年12月6日
发明者安学军, 高文学, 吴冬冬, 张佩珩, 刘新春 申请人:中国科学院计算技术研究所