FPGA片间互连的Crossbar交换单元设计方法技术

技术编号:22224286 阅读:30 留言:0更新日期:2019-09-30 04:30
本发明专利技术公开了一种FPGA片间互连的Crossbar交换单元设计方法,主要解决现有专用大容量Crossbar交换单元受PFGA芯片资源限制的问题。其实现方案是:确定数据帧要去往的交叉节点位置;再根据交叉节点位置搬移数据帧:若交叉节点位于本芯片,直接将数据帧搬移至本芯片的交叉节点,若交叉节点位于另一个芯片,先将其送至内帧成帧模块添加必要帧信息,再通过Aurora协议的高速串行收发器GTX传输至另一个芯片的内帧拆帧模块;内帧拆帧模块解析帧信息后将数据帧搬移至另一个芯片中的交叉节点。本发明专利技术能支持FPGA片间互连,减小芯片资源对交换容量的限制,降低单片FPGA资源的占用比例,可用于专用大容量交换机。

Design Method of Crosbar Switching Unit for Inter-chip Interconnection of FPGA

【技术实现步骤摘要】
FPGA片间互连的Crossbar交换单元设计方法
本专利技术属于通信
,更进一步涉及一种Crossbar交换单元的设计方法,可用于专用大容量交换机。
技术介绍
现有的单级交换网络结构主要有共享缓存交换结构和Crossbar交换结构。共享缓存交换结构中所有待转发的数据分组都用一个统一的缓存来暂存,都通过同一条读写总线传输,简化了交换结构的内部逻辑设计,但是也限制了整个交换单元的吞吐量。Crossbar交换结构可以实现多套总线同时传输,大大提升了交换容量。但是随着输入、输出端口数的增加,交叉节点数量和虚拟输出队列数量的增加,对FPGA资源的需求也提出了更高的需求。中国人民解放军理工大学在申请的专利文献“一种交叉点小缓存的高性能Crossbar调度方法”(申请号200910233916.0,申请公开号CN101695052A,公开日为2010.04.14)中提出了一种交叉点小缓存的高性能Crossbar调度方法,其包括排队技术和Crossbar调度算法,此系统通过在交叉点设立较小容量的缓存,使分组在输入端和Crossbar交叉点两处存储,解开了输入与输出调度匹配的耦合,具有高速、多端口、大容量的优点。但是此系统仍然存在一定的缺陷,其一,此方法只适用于交叉点数量较少的情况,当交叉点数量增多时,对缓存的需求大大提高;其二,此方法采用基于最长队列预测的轮转型调度算法,每次都优先调度队列最长的队列,当队列具有优先级时,不能支持队列的优先级调度。
技术实现思路
本专利技术目的在于克服上述现有技术的不足,提出一种FPGA片间互连的Crossbar交换单元设计方法,以将交叉点网络分割为两部分设置在两个芯片上,降低单片FPGA资源的占用比例,减小芯片资源对交换容量的限制,实现专用大容量交换机。为实现上述目的,本专利技术的技术方案包括如下:(1)确定数据帧要去往的交叉节点位置:(1a)根据公平轮询调度算法轮询4个输出端口,选择状态指示为1的输出端口;(1b)根据绝对优先级调度算法轮询所选输出端口下包含的8个优先级队列,从中选择一个非空队列;(1c)判断非空队列对应的交叉节点缓存是否空闲:若空闲,则出队调度成功,并将调度信息写入对应优先级的出队调度信息FIFO中;否则,等待直到该节点空闲;(1d)根据绝对优先级调度算法轮询8个优先级的出队调度信息FIFO,从中选择一个非空出队调度信息FIFO,对其进行读取并解析,获得目的端口号;(1e)根据目的端口号,确定数据帧要去往的交叉节点的位置:若目的端口号为1、2中的任意一个,则数据帧要去往的交叉节点在第一个FPGA中;若目的端口号为3、4中的任意一个,则数据帧要去往的交叉节点在第二个FPGA中;(2)获取要添加的6个帧信息参数:单/多播标志位、优先级、帧长、交叉节点比特码表、总线比特码表参数、输出端口比特码表;(3)对数据帧添加获取的6个帧信息参数:(3a)设交换单元基于两个FPGA芯片,共4个端口,每个FPGA芯片都包括一个用于添加帧信息的内帧成帧模块及一个用于解析帧信息的内帧拆帧模块;(3b)建立端口与总线的对应关系:设置4条总线用来传输数据,将端口号为1的端口数据用第一条总线传输,将端口号为2的端口数据用第二条总线传输,将端口号为3的端口数据用第三条总线上进行传输,将端口号为4的端口数据用第四条总线传输;(3c)将从端口进来要去往另一个FPGA交叉节点的数据帧送至芯片上的内帧成帧模块,内帧成帧模块在该数据帧前添加(2)获取的6个帧信息参数,生成新的数据帧;(4)将新的数据帧送至另一个FPGA由另一个FPGA上的内帧拆帧模块解析帧头信息,获取(3)添加的6个帧信息参数;(5)根据(4)中获取的6个帧信息参数中的总线比特码表参数,确定数据帧对应的总线,即将总线比特码表参数中为1的比特位确定为数据帧对应的总线;(6)根据(4)中获取的6个帧信息参数中的交叉节点比特码表参数,确定数据帧对应的交叉节点,即将比特码表参数中为1的比特位确定为数据帧对应的交叉节点,并将数据帧搬移至(5)所确定总线上的对应交叉节点;(7)根据(4)中获取的6个帧信息参数中的输出端口比特码表参数,确定数据帧对应的输出端口,即将输出端口比特码表参数中为1的比特位确定为数据帧对应的输出端口,并将交叉节点处的数据帧搬移至对应输出端口。本专利技术与现有技术相比,具有以下优点:第一,由于本专利技术将交叉节点网络分割为两部分设置在两个芯片上,有效地克服了现有技术中单片FPGA资源对交换机容量的限制问题,提高了交换机容量。第二,由于本专利技术将交叉节点网络分割为两部分设置在两个芯片上,将资源进行了重新分配,降低了单片FPGA资源占用比例,提高了资源利用率。附图说明图1为本专利技术的实现框图;图2为本专利技术中添加必要帧信息后的内帧格式图。具体实施方式下面结合附图对本专利技术的实施例做详细描述。本实例是基于两个现场可编程逻辑门阵列芯片FPGA1和FPGA2进行分组交换,其中,第一现场可编程逻辑门阵列芯片包含端口号为1、2的两个输入输出端口、1个内帧成帧模块、1个内帧拆帧模块及规模为4×2的交叉节点网络。第二现场可编程逻辑门阵列芯片包含端口号为3、4的输入输出端口、1个内帧成帧模块、1个内帧拆帧模块及规模为4×2的交叉节点网络。这两个现场可编程逻辑门阵列芯片FPGA1和FPGA2通过两个使用Aurora协议的高速串行收发器GTX相连,将数据帧从一个现场可编程逻辑门阵列芯片传输到另一个现场可编程逻辑门阵列芯片。参照图1,本专利技术的实现步骤如下:步骤1:将从输入端口进来的数据帧搬移至队列中。1.1)根据FPGA1和FPGA2上的输出端口个数构建队列:FPGA1和FPGA2上共有4个输出端口,给每个输出端口都分配8个队列用于表示数据帧的8个优先级,共构建32个队列;1.2)根据从输入端口进来的数据帧的输出端口号和优先级将其搬移至对应队列中:若输出端口号为1,优先级为n,则将该数据帧搬移至队列n中;若输出端口号为2,优先级为n,则将该数据帧搬移至队列n+8中;若输出端口号为3,优先级为n,则将该数据帧搬移至队列n+16中;若输出端口号为4,优先级为n,则将该数据帧搬移至队列n+24中;步骤2:确定数据帧要去往的交叉节点位置。2.1)每个输出端口都设置一个状态指示,若该状态指示为1,表示有要去往该输出端口的数据帧在队列中等待;2.2)根据公平轮询调度算法轮询4个输出端口,从中选择一个状态指示为1的输出端口,表示要将去往该输出端口的数据帧搬移至交叉节点,其轮询过程是先设当前输出端口号为n,下次再从输出端口号为n+1的输出端口开始轮询,输出端口号依次加1,当输出端口号加到4时,将输出端口号值赋为1,以此循环,直到从中找到一个状态指示为1的输出端口;2.3)根据绝对优先级调度算法轮询所选输出端口下包含的8个优先级队列,从中选择一个非空队列,表示要将该优先级队列中的数据帧搬移至交叉节点,其轮询过程是:每次都从优先级为7的队列开始轮询,优先级依次减1,当优先级减到0时,将优先级值赋为7,以此循环,直到从中找到一个非空队列;2.4)根据非空队列与交叉节点的对应关系判断交叉节点是否为空:队列与交叉节点的对应关系如下:队列1~8对应第一个交叉节点;队列9~16对应第二个交叉节本文档来自技高网...

【技术保护点】
1.一种FPGA片间互连的Crossbar交换单元设计方法,其特征在于,包括如下:(1)确定数据帧要去往的交叉节点位置:(1a)根据公平轮询调度算法轮询4个输出端口,选择状态指示为1的输出端口;(1b)根据绝对优先级调度算法轮询所选输出端口下包含的8个优先级队列,从中选择一个非空队列;(1c)判断非空队列对应的交叉节点缓存是否空闲:若空闲,则出队调度成功,并将调度信息写入对应优先级的出队调度信息FIFO中;否则,等待直到该节点空闲;(1d)根据绝对优先级调度算法轮询8个优先级的出队调度信息FIFO,从中选择一个非空出队调度信息FIFO,对其进行读取并解析,获得目的端口号;(1e)根据目的端口号,确定数据帧要去往的交叉节点的位置:若目的端口号为1、2中的任意一个,则数据帧要去往的交叉节点在第一个FPGA中;若目的端口号为3、4中的任意一个,则数据帧要去往的交叉节点在第二个FPGA中;(2)获取要添加的6个帧信息参数:单/多播标志位、优先级、帧长、交叉节点比特码表、总线比特码表参数、输出端口比特码表;(3)对数据帧添加获取的6个帧信息参数:(3a)设交换单元基于两个FPGA芯片,共4个端口,每个FPGA芯片都包括一个用于添加帧信息的内帧成帧模块及一个用于解析帧信息的内帧拆帧模块;(3b)建立端口与总线的对应关系:设置4条总线用来传输数据,将端口号为1的端口数据用第一条总线传输,将端口号为2的端口数据用第二条总线传输,将端口号为3的端口数据用第三条总线上进行传输,将端口号为4的端口数据用第四条总线传输;(3c)将从端口进来要去往另一个FPGA交叉节点的数据帧送至芯片上的内帧成帧模块,内帧成帧模块在该数据帧前添加(2)获取的6个帧信息参数,生成新的数据帧;(4)将新的数据帧送至另一个FPGA由另一个FPGA上的内帧拆帧模块解析帧头信息,获取(3)添加的6个帧信息参数;(5)根据(4)中获取的6个帧信息参数中的总线比特码表参数,确定数据帧对应的总线,即将总线比特码表参数中为1的比特位确定为数据帧对应的总线;(6)根据(4)中获取的6个帧信息参数中的交叉节点比特码表参数,确定数据帧对应的交叉节点,即将比特码表参数中为1的比特位确定为数据帧对应的交叉节点,并将数据帧搬移至(5)所确定总线上的对应交叉节点;(7)根据(4)中获取的6个帧信息参数中的输出端口比特码表参数,确定数据帧对应的输出端口,即将输出端口比特码表参数中为1的比特位确定为数据帧对应的输出端口,并将交叉节点处的数据帧搬移至对应输出端口。...

【技术特征摘要】
1.一种FPGA片间互连的Crossbar交换单元设计方法,其特征在于,包括如下:(1)确定数据帧要去往的交叉节点位置:(1a)根据公平轮询调度算法轮询4个输出端口,选择状态指示为1的输出端口;(1b)根据绝对优先级调度算法轮询所选输出端口下包含的8个优先级队列,从中选择一个非空队列;(1c)判断非空队列对应的交叉节点缓存是否空闲:若空闲,则出队调度成功,并将调度信息写入对应优先级的出队调度信息FIFO中;否则,等待直到该节点空闲;(1d)根据绝对优先级调度算法轮询8个优先级的出队调度信息FIFO,从中选择一个非空出队调度信息FIFO,对其进行读取并解析,获得目的端口号;(1e)根据目的端口号,确定数据帧要去往的交叉节点的位置:若目的端口号为1、2中的任意一个,则数据帧要去往的交叉节点在第一个FPGA中;若目的端口号为3、4中的任意一个,则数据帧要去往的交叉节点在第二个FPGA中;(2)获取要添加的6个帧信息参数:单/多播标志位、优先级、帧长、交叉节点比特码表、总线比特码表参数、输出端口比特码表;(3)对数据帧添加获取的6个帧信息参数:(3a)设交换单元基于两个FPGA芯片,共4个端口,每个FPGA芯片都包括一个用于添加帧信息的内帧成帧模块及一个用于解析帧信息的内帧拆帧模块;(3b)建立端口与总线的对应关系:设置4条总线用来传输数据,将端口号为1的端口数据用第一条总线传输,将端口号为2的端口数据用第二条总线传输,将端口号为3的端口数据用第三条总线上进行传输,将端口号为4的端口数据用第四条总线传输;(3c)将从端口进来要去往另一个FPGA交叉节点的数据帧送至芯片上的内帧成帧模块,内帧成帧模块在该数据帧前添加(2)获取的6个帧信息参数,生成新的数据帧;(4)将新的数据帧送至另一个FPGA由另一个FPGA上的内帧拆帧模块解析帧头信息,获取(3)添加的6个帧信息参数;(5)根据(4)中获取的6个帧信息参数中的总线比特码表参数,确定数据帧对应的总线,即将总线比特码表参数中为1的比特位确定为数据帧对应的总线;(6)根据(4)中获取的6个帧信息参数中的交叉节点比特码表参数,确定数据帧对应的交叉节点,即将比特码表参数中为1的比特位确定为数据帧对应的交叉节点,并将数据帧搬移至(5)所确定总线上的对应交叉节点;(7)根据(4)中获取的6个帧信息参数中的输出端口比特码...

【专利技术属性】
技术研发人员:邱智亮李熙华张式琪张沁潘伟涛高宇飞董勐
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1