一种可重配置选路交叉网络及其实现方法与流程

文档序号:17003427发布日期:2019-03-02 01:54阅读:454来源:国知局
一种可重配置选路交叉网络及其实现方法与流程

本发明涉及通信领域中的数据选路交叉,具体涉及一种基于三级clos架构的可重配置选路交叉网络及其实现方法。



背景技术:

随着通信技术的迅速发展,人们对数据交换的需求逐渐提高。传统的单级交叉技术,虽然能满足一定的应用需求,但其fpga实现消耗资源多、时序欠佳。

clos架构于1953年由贝尔试验室的charlesclos提出,当前使用的大容量交换网络拓扑多采用三级clos架构,其fpga实现消耗相对较少的资源且时序更优,尤其适用于庞大的交换矩阵。

n×n的三级clos网络基本结构如图1所示,每一竖列称之为一级,每级均由多个基础交叉单元搭建而成(图中每个矩形框代表一个基础交叉单元),n×n是指该结构实现n个输入端口到n个输出端口的全交叉。三个参数n、m、r的含义为:第一级为n×m的基础交叉单元,共r个,第二级为r×r的基础交叉单元,共m个,第三级为m×n的基础交叉单元,共r个。其中n=nr。



技术实现要素:

本发明基于现有的三级clos架构(如图1所示),提供一种可重配置选路交叉网络及其实现方法。该交叉网络及其实现方法有助于降低阻塞率,并具有良好的可扩展性和高度的灵活性。

本发明采取的技术方案是:一种可重配置选路交叉网络,其特征在于,该选路交叉网络在fpga中实现,包括由触发寄存器、每一级配置开关及选路交叉结果构成的配置单元、由多个多选一电路构成的基础交叉单元和固定数据通路三部分,其中配置单元完成对基础交叉单元的控制,基础交叉单元内部的可配置数据通路通过多个多选一电路与固定数据通路连接,协同实现网络的选路交叉功能;所述多选一电路即为n选1电路,n选1电路根据不同的选路交叉结果选择性连接n个不同的输入端口到输出端口的可配置数据通路,若有m个n选1电路则选择性连接n个不同的输入端口到m个输出端口的可配置数据通路,即n×m的基础交叉单元。

本发明所述的一种可重配置选路交叉网络的实现方法,其特征在于,所述的选路交叉网络执行以下操作:

一、将各个基础交叉单元的选路交叉结果写入fpga,存储在ram中。

二、全部选路交叉结果写完后,对触发寄存器写0再写1,此上升沿打开ram和多选一电路之间的开关。

三、按照被选路交叉的业务数据的时钟周期依次打开第一级、第二级、第三级基础交叉单元与可配置数据通路之间的配置使能开关,使其依次生效,保证上一时刻的被选路交叉的业务数据按照旧的选路交叉网络实现路由,下一时刻的被选路交叉的业务数据使用新的选路交叉网络实现路由,新、旧网络更改配置参数过程中业务数据不中断,完成无缝衔接。

本发明的有益效果是:以更少的fpga逻辑资源和更优的时序实现同样容量的选路交叉功能,并且确保选路交叉结果的重配置不会对现有业务造成影响,有助于降低阻塞率,并具有良好的可扩展性和高度的灵活性。

以64组axistream总线×64组axistream总线的交叉为例,时钟速率为312.5mhz(周期为3.2ns),每组总线由1bit有效标志、1bit帧结束标志和32bit数据组成,采用单级交叉架构和三级clos架构在fpga中实现,资源消耗情况和时序评估结果如下表所示,可见采用三级clos架构使用资源更少、时序更收敛。

单级交叉架构与三级clos架构对比表

附图说明

图1为三级clos交叉矩阵架构图;

图2为本发明可重配置选路交叉网络原理图;

图3为n选1电路原理图;

图4为2×2交叉矩阵的两种选路交叉方案示意图;

图5为2×2交叉矩阵重配置流程图。

具体实施方式

以下结合附图和实施例对本发明作进一步说明:

如图2所示:本发明的选路交叉网络在fpga中实现,包括由触发寄存器、每一级配置开关及选路交叉结果构成的配置单元1、由多个多选一电路2-1构成的基础交叉单元2和固定数据通路3三部分,其中配置单元1完成对基础交叉单元2的控制,基础交叉单元2内部的可配置数据通路2-2通过多个多选一电路2-1与固定数据通路3连接,协同实现网络的选路交叉功能;多选一电路2-1即为n选1电路,n选1电路根据不同的选路交叉结果选择性连接n个不同的输入端口到输出端口的可配置数据通路,若有m个n选1电路则选择性连接n个不同的输入端口到m个输出端口的可配置数据通路,即n×m的基础交叉单元。

基础交叉单元2之间的固定连接如图2中固定数据通路3(实线)所示,不可配置;基础交叉单元由多个多选一电路2-1(如图2中竖立的小梯形所示)构成。图3为单个n选1电路原理图,输出端口的值根据可配置选择输入的值变化而变化,图2中标注的可配置数据通路2-2所示即为一种可能的配置结果。

以第一级的基础交叉单元0为例(左上角的矩形框),第0个输出端口的选择值为1,完成1端口入0端口出的交叉功能;第1个输出端口的选择值为n-1,完成n-1端口入1端口出的交叉功能;第m-1个输出端口的选择值为0,完成0端口入m-1端口出的交叉功能。

在实际应用中,使用zynq(xilinx公司的一款控制能力较强的芯片)作为控制设备,通过读写寄存器的方式实现对fpga的配置,配置接口采用axi4标准。选路交叉网络执行以下操作:

一、将各个基础交叉单元的选路交叉结果写入fpga,存储在ram中。

二、全部选路交叉结果写完后,对触发寄存器写0再写1,此上升沿打开ram和多选一电路之间的开关。

三、按照被选路交叉的业务数据的时钟周期依次打开第一级、第二级、第三级基础交叉单元与可配置数据通路之间的配置使能开关,使其依次生效,保证上一时刻的被选路交叉的业务数据按照旧的选路交叉网络实现路由,下一时刻的被选路交叉的业务数据使用新的选路交叉网络实现路由,新、旧网络更改配置参数过程中业务数据不中断,完成无缝衔接。

对于n个bit输入、n个bit输出的选路交叉网络,需要在fpga中例化一份clos交叉矩阵,对于n组多bit输入、n组多bit输出的选路交叉网络,在fpga中例化多份clos交叉矩阵即可。

为便于说明,m、n、r分别取值为2、1、2,整体实现的功能为2×2(n=nr=2)的交叉,实现0入1出的两种选路交叉方案如图4所示,实际工作中选择哪种方案由路由算法决定。

假设2×2交叉矩阵需要依次传输d0、d1、d2、d3、d4一路数据,在传输过程中将交叉结果从方案一重配置成方案二的工作流程如图5所示:

时刻0,输入数据到达交叉矩阵入口,当前使用的是方案一;

时刻1,数据d0按照方案一通过第一级交叉,方案二在fpga的ram中准备就绪;

时刻2,第一级开关打开并更新交叉结果,数据d1按照方案二通过第一级,此时第二级的开关尚未打开,数据d0仍按照方案一通过第二级;

时刻3,第二级开关打开并更新交叉结果,数据d1按照方案二通过第二级,此时第三级的开关尚未打开,数据d0仍按照方案一通过第三级到达交叉矩阵出口;

时刻4,第三级开关打开并更新交叉结果,数据d1按照方案二通过第三级到达交叉矩阵出口,至此d0和d1的无缝衔接完成,后续数据均按照方案二通过交叉矩阵。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1