CN116561055A - 一种基于片上系统的虚拟输出队列构建方法 - Google Patents

一种基于片上系统的虚拟输出队列构建方法 Download PDF

Info

Publication number
CN116561055A
CN116561055A CN202310696520.XA CN202310696520A CN116561055A CN 116561055 A CN116561055 A CN 116561055A CN 202310696520 A CN202310696520 A CN 202310696520A CN 116561055 A CN116561055 A CN 116561055A
Authority
CN
China
Prior art keywords
frame data
ram
ram module
output queue
virtual output
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
Application number
CN202310696520.XA
Other languages
English (en)
Inventor
解军
张志超
王琳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Uestc Optical Communication Co ltd
Original Assignee
Chengdu Uestc Optical Communication Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Uestc Optical Communication Co ltd filed Critical Chengdu Uestc Optical Communication Co ltd
Priority to CN202310696520.XA priority Critical patent/CN116561055A/zh
Publication of CN116561055A publication Critical patent/CN116561055A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明公开了一种基于片上系统的虚拟输出队列构建方法,包括:基于交换端口接收FC帧数据;将FC帧数据按照分段的方式存储于RAM单元中,RAM单元被配置为包含多个RAM模块,FC帧数据存储于RAM模块中;将RAM单元复用为存储虚拟输出队列,在FC帧数据存储于RAM模块中时,将RAM模块地址信息及对应的FC帧数据的优先级信息写入虚拟输出队列。本发明通过利用RAM模块的可复用特性,将虚拟输出队列中的多类与FC帧数据相关的信息分类存储至RAM模块中,形成链表式存储结构,同时,将链表式存储结构与虚拟输出队列中的优先级信息结合,实现不同优先级的自由插入及链表式存储结构的灵活调整,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。

Description

一种基于片上系统的虚拟输出队列构建方法
技术领域
本发明涉及通信技术领域,具体涉及一种基于片上系统的虚拟输出队列构建方法。
背景技术
光纤通道(FC, Fiber Channel)协议具有低延时、高可靠、高效、适用底层通信的特点,主要用于存储区域网(Storage Area Network, SAN)和航空机载网络。
FC交换机是构建航空电子综合网络的重要核心,具有低延时,高速率,实时性强的特点。航空电子环境中的FC交换机由于总体用量较少,交换机的尺寸规模小,通常选用FPGA芯片作为核心处理器。为追求低延时的特性,FC交换机通常采用基于输入排队方式的无阻塞交换结构,支持基于优先级的完整FCFC帧数据变长交换。为实现变长交换,FC交换机的输入端口通常采用FIFO缓存队列的设计方式。输入端口接收的FC帧依次缓存在 FIFO 缓存队列中。
现有FC交换机通常只有一个FIFO 队列,会出现队头阻塞现象(HOL, head ofline),严重影响交换机的吞吐量。虚拟输出队列VOQ是解决交换机队头阻塞的关键技术,传统的虚拟输出队列是在每个输入端口设置多个数据缓存队列,与输出端口一一对应,实现通往不同输出端口的数据流不会被阻塞,可以完全消除队头阻塞效应。
目前片上系统如以FPGA芯片为核心处理器,由于片上资源的限制,实现VOQ的方法通常采用FIFO的缓存方式,对报文进行先进先出的转发处理方式,需要消耗大量的缓存资源,很难实现大容量交换机。传统的VOQ对于公平的数据流能够消除队头阻塞,认为所有端口的业务都是平等的,内部也是按照先进先出的方式公平的进行业务的转发,但实际交换网络中总是存在不同优先级的数据流,如航电网络,因此这种VOQ依然会存在不同优先级之间的阻塞问题。对于存在多种不同优先级业务的网络来说,先进的低优先级的业务就会阻塞后进的高优先级的业务,如果优先级粒度较小的情况下,带来的阻塞延迟将更大,严重影响网络的转发性能。
综上所述,现有的虚拟输出队列构建方法存在不同优先级业务之间的阻塞问题。
发明内容
有鉴于此,本发明提供一种基于片上系统的虚拟输出队列构建方法,通过改进数据储存及处理方法,构建全新的虚拟输出队列,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
为解决以上技术问题,本发明的技术方案为采用一种基于片上系统的虚拟输出队列构建方法,包括:基于交换端口接收FC帧数据;将FC帧数据按照分段的方式存储于RAM单元中,其中,所述RAM单元被配置为包含多个RAM模块,所述FC帧数据存储于至少一个所述RAM模块中;将所述RAM单元复用为存储虚拟输出队列,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列。
可选地,所述虚拟输出队列被配置为:对于每一帧所述FC帧数据,将所述FC帧数据对应的多个所述RAM模块地址信息写入所述虚拟输出队列时,所述虚拟输出队列将多个所述RAM模块地址信息分别存储于多个所述RAM模块中。
可选地,所述虚拟输出队列存储每一帧所述FC帧数据对应的多个所述RAM模块地址信息时,将存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块复用为:同步存储所述FC帧数据的优先级信息、存储所述FC帧数据对应的下一个所述RAM模块地址信息的RAM模块地址和存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块地址;将存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块复用为:存储下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
可选地,所述虚拟输出队列被配置为:将当前队列中优先级最高的FC帧数据的优先级信息和该FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址存储于寄存器。
可选地,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列的同时,判断所述FC帧数据的优先级信息是否高于寄存器中存储的优先级最高的FC帧数据的优先级信息,若高于,则将寄存器中存储的中优先级最高的FC帧数据的优先级信息更新,并更新寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址。
可选地,若所述FC帧数据的优先级信息低于寄存器中存储的优先级最高的FC帧数据的优先级信息,则基于寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的最后一个RAM模块地址,获取下一帧所述FC帧数据在所述虚拟输出队列中存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块中存储的所述FC帧数据的优先级信息,并进行优先级比对,若仍低于该帧FC帧数据的优先级,则继续获取该帧FC帧数据的下一帧,若高于该帧FC帧数据的优先级,则将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
可选地,将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址时,优先级较高的所述FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中写入该帧FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
可选地,在进行路由交换时,基于所述虚拟输出队列依次索引存储于所述RAM单元中的FC帧数据后,进行所述FC帧数据的转发。
本发明的首要改进之处为基于片上系统的虚拟输出队列构建方法,通过将RAM单元分块管理并利用RAM模块的可复用特性,将虚拟输出队列中的多类与FC帧数据相关的信息分类存储至RAM模块中,形成链表式存储结构,同时,将链表式存储结构与虚拟输出队列中的优先级信息结合,实现不同优先级的自由插入及链表式存储结构的灵活调整,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
图1是本发明的基于片上系统的虚拟输出队列构建方法的简化流程图。
具体实施方式
为了使本领域技术人员更好的理解本发明实施例,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,一种基于片上系统的虚拟输出队列构建方法,其特征在于,包括:
S1:基于交换端口接收FC帧数据;
S2:将FC帧数据按照分段的方式存储于RAM单元中,其中,所述RAM单元被配置为包含多个RAM模块,所述FC帧数据存储于至少一个所述RAM模块中。
进一步的,所述RAM单元和寄存器均设置于FPGA芯片内。
S3:将所述RAM单元复用为存储虚拟输出队列,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列。
S4:基于所述虚拟输出队列依次索引存储于所述RAM单元中的FC帧数据后,进行所述FC帧数据的转发。
进一步的,所述虚拟输出队列被配置为:对于每一帧所述FC帧数据,将所述FC帧数据对应的多个所述RAM模块地址信息写入所述虚拟输出队列时,所述虚拟输出队列将多个所述RAM模块地址信息分别存储于多个所述RAM模块中。
进一步的,所述虚拟输出队列存储每一帧所述FC帧数据对应的多个所述RAM模块地址信息时,将存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块复用为:同步存储所述FC帧数据的优先级信息、存储所述FC帧数据对应的下一个所述RAM模块地址信息的RAM模块地址和存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块地址;将存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块复用为:存储下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
进一步的,所述虚拟输出队列被配置为:将当前队列中优先级最高的FC帧数据的优先级信息和该FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址存储于寄存器。
更一步的,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列的同时,判断所述FC帧数据的优先级信息是否高于寄存器中存储的优先级最高的FC帧数据的优先级信息,若高于,则将寄存器中存储的中优先级最高的FC帧数据的优先级信息更新,并更新寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址。
更进一步的,若所述FC帧数据的优先级信息低于寄存器中存储的优先级最高的FC帧数据的优先级信息,则基于寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的最后一个RAM模块地址,获取下一帧所述FC帧数据在所述虚拟输出队列中存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块中存储的所述FC帧数据的优先级信息,并进行优先级比对,若仍低于该帧FC帧数据的优先级,则继续获取该帧FC帧数据的下一帧,若高于该帧FC帧数据的优先级,则将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
更进一步的,将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址时,优先级较高的所述FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中写入该帧FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
本发明通过将RAM单元分块管理并利用RAM模块的可复用特性,将虚拟输出队列中的多类与FC帧数据相关的信息分类存储至RAM模块中,形成链表式存储结构,同时,将链表式存储结构与虚拟输出队列中的优先级信息结合,实现不同优先级的自由插入及链表式存储结构的灵活调整,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
以上对本发明实施例所提供的基于片上系统的虚拟输出队列构建方法进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

Claims (8)

1.一种基于片上系统的虚拟输出队列构建方法,其特征在于,包括:
基于交换端口接收FC帧数据;
将FC帧数据按照分段的方式存储于RAM单元中,其中,所述RAM单元被配置为包含多个RAM模块,所述FC帧数据存储于至少一个所述RAM模块中;
将所述RAM单元复用为存储虚拟输出队列,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列。
2.根据权利要求1所述的虚拟输出队列构建方法,其特征在于,所述虚拟输出队列被配置为:对于每一帧所述FC帧数据,将所述FC帧数据对应的多个所述RAM模块地址信息写入所述虚拟输出队列时,所述虚拟输出队列将多个所述RAM模块地址信息分别存储于多个所述RAM模块中。
3.根据权利要求2所述的虚拟输出队列构建方法,其特征在于,所述虚拟输出队列存储每一帧所述FC帧数据对应的多个所述RAM模块地址信息时,
将存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块复用为:同步存储所述FC帧数据的优先级信息、存储所述FC帧数据对应的下一个所述RAM模块地址信息的RAM模块地址和存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块地址;
将存储所述FC帧数据对应的最后一个所述RAM模块地址信息的RAM模块复用为:存储下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
4.根据权利要求3所述的虚拟输出队列构建方法,其特征在于,所述虚拟输出队列被配置为:
将当前队列中优先级最高的FC帧数据的优先级信息和该FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址存储于寄存器。
5.根据权利要求4所述的虚拟输出队列构建方法,其特征在于,在所述FC帧数据存储于所述RAM模块中时,将所述RAM模块地址信息及对应的FC帧数据的优先级信息写入所述虚拟输出队列的同时,判断所述FC帧数据的优先级信息是否高于寄存器中存储的优先级最高的FC帧数据的优先级信息,若高于,则将寄存器中存储的中优先级最高的FC帧数据的优先级信息更新,并更新寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的首尾RAM模块地址。
6.根据权利要求5所述的虚拟输出队列构建方法,其特征在于,若所述FC帧数据的优先级信息低于寄存器中存储的优先级最高的FC帧数据的优先级信息,则基于寄存器中优先级最高的FC帧数据在所述虚拟输出队列中存储相关信息的多个RAM模块的最后一个RAM模块地址,获取下一帧所述FC帧数据在所述虚拟输出队列中存储所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块中存储的所述FC帧数据的优先级信息,并进行优先级比对,若仍低于该帧FC帧数据的优先级,则继续获取该帧FC帧数据的下一帧,若高于该帧FC帧数据的优先级,则将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
7.根据权利要求5所述的虚拟输出队列构建方法,其特征在于,将该帧FC帧数据的上一帧FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中存储的下一帧的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址替换为优先级较高的所述FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址时,优先级较高的所述FC帧数据在虚拟输出队列中存储最后一个所述RAM模块地址信息的RAM模块中写入该帧FC帧数据对应的首个所述RAM模块地址信息的RAM模块地址。
8.根据权利要求6所述的虚拟输出队列构建方法,在进行路由交换时,基于所述虚拟输出队列依次索引存储于所述RAM单元中的FC帧数据后,进行所述FC帧数据的转发。
CN202310696520.XA 2023-06-13 2023-06-13 一种基于片上系统的虚拟输出队列构建方法 Pending CN116561055A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310696520.XA CN116561055A (zh) 2023-06-13 2023-06-13 一种基于片上系统的虚拟输出队列构建方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310696520.XA CN116561055A (zh) 2023-06-13 2023-06-13 一种基于片上系统的虚拟输出队列构建方法

Publications (1)

Publication Number Publication Date
CN116561055A true CN116561055A (zh) 2023-08-08

Family

ID=87498323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310696520.XA Pending CN116561055A (zh) 2023-06-13 2023-06-13 一种基于片上系统的虚拟输出队列构建方法

Country Status (1)

Country Link
CN (1) CN116561055A (zh)

Similar Documents

Publication Publication Date Title
US7843816B1 (en) Systems and methods for limiting low priority traffic from blocking high priority traffic
CN100405344C (zh) 用于在交换结构中分发缓冲区状态信息的装置和方法
US6987760B2 (en) High speed network processor
US7283556B2 (en) Method and system for managing time division multiplexing (TDM) timeslots in a network switch
JP5863076B2 (ja) パケットを再構築し再順序付けするための方法、装置、およびシステム
US8135004B2 (en) Multi-plane cell switch fabric system
US20040151197A1 (en) Priority queue architecture for supporting per flow queuing and multiple ports
EP0471344A1 (en) Traffic shaping method and circuit
US8750323B2 (en) Method for switching data and structure for switching data
US20040196789A1 (en) Apparatus and methods for managing packets in a broadband data stream
US6167041A (en) Switch with flexible link list manager for handling ATM and STM traffic
US20070297330A1 (en) Scalable Link-Level Flow-Control For A Switching Device
CN114531488B (zh) 一种面向以太网交换器的高效缓存管理系统
US20040156359A1 (en) Queuing packets written to memory for switching
US20070140260A1 (en) System and method of single switch string hardware
US20030072268A1 (en) Ring network system
CN116561055A (zh) 一种基于片上系统的虚拟输出队列构建方法
US6963577B1 (en) Packet Switch
Kabra et al. Fast buffer memory with deterministic packet departures
Mutter A novel hybrid memory architecture with parallel DRAM for fast packet buffers
Olesinski et al. Scalable alternatives to virtual output queuing
CN115473862B (zh) 避免交换芯片组播包队头阻塞的方法及系统
KR100441883B1 (ko) 패킷 스위치 시스템의 입력 제어장치 및 방법
CN115580586A (zh) 一种基于片上系统的fc交换机输出队列的构建方法
Kumar et al. Buffer aggregation: Addressing queuing subsystem bottlenecks at high speeds

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