CN115580586A - 一种基于片上系统的fc交换机输出队列的构建方法 - Google Patents
一种基于片上系统的fc交换机输出队列的构建方法 Download PDFInfo
- Publication number
- CN115580586A CN115580586A CN202211488876.6A CN202211488876A CN115580586A CN 115580586 A CN115580586 A CN 115580586A CN 202211488876 A CN202211488876 A CN 202211488876A CN 115580586 A CN115580586 A CN 115580586A
- Authority
- CN
- China
- Prior art keywords
- frame data
- segment
- queue
- data
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/356—Switches specially adapted for specific applications for storage area networks
- H04L49/357—Fibre channel switches
Abstract
本发明公开了一种基于片上系统的FC交换机输出队列的构建方法,包括基于交换端口接收FC帧数据并获取FC帧数据的输出端口信息,基于端口信息生成FC帧数据的队列信息;将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段的同时,将空余分段的首个分段的分段号基于队列信息存储于VOQ模块的指定队列;在进行路由交换时,通过指定队列中存储的分段号,索引存储于数据高速缓冲存储器中对应分段的FC帧数据后,进行FC帧数据的转发。本发明以较小的分布式RAM缓存资源实现了VOQ模块的设计,解决了传统的FC交换机的路由交换方法存在的队头阻塞及吞吐量低的问题的同时,避免了增加FPGA缓存资源的开销。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于片上系统的FC交换机输出队列的构建方法。
背景技术
光纤通道(FC, Fiber Channel)协议具有低延时、高可靠、高效、适用底层通信的特点,主要用于存储区域网(Storage Area Network, SAN)和航空机载网络。
FC交换机是构建航空电子综合网络的重要核心,具有低延时,高速率,实时性强的特点。航空电子环境中的FC交换机由于总体用量较少,交换机的尺寸规模小,通常选用FPGA芯片作为核心处理器。为追求低延时的特性,FC交换机通常采用基于输入排队方式的无阻塞交换结构,支持基于优先级的完整FC数据帧变长交换。为实现变长交换,FC交换机的输入端口通常采用FIFO缓存队列的设计方式。输入端口接收的FC帧依次缓存在 FIFO 缓存队列中。
现有FC交换机通常只有一个FIFO 队列,会出现队头阻塞现象(HOL, head ofline),严重影响交换机的吞吐量。而若采用虚拟输出队列(VOQ, Virtual Output Queue),将转发到不同输出端口的不同优先级的FC帧数据分队列进行缓存,各队列间的FC帧数据互不影响,可彻底消除HOL 现象。然而,通过增加FIFO队列的方式实现VOQ会极大的增加FPGA缓存资源的开销,当FC交换机交换端口较多时,现有FPGA无法满足其资源需求。
综上所述,现有的FC交换机的路由交换方法存在队头阻塞及吞吐量低的问题。
发明内容
有鉴于此,本发明提供一种基于片上系统的FC交换机输出队列的构建方法,通过改进数据储存及处理方法,构建全新的交换机输出队列,解决了传统的FC交换机的路由交换方法存在的队头阻塞及吞吐量低的问题。
为解决以上问题,本发明的技术方案为采用一种基于片上系统的FC交换机输出队列的构建方法,包括:基于交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息,基于所述端口信息生成所述FC帧数据的队列信息;将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段的同时,将所述空余分段的首个分段的分段号基于所述队列信息存储于 VOQ模块的指定队列;在进行路由交换时,通过所述指定队列中存储的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发。
可选地,将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段,包括:对所述数据高速缓冲存储器的缓存队列按照预设长度进行分段;所述FC帧数据按照分段的方式存储于所述数据高速缓冲存储器时,所述缓存队列的数据位宽为35bits。
可选地,基于交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息,基于所述端口信息生成所述FC帧数据的队列信息,包括:交换端口接收FC帧数据后,对所述FC帧数据进行路由查表,获取所述输出端口信息及优先级信息;基于所述输出端口信息和优先级信息生成所述队列信息。
可选地,将所述空余分段的首个分段的分段号基于所述队列信息存储于 VOQ模块的指定队列,包括:在交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息后,获取FIFO存储器的空白分段的分段号,基于所述分段号计算所述数据高速缓冲存储器中空余分段的首地址,将所述FC帧数据存储于该空余分段的同时,将所述FC帧数据的首个分段的分段号存储于所述VOQ模块的指定队列。
可选地,若当前的所述空余分段即将写满且当前的所述FC帧数据未结束时,获取FIFO存储器的下一空白分段的分段号,将所述下一空余分段的首地址写入当前的所述空余分段的末位,并将当前的所述FC帧数据中剩余部分数据存储至下一空余分段。
可选地,在进行路由交换时,通过所述指定队列中存储的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发,包括:在进行路由交换时,基于FC帧数据的端口号和/或优先级确定待转发FC帧数据后,基于存储于所述VOQ模块中待转发FC帧数据的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发。
可选地,若索引存储于所述数据高速缓冲存储器中对应分段的FC帧数据时,所述对应分段的末位存储有下一分段的首地址,则基于读取所述数据高速缓冲存储器中下一分段中存储的FC帧数据,直至完成待转发FC帧数据的全部数据的转发。
可选地,所述构建方法还包括:在进行路由交换时,每完成一帧所述FC帧数据的转发,提取该完成转发的所述FC帧数据在所述VOQ模块中对应的分段号,并将所述分段号重新写入所述FIFO存储器中,并作为空白分段的分段号。
可选地,所述VOQ模块的队列基于输出端口和优先级被配置为M*N个独立的FIFO队列,M为FC交换机的输出端口数,N为FC交换机支持的业务优先级个数。
本发明的首要改进之处为基于片上系统的FC交换机输出队列的构建方法,通过将FC帧数据按照分段的方式存储于数据高速缓冲存储器后,将FC帧数据对应的分段号存储于VOQ模块的指定队列中,实现了VOQ模块的队列与FC帧数据进行分离,在路由交换时仅需基于分段号索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据即可完成数据的转发,以较小的分布式RAM缓存资源实现VOQ的设计且有效提升了FC交换机的吞吐量,解决了传统的FC交换机的路由交换方法存在的队头阻塞及吞吐量低的问题的同时,避免了增加FPGA缓存资源的开销。
附图说明
图1是本发明的基于片上系统的FC交换机输出队列的构建方法的简化流程图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合附图和具体实施例对本发明作进一步的详细说明。
如图1所示,一种基于片上系统的FC交换机输出队列的构建方法,包括:
S1:基于交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息,基于所述端口信息生成所述FC帧数据的队列信息,包括:交换端口接收FC帧数据后,对所述FC帧数据进行路由查表,获取所述输出端口信息及优先级信息;基于所述输出端口信息和优先级信息生成所述队列信息。
进一步的,所述VOQ模块的队列基于输出端口和优先级被配置为M*N个独立的FIFO队列,M为FC交换机的输出端口数,N为FC交换机支持的业务优先级个数。所述VOQ模块由交换机中的分布式RAM缓存资源构成。
S2:将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段的同时,将所述空余分段的首个分段的分段号基于所述队列信息存储于 VOQ模块的指定队列。
进一步的,将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段,包括:对所述数据高速缓冲存储器的缓存队列按照预设长度进行分段;所述FC帧数据按照分段的方式存储于所述数据高速缓冲存储器时,所述缓存队列的数据位宽为35bits。其中,所述预设长度为4字节的2的幂次方倍;所述缓存队列的数据位宽为35bits,包括:32bits用于存储FC帧数据或下一分段的地址,1bits标识FC帧的帧头定界符(SOF),1bit标识FC帧的帧尾定界符(EOF),最后一位1bit标识32bit数据为FC帧数据或为下一分段的地址。
进一步的,将所述空余分段的首个分段的分段号基于所述队列信息存储于 VOQ模块的指定队列,包括:在交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息后,获取FIFO存储器的空白分段的分段号,基于所述分段号计算所述数据高速缓冲存储器中空余分段的首地址,将所述FC帧数据存储于该空余分段的同时,将所述FC帧数据的首个分段的分段号存储于所述VOQ模块的指定队列。
更进一步的,若当前的所述空余分段即将写满且当前的所述FC帧数据未结束时,获取FIFO存储器的下一空白分段的分段号,将所述下一空余分段的首地址写入当前的所述空余分段的末位,并将当前的所述FC帧数据中剩余部分数据存储至下一空余分段。
更进一步的,在路由交换前,遍历所述数据高速缓冲存储器的空余分段,并将所述空余分段的分段号写入所述FIFO存储器中。
S3:在进行路由交换时,通过所述指定队列中存储的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发,包括:在进行路由交换时,基于FC帧数据的端口号和/或优先级确定待转发FC帧数据后,基于存储于所述VOQ模块中待转发FC帧数据的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发。
进一步的,若索引存储于所述数据高速缓冲存储器中对应分段的FC帧数据时,所述对应分段的末位存储有下一分段的首地址,则基于读取所述数据高速缓冲存储器中下一分段中存储的FC帧数据,直至完成待转发FC帧数据的全部数据的转发。
更进一步的,所述构建方法还包括:在进行路由交换时,每完成一帧所述FC帧数据的转发,提取该完成转发的所述FC帧数据在所述VOQ模块中对应的分段号,并将所述分段号重新写入所述FIFO存储器中,并作为空白分段的分段号。
本发明通过将FC帧数据按照分段的方式存储于数据高速缓冲存储器后,将FC帧数据对应的分段号存储于VOQ模块的指定队列中,实现了VOQ模块的队列与FC帧数据进行分离,在路由交换时仅需基于分段号索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据即可完成数据的转发,以较小的分布式RAM缓存资源实现VOQ的设计且有效提升了FC交换机的吞吐量,解决了传统的FC交换机的路由交换方法存在的队头阻塞及吞吐量低的问题的同时,避免了增加FPGA缓存资源的开销。并且能够实现基于输入排队方式的无阻塞交换结构,支持基于优先级的完整FC数据帧变长交换。
以上对本发明实施例所提供的基于片上系统的FC交换机输出队列的构建方法进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
Claims (9)
1.一种基于片上系统的FC交换机输出队列的构建方法,其特征在于,包括:
基于交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息,基于所述端口信息生成所述FC帧数据的队列信息;
将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段的同时,将所述空余分段的首个分段的分段号基于所述队列信息存储于VOQ模块的指定队列;
在进行路由交换时,通过所述指定队列中存储的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发。
2.根据权利要求1所述的FC交换机输出队列的构建方法,其特征在于,将FC帧数据按照分段的方式存储于数据高速缓冲存储器的空余分段,包括:
对所述数据高速缓冲存储器的缓存队列按照预设长度进行分段;
所述FC帧数据按照分段的方式存储于所述数据高速缓冲存储器时,所述缓存队列的数据位宽为35bits。
3.根据权利要求1所述的FC交换机输出队列的构建方法,其特征在于,基于交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息,基于所述端口信息生成所述FC帧数据的队列信息,包括:
交换端口接收FC帧数据后,对所述FC帧数据进行路由查表,获取所述输出端口信息及优先级信息;
基于所述输出端口信息和优先级信息生成所述队列信息。
4.根据权利要求1所述的FC交换机输出队列的构建方法,其特征在于,将所述空余分段的首个分段的分段号基于所述队列信息存储于VOQ模块的指定队列,包括:
在交换端口接收FC帧数据并获取所述FC帧数据的输出端口信息后,获取FIFO存储器的空白分段的分段号,基于所述分段号计算所述数据高速缓冲存储器中空余分段的首地址,将所述FC帧数据存储于该空余分段的同时,将所述FC帧数据的首个分段的分段号存储于所述VOQ模块的指定队列。
5.根据权利要求4所述的FC交换机输出队列的构建方法,其特征在于,若当前的所述空余分段即将写满且当前的所述FC帧数据未结束时,获取FIFO存储器的下一空白分段的分段号,将所述下一空余分段的首地址写入当前的所述空余分段的末位,并将当前的所述FC帧数据中剩余部分数据存储至下一空余分段。
6.根据权利要求1所述的FC交换机输出队列的构建方法,其特征在于,在进行路由交换时,通过所述指定队列中存储的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发,包括:
在进行路由交换时,基于FC帧数据的端口号和/或优先级确定待转发FC帧数据后,基于存储于所述VOQ模块中待转发FC帧数据的所述分段号,索引存储于所述数据高速缓冲存储器中对应分段的所述FC帧数据后,进行所述FC帧数据的转发。
7.根据权利要求6所述的FC交换机输出队列的构建方法,其特征在于,若索引存储于所述数据高速缓冲存储器中对应分段的FC帧数据时,所述对应分段的末位存储有下一分段的首地址,则基于读取所述数据高速缓冲存储器中下一分段中存储的FC帧数据,直至完成待转发FC帧数据的全部数据的转发。
8.根据权利要求1所述的FC交换机输出队列的构建方法,其特征在于,所述构建方法还包括:
在进行路由交换时,每完成一帧所述FC帧数据的转发,提取该完成转发的所述FC帧数据在所述VOQ模块中对应的分段号,并将所述分段号重新写入FIFO存储器中,并作为空白分段的分段号。
9.根据权利要求3所述的FC交换机输出队列的构建方法,所述VOQ模块的队列基于输出端口和优先级被配置为M*N个独立的FIFO队列,M为FC交换机的输出端口数,N为FC交换机支持的业务优先级个数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488876.6A CN115580586A (zh) | 2022-11-25 | 2022-11-25 | 一种基于片上系统的fc交换机输出队列的构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211488876.6A CN115580586A (zh) | 2022-11-25 | 2022-11-25 | 一种基于片上系统的fc交换机输出队列的构建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115580586A true CN115580586A (zh) | 2023-01-06 |
Family
ID=84590026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211488876.6A Pending CN115580586A (zh) | 2022-11-25 | 2022-11-25 | 一种基于片上系统的fc交换机输出队列的构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115580586A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731730A (zh) * | 2005-08-15 | 2006-02-08 | 华中科技大学 | 一种用于海量存储系统的核心存储交换平台系统 |
CN1826768A (zh) * | 2003-08-25 | 2006-08-30 | 思科技术公司 | 利用动态资源分配进行的大规模排队的可扩展方法 |
CN101040489A (zh) * | 2004-10-22 | 2007-09-19 | 思科技术公司 | 用于统一输入/输出和降低延迟的网络设备体系结构 |
CN105323185A (zh) * | 2010-12-01 | 2016-02-10 | 瞻博网络公司 | 用于与交换机结构相关的流控制的方法和装置 |
CN106612141A (zh) * | 2016-12-20 | 2017-05-03 | 北京旋极信息技术股份有限公司 | 一种光纤通道协议通用仿真测试卡及其数据交互方法 |
CN106878203A (zh) * | 2015-12-11 | 2017-06-20 | 中国航空工业集团公司西安航空计算技术研究所 | 用于fc交换机芯片的快速转发电路及方法 |
CN109168094A (zh) * | 2018-09-30 | 2019-01-08 | 三维通信股份有限公司 | 一种光流交换网络调度方法及光流交换系统 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
-
2022
- 2022-11-25 CN CN202211488876.6A patent/CN115580586A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1826768A (zh) * | 2003-08-25 | 2006-08-30 | 思科技术公司 | 利用动态资源分配进行的大规模排队的可扩展方法 |
CN101040489A (zh) * | 2004-10-22 | 2007-09-19 | 思科技术公司 | 用于统一输入/输出和降低延迟的网络设备体系结构 |
CN1731730A (zh) * | 2005-08-15 | 2006-02-08 | 华中科技大学 | 一种用于海量存储系统的核心存储交换平台系统 |
CN105323185A (zh) * | 2010-12-01 | 2016-02-10 | 瞻博网络公司 | 用于与交换机结构相关的流控制的方法和装置 |
CN106878203A (zh) * | 2015-12-11 | 2017-06-20 | 中国航空工业集团公司西安航空计算技术研究所 | 用于fc交换机芯片的快速转发电路及方法 |
CN106612141A (zh) * | 2016-12-20 | 2017-05-03 | 北京旋极信息技术股份有限公司 | 一种光纤通道协议通用仿真测试卡及其数据交互方法 |
CN109168094A (zh) * | 2018-09-30 | 2019-01-08 | 三维通信股份有限公司 | 一种光流交换网络调度方法及光流交换系统 |
CN111935036A (zh) * | 2020-04-30 | 2020-11-13 | 电子科技大学 | 一种光纤通道交换机中数据帧切分与重组的实现方法 |
Non-Patent Citations (1)
Title |
---|
张卜方等: "CICQ交换结构中共享缓存的研究与应用", 《无线电通信技术》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5863076B2 (ja) | パケットを再構築し再順序付けするための方法、装置、およびシステム | |
JP4334760B2 (ja) | ネットワーキングシステム | |
US7313142B2 (en) | Packet processing device | |
JP4483535B2 (ja) | ネットワーク装置 | |
US7400638B2 (en) | Apparatus and methods for managing packets in a broadband data stream | |
EP3657744B1 (en) | Message processing | |
CN112084136A (zh) | 队列缓存管理方法、系统、存储介质、计算机设备及应用 | |
CN112751788B (zh) | 一种支持多类型帧混合传输的双平面交换方法 | |
EP3188419B1 (en) | Packet storing and forwarding method and circuit, and device | |
Shen et al. | Byte-focal: A practical load balanced switch | |
WO2020168563A1 (zh) | 一种存储器的管理方法及装置 | |
CN116955247B (zh) | 一种缓存描述符管理装置及其方法、介质、芯片 | |
US7292529B1 (en) | Memory load balancing for single stream multicast | |
Khan et al. | n-Bit multiple read and write FIFO memory model for network-on-chip | |
EP1508225B1 (en) | Method for data storage in external and on-chip memory in a packet switch | |
CN113126911A (zh) | 基于ddr3 sdram的队列管理方法、介质、设备 | |
CN115580586A (zh) | 一种基于片上系统的fc交换机输出队列的构建方法 | |
US7461167B1 (en) | Method for multicast service in a crossbar switch | |
JP4209186B2 (ja) | パケットの高速ルーティング及びスイッチングに対するメモリ要件を低減するように構成されたプロセッサ | |
CN110430146B (zh) | 基于CrossBar交换的信元重组方法及交换结构 | |
CN109308180B (zh) | 缓存拥塞的处理方法及处理装置 | |
CN116561055A (zh) | 一种基于片上系统的虚拟输出队列构建方法 | |
CN111935036A (zh) | 一种光纤通道交换机中数据帧切分与重组的实现方法 | |
CN115118678B (zh) | 一种fc设备端的多分区网络通信系统及其通信方法 | |
Xu et al. | Implementation of multi-priority and variable-length DRRM scheduling algorithm based on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |