CN114401072A - 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** - Google Patents
一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** Download PDFInfo
- Publication number
- CN114401072A CN114401072A CN202111513057.8A CN202111513057A CN114401072A CN 114401072 A CN114401072 A CN 114401072A CN 202111513057 A CN202111513057 A CN 202111513057A CN 114401072 A CN114401072 A CN 114401072A
- Authority
- CN
- China
- Prior art keywords
- frame
- bdg
- himac
- queue
- address
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 239000000872 buffer Substances 0.000 claims abstract description 49
- 239000012634 fragment Substances 0.000 claims abstract description 37
- 238000009432 framing Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 2
- 108091006146 Channels Proteins 0.000 description 19
- 238000010586 diagram Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 230000007547 defect Effects 0.000 description 3
- 238000013467 fragmentation Methods 0.000 description 3
- 238000006062 fragmentation reaction Methods 0.000 description 3
- 239000012464 large buffer Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 102100022096 Acid-sensing ion channel 5 Human genes 0.000 description 1
- 101000901085 Homo sapiens Acid-sensing ion channel 5 Proteins 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0002—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
- H04L1/0003—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate by switching between different modulation schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明属于HINOC***拆帧技术领域,公开了一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法及***,采用状态机上线拆帧的设备号;根据配置信息生成拆帧已上线设备的缓存地址链表信息;当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息得到BDG偏移地址bdg_base_addr以及在BDG内部的缓存描述符BD偏移地址bd_offset_addr;预拆帧模块将检测重排序好的HIMAC队列,每检测到拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令。本发明提高缓存利用率,保障在调制格式差异更大信道上两端设备的服务质量。
Description
技术领域
本发明属于HINOC***拆帧技术领域,尤其涉及一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法及***。
背景技术
目前,有线同轴网是国家信息基础设施的重要组成部分,实现自主HINOC同轴宽带接入技术的芯片化、产业化以及规模化部署对我国网络安全和信息化具有至关重要的作用。现有技术中,HB的拆帧模块要为128个HM设备分配固定的缓存空间,每个设备拥有3个优先级队列,每个队列的缓存大小0.003418M,那么拆帧模块将占用1.312512M缓存,对于整个***而言是一个很大的缓存空间。当4个信道拥有不同级别的调制格式时,测量实际信道上的乱序程度,最小乱序程度为10,最大高达35。
实际测量的调制格式与乱序程度的关系见表1。
表1实际测量的调制格式与乱序程度的关系
若按照每个重排序队列固定16个HIMAC帧的缓存,对于乱序程度小的信道两端的设备,最多只需要10个HIMAC帧的缓存,剩余的6个HIMAC帧缓存空间不会被利用到,存在存储空间的浪费。对于乱序程度大的信道两端的设备,最多将需要35个HIMAC帧的缓存,而16个HIMAC帧的固定长度无法满足重排序需求,远远无法实现在乱序程度大的信道进行高效传输。
同时,当某个HM设备下线时,对应的拆帧重排序缓存区无法为其它设备使用,存在缓存空间的浪费。拆帧的重排序队列长度与拆帧超时阈值没有对应起来,若每个队列拥有16个HIMAC帧的重排序长度,但CPU设置超时阈值为大于16的某个值,那么就会产生逻辑上的矛盾,导致恢复出来的以太网数据可能存在错误。因此,对于同轴电缆信道两端设备的调制格式变化,导致的HIMAC帧序号乱序程度增大,进而引起存储HIMAC帧的重排序队列长度增大的问题,采用本方案可以很好的解决上述问题。
通过上述分析,现有技术存在的问题及缺陷为:
(1)HB的拆帧模块要为128个HM设备分配固定的缓存空间,每个设备拥有3个优先级队列,每个队列的缓存大小0.003418M,那么拆帧的缓存空间将是1.312512M,对于整个***而言是一个很大的缓存空间。
(2)当4个信道拥有不同级别的调制格式时,测量实际信道上的乱序程度,最小乱序程度为10,最大高达35;当某个HM设备下线时,对应的拆帧重排序缓存区无法为其它设备使用,存在缓存空间的浪费。
(3)拆帧的重排序队列长度与拆帧超时阈值没有对应起来,若每个队列拥有16个HIMAC帧的重排序长度,但CPU设置超时阈值为大于16的某个值,那么就会产生逻辑上的矛盾,导致恢复出来的以太网数据可能存在错误。
解决以上问题及缺陷的难度为:解决上述问题需要充分了解HINOC协议中的分片机制和重组机制,需要充分考虑信道上调制格式的差异对拆帧模块的影响,在保证基本通信质量的前提下,尽量高效的利用有限的硬件资源。
解决以上问题及缺陷的意义为:
(1)根据信道上调制格式的差异,为HINOC***中每个HM设备分配不同缓存大小的重排序队列,可以提高资源的利用率。
(2)当HM的设备下线后,CPU通知HB设备已下线,拆帧模块释放其对应的缓存空间,提高了***的效率。
(3)重排序队列长度和超时阈值一一对应起来,保障了预拆帧模块的稳定工作。
发明内容
针对现有技术存在的问题,本发明提供了一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法及***,尤其涉及一种基于HINOC协议的拆帧重排序队列的基于HINOC协议的拆帧重排序队列的动态缓存控制方法及***。
本发明是这样实现的,一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法,所述基于HINOC协议的拆帧重排序队列的动态缓存控制方法,包括以下步骤:
步骤一,采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数。综合考虑调制格式的差异以及设备类型后,可以为每个设备分配最为合适的缓存空间。
步骤二,根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询。缓存地址链表信息按照队列存储,做到了每个设备对应缓存的精细化管理。
步骤三,当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr。三段动作以流水线方式进行,可以在很短的时间内得到准确的地址。
步骤四,预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧。流水式的的设计,实现了重排序队列的入队管理,出队判断和信息帧的透明传输,可以支持10G速率的***。
进一步,所述步骤一中的状态机按照节点上线使能信息进行设计。
其中,所述状态机的状态包括:
ON_OFF_INIT状态:初始化状态,在该状态下,要对存储空闲BDG基地址的空闲BDGFIFO进行写入操作,写入的次数和大小与分配的总存储空间和BDG大小有关,以供上线时进行读取;
ON_OFF_IDLE状态:空闲状态;
ON状态:上线状态,当CPU给出节点上线使能后,进入该状态,并在该状态下判断剩余BDG个数与是否大于申请的BDG个数,当剩余BDG个数不足时,本次上线失败;每个设备申请的BDG个数与优先级个数相关,拥有一个优先级的设备将为一个队列分配所申请的BDG个数;拥有2个优先级队列的设备将为2个队列分别分配所申请的BDG个数,以此类推;
OFF状态:下线状态,当CPU给出节点下线使能后,进入该状态;在该状态下,判断要下线的节点是否在线,若不在线,则下线失败;若在线,则释放该设备的存储空间;其中包括将该设备之前申请的BDG的基地址重新写入FIFO中,并清空对应队列的链表信息,最后拉低设备在线标志;
OFF_JUDGE状态:下线判断状态;
ON_OFF_ERR状态:上线或下线错误状态;
ON_LINK状态:上线更新链表状态,在该状态下,首先判断上线的设备是否已经在线,若在线,则上线失败;若不在线,则按照CPU所申请BDG个数,优先级个数来分配队列的缓存大小;
ON_OFF_END状态:上线下线结束状态。
进一步,所述步骤二中的根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询包括:
根据配置信息生成拆帧已上线设备的缓存地址链表信息;其中,所述链表信息包含该队列重排序的长度,分配BDG的个数,节点在线标志以及9个BDG的基地址;当申请的BDG个数少于9个时,无用的地址填为0;每个分配的BDG的基地址将从空闲BDG FIFO中读出。
进一步,所述步骤三中的当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr包括:
通过预拆帧模块计算重排序地址:
重排序队列的长度为L,新收到的帧序号为X,重排序队列队首的帧序号为S,重排序队列中存储的指针为Ph。
当收到新的HIMAC帧时,计算得到所述HIMAC帧在重排序队列中应该存储的位置x_s_ph,即新的指针值;所述新的指针值来源于帧序号X减去队首的帧序号S,再加上队列的指针Ph,计算式为X-S+Ph;当新来的帧序号X小于队首帧序号S时,该帧存储的位置变为X+MAX_X-S+Ph;在HINOC***中,最大的帧序号MAX_X为8192。
根据计算得到的x_s_ph指针值,计算得到应该申请的BDG基地址bdg_base_adder和BDG内BD的偏移地址bd_base_adder。
其中,所述计算应该申请的BDG基地址bdg_base_adder包括:
判断指针指向的地址在队长的第几个BDG中;当指针数值小于1个BDG的深度时,读取该队列分配到的第1个BDG基地址,并将该HIMAC帧存储到第1个BDG内部;当指针数值大于1个BDG深度但小于2个BDG的深度时,读取该队列分配到的第2个BDG基地址,并将该HIMAC帧存储到第2个BDG内部,以此类推。
所述计算HIMAC帧在BDG内部的BD偏移地址bd_base_adder包括:
判断指针指向的地址在队长的第几个BDG中;一个BD存储1个HIMAC帧,且一个HIMAC帧的深度为14,故当指针数值小于1个BDG的深度时,BD的偏移地址为指针x_s_ph*14;当指针数值大于1个BDG深度但小于2个BDG的深度时,BD的偏移地址为指针(x_s_ph-1个BDG深度)*14,以此类推。
进一步,所述步骤四中的预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧包括:
预拆帧模块向逻辑拆帧模块发送拆帧指令,包括拆帧总信息指令与拆帧BDG信息指令;还包括拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息。
其中,所述拆帧总指令信息包括设备号、优先级、HIMAC帧数、队头位置、是否从头开始标志以及前次是否超时标志。
是否从头开始标志,用于判断上次拆帧时是否留下部分头分片,如果有部分头分片,则从拆帧碎片RAM中取出,与新来的HIMAC帧重新组成以太网数据帧;如果上次拆帧没有留下部分以太网数据分片,则直接从新来的HIMAC帧中拆出以太网数据帧。
前次是否超时标志,如果之前的HIMAC帧超时,则拆帧模块碎片RAM记录的之前的头碎片无用,可以删除,并从新的HIMAC帧中找出以太网帧头位置重新拆帧。
拆帧BDG信息指令包括队长信息L,拆帧BD数目split_instruct_bd_num,拆帧BDG数目split_instruct_bdg_num,拆帧BDG的起始地址bdg_start,BD起始偏移地址split_instruct_bd_offset_adder,本次拆帧BDG的基地址split_instruct_bdg_base_adder,基地1,基地址2,……,基地址9和是否是一个新的拆帧指令这些信息。
拆帧逻辑模块拿到拆帧BDG信息指令后,开始解析其中的内容;根据解析出来的内容,从HIMAC排序队列中读出HIMAC帧进行拆帧,并存储HIMAC拆帧后的碎片。
解析是否是一个新的拆帧指令;若是新的拆帧指令,则将从拆帧BDG信息指令中的本次拆帧BDG的基地址+BD起始偏移地址开始搬移,即split_instruct_bdg_base_adder+split_instruct_bd_offset_adder。
若拆帧指令来自同一批次的拆帧指令,则根据解析出来的BDG偏移和BD偏移来确定地址;当BD数偏移小于一个BDG的深度时,表明该HIMAC帧还在与上一个帧相同的BDG块内,只需在上一次的读地址上继续累加。
当BD数偏移大于1个BDG的深度时,根据BDG的偏移地址来读取;若BDG偏移为1时,从基地址2开始读取重排序的HIMAC帧;若BDG偏移为2时,从基地址3开始读取重排序的HIMAC帧,以此类推;若BDG偏移为9时,从基地址1开始读取重排序的HIMAC帧,循环利用重排序队列的存储空间。
当拆帧逻辑读取完重排序后的HIMAC帧后,反馈一个清空重排序队列RQ(RankingQueue,排序队列)信息的指令,排队的数据将不再占用下次拆帧的资源。
预拆帧模块和拆帧逻辑模块通过指令信息的传递,将基于HINOC协议的帧有序的还原为以太网数据帧。
本发明的另一目的在于提供一种应用所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法的动态缓存控制***,所述动态缓存控制***包括:
设备上线/下线模块,用于根据CPU配置的信息,包括设备号、优先级个数和分配的BDG个数,配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;
偏移地址计算模块,在预拆帧中,用于根据收到的帧序号计算该帧在重排序队列中的位置,并计算出队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址和BD偏移地址;
指令生成模块,在预拆帧中,用于将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令;
指令解析模块,用于拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,供拆逻辑模块顺序读出HIMAC帧。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,供拆逻辑模块顺序读出HIMAC帧。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的动态缓存控制***。
本发明的另一目的在于提供一种搭载所述的动态缓存控制***的基于HINOC协议的拆帧动态缓存上线/下线控制器,所述基于HINOC协议的拆帧动态缓存上线/下线控制器包括一个主状态机,按照节点上线使能分配存储空间,按照节点下线使能释放存储空间。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的基于HINOC协议的拆帧重排序队列的动态缓存控制方法,在设备初始化上线时,根据设备信道上的调制格式的差异,为信道两端调制格式差异更大上的设备分配更多的缓存空间,信道两端调制格式差异较小的设备,分配最基础的缓存空间;同时,当设备下线时,为下线的设备释放缓存空间,供其他新上线的设备使用。本发明通过链表信息的更新,可实现为每个设备分配最少0.0008545M存空间,最大分配0.0230713M缓存空间,有效地提高了缓存的利用率,并保障了在调制格式差异更大信道上设备的服务质量。相较于以前每个设备对应固定的缓存空间,本发明提供的新的拆帧重排序队列缓存控制拥有更大的灵活性和更高的缓存利用率。
基于HINOC 3.0协议的同轴网络,其传输的数据是HIMAC帧,以太网要通过HINOC网络到达目的节点,不仅要兼容已存在的HINOC2.0设备,还要对其服务质量进行优化。对于现在基于HINOC2.0协议的同轴网络,HB和HM都是相同的设备,调制格式不存在差异,故不存在乱序程度很大的情况。但随着HINOC 3.0协议的推进,将来的同轴网络中将同时存在3.0设备和2.0设备,调制格式的差异直接影响到信道上数据传输的乱序程度,故急需一个缓存优化方案,而本发明提供的基于HINOC协议的拆帧重排序队列的动态缓存控制方法将填补这一空缺。
本发明根据信道上调制格式的差异,为HINOC***中每个HM设备分配不同缓存大小的重排序队列,可以提高资源的利用率。当HM的设备下线后,CPU通知HB设备已下线,拆帧模块释放其对应的缓存空间,提高了***的效率;重排序队列长度和超时阈值一一对应起来,保障了预拆帧模块的稳定工作。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的动态缓存控制方法流程图。
图2是本发明实施例提供的动态缓存控制方法原理图。
图3是本发明实施例提供的动态缓存控制***的结构示意图。
图4是本发明实施例提供的重排序队列存储结构示意图。
图5是本发明实施例提供的重排序队列结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法及***,下面结合附图对本发明作详细的描述。
如图1所示,本发明实施例提供的基于HINOC协议的拆帧重排序队列的动态缓存控制方法包括以下步骤:
S101,采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;
S102,根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;
S103,当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;
S104,预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧。
本发明实施例提供的基于HINOC协议的拆帧重排序队列的动态缓存控制方法原理图如图2所示。
如图3所示,本发明实施例提供的动态缓存控制***包括:
设备上线/下线模块,用于根据CPU配置的信息,包括设备号、优先级个数和分配的BDG个数,配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;
偏移地址计算模块,在预拆帧中,用于根据收到的帧序号计算该帧在重排序队列中的位置,并计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址和BD偏移地址;
指令生成模块,在预拆帧中,用于将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令;
指令解析模块,用于拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1
本发明实施例提供的基于HINOC协议的拆帧重排序队列动态缓存的方法,包括以下步骤:
第一步,采用状态机上线拆帧的设备,包括设备号,优先级个数,分配的BDG(Buffer Description Group,缓存描述符组)个数。
第二步,根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询。
第三步,当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod;并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;最后根据队位置信息,计算出在BDG内部的BD(Buffer Description,缓存描述符)偏移地址bd_offset_addr。
第四步,预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧。
本发明实施例提供的第一步中状态机按照节点上线使能信息进行设计。
本发明实施例提供的状态机的状态包括:
ON_OFF_INIT状态:初始化状态,在该状态下,要对存储空闲BDG基地址的空闲BDGFIFO进行写入操作,写入的次数和大小与分配的总存储空间和BDG大小有关,以供上线时进行读取。
ON_OFF_IDLE状态:空闲状态。
ON状态:上线状态,当CPU给出节点上线使能后,进入该状态。并在该状态下判断剩余BDG个数与是否大于申请的BDG个数,当剩余BDG个数不足时,本次上线失败。每个设备申请的BDG个数与优先级个数相关,拥有一个优先级的设备将为一个队列分配所申请的BDG个数;拥有2个优先级队列的设备将为2个队列分别分配所申请的BDG个数,以此类推。
OFF状态:下线状态,当CPU给出节点下线使能后,进入该状态。在该状态下,首先判断要下线的节点是否在线,若不在线,则下线失败;若在线,则释放该设备的存储空间。其中包括将该设备之前申请的BDG的基地址重新写入FIFO中,并清空对应队列的链表信息,最后拉低设备在线标志。
OFF_JUDGE状态:下线判断状态。
ON_OFF_ERR状态:上线或下线错误状态。
ON_LINK状态:上线更新链表状态,在该状态下,首先判断上线的设备是否已经在线,若在线,则上线失败;若不在线,则按照CPU所申请BDG个数,优先级个数来分配队列的缓存大小。
ON_OFF_END状态:上线下线结束状态。
本发明实施例提供的第二步包括根据配置信息生成拆帧已上线设备的缓存地址链表信息。
链表信息包含该队列重排序的长度,分配BDG的个数,节点在线标志以及9个BDG的基地址。当申请的BDG个数少于9个时,无用的地址填为0。每个分配的BDG的基地址将从空闲BDG FIFO中读出。
所述第三步包括预拆帧模块,计算重排序地址:
重排序队列的长度为L,新收到的帧序号为X,重排序队列队首的帧序号为S,重排序队列中存储的指针为Ph。
当收到新的HIMAC帧时,计算出它在重排序队列中应该存储的位置x_s_ph,即新的指针值。它来源于帧序号X减去队首的帧序号S,再加上队列的指针Ph,计算式为X-S+Ph。除此之外,还应该考虑到循环边界的问题。当新来的帧序号X小于队首帧序号S时,该帧应该存储的位置就变为X+MAX_X–S+Ph。在HINOC***中,最大的帧序号为8192。
根据计算得到的x_s_ph指针值,进一步计算出应该申请的BDG基地址bdg_base_adder和BDG内BD的偏移地址bd_base_adder。
计算应该申请的BDG基地址bdg_base_adder步骤中,首先判断指针指向的地址在队长的第几个BDG中。当指针数值小于1个BDG的深度时,读取该队列分配到的第1个BDG基地址,并将该HIMAC帧存储到第1个BDG内部;当指针数值大于1个BDG深度但小于2个BDG的深度时,读取该队列分配到的第2个BDG基地址,并将该HIMAC帧存储到第2个BDG内部,以此类推。
计算HIMAC帧在BDG内部的BD偏移地址bd_base_adder步骤中,首先也是判断指针指向的地址在队长的第几个BDG中。由于一个BD可以存储1个HIMAC帧,且一个HIMAC帧的深度为14。所以,当指针数值小于1个BDG的深度时,BD的偏移地址为指针x_s_ph*14;当指针数值大于1个BDG深度但小于2个BDG的深度时,BD的偏移地址为指针(x_s_ph-1个BDG深度)*14,以此类推。
本发明实施例提供的第四步包括预拆帧模块向逻辑拆帧模块发送拆帧指令,包含拆帧总信息指令与拆帧BDG信息指令。还包含拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息。
拆帧总指令信息包含设备号,优先级,HIMAC帧数,队头位置,是否从头开始标志,前次是否超时标志。
是否从头开始标志,用于判断上次拆帧时是否留下了部分头分片,如果有部分头分片,则从拆帧碎片RAM中取出,与新来的HIMAC帧重新组成以太网数据帧;如果上次拆帧没有留下部分以太网数据分片,则直接从新来的HIMAC帧中拆出以太网数据帧。
前次是否超时标志,如果之前的HIMAC帧超时,则拆帧模块碎片RAM记录的之前的头碎片无用,可以删除。需要从新的HIMAC帧中找出以太网帧头位置重新拆帧。
拆帧BDG信息指令包含队长信息L,拆帧BD数目split_instruct_bd_num,拆帧BDG数目split_instruct_bdg_num,拆帧BDG的起始地址bdg_start,BD起始偏移地址split_instruct_bd_offset_adder,本次拆帧BDG的基地址split_instruct_bdg_base_adder,基地1,基地址2,……,基地址9和是否是一个新的拆帧指令这些信息。
拆帧逻辑模块拿到拆帧BDG信息指令后,开始解析其中的内容。根据解析出来的内容,从HIMAC排序队列中读出HIMAC帧进行拆帧,并存储HIMAC拆帧后的碎片。
首先解析是否是一个新的拆帧指令。若是个新的拆帧指令,那么将从拆帧BDG信息指令中的本次拆帧BDG的基地址+BD起始偏移地址开始搬移,即split_instruct_bdg_base_adder+split_instruct_bd_offset_adder。
若拆帧指令来自同一批次的拆帧指令,那么就需要接着根据解析出来的BDG偏移和BD偏移来确定地址。当BD数偏移小于一个BDG的深度时,表明该HIMAC帧还在与上一个帧相同的BDG块内,只需在上一次的读地址上继续累加。
当BD数偏移大于1个BDG的深度时,根据BDG的偏移地址来读取。若BDG偏移为1时,从基地址2开始读取重排序的HIMAC帧;若BDG偏移为2时,从基地址3开始读取重排序的HIMAC帧,以此类推。最后,若BDG偏移为9时,从基地址1开始读取重排序的HIMAC帧。整体来看,循环利用了重排序队列的存储空间。
当拆帧逻辑读取完重排序后的HIMAC帧后,反馈一个清空RQ(Ranking Queue,排序队列)信息的指令,排队的数据将不再占用下次拆帧的资源。
预拆帧模块和拆帧逻辑模块通过指令信息的传递,将基于HINOC协议的帧有序的还原为以太网数据帧。
实施例2
本发明实施例提供的基于HINOC***的拆帧重排序队列的动态缓存方法,包括以下步骤:
第一步,在拆帧设备上线/下线模块,采用一个状态机对不同的设备分配缓存大小,优先级个数。
第二步,HINOC网桥HB接收到物理信道上的HIMAC帧,根据拆帧上线设备信息,来确定是否拆帧。如果设备上线,则根据帧头携带的帧序号和设备上线的存储地址信息,计算出其所在重排序队列的位置,以及重排序队列的长度。
第三步,根据存储的地址信息,按照排序好的地址顺序读出HIMAC帧,拆帧逻辑将封装的HIMAC帧拆成以太网帧。
如图3所示,本发明实施例提供的基于HINOC协议的拆帧重排序队列动态缓存***包括:节点上线/下线配置模块,拆帧指令生成模块,偏移地址计算模块,拆帧指令解析模块,拆帧执行模块。
节点上线/下线配置模块,根据CPU配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询。
拆帧指令生成模块,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧。
偏移地址计算模块,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod;并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址;最后根据队位置信息,计算出在BDG内部的BD偏移地址。
根据计算得到的x_s_ph指针值,进一步计算出应该申请的BDG基地址bdg_base_adder和BDG内BD的偏移地址bd_base_adder。
计算应该申请的BDG基地址bdg_base_adder步骤中,首先判断指针指向的地址在队长的第几个BDG中。当指针数值小于1个BDG的深度时,读取该队列分配到的第1个BDG基地址,并将该HIMAC帧存储到第1个BDG内部;当指针数值大于1个BDG深度但小于2个BDG的深度时,读取该队列分配到的第2个BDG基地址,并将该HIMAC帧存储到第2个BDG内部,以此类推。
计算HIMAC帧在BDG内部的BD偏移地址bd_base_adder步骤中,首先也是判断指针指向的地址在队长的第几个BDG中。由于一个BD可以存储1个HIMAC帧,且一个HIMAC帧的深度为14。所以,当指针数值小于1个BDG的深度时,BD的偏移地址为指针x_s_ph*14;当指针数值大于1个BDG深度但小于2个BDG的深度时,BD的偏移地址为指针(x_s_ph-1个BDG深度)*14,以此类推。
拆帧指令解析模块,解析出设备号,优先级,HIMAC帧数,队头位置,是否从头开始标志,前次是否超时标志以及偏移地址等信息。
拆帧执行模块,根据解析出来的信息,搬移重排序后的HIMAC帧后,反馈一个清空RQ(Ranking Queue,排序队列)信息的指令,排队的数据将不再占用下次拆帧的资源。
如图4所示,本发明实施例提供的重排序队列存储结构由分配的BDG个数,优先级个数以及BDG的深度共同决定。拥有一个优先级的设备将为一个队列分配所申请的BDG个数;拥有2个优先级队列的设备将为2个队列分别分配所申请的BDG个数;拥有3个优先级队列的设备将为3个队列分别分配所申请的BDG个数。在HINOC协议中,优先级个数最多为3个。
如图5所示,本发明实施例提供的重排序队列结构可以循环存储重排序的HIMAC帧。当收到新的HIMAC帧时,计算出它在重排序队列中应该存储的位置x_s_ph,即新的指针值。它来源于帧序号X减去队首的帧序号S,再加上队列的指针Ph,计算式为X-S+Ph。除此之外,还应该考虑到循环边界的问题。当新来的帧序号X小于队首帧序号S时,该帧应该存储的位置就变为X+MAX_X-S+Ph。
如图2所示,本发明实施例提供的基于HINOC协议的拆帧重排序队列动态缓存方法包括以下步骤:
CPU配置节点上线,根据CPU配置信息生成拆帧已上线设备的缓存地址链表信息。
拆帧模块接收到新的HIMAC帧后,根据链表信息判断对应设备的HIMAC帧是否上线。若没有上线,则直接丢弃;若上线,进行下一步的判断。
根据新的序号和队首序号判断是否超时。如果超时,说明该队列的HIMAC帧在传输过程中部分丢弃,直接丢弃该帧。若无超时,计算该帧在重排序队列中的位置,并存储入对应队列。
当该队列检测到一个HIMAC帧尾的分片时,生成拆帧指令,供拆帧指令进行读取重排序队列。
拆帧逻辑结束读取后,发出清空对应队列信息的指令,拆帧完成。
下面结合测试对本发明的技术效果作详细的描述。
在1Gbps的发送速率下,测试在2通道拥有不同调制格式的情况下,对原来固定重排序队长方法和拆帧动态缓存控制方法进行结果对比,得到了如表2所示的仿真结果。
表2实际测量的固定重排序队长方法和拆帧动态缓存控制方法结果对比
从上述结果可以看出,随着调制格式差异的变化,信道上的乱序程度也在呈线性增长。对比两种方案的数据,固定重排序队长方案在乱序程度小于16时表现良好,和拆帧动态缓存控制方法一致,稳定的不丢包。但当乱序程度大于16时,随着调制格式差异的增加,固定重排序队长方案的丢包率从0.362%攀升到30.220%。作为对比,拆帧动态缓存控制方案在配置合适的队长下,可以做到任意调制格式下都不丢帧,但要注意配置的缓存大小要稍微比理论值多预留一些空间,以应对实际环境中各种突发的情况。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘Solid StateDisk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种基于HINOC协议的拆帧重排序队列的动态缓存控制方法,其特征在于,所述基于HINOC协议的拆帧重排序队列的动态缓存控制方法包括以下步骤:
步骤一,采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;
步骤二,根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;
步骤三,当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;
步骤四,预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧。
2.如权利要求1所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法,其特征在于,所述步骤一中的状态机按照节点上线使能信息进行设计;
其中,所述状态机的状态包括:
ON_OFF_INIT状态:初始化状态,在该状态下,要对存储空闲BDG基地址的空闲BDG FIFO进行写入操作,写入的次数和大小与分配的总存储空间和BDG大小有关,以供上线时进行读取;
ON_OFF_IDLE状态:空闲状态;
ON状态:上线状态,当CPU给出节点上线使能后,进入该状态,并在该状态下判断剩余BDG个数与是否大于申请的BDG个数,当剩余BDG个数不足时,本次上线失败;每个设备申请的BDG个数与优先级个数相关,拥有一个优先级的设备将为一个队列分配所申请的BDG个数;拥有2个优先级队列的设备将为2个队列分别分配所申请的BDG个数,以此类推;
OFF状态:下线状态,当CPU给出节点下线使能后,进入该状态;在该状态下,判断要下线的节点是否在线,若不在线,则下线失败;若在线,则释放该设备的存储空间;其中包括将该设备之前申请的BDG的基地址重新写入FIFO中,并清空对应队列的链表信息,最后拉低设备在线标志;
OFF_JUDGE状态:下线判断状态;
ON_OFF_ERR状态:上线或下线错误状态;
ON_LINK状态:上线更新链表状态,在该状态下,首先判断上线的设备是否已经在线,若在线,则上线失败;若不在线,则按照CPU所申请BDG个数,优先级个数来分配队列的缓存大小;
ON_OFF_END状态:上线下线结束状态。
3.如权利要求1所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法,其特征在于,所述步骤二中的根据配置信息生成拆帧已上线设备的缓存地址链表信息,并供预拆帧模块查询包括:
根据配置信息生成拆帧已上线设备的缓存地址链表信息;其中,所述链表信息包含该队列重排序的长度,分配BDG的个数,节点在线标志以及9个BDG的基地址;当申请的BDG个数少于9个时,无用的地址填为0;每个分配的BDG的基地址将从空闲BDG FIFO中读出。
4.如权利要求1所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法,其特征在于,所述步骤三中的当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队列位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr包括:
通过预拆帧模块计算重排序地址:
重排序队列的长度为L,新收到的帧序号为X,重排序队列队首的帧序号为S,重排序队列中存储的指针为Ph;
当收到新的HIMAC帧时,计算得到所述HIMAC帧在重排序队列中应该存储的位置x_s_ph,即新的指针值;所述新的指针值来源于帧序号X减去队首的帧序号S,再加上队列的指针Ph,计算式为X-S+Ph;当新来的帧序号X小于队首帧序号S时,该帧存储的位置变为X+MAX_X-S+Ph;在HINOC***中,最大的帧序号MAX_X为8192;
根据计算得到的x_s_ph指针值,得到应该申请的BDG基地址bdg_base_adder和BDG内BD的偏移地址bd_base_adder;
其中,所述计算应该申请的BDG基地址bdg_base_adder包括:
判断指针指向的地址在队长的第几个BDG中;当指针数值小于1个BDG的深度时,读取该队列分配到的第1个BDG基地址,并将该HIMAC帧存储到第1个BDG内部;当指针数值大于1个BDG深度但小于2个BDG的深度时,读取该队列分配到的第2个BDG基地址,并将该HIMAC帧存储到第2个BDG内部,以此类推;
所述计算HIMAC帧在BDG内部的BD偏移地址bd_base_adder包括:
判断指针指向的地址在队长的第几个BDG中;一个BD存储1个HIMAC帧,且一个HIMAC帧的深度为14,故当指针数值小于1个BDG的深度时,BD的偏移地址为指针x_s_ph*14;当指针数值大于1个BDG深度但小于2个BDG的深度时,BD的偏移地址为指针(x_s_ph-1个BDG深度)*14,以此类推。
5.如权利要求1所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法,其特征在于,所述步骤四中的预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,其中包括BDG偏移地址和BD偏移地址,供拆逻辑模块顺序读出HIMAC帧包括:
预拆帧模块向逻辑拆帧模块发送拆帧指令,包括拆帧总信息指令与拆帧BDG信息指令;还包括拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息;
其中,所述拆帧总指令信息包括设备号、优先级、HIMAC帧数、队头位置、是否从头开始标志以及前次是否超时标志;
是否从头开始标志,用于判断上次拆帧时是否留下部分头分片,如果有部分头分片,则从拆帧碎片RAM中取出,与新来的HIMAC帧重新组成以太网数据帧;如果上次拆帧没有留下部分以太网数据分片,则直接从新来的HIMAC帧中拆出以太网数据帧;
前次是否超时标志,如果之前的HIMAC帧超时,则拆帧模块碎片RAM记录的之前的头碎片无用,可以删除,并从新的HIMAC帧中找出以太网帧头位置重新拆帧;
拆帧BDG信息指令包括队长信息L,拆帧BD数目split_instruct_bd_num,拆帧BDG数目split_instruct_bdg_num,拆帧BDG的起始地址bdg_start,BD起始偏移地址split_instruct_bd_offset_adder,本次拆帧BDG的基地址split_instruct_bdg_base_adder,基地1,基地址2,……,基地址9和是否是一个新的拆帧指令这些信息;
拆帧逻辑模块拿到拆帧BDG信息指令后,开始解析其中的内容;根据解析出来的内容,从HIMAC重排序队列中读出HIMAC帧进行拆帧,并存储HIMAC拆帧后的碎片;
解析是否是一个新的拆帧指令;若是新的拆帧指令,则将从拆帧BDG信息指令中的本次拆帧BDG的基地址+BD起始偏移地址开始搬移,即split_instruct_bdg_base_adder+split_instruct_bd_offset_adder;
若拆帧指令来自同一批次的拆帧指令,则根据解析出来的BDG偏移和BD偏移来确定地址;当BD数偏移小于一个BDG的深度时,表明该HIMAC帧还在与上一个帧相同的BDG块内,只需在上一次的读地址上继续累加;
当BD数偏移大于1个BDG的深度时,根据BDG的偏移地址来读取;若BDG偏移为1时,从基地址2开始读取重排序的HIMAC帧;若BDG偏移为2时,从基地址3开始读取重排序的HIMAC帧,以此类推;若BDG偏移为9时,从基地址1开始读取重排序的HIMAC帧,循环利用重排序队列的存储空间;
当拆帧逻辑读取完重排序后的HIMAC帧后,反馈一个清空重排序队列RQ(RankingQueue,排序队列)信息的指令,排队的数据将不再占用下次拆帧的资源;
预拆帧模块和拆帧逻辑模块通过指令信息的传递,将基于HINOC协议的帧有序的还原为以太网数据帧。
6.一种实施权利要求1~5任意一项所述的基于HINOC协议的拆帧重排序队列的动态缓存控制方法的动态缓存控制***,其特征在于,所述动态缓存控制***包括:
设备上线/下线模块,用于根据CPU配置的信息,包括设备号、优先级个数和分配的BDG个数,配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;
偏移地址计算模块,在预拆帧中,用于根据收到的帧序号计算该帧在重排序队列中的位置,并计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址和BD偏移地址;
指令生成模块,在预拆帧中,用于将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令;
指令解析模块,用于拆帧逻辑解析拆帧指令,从对应地址搬移重排序好的HIMAC帧内容,并给出搬移完的反馈,清空对应队列寄存的信息。
7.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,供拆逻辑模块顺序读出HIMAC帧。
8.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
采用状态机上线拆帧的设备,包括设备号、优先级个数以及分配的缓存描述符组BDG个数;根据配置信息生成拆帧已上线设备的缓存地址链表信息,供预拆帧模块查询;当HB接收到来自不同HM的HIMAC帧时,根据收到的帧序号计算该帧在重排序队列中的位置x_s_ph_mod,并根据计算出的队列位置信息,读取链表信息中不同跳数对应的地址,得到BDG偏移地址bdg_base_addr;根据队位置信息,计算出在BDG内部的缓存描述符BD偏移地址bd_offset_addr;预拆帧模块将检测重排序好的HIMAC队列,每当检测到一个拥有HIMAC帧尾的分片时,向拆帧逻辑发送拆帧指令,供拆逻辑模块顺序读出HIMAC帧。
9.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求6所述的动态缓存控制***。
10.一种搭载如权利要求6所述的动态缓存控制***的基于HINOC协议的拆帧动态缓存上线/下线控制器,其特征在于,所述基于HINOC协议的拆帧动态缓存上线/下线控制器包括一个主状态机,按照节点上线使能分配存储空间,按照节点下线使能释放存储空间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513057.8A CN114401072B (zh) | 2021-12-12 | 2021-12-12 | 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513057.8A CN114401072B (zh) | 2021-12-12 | 2021-12-12 | 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114401072A true CN114401072A (zh) | 2022-04-26 |
CN114401072B CN114401072B (zh) | 2024-02-06 |
Family
ID=81226833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111513057.8A Active CN114401072B (zh) | 2021-12-12 | 2021-12-12 | 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114401072B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233200A (zh) * | 2023-05-10 | 2023-06-06 | 浙江正泰仪器仪表有限责任公司 | 一种基于后续帧动态注册的电能表通信方法及*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150046966A1 (en) * | 2012-03-12 | 2015-02-12 | Shenzhen Topway Video Communication Co., Ltd. | Cable tv network broadband access system with distributed deployment and centralized control |
CN107948094A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种高速数据帧无冲突入队处理的装置及方法 |
WO2018107681A1 (zh) * | 2016-12-13 | 2018-06-21 | 深圳市中兴微电子技术有限公司 | 一种队列操作中的处理方法、装置及计算机存储介质 |
CN110290074A (zh) * | 2019-07-01 | 2019-09-27 | 西安电子科技大学 | FPGA片间互连的Crossbar交换单元设计方法 |
CN111010253A (zh) * | 2019-11-06 | 2020-04-14 | 西安电子科技大学 | 一种基于hinoc协议的himac拆帧***、方法 |
CN112272128A (zh) * | 2020-09-26 | 2021-01-26 | 西安电子科技大学 | Hinoc组帧方法、***、介质、计算机设备及应用 |
CN112953860A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 兼容hinoc2.0和3.0协议的拆帧控制方法 |
CN113037515A (zh) * | 2021-03-12 | 2021-06-25 | 北京瀚诺半导体科技有限公司 | 基于hinoc***的mac层组播数据帧的帧格式解析方法及装置 |
-
2021
- 2021-12-12 CN CN202111513057.8A patent/CN114401072B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150046966A1 (en) * | 2012-03-12 | 2015-02-12 | Shenzhen Topway Video Communication Co., Ltd. | Cable tv network broadband access system with distributed deployment and centralized control |
WO2018107681A1 (zh) * | 2016-12-13 | 2018-06-21 | 深圳市中兴微电子技术有限公司 | 一种队列操作中的处理方法、装置及计算机存储介质 |
CN107948094A (zh) * | 2017-10-20 | 2018-04-20 | 西安电子科技大学 | 一种高速数据帧无冲突入队处理的装置及方法 |
CN110290074A (zh) * | 2019-07-01 | 2019-09-27 | 西安电子科技大学 | FPGA片间互连的Crossbar交换单元设计方法 |
CN111010253A (zh) * | 2019-11-06 | 2020-04-14 | 西安电子科技大学 | 一种基于hinoc协议的himac拆帧***、方法 |
CN112272128A (zh) * | 2020-09-26 | 2021-01-26 | 西安电子科技大学 | Hinoc组帧方法、***、介质、计算机设备及应用 |
CN112953860A (zh) * | 2021-01-26 | 2021-06-11 | 西安电子科技大学 | 兼容hinoc2.0和3.0协议的拆帧控制方法 |
CN113037515A (zh) * | 2021-03-12 | 2021-06-25 | 北京瀚诺半导体科技有限公司 | 基于hinoc***的mac层组播数据帧的帧格式解析方法及装置 |
Non-Patent Citations (4)
Title |
---|
HUANG JINJIAN; QIU ZHILIANG; PAN WEITAO; LI JUN; GAO ZHIKAI; HAN BING; ZIHAO XIONG; MENG DONG: "Design of HIMAC Coprocessor for HINOC3.0", 《2021 IEEE 6TH INTERNATIONAL CONFERENCE ON COMPUTER AND COMMUNICATION SYSTEMS (ICCCS)》 * |
YIJIN ZHAO; YIN XU; KANG ZHAO; DAZHI HE; WENJUN ZHANG; HONGBIN LI; JINGFEI CUI: "High throughput LDPC code and decoder design for HINOC 2.0 systems", 《2015 IEEE INTERNATIONAL SYMPOSIUM ON BROADBAND MULTIMEDIA SYSTEMS AND BROADCASTING》 * |
欧阳峰;李婷婷;金淼;郭乐;: "基于UVM的HIMAC验证平台的设计", 《电视技术》, no. 2 * |
潘伟涛; 邱智亮: "一种HIMAC硬件协处理器的设计与FPGA实现", 《电子器件》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116233200A (zh) * | 2023-05-10 | 2023-06-06 | 浙江正泰仪器仪表有限责任公司 | 一种基于后续帧动态注册的电能表通信方法及*** |
CN116233200B (zh) * | 2023-05-10 | 2023-08-15 | 浙江正泰仪器仪表有限责任公司 | 一种基于后续帧动态注册的电能表通信方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114401072B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230011387A1 (en) | Data processing method and nvme storage device | |
WO2021254330A1 (zh) | 内存管理方法、***、客户端、服务器及存储介质 | |
US8248945B1 (en) | System and method for Ethernet per priority pause packet flow control buffering | |
US9965213B2 (en) | IP hard disk and storage system, and data operation methods therefor | |
WO2020038009A1 (zh) | 报文处理方法及相关设备 | |
CN113179327B (zh) | 基于大容量内存的高并发协议栈卸载方法、设备、介质 | |
US7457845B2 (en) | Method and system for TCP/IP using generic buffers for non-posting TCP applications | |
CN103731368B (zh) | 一种处理报文的方法和装置 | |
CN109564502B (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
CN112965839B (zh) | 消息传输方法、装置、设备及存储介质 | |
CN113452591B (zh) | 基于can总线连续数据帧的回路控制方法及装置 | |
CN111026324B (zh) | 转发表项的更新方法及装置 | |
CN111124270A (zh) | 缓存管理的方法、设备和计算机程序产品 | |
CN114401072A (zh) | 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及*** | |
CN112463064B (zh) | 基于双链表结构的i/o指令管理方法及装置 | |
US20160085683A1 (en) | Data receiving device and data receiving method | |
US8862783B2 (en) | Methods and system to offload data processing tasks | |
CN112804276B (zh) | 虚拟化宽带远程接入服务器及其控制方法、通信*** | |
JP7255675B2 (ja) | 仮想マシン監視装置、仮想マシン監視方法およびプログラム | |
CN110708255B (zh) | 一种报文控制方法及节点设备 | |
JPH10190734A (ja) | パケット転送装置及びパケット転送方法 | |
JP4769316B2 (ja) | パケットキューイング装置およびパケットキューイング方法 | |
CN117857537A (zh) | 网卡的存储流量断点续传方法、装置、设备和存储介质 | |
CN118413499A (zh) | 数据传输任务的处理方法及装置、存储介质、电子设备 | |
CN114900456A (zh) | 一种mac地址管理装置及方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |