CN115118678B - 一种fc设备端的多分区网络通信系统及其通信方法 - Google Patents
一种fc设备端的多分区网络通信系统及其通信方法 Download PDFInfo
- Publication number
- CN115118678B CN115118678B CN202210639521.6A CN202210639521A CN115118678B CN 115118678 B CN115118678 B CN 115118678B CN 202210639521 A CN202210639521 A CN 202210639521A CN 115118678 B CN115118678 B CN 115118678B
- Authority
- CN
- China
- Prior art keywords
- data
- partition
- buffer
- transmission data
- processing module
- 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.)
- Active
Links
- 238000005192 partition Methods 0.000 title claims abstract description 276
- 238000004891 communication Methods 0.000 title claims abstract description 46
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000000872 buffer Substances 0.000 claims abstract description 215
- 230000005540 biological transmission Effects 0.000 claims abstract description 139
- 238000012545 processing Methods 0.000 claims abstract description 66
- 238000013507 mapping Methods 0.000 claims description 28
- 230000008569 process Effects 0.000 claims description 11
- 230000002159 abnormal effect Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000009432 framing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种FC设备端的多分区网络通信系统及其通信方法,其中该系统,的FC设备端上设有数个缓冲分区,其中所述系统包括:逻辑处理模块,其中逻辑处理模块接收各缓冲分区发送的传输数据,以经解析后建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各缓冲分区的缓存空间内,直至将传输数据完整写入。
Description
技术领域
本发明涉及光纤总线网络通信技术,尤其涉及一种FC设备端的多分区网络通信系统及其通信方法。
背景技术
在FC网络通信领域,分区操作系统已经被广泛应用于综合化航空电子IMA系统,其采用的分区技术可使一个处理机模块可以支持一个或多个航空电子应用软件,并保证这些应用软件之间时间和空间隔离,各应用软件能够按照时间框架独立运行。
如现有技术曾提出了一种“应用于ARINC653操作系统分区间的FC网络通信装置及方法”的方案(专利申请公布号:CN 110995668 A),该FC网络通信装置包括,至少两个处理机模块,每个处理机模块分别运行ARINC653操作系统,所述ARINC653操作系统分为核心操作系统COS及其上运行的若干个分区POS;一个FC端系统,FC端系统的核心设备驱动位于ARINC653的核心操作系统中,每个分区POS上的应用程序均可通过FC端系统向FC网络发送数据或者从FC网络接收数据。
籍此为处理机模块的ARINC653分区间通信提供基于FC网络的通道传输机制,实现不同模块分区上的应用数据基于网络通信的数据交换。
然而此类现有技术由于存在一些技术特性,因此会引起一些技术问题有待改进,例如,通常情况下在此类技术的分区系统中的缓存区大小若以64kB为例时,只有当此缓存区被传输数据填满的情况下,分区系统才会将此缓存区中的数据取走。
因此,随之而来的问题在于,此类技术方案如果进行广播/组播模式发送数据时,由于涉及多个目标缓冲分区,实际操作中,只有当第一个分区写入完64KB的时候,才会开始给第二个分区写入64KB的数据,并依次类推到最后一个分区写入完64KB,如此一来,那么轮到最后一个分区接收数据的时候,会等待很长的时间,这样不同分区之间获取相同数据的延时将会被进一步拉大。
发明内容
本发明的主要目的在于提供一种FC设备端的多分区网络通信系统及其通信方法,以至少部分解决背景技术中的技术问题,从而减少各缓冲分区接收数据的列队等待时间,进而降低不同分区之间获取相同数据的延时。
为了实现上述目的,根据本发明的一个方面,提供了一种FC设备端的多分区网络通信系统,其FC设备端上设有数个缓冲分区,其中所述系统包括:逻辑处理模块,其中逻辑处理模块接收FC设备端的各缓冲分区发送的传输数据,以经解析后建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各目标缓冲分区的缓存空间内,直至将传输数据完整写入。
在可能的优选实施方式中,当某一目标缓冲分区出现拥堵时,逻辑处理模块对该拥堵的目标缓冲分区打上丢弃标记,当识别该丢弃标记时,逻辑处理模块放弃向该拥堵的目标缓冲分区发送数据片,直至将整个传输数据丢弃。
在可能的优选实施方式中,逻辑处理模块与FC设备端的各缓冲分区连接的接收端口处设有缓存区,以在逻辑处理模块处理当前传输数据的同时,接收下一帧的传输数据。
在可能的优选实施方式中,所述FC设备端的各缓冲分区依据FC设备端中建立的分区关系映射表而动态配置,FC设备端的各缓冲分区仅通过一条物理端口与逻辑处理模块连接,同时FC设备端的各缓冲分区根据分区关系映射表为各传输数据分配Message ID,所述逻辑处理模块解析各传输数据的Message ID,以根据分区关系映射表查找目标缓冲分区地址以建立虚拟传输通道。
在可能的优选实施方式中,在数据发送方向上,FC设备端的各所述缓冲分区内存有传输数据的发送列队,且FC设备端的缓冲分区为各传输数据赋予优先级并与其MessageID绑定,同时记入优先级映射表,发送方向上所述逻辑处理模块根据传输数据的优先级依次处理。
在可能的优选实施方式中,在数据接收方向上,所述逻辑处理模块解析传输数据的数据片,并依据优先级映射表判断其优先级与Message ID是否对应,若对应则向目标缓冲分区地址的缓存空间转发,若不对应则丢弃。
为了实现上述目的,根据本发明的另一个方面,还提供了一种FC设备端的多分区网络通信方法,其步骤包括:
S1 FC设备端的各缓冲分区将传输数据根据优先级列队缓存后,将各传输数据的缓存物理基地址推送至逻辑处理模块;
S2逻辑处理模块根据传输数据的优先级,对相应FC设备端的缓冲分区锁存,以发起对传输数据的读取操作;
S3逻辑处理模块解析传输数据,以建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各目标缓冲分区的缓存空间内,直至将传输数据完整写入。
在可能的优选实施方式中,该通信方法步骤还包括:S4当某一目标缓冲分区出现拥堵时,逻辑处理模块对该拥堵的目标缓冲分区打上丢弃标记,当识别该丢弃标记时,逻辑处理模块放弃向该拥堵的目标缓冲分区发送数据片,直至将整个传输数据丢弃。
在可能的优选实施方式中,该通信方法还包括步骤:S5逻辑处理模块的缓存区在逻辑处理模块处理当前传输数据的同时,接收下一帧的传输数据。
在可能的优选实施方式中,在步骤S1中:在数据发送方向上,FC设备端的缓冲分区为各传输数据赋予优先级并与其Message ID绑定,同时记入优先级映射表。
在可能的优选实施方式中,在步骤S3中:在数据接收方向上,所述逻辑处理模块解析传输数据的数据片,并依据优先级映射表判断其优先级与Message ID是否对应,若对应则向目标缓冲分区地址的缓存空间转发,若不对应则丢弃。
本发明通过提供的该FC设备端的多分区网络通信系统及其通信方法,巧妙的利用了将传输数据进行切片的方案,有效减少了单次写入每个缓冲分区的缓存空间的所需时间,进而缩短了各缓冲分区接收数据的列队等待时间,尤其当进行最后一轮数据片写入动作时,还可以显著减少缓冲分区之间获取整个传输数据的相对延迟。
另一方面,在遇到缓冲分区异常情况时,现有技术方案通常是以计时到linkreset之前丢弃一帧数据来解决数据反压问题,但是当系统出现持续拥堵时,且接收端口的流量大时,固定时间丢弃一帧数据并不能彻底的解决反压问题,反而会导致网络系统异常;而本发明基于本系统的设计构架及其数据丢弃机制,当某一缓冲分区数据拥堵时,会完整的放弃向其发送的传输数据,但同时又不会影响其余目的缓冲分区的数据传输,这样不仅解决了数据拥堵问题,同时也提升了数据安全性,即便在流量大时也不会导致网络系统异常。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明的FC设备端的多分区网络通信系统的结构示意图;
图2为本发明的FC设备端的多分区网络通信系统的发送方向数据处理流程图;
图3为本发明的FC设备端的多分区网络通信系统的接收方向数据处理流程图;
图4为本发明的FC设备端的多分区网络通信系统之间的互联结构图;
图5为本发明的FC设备端的多分区网络通信方法的步骤示意图。
具体实施方式
为了使本领域的技术人员能够更好的理解本发明的技术方案,下面将结合实施例来对本发明的具体技术方案进行清楚、完整地描述,以助于本领域的技术人员进一步理解本发明。显然,本案所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思及相互不冲突的前提下,本申请中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的揭露及保护范围。
此外本发明的说明书和权利要求书及附图中的术语“第一”、“第二”、“S1”、“S2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里描述的那些以外的顺序实施。同时本发明中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。除非另有明确的规定和限定,术语“设置”、“布设”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况,结合现有技术来理解上述术语在本案中的具体含义。
请参阅图1至图4所示,本发明提供的该FC设备端的多分区网络通信系统,其FC设备端上设有数个缓冲分区,所述各缓冲分区依据FC设备端中建立的分区关系映射表而动态配置,各缓冲分区仅通过一条物理端口与逻辑处理模块连接,同时各缓冲分区根据分区关系映射表为各传输数据分配Message ID;此外本发明的该系统还包括:逻辑处理模块,其中该逻辑处理模块接收各缓冲分区发送的传输数据,以经解析各传输数据的Message ID,以根据分区关系映射表查找目标缓冲分区地址以建立虚拟传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各缓冲分区的缓存空间内,直至将传输数据完整写入。
其中本示例采用分区关系映射表动态配置缓冲分区,籍此能够保证系统不需要初始化的情况下,只更改部分使能寄存器,即可根据用户自身需要完成目的缓冲分区的实时更改,当更改生效后,系统内支持进行缓冲分区的快速查找,以快速的方式锁定目的缓冲分区,以便将接收到的一份客户端传输数据依次传输到目的缓冲分区中。
具体来说,如图1所示,该逻辑处理模块本实施例示例为FGPA模块,其接收从FC设备端的传输数据流入,以经过处理后由Fc_tx流出,此方向为数据发送方向,与此相对的是Fc_rx流入,经FPGA处理流出至FC设备端方向为数据接收方向。
在数据发送方向上,各所述缓冲分区内存有传输数据的发送列队,且缓冲分区为各传输数据赋予优先级并与其Message ID绑定,同时记入优先级映射表,发送方向上所述逻辑处理模块根据传输数据的优先级依次处理。
例如,在发送方向上的实施步骤包括:由FC设备端系统的软件驱动初始化参数,每个源分区系统将数据IU进行拆分存储到buffer(缓存空间)中,同时将不同优先级要进行DMA(Direct Memory Access,直接存储器访问)的buffer物理基地址推送到FPGA内,FPGA将物理地址进行缓存;之后FPGA依据所有分区的优先级进行快照处理(依据图2所述步骤),获取相应缓冲分区的相应优先级的物理地址,发起DMA的读;当完成一次DMA读后,依据传输数据head里面的Message ID,将此次的DMA数据存储,后续相同Message ID的DMA数据在同一缓存空间内依次存储,当该Message ID的通道数据在FPGA内无空间存储时,则丢弃该通道的数据;否则依据缓存空间内传输数据的Message ID内先入先发出的原则,将数据通过发送端口发往客户端。而FPGA则将该Message ID的数据发送出去后,释放存相应通道的缓存空间中。
其中,如图1所示,示例中该缓冲分区内存有发送队列,并独立分为4个优先级的区域,即缓冲分区内可以有N个发送队列分区,但需要说明的是本案虽然示例为4个优先等级,但本领域技术人员也可以根据实际需要进行扩展或减少,而并不被本示例所限制;在数据发送方向上,首先FC设备端通过寄存器方式将发送队列的物理地址给到FPGA,FPGA通过此物理地址发起DMA读取发送队列的传输数据,之后该传输数据从缓冲分区送出后,进入逻辑处理模块内部的DMA_TOP单元中进行处理,并将处理后的传输数据依据不同描述符(包括:Message ID、数据的长度length)传输到Tx_engine单元中,由此单元打包成符合FC的帧协议发送至目标缓冲分区地址对应的传输通道,由此完成整个发送过程。
其中值得一提的是,为了缩短各缓冲分区接收传输数据的列队等待时间,在发送方向上,本示例下,该逻辑处理模块内部的DMA_TOP单元将对该传输数据进行切分处理。
例如,假设在缓冲分区的系统中DMA的buffer大小为64kB,只有当此buffer被DMA的数据填满的情况下,缓冲分区的系统才会将此buffer中的数据取走,因此在数据接收方向上,当FC设备端面对多缓冲分区通信时,在接收一份客户端数据进行转发至目的缓冲分区时(使用DMA写操作的方式,写到每个缓冲分区),尤其是组播组/广播发送任务下,系统一般会先向第一个缓冲分区发完64KB的时候,才会给第二个缓冲分区发送64KB的数据,依次类推到最后一个缓冲分区发完64KB,因此在缓冲分区很多的情况,那么轮到最后一个缓冲分区接收数据的时候,会等很长的时间。
因此为了均衡带宽,本示例中通过FPGA内部的DMA_TOP单元会将缓存的传输数据进行多次分割,例如当设定分割块为4kB时,可将64KB的数据分割为16个4KB数据,当拿到第一个4KB的数据后,就可对每个缓冲分区依次的进行4KB的DMA操作,当所有缓冲分区轮流一遍后,再拿第二个4KB的数据循环操作,直至将64kB的数据发完,即对应的缓冲分区的buffer被填满才会被取走。
籍此便可有效减少单次写入每个缓冲分区的缓存空间的所需时间,进而缩短了各缓冲分区接收数据的列队等待时间,尤其是当进行最后一轮数据片写入动作时,还可以显著减少缓冲分区之间获取整个传输数据的相对延迟。这样每个缓冲分区之间收到完整传输数据的同步率就会有所提升。
进一步的,为了进一步提升逻辑处理模块的数据处理效率,在本示例中,可在该逻辑处理模块与各缓冲分区连接的接收端口处设有缓存区,如在FPGA接收端口处,设置128KB的缓存空间,能够在FPGA进行处理64KB数据的同时,从客户端接收新的64KB数据,由此保证系统处理数据的高效性。
另一方面,上述数据切分方案的优点还在于,由于每个缓冲分区是相对独立的,给buffer分配的大小是依据缓冲分区系统的业务量而定,若某缓冲分区系统性能不足的情况下,可以将DMA的buffer从64KB的大小切割成多个4KB的小buffer,每次仅处理一个小buffer的数据量,但又不会拉低其余缓冲分区系统的工作效率,从而使得本方案可在分区系统实现数据各自独立,并在FPGA内实现多分区的数据兼容。
数据在接收方向上,该目标缓冲区内存有接收队列,与发送队列对应的,本示例中独立分为4个优先级区域,即目标缓冲分区内可以有N个接收队列分区,每个分区均包含4个优先级,且每个分区相对独立;缓冲分区将需要DMA的传输数据存储在buffer中,格式为headr0 + payload,其中head里面包含了此缓存中数据的长度、数据的Message ID等信息;缓冲分区与FPGA在进行DMA时,只需要将物理地址通过FC设备端系统驱动转发告知对方,即可发起DMA操作,进行数据交互;在同一次业务中,分区系统会为四个优先级分配不同的Message ID,每个优先级的Message ID 不会重叠,整个通信中,数据是依据Message ID和分区号来进行管理,每个分区理论上均支持4096个通道及以上。
具体来说,其中逻辑处理模块对FC设备端发送的数据经Rx_engine单元进行协议解析去冗余后,流入目标缓存区对应逻辑处理模块的DMA_top单元中,该DMA_top单元首先依据通道号查分区关系映射表的方式(此表由FC设备端通过寄存器配置),得到目标缓冲分区地址,以将数据单播路由到单个缓冲分区,或将数据组播路由到多个缓冲分区中。
例如,在接收方向的实施步骤包括:
1、由FC设备端系统的软件驱动初始化参数,配置通道号与分区关系映射表,分区系统配置传输数据Message ID对应的优先级的映射表;每个源分区系统依据优先级将要进行DMA的buferr的物理基地址推送到逻辑,逻辑将物理地址进行缓存;
2、FPGA从端口上解析数据,从帧中获取传输数据的Message ID 和优先级号,依据分区系统配置的Message ID对应的优先级映射表,当从帧解析出的优先级号与分区系统配置的优先级号相同时,则会对数据进行下一步处理,若不同,则丢弃数据,寄存器上报优先级不匹配错误。
3、FPGA从对端收到传输数据后,将数据处理成描述符+数据的格式进行缓存,相同Message ID的DMA数据在同一缓存区域内依次存储,当该Message ID的通道数据在FPGA内无空间存储时,则丢弃该通道的数据;其中描述符包括该数据的长度、优先级、Message ID号;
4、FPGA依据传输数据的Message ID号进行快速查找功能得到目标缓冲分区号(依据图3步骤),利用分区号快照,依次处理每一个目标缓冲分区,如果某目标缓冲分区没有可用的物理基地址,则进入步骤5快速丢弃模式;若获得单个缓冲分区的物理基地址,利用优先级和Message ID的信息,将步骤3中缓存的数据进行转发,直至向所有目标缓冲分区均发送完成,进入步骤6;
5、该缓冲分区由于拥堵,没有可用的物理地址,进入了快速丢弃模式,开始进行计时,在规定的时间可用的内物理地址从目标缓冲分区推送到FPGA,那么退出快速丢弃模式进入步骤6,若超时还是未收到可用的物理地址,则拉高相应标记位,标志该分区在此次64KB的DMA中数据需要全部丢弃,因此后续该缓冲分区的分割的4KB的DMA识别此标志位,数据直接丢弃,当此次64KB的DMA结束后,退出快速丢弃模式,清除标记位,需要重新判断该分区是否进入快速丢弃模式
6、将数据依次进行DMA转发到目标缓冲分区中,当查找到的分区号唯一时,所述的数据转发为分区单播,查找到的分区号为多个时,所述的数据转发为分区组播/广播;
7、将所有目标缓冲分区的数据转发后,将步骤3中的缓存释放,将数据更新,缓存新的数据;直至目标缓冲分区的buffer的缓存被填满后,对每个分区buffer中发送头部数据(即图3中描述的w0w1),为了让分区系统识别到该头部数据已经填充完成,从而将数据取走,进行组帧后上传。
其中,在步骤5中,当某缓冲分区中某通道出现拥堵时,如:相应缓冲分区没有物理地址,但是在规定的时间内获得可用的物理地址时,卡死时(无缓存可用时,即相应分区没有可存储数据的物理地址),本示例将在DMA_top单元中对此通道的数据进行超时等待、丢弃。
进一步的,在数据接收方向上,FC设备端当面对多分区通信,需要接收一份客户端数进行转发至目标缓冲分区时,正常情况下是找到了目标缓冲分区的分区号,利用该分区号查找到可以用来DMA写操作的物理基地址,而FPGA即可根据此物理基地址进行DMA的写操作。
但是异常情况下,虽然锁定了目标缓冲分区的分区号,但是该目标缓冲分区却没有空间给FPGA进行DMA写操作时,这可能是由于分区通道的数据拥堵导致该缓冲分区没有可用空间的物理基地址,而长时间的数据拥堵会造成FC设备端接收端口的信用值耗尽产生数据反压,若反压持续到ms级别时,则会引起link reset导致链路复位,
而现有技术通常的做法是计时到link reset之前丢弃一帧数据使得反压消失,但是系统若出现持续拥堵时,且接收端口的流量较大时,固定时间丢弃一帧数据并不能彻底的解决反压问题,反而会导致网络系统异常;
因此为了不影响其余非拥堵缓冲分区的数据转发,以及该拥堵缓冲分区的其余非拥堵通道的数据转发,本案设计构思上巧妙的基于本案上述示例的系统设计构架及其数据切分机制来适应性的设计了一种数据快速丢弃方案,以解决上述问题。
例如:当出现拥堵缓冲分区时,代表此次64KB数据的第一次4KB的DMA操作,若没有找到可用的物理基地址,那么就先进行计时等待,若在规定的时间内,缓冲分区系统将可用的物理基地址推送到FPGA,那么后续4KB的DMA操作依次进行,若超时还未收到可用的物理基地址,那么便会对该缓冲分区拉高一个信号,以打上丢弃标记进入快速丢弃模式,后续4KB的DMA操作都会识别到此标记,在轮到该缓冲分区时直接将该数据丢弃,直至此次64KB的数据量的DMA操作结束,此时丢弃了该拥堵缓冲分区的一个64KB的数据量,此拥堵缓冲分区会退出快速丢弃模式,清除标志位,同时上报此次消息的错误给缓冲分区系统,当新的64KB的数据需DMA操作时,要再次判断是否进入快速丢弃模式。
因此这种快速丢弃模式的优势为,当数据拥堵时,会进行完整的buffer丢弃,同时不会影响其余目标缓冲分区数据的传输,当拥堵的缓冲分区系统内有可用的物理地址时,则该拥堵缓冲分区就可恢复正常,使用此种设计方案不仅解决了数据拥堵问题,同时也提升了数据安全性,还不会导致网络系统异常。
进一步的,如图2所示为,由于各缓冲分区内的接收列队/发送列队具有优先级,如本案示例的4个优先级(优先级3为最高优先级、优先级0为最低优先级,其余优先级顺序递减),因此当FPGA查到有可用的物理地址后,首先会判断物理地址是否为高优先级,判断不是高优先级地址后,转去判断是否为次低优先级,判断顺序依优先级等级从高递减至最低。
因此只有高优先级物理地址不存在时,而低优先级的物理地址存在,这时低优先级物理地址才会判断生效。这里以图2中优先级3进行叙述(其余优先级处理方式相同),将所有分区优先级3的FIFO_empty_pri3信号(即所有分区FIFO的空信号拼接在一起,每个分区占1bit,为高代表fifo为空)依据分区号从小到大对应位宽中的低位到高位进行拼接,得到一个n 比特位的数据,每一位均代表一个分区是否有可用的物理地址,当判断FIFO_empty_pri3信号非空时,代表n个分区中确定有分区的优先级3有可用的物理地址,此时将此信号进行快照锁存得到n比特位的snap_pri3数据,并依据snap_pri3信号从高位到低位依次开始处理,每次处理一个分区,查找到该分区的物理地址,发起DMA操作,当DMA数据结束后,清除snap_pri3信号的相应比特位,代表该分区已经处理完毕,依此顺序处理,直至所有分区全部处理结束即snap_pri3信号全部比特位清零。
进一步的,如图3所示,在逻辑处理模块中的DMA_top单元在数据接收方向上数据的处理过程包括:接收方向通过Rx_engine单元将冗余数据进行去除,并统计数据的长度,以将长度、Message ID、优先级信息拼接成一个描述符des信号,和对应的数据分别在FIFO中存储;当des的fifo有数据时,依据des信号中的Message ID 去查找分区关系映射表,找到对应目标缓冲分区的区号进行快照锁存得到n比特位位宽的snap_block_num信号,其中每一bit为高代表一个分区被选中,此映射表由FC设备端通过寄存器动态配置。
得到分区号后,利用des信号中的优先级信息,可以查找对应该分区的优先级是否有物理地址,若有,则拉高flag_addr标记,获取到物理地址,若无,则会进行计时等待,在计时结束后再次进行查找,若有,则拉高flag_addr标记获取到物理地址,若无则清除该分区在snap_block_num信号中的比特位,代表该分区此次数据丢弃(此处拉高flag_addr的标记为的原因是,数据从Rx_engine单元中进入DMA_top单元中被缓存在data_ram中,由于ram深度有限,数据的长度可能远大于ram的深度,所以这里进行了对数据长度切片的操作,切成ram深度的整数倍,这里描述为为4kB深度的ram,所以只有在第一个4kB数据时会查找物理地址作为基地址,同时拉高标志位flag_addr,后续数据会在基地址上进行偏移,不用再次查找物理地址),得到该分区的物理地址后,进行4kB数据的DMA操作,发往目标缓冲分区。
当完成一个缓冲分区的4kB数据的DMA操作后,清除该缓冲分区在snap_block_num信号中的比特位,代表该分区此次数据发送完毕,其余缓冲分区操作步骤同上,但发送的4kB的数据相同;当snap_block_num信号所有比特位清零时,代表所有目标缓冲分区的4kB数据DMA操作结束,长度减去4kB,去读新一次的4kB数据进行缓存,循环上述操作直至长度减为0时,需要把描述符w0w1写到每个缓冲分区数据的头部,此处的w0w1包括的内容有长度和一些状态统计信息,在写w0w1时,需要再次查找映射表,将w0w1发往目标缓冲分区中。
进一步的,图4所示为本发明系统的整体示例,其中每个FC设备端系统都均可以作为客户端或服务端,进行收发数据;并且均支持n个分区,同一端系统内的源分区可以发往除本源分区外的任意一个/多个目标缓冲分区;每个缓冲分区的通道数可由用户进行配置选择,最大支持4096个通道;其中系统的逻辑处理模块中的DMA_TOP单元两个源分区内的相同通道号可以发往同一客户端系统的不同目标缓冲分区,但是不允许发往同一客户端的同一目标缓冲分区;所述实施例仅代表部分连接的场景,若将客户端、客户端分区、源分区通道、服务端、服务端分区、目标缓冲分区通道6种条件按照单个/多个进行排列组合,那么将会有64中不同的实施用例,但细节划分个数不止于此,因为在“多个”为条件的情况下,具体情况更为复杂。
对应上述实施例中的该FC设备端的多分区网络通信系统,如图5所示,本发明还提供了一种FC设备端的多分区网络通信方法,步骤包括:
S1各缓冲分区将传输数据根据优先级列队缓存后,将各传输数据的缓存物理基地址推送至逻辑处理模块;
S2逻辑处理模块根据传输数据的优先级,对相应缓冲分区锁存,以发起对传输数据的读取操作;
S3逻辑处理模块解析传输数据,以建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各缓冲分区的缓存空间内,直至将传输数据完整写入;
S4当某一缓冲分区出现拥堵时,逻辑处理模块对该拥堵的缓冲分区打上丢弃标记,当识别该丢弃标记时,逻辑处理模块放弃向该拥堵的缓冲分区发送数据片,直至将整个传输数据丢弃。
S5逻辑处理模块的缓存区在逻辑处理模块处理当前传输数据的同时,接收下一帧的传输数据。
进一步的,在步骤S1中:在数据发送方向上,缓冲分区为各传输数据赋予优先级并与其Message ID绑定,同时记入优先级映射表;
进一步的,在步骤S3中:在数据接收方向上,所述逻辑处理模块解析传输数据的数据片,并依据优先级映射表判断其优先级与Message ID是否对应,若对应则向目标缓冲分区地址的缓存空间转发,若不对应则丢弃。
综上所述,本发明通过提供的该FC设备端的多分区网络通信系统及其通信方法,巧妙的利用了将传输数据进行切片的方案,有效减少了单次写入每个缓冲分区的缓存空间的所需时间,进而缩短了各缓冲分区接收数据的列队等待时间,尤其当进行最后一轮数据片写入动作时,还可以显著减少缓冲分区之间获取整个传输数据的相对延迟。
另一方面,在遇到缓冲分区异常情况时,现有技术方案通常是以计时到linkreset之前丢弃一帧数据来解决数据反压问题,但是当系统出现持续拥堵时,且接收端口的流量大时,固定时间丢弃一帧数据并不能彻底的解决反压问题,反而会导致网络系统异常;而本发明基于本系统的设计构架及其数据丢弃机制,当某一缓冲分区数据拥堵时,会完整的放弃向其发送的传输数据,但同时又不会影响其余目的缓冲分区的数据传输,这样不仅解决了数据拥堵问题,同时也提升了数据安全性,即便在流量大时也不会导致网络系统异常。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
本领域技术人员可以理解,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
此外实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。
Claims (10)
1.一种FC设备端的多分区网络通信系统,其FC设备端上设有数个缓冲分区,其特征在于,所述系统包括:逻辑处理模块,其中逻辑处理模块接收FC设备端上的各缓冲分区发送的传输数据,以经解析后建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各目标缓冲分区的缓存空间内,直至将传输数据完整写入。
2.根据权利要求1所述的FC设备端的多分区网络通信系统,其特征在于,当某一目标缓冲分区出现拥堵时,逻辑处理模块对该拥堵的目标缓冲分区打上丢弃标记,当识别该丢弃标记时,逻辑处理模块放弃向该拥堵的目标缓冲分区发送数据片,直至将整个传输数据丢弃。
3.根据权利要求1所述的FC设备端的多分区网络通信系统,其特征在于,逻辑处理模块与FC设备端的各缓冲分区连接的接收端口处设有缓存区,以在逻辑处理模块处理当前传输数据的同时,接收下一帧的传输数据。
4.根据权利要求1所述的FC设备端的多分区网络通信系统,其特征在于,所述FC设备端的各缓冲分区依据FC设备端中建立的分区关系映射表而动态配置,FC设备端的各缓冲分区仅通过一条物理端口与逻辑处理模块连接,同时FC设备端的各缓冲分区根据分区关系映射表为各传输数据分配Message ID,所述逻辑处理模块解析各传输数据的Message ID,以根据分区关系映射表查找目标缓冲分区地址以建立虚拟传输通道。
5.据权利要求4所述的FC设备端的多分区网络通信系统,其特征在于,在数据发送方向上,FC设备端的各所述缓冲分区内存有传输数据的发送列队,且FC设备端的缓冲分区为各传输数据赋予优先级并与其Message ID绑定,同时记入优先级映射表,发送方向上所述逻辑处理模块根据传输数据的优先级依次处理。
6.据权利要求4所述的FC设备端的多分区网络通信系统,其特征在于,在数据接收方向上,所述逻辑处理模块解析传输数据的数据片,并依据优先级映射表判断其优先级与Message ID是否对应,若对应则向目标缓冲分区地址的缓存空间转发,若不对应则丢弃。
7.一种FC设备端的多分区网络通信方法,其特征在于,步骤包括:
S1 FC设备端的各缓冲分区将传输数据根据优先级列队缓存后,将各传输数据的缓存物理基地址推送至逻辑处理模块;
S2逻辑处理模块根据传输数据的优先级,对相应FC设备端的缓冲分区锁存,以发起对传输数据的读取操作;
S3逻辑处理模块解析传输数据,以建立与目标缓冲分区地址对应的传输通道,并将接收的传输数据进行数据切片后,令各数据片依次经传输通道轮流写入各目标缓冲分区的缓存空间内,直至将传输数据完整写入。
8.根据权利要求7所述的FC设备端的多分区网络通信方法,其特征在于,步骤还包括:
S4当某一目标缓冲分区出现拥堵时,逻辑处理模块对该拥堵的目标缓冲分区打上丢弃标记,当识别该丢弃标记时,逻辑处理模块放弃向该拥堵的目标缓冲分区发送数据片,直至将整个传输数据丢弃。
9.根据权利要求7所述的FC设备端的多分区网络通信方法,其特征在于,还包括步骤:
S5逻辑处理模块的缓存区在逻辑处理模块处理当前传输数据的同时,接收下一帧的传输数据。
10.根据权利要求7所述的FC设备端的多分区网络通信方法,其特征在于,在步骤S1中:在数据发送方向上,FC设备端的缓冲分区为各传输数据赋予优先级并与其Message ID绑定,同时记入优先级映射表;
在步骤S3中:在数据接收方向上,所述逻辑处理模块解析传输数据的数据片,并依据优先级映射表判断其优先级与Message ID是否对应,若对应则向目标缓冲分区地址的缓存空间转发,若不对应则丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210639521.6A CN115118678B (zh) | 2022-06-07 | 2022-06-07 | 一种fc设备端的多分区网络通信系统及其通信方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210639521.6A CN115118678B (zh) | 2022-06-07 | 2022-06-07 | 一种fc设备端的多分区网络通信系统及其通信方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115118678A CN115118678A (zh) | 2022-09-27 |
CN115118678B true CN115118678B (zh) | 2024-03-12 |
Family
ID=83326578
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210639521.6A Active CN115118678B (zh) | 2022-06-07 | 2022-06-07 | 一种fc设备端的多分区网络通信系统及其通信方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115118678B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888293A (zh) * | 2014-02-25 | 2014-06-25 | 电子科技大学 | 多通道fc网络数据仿真系统的数据通道调度方法 |
CN106951380A (zh) * | 2017-03-17 | 2017-07-14 | 山东浪潮商用系统有限公司 | 一种客户端、服务端、数据传输方法及系统 |
CN107943727A (zh) * | 2017-12-08 | 2018-04-20 | 深圳市德赛微电子技术有限公司 | 一种高效dma控制器 |
CN110413539A (zh) * | 2019-06-19 | 2019-11-05 | 深圳云天励飞技术有限公司 | 一种数据处理方法及装置 |
CN110995668A (zh) * | 2019-11-19 | 2020-04-10 | 中国航空工业集团公司西安航空计算技术研究所 | 应用于arinc653操作系统分区间的fc网络通信装置及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN113722250A (zh) * | 2021-09-15 | 2021-11-30 | 上海赛治信息技术有限公司 | 基于Aurora协议的双路冗余数据交换方法及系统 |
-
2022
- 2022-06-07 CN CN202210639521.6A patent/CN115118678B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103888293A (zh) * | 2014-02-25 | 2014-06-25 | 电子科技大学 | 多通道fc网络数据仿真系统的数据通道调度方法 |
CN106951380A (zh) * | 2017-03-17 | 2017-07-14 | 山东浪潮商用系统有限公司 | 一种客户端、服务端、数据传输方法及系统 |
CN107943727A (zh) * | 2017-12-08 | 2018-04-20 | 深圳市德赛微电子技术有限公司 | 一种高效dma控制器 |
CN110413539A (zh) * | 2019-06-19 | 2019-11-05 | 深圳云天励飞技术有限公司 | 一种数据处理方法及装置 |
CN110995668A (zh) * | 2019-11-19 | 2020-04-10 | 中国航空工业集团公司西安航空计算技术研究所 | 应用于arinc653操作系统分区间的fc网络通信装置及方法 |
CN112783810A (zh) * | 2021-01-08 | 2021-05-11 | 国网浙江省电力有限公司电力科学研究院 | 一种面向应用的多通道srio dma传输系统及方法 |
CN113722250A (zh) * | 2021-09-15 | 2021-11-30 | 上海赛治信息技术有限公司 | 基于Aurora协议的双路冗余数据交换方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115118678A (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240171507A1 (en) | System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic) | |
US7110400B2 (en) | Random access memory architecture and serial interface with continuous packet handling capability | |
US5546385A (en) | Flexible switching hub for a communication network | |
JP3640299B2 (ja) | ルートルックアップおよびパケット分類要求のための提起および応答アーキテクチャ | |
US20090238190A1 (en) | Ethernet Virtualization Using a Network Packet Alteration | |
US20070133415A1 (en) | Method and apparatus for flow control initialization | |
JPH05219098A (ja) | フレーム変換方法及び装置 | |
US7773595B2 (en) | System and method for parsing frames | |
US7760736B2 (en) | Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of broadcast traffic to virtual hosts | |
US9401879B1 (en) | Systems and methods for sending and receiving information via a network device | |
US8351426B2 (en) | Ethernet virtualization using assisted frame correction | |
CN115118678B (zh) | 一种fc设备端的多分区网络通信系统及其通信方法 | |
US20030123387A1 (en) | Device and method for filtering network traffic | |
US7751400B2 (en) | Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts | |
US20160315883A1 (en) | Packet control method, transmission apparatus, and storage medium | |
US7113518B2 (en) | Processor with reduced memory requirements for high-speed routing and switching of packets | |
CN117499351A (zh) | 报文转发装置及方法、通信芯片及网络设备 | |
JP2015507408A (ja) | 効率的なネットワークアドレス変換およびアプリケーションレベルゲートウェイ処理のための装置および方法 | |
KR20030089933A (ko) | 네트워크 프로세서에서의 패킷 리디랙션 방법 | |
CN113422741B (zh) | 一种时间触发以太网交换机结构 | |
US20040184447A1 (en) | Reducing inter-packet gaps in packet-based input/output communications | |
CN116561055A (zh) | 一种基于片上系统的虚拟输出队列构建方法 | |
CN115580586A (zh) | 一种基于片上系统的fc交换机输出队列的构建方法 | |
JP2002152247A (ja) | パケットスイッチ | |
CN114124850A (zh) | 一种网络通信方法及装置、存储介质 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240201 Address after: 12th Floor, Building 5, No. 18 Qingjiang South Road, Gulou District, Nanjing City, Jiangsu Province, 210036 Applicant after: NANJING QUANXIN CABLE TECHNOLOGY Co.,Ltd. Country or region after: China Address before: 201103 room 110, building 3, 1128 Wuzhong Road, Minhang District, Shanghai Applicant before: SHANGHAI SAIZHI INFORMATION TECHNOLOGY Co.,Ltd. Country or region before: China |
|
GR01 | Patent grant | ||
GR01 | Patent grant |