一种多分区网管下沉通信方法与流程

专利2024-07-10  55



1.本技术涉及下沉通信技术领域,特别是涉及一种多分区网管下沉通信方法。


背景技术:

2.fc网络,就是san系统中服务器与存储介质通过一种特殊的网络相连的网络。fc网络是一种新发展的与传统的tcp/ip网络并列的一种高速网络。它有自己的地址分配和网络管理的体系。fc网络的使用离不开fc通信卡的使用。
3.随着fc通信卡的发展和进步,fc通信卡的功能逐渐能够实现支持多种网络拓扑结构,支持多种硬件接口形式,提供丰富的软件接口为用户熟悉、掌握fc协议提供实物平台,同时也可满足用户基于fc网络的应用开发和调试。
4.但是,目前基于fc通信卡的通信方法的使用情况较为单一,并且并不支持在多系统多分区的宿主机中使用,进而导致了影响使用的技术问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够支持在多系统多分区的宿主机中使用的多分区网管下沉通信方法。
6.本发明技术方案如下:一种多分区网管下沉通信方法,所述方法基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的host系统、核心系统、fpga和对端,所述方法具体包括以下步骤:步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各host系统;步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息;步骤s300:所述fpga将所述交互结果信息发送至对端。
7.进一步地说,步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息,具体包括:步骤s210:所述fpga中的dma_top模块接收来自所述核心系统发送的上网请求数据包,并对所述上网请求数据包拆分并生成asm数据和网管数据;步骤s220:所述dma_top模块将所述asm数据发送至所述fpga中的hba_tx模块,由所述hba_tx模块发送至所述fpga中的fc_mac模块,并由所述fc_mac模块将asm数据发送至对端;步骤s230:所述dma_top模块根据所述网管数据以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息。
8.进一步地说,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式
与所述fpga进行数据交互,具体包括:步骤s2311:所述dma_top模块将所述网管数据存储至所述fpga中的cmd ram中;步骤s2312:所述fpga中的软核从所述cmd ram中读取所述网管数据并将所述网管数据打包转发给所述hba_tx模块;步骤s2313:所述hba_tx模块将所述网管数据打包成符合fc_mac模块的帧格式后,由fc_mac模块发送至对端。
9.进一步地说,步骤s2312中,所述fpga中的软核从所述cmd ram中读取所述网管数据的步骤,具体包括:步骤s23121:软核读[cmd_ram_write_pointer]寄存器获取写指针;步骤s23122:软核根据其读指针和写指针计算ram的有效数据字节数;步骤s23123:软核按照每次4字节从cmd ram读取数据;步骤s23124:软核更新本地的读指针变量;步骤s23125:软核向[cmd_ram_read_pointer]寄存器写入本地读指针变量的值,如果读指针等于写指针,读空标记等于1,否则等于0。
[0010]
进一步地说,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式与所述fpga进行数据交互,还包括:步骤s2321:当选定寄存器交互模式时,在接收方向上,所述fpga内的接收模块接收对端发送的第一网管数据;步骤s2322:所述接收模块将接收到的第一网管数据发送至所述fc_mac模块,所述fc_mac模块将第一网管数据转发至所述sfp_rx模块,所述sfp_rx模块将第一网管数据发送至所述网络下沉模块中的软核中;步骤s2323:当所述软核取到一帧第一网管数据后,对其进行解析,将帧携带的信息通过寄存器的方式写入result ram中;步骤s2324:所述核心系统将所述result ram中的信息读取走,并将读取走的数据信息进行分类,分类完成后写入状态信息模块中的状态信息表中,由核心系统依据每个分区所需要的信息,从状态信息模块中取数据,转发给每个分区对应的host系统。
[0011]
进一步地说,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,具体包括:步骤s2331:所述核心系统获取各分区的当前实际数据;步骤s2332:核心系统的收发仲裁模块根据所述当前实际数据进行顺序仲裁,所述核心系统中的状态信息模块存储所述当前实际数据;步骤s2333:所述收发仲裁模块将所述状态信息模块中存储的当前实际数据进行转发给所述dma_top模块;步骤s2334:所述dma_top模块将经所述状态信息模块转发的当前实际数据写入所述fpga中的cmd ram中;步骤s2335:所述软核读取所述cmd ram中的数据,并通过指针的方式控制,最后由所述软核将数据依次从hba_tx模块和fc_mac模块发送至对端。
[0012]
进一步地说,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,还具体包括:
步骤s2341:选定以数据直接交互模式时,在数据接收方向上,所述fpga内部的数据控制模块接收到第二网管数据,并转发给软核;步骤s2342:所述软核将第二网管数据进行解析后添加相应的数据信息到帧中,并将数据写入到所述fpga的result ram中存储;步骤s2343:所述fpga的述dma_top模块读取所述result ram中的数据,并将读取的数据上报给核心系统;步骤s2344:核心系统接收数据后,缓存在对应各个分区的存储状态模块中,最终发送给各分区对应的host系统。
[0013]
进一步地说,步骤s2342中,软核将数据写入到所述fpga的result ram中存储;具体包括:步骤s23421:软核读[result_ram_read_pointer]寄存器获取读指针;步骤s23422:软核根据其写指针和读指针计算result ram的空闲字节数;步骤s23423:软核以每次4字节向result ram中写入数据;步骤s23424:软核更新本地的写指针变量;步骤s23425:软核向[result_ram_write_pointer]寄存器写入本地写指针变量的值,如果本地写指针变量等于读指针,写满标记等于1,否则等于0。
[0014]
进一步地说,所述方法还包括:步骤s410:在数据的接收方向上,若选定了小队列模式,则软核对于数据的发送与接收均是基于帧为单位进行处理;步骤s420:若选定了大队列模式时,当软核接收到单个帧的大小为一个fc帧时,软核对于数据的发送与接收与小队列模式相同;当软核接收到的网管帧为多个小碎帧时,软核对小碎帧拼接,并将多个小碎帧拼接成2kb的大小,然后从软核转发出到核心系统;其中,小碎帧大小可能只有0-100kb。
[0015]
进一步地说,步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,具体包括:步骤s110:所述核心系统获取各分区的网络上网请求;步骤s120:所述核心系统中的收发仲裁模块对所述网络上网请求进行仲裁,将各分区的网络上网请求据进行排序;步骤s130:所述收发仲裁模块同时将网络上网请求作为状态信息统计在核心系统的状态信息模块中的状态信息表;步骤s140:所述收发仲裁模块将所述网络上网请求及其对应的帧类型和帧长度打包并生成上网请求数据包。
[0016]
本发明实现技术效果如下:1、上述多分区网管下沉通信方法,基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的host系统、核心系统、fpga和对端,所述方法具体先通过所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各host系统;所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息;所述fpga将所述交互结果信息发送至对端,进而实现核心系统、根据网络上网请
求来基于fpga进行高效资源调用,提升使用便利性和资源调用效率,该方法支持在多系统多分区的宿主机中使用,2、还实现了使fc节点设备工作在多系统多分区下,每个分区均可以调用共同的底层硬件资源,其中上层多分区系统将网络管理的数据放到逻辑中存储与发送,减轻了系统处理数据的压力,提升系统整体性能,同时增加了上层软件重用性和可移植性。
附图说明
[0017]
图1为一个实施例中多分区网管通信系统的结构框图;图2为一个实施例中表征网管数据收发数据流的结构框图。
具体实施方式
[0018]
为了使本领域的技术人员能够更好的理解本发明的技术方案,下面将结合实施例来对本发明的具体技术方案进行清楚、完整地描述,以助于本领域的技术人员进一步理解本发明。显然,本案所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思及相互不冲突的前提下,本技术中的实施例及实施例中的特征可以相互组合。基于本发明中的实施例,在本领域普通技术人员没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明的揭露及保护范围。
[0019]
此外本发明的说明书和权利要求书及附图中的术语“第一”、“第二”、“s1”、“s2”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里描述的那些以外的顺序实施。同时本发明中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。除非另有明确的规定和限定,术语“设置”、“布设”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况,结合现有技术来理解上述术语在本案中的具体含义。
[0020]
在一个实施例中,如图1所示,提供了一种多分区网管下沉通信方法,所述方法基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的host系统、核心系统、fpga和对端。
[0021]
所述fpga内设有dma_top模块、网管下沉模块、hba_tx模块、sfp_rx模块和fc_mac模块。所述dma_top模块用于通过所述核心系统与所述host系统进行信息交互,从核心系统收到数据后把asm数据和网管数据分开,其中的asm数据直接发送到hba_tx模块打包成符合fc_mac模块的帧格式由fc_mac送出,网管数据送入网管下沉模块中(fpga的软核就在里面),由软核发送给hba_tx模块打包成符合fc_mac模块的帧格式由fc_mac送出。接收方向上fc_mac模块收到数据后送到sfp_rx模块中,其中asm数据送到dma_top模块转发上报给核心系统,网管数据送到网管下沉模块处理后,送到到dma_top模块转发上报给核心系统。
[0022]
本实施例中,所述对端可以理解为客户端。
[0023]
进一步,本发明中所述多分区网管下沉通信方法具体包括以下步骤:
步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各host系统;本步骤中,如图2所示,各分区分别在图2中标示为host:分区1、host:分区2和host:分区3。
[0024]
步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息;步骤s300:所述fpga将所述交互结果信息发送至对端。
[0025]
本发明所述多分区网管下沉通信方法,基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的host系统、核心系统、fpga和对端,所述方法具体先通过所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各host系统;然后,所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息;最后,所述fpga将所述交互结果信息发送至对端,进而实现使fc节点设备工作在多系统多分区下,每个分区均可以调用共同的底层硬件资源,其中上层多分区系统将网络管理的数据放到逻辑中存储与发送,减轻了系统处理数据的压力,提升系统整体性能,同时增加了上层软件重用性和可移植性。
[0026]
在本发明的另一实施例中,步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息,具体包括:步骤s210:所述fpga中的dma_top模块接收来自所述核心系统发送的上网请求数据包,并对所述上网请求数据包拆分并生成asm数据和网管数据;步骤s220:所述dma_top模块将所述asm数据发送至所述fpga中的hba_tx模块,由所述hba_tx模块发送至所述fpga中的fc_mac模块,并由所述fc_mac模块将asm数据发送至对端;步骤s230:所述dma_top模块根据所述网管数据以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息。
[0027]
在本发明的另一实施例中,软核与fpga的发送模块之间的信息交互是通过定义指针的方式来控制读写ram来实现,即软核控制写指针将数据写入数据ram中,fpga的发送模块控制读指针,从数据ram中读取数据,利用读指针减写指针代表ram中的剩余空间长度,写指针减去读指针的大小代表数据ram中存放的有效长度,当软核识别到剩余空间的长度能够存放下即将发送的数据时,便开始往数据ram里面写数据,当fpga的发送模块识别到数据ram中的有效长度大于50b时,便开始读数据,这里的50b是由本领域技术人员根据实际需要进行更改设定。
[0028]
进一步地,上述的fpga的发送模块具体包括但不限于hba_tx模块。
[0029]
在本发明的另一实施例中,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式与所述fpga进行数据交互,具体包括:步骤s2311:所述dma_top模块将所述网管数据存储至所述fpga中的cmd ram中;步骤s2312:所述fpga中的软核从所述cmd ram中读取所述网管数据并将所述网管数据打包转发给所述hba_tx模块;
步骤s2313:所述hba_tx模块将所述网管数据打包成符合fc_mac模块的帧格式后,由fc_mac模块发送至对端。
[0030]
在本发明的另一实施例中,步骤s2312中,所述fpga中的软核从所述cmd ram中读取所述网管数据的步骤,具体包括:步骤s23121:软核读[cmd_ram_write_pointer]寄存器获取写指针;步骤s23122:软核根据其读指针和写指针计算ram的有效数据字节数;步骤s23123:软核按照每次4字节从cmd ram读取数据;步骤s23124:软核更新本地的读指针变量;步骤s23125:软核向[cmd_ram_read_pointer]寄存器写入本地读指针变量的值,如果读指针等于写指针,读空标记等于1,否则等于0。
[0031]
本实施例中,核心系统中具有收发仲裁模块、状态信息模块,其中的收发仲裁模块用来处理多个分区发起网管数据的顺序;各分区的状态信息模块是用来统计网管数据不同类型的状态的信息,当选择寄存器交互模式,各分区不能够直接发起具体的网管数据只能够获取统计的网管状态信息。
[0032]
在本发明的另一实施例中,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式与所述fpga进行数据交互,还包括:步骤s2321:当选定寄存器交互模式时,在接收方向上,所述fpga内的接收模块接收对端发送的第一网管数据;本实施例中的数据交互也是通过到读写指针控制数据ram的方式进行,fpga的接收模块识别到数据ram的剩余空间足够存储下接收到的数据时,便往数据ram里面写数据,当软核识别到数据ram中的有效长度大于50b时,便开始取数据。
[0033]
步骤s2322:所述接收模块将接收到的第一网管数据发送至所述fc_mac模块,所述fc_mac模块将第一网管数据转发至所述sfp_rx模块,所述sfp_rx模块将第一网管数据发送至所述网络下沉模块中的软核中;步骤s2323:当所述软核取到一帧第一网管数据后,对其进行解析,将帧携带的信息通过寄存器的方式写入result ram中;步骤s2324:所述核心系统将所述result ram中的信息读取走,并将读取走的数据信息进行分类,分类完成后写入状态信息模块中的状态信息表中,由核心系统依据每个分区所需要的信息,从状态信息模块中取数据,转发给每个分区对应的host系统。
[0034]
进一步地,本步骤中的状态信息表可能包含不同类型的数据,如信息a、信息b、信息c、信息d等,每个host端的分区所需要的信息依据自身的业务不同,获取的信息量也不同,分区1可能只需要信息a、c,分区2可能需要信息a、c、d,分区3可能只需要信息d,当信息b长时间没有host分区需要时,信息便会老化,即变成无效数据,但是核心系统不会主动发起请求更新,当由host分区有信息b的数据请求后,host才会主动发起请求给软核,然后接收返回的数据,将信息b进行更新。
[0035]
在本发明的另一实施例中,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,具体包括:步骤s2331:所述核心系统获取各分区的当前实际数据;步骤s2332:核心系统的收发仲裁模块根据所述当前实际数据进行顺序仲裁,所述
核心系统中的状态信息模块存储所述当前实际数据;步骤s2333:所述收发仲裁模块将所述状态信息模块中存储的当前实际数据进行转发给所述dma_top模块;步骤s2334:所述dma_top模块将经所述状态信息模块转发的当前实际数据写入所述fpga中的cmd ram中;步骤s2335:所述软核读取所述cmd ram中的数据,并通过指针的方式控制,最后由所述软核将数据依次从hba_tx模块和fc_mac模块发送至对端。
[0036]
在本发明的另一实施例中,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,还具体包括:步骤s2341:选定以数据直接交互模式时,在数据接收方向上,所述fpga内部的数据控制模块接收到第二网管数据,并转发给软核;步骤s2342:所述软核将第二网管数据进行解析后添加相应的数据信息到帧中,并将数据写入到所述fpga的result ram中存储;步骤s2343:所述fpga的述dma_top模块读取所述result ram中的数据,并将读取的数据上报给核心系统;步骤s2344:核心系统接收数据后,缓存在对应各个分区的存储状态模块中,最终发送给各分区对应的host系统。
[0037]
进一步地说,当选择寄存器交互模式时,各分区对应的host系统与核心系统间只有状态信息交互,核心系统与软核间也只有状态信息交互,系统中没有大量的帧数据,同时将网管数据存储在软核的local_memory中,极大减轻了核心系统的工作负担,提升系统效率。
[0038]
选择寄存器交互模式的缺点是各分区的host系统获取不到实际的网管数据,获取的状态信息有限,会对业务上的功能有一定的局限性要求。
[0039]
反观,当选择数据交互模式时,优缺点是相反的,local_memory不存放网管数据,减轻的fpga的资源负担,同时各分区对应的host系统能够获取完整的网管数据,但是缺点是会增加核心系统的工作负担,因为要将数据进行缓存上报。
[0040]
进而能够通过以寄存器交互模式或者数据直接交互模式来进行通信,极大提升包容性和选择性,提升使用便利性。
[0041]
在本发明的另一实施例中,步骤s2342中,软核将数据写入到所述fpga的result ram中存储;具体包括:步骤s23421:软核读[result_ram_read_pointer]寄存器获取读指针;步骤s23422:软核根据其写指针和读指针计算result ram的空闲字节数;步骤s23423:软核以每次4字节向result ram中写入数据;步骤s23424:软核更新本地的写指针变量;步骤s23425:软核向[result_ram_write_pointer]寄存器写入本地写指针变量的值,如果本地写指针变量等于读指针,写满标记等于1,否则等于0。
[0042]
在本发明的另一实施例中,所述方法还包括:步骤s410:在数据的接收方向上,若选定了小队列模式,则软核对于数据的发送与接收均是基于帧为单位进行处理;
步骤s420:若选定了大队列模式时,当软核接收到单个帧的大小为一个fc帧时,软核对于数据的发送与接收与小队列模式相同;当软核接收到的网管帧为多个小碎帧时,软核对小碎帧拼接,并将多个小碎帧拼接成2kb的大小,然后从软核转发出到核心系统;其中,小碎帧大小可能只有0-100kb。
[0043]
进一步地说,用户可以依据自身需求来选择不同的工作模式,选择小队列模式,核心系统收到的数据实时性高,但是在某些特殊情况下,数据量小,会使得核心系统处理数据的效率低;而选择大队列模式,fpga对数据的大小兼容性好,同时将数据拼接后送入核心系统,提升系统效率,但是实时性可能没有小队列模式高。
[0044]
在本发明的另一实施例中,本发明支持数据的混合收发,即网管和asm同时存在,本发明中支持网管和asm数据混合收发,核心系统在处理asm数据时会使用基于优先级进行管理,网管数据可以占用其中的某个优先级进入fpga内部,fpga内部将asm数据解析、打包、收发、上报,同时将网管数据送入软核中,由软核解析、打包、收发、上报。
[0045]
在本发明的另一实施例中,步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,具体包括:步骤s110:所述核心系统获取各分区的网络上网请求;步骤s120:所述核心系统中的收发仲裁模块对所述网络上网请求进行仲裁,将各分区的网络上网请求据进行排序;步骤s130:所述收发仲裁模块同时将网络上网请求作为状态信息统计在核心系统的状态信息模块中的状态信息表;步骤s140:所述收发仲裁模块将所述网络上网请求及其对应的帧类型和帧长度打包并生成上网请求数据包。
[0046]
在本发明的另一实施例中,host系统写数据流程步骤具体如下:第一步:分区调用网络管理api接口,该调用和参数被传递到核心系统;第二步:核心系统将数据放入发送链表的当前缓冲区,数据结构为:命令字+参数内容;第三步:读[host_write_ctrl]寄存器获取ram的空闲字节,如果小于要发送的数据包,向分区返回错误码;第四步:每次把数据包的4字节写入[host_write_data]寄存器,直到全部数 据写完;第五步:写[host_write_ctrl]寄存器,数据包写完成标记=1,ram的空闲字 节设置为写入的数据包的字节数。
[0047]
在本发明的另一实施例中,host系统读数据流程步骤具体如下:第一步:运行在coreos的网络管理接收任务,周期读[host_read_ctrl]寄存器获取[ram的有效数据字节数],如果小于等于0,进入延时等待状态;第二步:写[host_read_ctrl]寄存器,[数据包读完成]设置为0;第三步:读[host_read_data] 寄存器获取4字节的数据内容,直到host主动停止(如果host要停止读,必须在读取一个完整的数据包后才能停止,即下一次读取的是另一个数据包开始位置的4字节内容);
第四步:在3中,读取的第1个4字节,必须是命令字,解析获取数据包后续的字节长度;第五步:返回3继续读剩余字节,直到读取了一个完整的数据包;第六步:把读取的内容存入对应缓冲区,注意:连续读取可能会读取多个数据包,需要按照每个数据包的命令字分别存入不同的缓冲区;第七步:返回3继续执行读操作,直到host主动停止读或所有数据(ram的有效数据)都读完。
[0048]
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
[0049]
本领域技术人员可以理解,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
[0050]
此外实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0051]
此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

技术特征:
1.一种多分区网管下沉通信方法,其特征在于,所述方法基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的host系统、核心系统、fpga和对端,所述方法具体包括以下步骤:步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各host系统;步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息;步骤s300:所述fpga将所述交互结果信息发送至对端。2.根据权利要求1所述的多分区网管下沉通信方法,其特征在于,步骤s200:所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息,具体包括:步骤s210:所述fpga中的dma_top模块接收来自所述核心系统发送的上网请求数据包,并对所述上网请求数据包拆分并生成asm数据和网管数据;步骤s220:所述dma_top模块将所述asm数据发送至所述fpga中的hba_tx模块,由所述hba_tx模块发送至所述fpga中的fc_mac模块,并由所述fc_mac模块将asm数据发送至对端;步骤s230:所述dma_top模块根据所述网管数据以寄存器交互模式或者数据直接交互模式与所述fpga进行数据交互,交互完成后由所述fpga生成交互结果信息。3.根据权利要求2所述的多分区网管下沉通信方法,其特征在于,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式与所述fpga进行数据交互,具体包括:步骤s2311:所述dma_top模块将所述网管数据存储至所述fpga中的cmd ram中;步骤s2312:所述fpga中的软核从所述cmd ram中读取所述网管数据并将所述网管数据打包转发给所述hba_tx模块;步骤s2313:所述hba_tx模块将所述网管数据打包成符合fc_mac模块的帧格式后,由fc_mac模块发送至对端。4.根据权利要求3所述的多分区网管下沉通信方法,其特征在于,步骤s2312中,所述fpga中的软核从所述cmd ram中读取所述网管数据的步骤,具体包括:步骤s23121:软核读[cmd_ram_write_pointer]寄存器获取写指针;步骤s23122:软核根据其读指针和写指针计算ram的有效数据字节数;步骤s23123:软核按照每次4字节从cmd ram读取数据;步骤s23124:软核更新本地的读指针变量;步骤s23125:软核向[cmd_ram_read_pointer]寄存器写入本地读指针变量的值,如果读指针等于写指针,读空标记等于1,否则等于0。5.根据权利要求3所述的多分区网管下沉通信方法,其特征在于,步骤s230中:所述dma_top模块根据所述网管数据以寄存器交互模式与所述fpga进行数据交互,还包括:步骤s2321:当选定寄存器交互模式时,在接收方向上,所述fpga内的接收模块接收对端发送的第一网管数据;步骤s2322:所述接收模块将接收到的第一网管数据发送至所述fc_mac模块,所述fc_mac模块将第一网管数据转发至所述sfp_rx模块,所述sfp_rx模块将第一网管数据发送至所述网络下沉模块中的软核中;
步骤s2323:当所述软核取到一帧第一网管数据后,对其进行解析,将帧携带的信息通过寄存器的方式写入result ram中;步骤s2324:所述核心系统将所述result ram中的信息读取走,并将读取走的数据信息进行分类,分类完成后写入状态信息模块中的状态信息表中,由核心系统依据每个分区所需要的信息,从状态信息模块中取数据,转发给每个分区对应的host系统。6.根据权利要求1所述的多分区网管下沉通信方法,其特征在于,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,具体包括:步骤s2331:所述核心系统获取各分区的当前实际数据;步骤s2332:核心系统的收发仲裁模块根据所述当前实际数据进行顺序仲裁,所述核心系统中的状态信息模块存储所述当前实际数据;步骤s2333:所述收发仲裁模块将所述状态信息模块中存储的当前实际数据进行转发给所述dma_top模块;步骤s2334:所述dma_top模块将经所述状态信息模块转发的当前实际数据写入所述fpga中的cmd ram中;步骤s2335:所述软核读取所述cmd ram中的数据,并通过指针的方式控制,最后由所述软核将数据依次从hba_tx模块和fc_mac模块发送至对端。7.根据权利要求6所述的多分区网管下沉通信方法,其特征在于,步骤s230中:所述dma_top模块根据所述网管数据以数据直接交互模式与所述fpga进行数据交互,还具体包括:步骤s2341:选定以数据直接交互模式时,在数据接收方向上,所述fpga内部的数据控制模块接收到第二网管数据,并转发给软核;步骤s2342:所述软核将第二网管数据进行解析后添加相应的数据信息到帧中,并将数据写入到所述fpga的result ram中存储;步骤s2343:所述fpga的述dma_top模块读取所述result ram中的数据,并将读取的数据上报给核心系统;步骤s2344:核心系统接收数据后,缓存在对应各个分区的存储状态模块中,最终发送给各分区对应的host系统。8.根据权利要求7所述的多分区网管下沉通信方法,其特征在于,步骤s2342中,软核将数据写入到所述fpga的result ram中存储;具体包括:步骤s23421:软核读[result_ram_read_pointer]寄存器获取读指针;步骤s23422:软核根据其写指针和读指针计算result ram的空闲字节数;步骤s23423:软核以每次4字节向result ram中写入数据;步骤s23424:软核更新本地的写指针变量;步骤s23425:软核向[result_ram_write_pointer]寄存器写入本地写指针变量的值,如果本地写指针变量等于读指针,写满标记等于1,否则等于0。9.根据权利要求8所述的多分区网管下沉通信方法,其特征在于,所述方法还包括:步骤s410:在数据的接收方向上,若选定了小队列模式,则软核对于数据的发送与接收均是基于帧为单位进行处理;步骤s420:若选定了大队列模式时,当软核接收到单个帧的大小为一个fc帧时,软核对
于数据的发送与接收与小队列模式相同;当软核接收到的网管帧为多个小碎帧时,软核对小碎帧拼接,并将多个小碎帧拼接成2kb的大小,然后从软核转发出到核心系统;其中,小碎帧大小可能只有0-100kb。10.根据权利要求1-8任一项所述的多分区网管下沉通信方法,其特征在于,步骤s100:所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,具体包括:步骤s110:所述核心系统获取各分区的网络上网请求;步骤s120:所述核心系统中的收发仲裁模块对所述网络上网请求进行仲裁,将各分区的网络上网请求据进行排序;步骤s130:所述收发仲裁模块同时将网络上网请求作为状态信息统计在核心系统的状态信息模块中的状态信息表;步骤s140:所述收发仲裁模块将所述网络上网请求及其对应的帧类型和帧长度打包并生成上网请求数据包。

技术总结
本申请涉及一种多分区网管下沉通信方法,基于多分区网管通信系统进行,所述多分区网管通信系统包括依次通信连接的Host系统、核心系统、FPGA和对端,所述方法具体先通过所述核心系统获取各分区的网络上网请求,所述核心系统根据各所述网络上网请求生成上网请求数据包,各分区对应各Host系统;然后,所述核心系统根据所述上网请求数据包以寄存器交互模式或者数据直接交互模式与所述FPGA进行数据交互,交互完成后由所述FPGA生成交互结果信息;最后,所述FPGA将所述交互结果信息发送至对端,进而实现Host系统根据网络上网请求来基于FPGA进行高效资源调用,提升使用便利性和资源调用效率。率。率。


技术研发人员:马文林 张国奇 李军 闫森
受保护的技术使用者:上海赛景信息技术有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-8645.html

最新回复(0)