一种基于片上系统的虚拟输出队列构建方法与流程

未命名 08-12 阅读:102 评论:0


1.本发明涉及通信技术领域,具体涉及一种基于片上系统的虚拟输出队列构建方法。


背景技术:

2.光纤通道(fc, fiber channel)协议具有低延时、高可靠、高效、适用底层通信的特点,主要用于存储区域网(storage area network, san)和航空机载网络。
3.fc交换机是构建航空电子综合网络的重要核心,具有低延时,高速率,实时性强的特点。航空电子环境中的fc交换机由于总体用量较少,交换机的尺寸规模小,通常选用fpga芯片作为核心处理器。为追求低延时的特性,fc交换机通常采用基于输入排队方式的无阻塞交换结构,支持基于优先级的完整fcfc帧数据变长交换。为实现变长交换,fc交换机的输入端口通常采用fifo缓存队列的设计方式。输入端口接收的fc帧依次缓存在 fifo 缓存队列中。
4.现有fc交换机通常只有一个fifo 队列,会出现队头阻塞现象(hol, head of line),严重影响交换机的吞吐量。虚拟输出队列voq是解决交换机队头阻塞的关键技术,传统的虚拟输出队列是在每个输入端口设置多个数据缓存队列,与输出端口一一对应,实现通往不同输出端口的数据流不会被阻塞,可以完全消除队头阻塞效应。
5.目前片上系统如以fpga芯片为核心处理器,由于片上资源的限制,实现voq的方法通常采用fifo的缓存方式,对报文进行先进先出的转发处理方式,需要消耗大量的缓存资源,很难实现大容量交换机。传统的voq对于公平的数据流能够消除队头阻塞,认为所有端口的业务都是平等的,内部也是按照先进先出的方式公平的进行业务的转发,但实际交换网络中总是存在不同优先级的数据流,如航电网络,因此这种voq依然会存在不同优先级之间的阻塞问题。对于存在多种不同优先级业务的网络来说,先进的低优先级的业务就会阻塞后进的高优先级的业务,如果优先级粒度较小的情况下,带来的阻塞延迟将更大,严重影响网络的转发性能。
6.综上所述,现有的虚拟输出队列构建方法存在不同优先级业务之间的阻塞问题。


技术实现要素:

7.有鉴于此,本发明提供一种基于片上系统的虚拟输出队列构建方法,通过改进数据储存及处理方法,构建全新的虚拟输出队列,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
8.为解决以上技术问题,本发明的技术方案为采用一种基于片上系统的虚拟输出队列构建方法,包括:基于交换端口接收fc帧数据;将fc帧数据按照分段的方式存储于ram单元中,其中,所述ram单元被配置为包含多个ram模块,所述fc帧数据存储于至少一个所述ram模块中;将所述ram单元复用为存储虚拟输出队列,在所述fc帧数据存储于所述ram模块中时,将所述ram模块地址信息及对应的fc帧数据的优先级信息写入所述虚拟输出队列。
9.可选地,所述虚拟输出队列被配置为:对于每一帧所述fc帧数据,将所述fc帧数据对应的多个所述ram模块地址信息写入所述虚拟输出队列时,所述虚拟输出队列将多个所述ram模块地址信息分别存储于多个所述ram模块中。
10.可选地,所述虚拟输出队列存储每一帧所述fc帧数据对应的多个所述ram模块地址信息时,将存储所述fc帧数据对应的首个所述ram模块地址信息的ram模块复用为:同步存储所述fc帧数据的优先级信息、存储所述fc帧数据对应的下一个所述ram模块地址信息的ram模块地址和存储所述fc帧数据对应的最后一个所述ram模块地址信息的ram模块地址;将存储所述fc帧数据对应的最后一个所述ram模块地址信息的ram模块复用为:存储下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
11.可选地,所述虚拟输出队列被配置为:将当前队列中优先级最高的fc帧数据的优先级信息和该fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的首尾ram模块地址存储于寄存器。
12.可选地,在所述fc帧数据存储于所述ram模块中时,将所述ram模块地址信息及对应的fc帧数据的优先级信息写入所述虚拟输出队列的同时,判断所述fc帧数据的优先级信息是否高于寄存器中存储的优先级最高的fc帧数据的优先级信息,若高于,则将寄存器中存储的中优先级最高的fc帧数据的优先级信息更新,并更新寄存器中优先级最高的fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的首尾ram模块地址。
13.可选地,若所述fc帧数据的优先级信息低于寄存器中存储的优先级最高的fc帧数据的优先级信息,则基于寄存器中优先级最高的fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的最后一个ram模块地址,获取下一帧所述fc帧数据在所述虚拟输出队列中存储所述fc帧数据对应的首个所述ram模块地址信息的ram模块中存储的所述fc帧数据的优先级信息,并进行优先级比对,若仍低于该帧fc帧数据的优先级,则继续获取该帧fc帧数据的下一帧,若高于该帧fc帧数据的优先级,则将该帧fc帧数据的上一帧fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中存储的下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址替换为优先级较高的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
14.可选地,将该帧fc帧数据的上一帧fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中存储的下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址替换为优先级较高的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址时,优先级较高的所述fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中写入该帧fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
15.可选地,在进行路由交换时,基于所述虚拟输出队列依次索引存储于所述ram单元中的fc帧数据后,进行所述fc帧数据的转发。
16.本发明的首要改进之处为基于片上系统的虚拟输出队列构建方法,通过将ram单元分块管理并利用ram模块的可复用特性,将虚拟输出队列中的多类与fc帧数据相关的信息分类存储至ram模块中,形成链表式存储结构,同时,将链表式存储结构与虚拟输出队列中的优先级信息结合,实现不同优先级的自由插入及链表式存储结构的灵活调整,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图做简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
18.图1是本发明的基于片上系统的虚拟输出队列构建方法的简化流程图。
具体实施方式
19.为了使本领域技术人员更好的理解本发明实施例,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
20.如图1所示,一种基于片上系统的虚拟输出队列构建方法,其特征在于,包括:s1:基于交换端口接收fc帧数据;s2:将fc帧数据按照分段的方式存储于ram单元中,其中,所述ram单元被配置为包含多个ram模块,所述fc帧数据存储于至少一个所述ram模块中。
21.进一步的,所述ram单元和寄存器均设置于fpga芯片内。
22.s3:将所述ram单元复用为存储虚拟输出队列,在所述fc帧数据存储于所述ram模块中时,将所述ram模块地址信息及对应的fc帧数据的优先级信息写入所述虚拟输出队列。
23.s4:基于所述虚拟输出队列依次索引存储于所述ram单元中的fc帧数据后,进行所述fc帧数据的转发。
24.进一步的,所述虚拟输出队列被配置为:对于每一帧所述fc帧数据,将所述fc帧数据对应的多个所述ram模块地址信息写入所述虚拟输出队列时,所述虚拟输出队列将多个所述ram模块地址信息分别存储于多个所述ram模块中。
25.进一步的,所述虚拟输出队列存储每一帧所述fc帧数据对应的多个所述ram模块地址信息时,将存储所述fc帧数据对应的首个所述ram模块地址信息的ram模块复用为:同步存储所述fc帧数据的优先级信息、存储所述fc帧数据对应的下一个所述ram模块地址信息的ram模块地址和存储所述fc帧数据对应的最后一个所述ram模块地址信息的ram模块地址;将存储所述fc帧数据对应的最后一个所述ram模块地址信息的ram模块复用为:存储下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
26.进一步的,所述虚拟输出队列被配置为:将当前队列中优先级最高的fc帧数据的优先级信息和该fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的首尾ram模块地址存储于寄存器。
27.更一步的,在所述fc帧数据存储于所述ram模块中时,将所述ram模块地址信息及对应的fc帧数据的优先级信息写入所述虚拟输出队列的同时,判断所述fc帧数据的优先级信息是否高于寄存器中存储的优先级最高的fc帧数据的优先级信息,若高于,则将寄存器中存储的中优先级最高的fc帧数据的优先级信息更新,并更新寄存器中优先级最高的fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的首尾ram模块地址。
28.更进一步的,若所述fc帧数据的优先级信息低于寄存器中存储的优先级最高的fc
帧数据的优先级信息,则基于寄存器中优先级最高的fc帧数据在所述虚拟输出队列中存储相关信息的多个ram模块的最后一个ram模块地址,获取下一帧所述fc帧数据在所述虚拟输出队列中存储所述fc帧数据对应的首个所述ram模块地址信息的ram模块中存储的所述fc帧数据的优先级信息,并进行优先级比对,若仍低于该帧fc帧数据的优先级,则继续获取该帧fc帧数据的下一帧,若高于该帧fc帧数据的优先级,则将该帧fc帧数据的上一帧fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中存储的下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址替换为优先级较高的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
29.更进一步的,将该帧fc帧数据的上一帧fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中存储的下一帧的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址替换为优先级较高的所述fc帧数据对应的首个所述ram模块地址信息的ram模块地址时,优先级较高的所述fc帧数据在虚拟输出队列中存储最后一个所述ram模块地址信息的ram模块中写入该帧fc帧数据对应的首个所述ram模块地址信息的ram模块地址。
30.本发明通过将ram单元分块管理并利用ram模块的可复用特性,将虚拟输出队列中的多类与fc帧数据相关的信息分类存储至ram模块中,形成链表式存储结构,同时,将链表式存储结构与虚拟输出队列中的优先级信息结合,实现不同优先级的自由插入及链表式存储结构的灵活调整,解决了传统的虚拟输出队列构建方法存在的不同优先级业务之间的阻塞问题。
31.以上对本发明实施例所提供的基于片上系统的虚拟输出队列构建方法进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
32.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
33.结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

技术特征:
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帧数据的转发。

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


技术研发人员:解军 张志超 王琳
受保护的技术使用者:成都成电光信科技股份有限公司
技术研发日:2023.06.13
技术公布日:2023/8/9
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐