CN114185693A - 一种可自修复的多结点聚合共享队列管理方法 - Google Patents

一种可自修复的多结点聚合共享队列管理方法 Download PDF

Info

Publication number
CN114185693A
CN114185693A CN202111387477.6A CN202111387477A CN114185693A CN 114185693 A CN114185693 A CN 114185693A CN 202111387477 A CN202111387477 A CN 202111387477A CN 114185693 A CN114185693 A CN 114185693A
Authority
CN
China
Prior art keywords
queue
linked list
aggregation area
aggregation
node
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
CN202111387477.6A
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.)
Xian Institute of Space Radio Technology
Original Assignee
Xian Institute of Space Radio Technology
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 Xian Institute of Space Radio Technology filed Critical Xian Institute of Space Radio Technology
Priority to CN202111387477.6A priority Critical patent/CN114185693A/zh
Publication of CN114185693A publication Critical patent/CN114185693A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种队列管理方法,特别涉及具有高可靠性可修复的队列管理方法,属于分类存储和检索领域。本发明在单链表队列结点node的基础上,设置聚合共享区(bank)。每个bank包括m个node,链表操作时以bank为单位进行申请和删除,bank内m个node的下一结点指针NP均指向同一个bank,每个NP增加CRC进行检错,确保使用过程中NP的正确性。将空闲队列设置为循环结构,即尾node的NP指向头node,在正常出队/入队操作之外,周期性的将头node和尾node后移,移动过程中,对bank内的node进行检查和修复,实现了队列管理的低资源高可靠性要求,既可用于空间复杂电磁环境中,也可以用于高可靠性的地面设备中。

Description

一种可自修复的多结点聚合共享队列管理方法
技术领域
本发明涉及一种队列管理方法,特别涉及具有高可靠性可修复的队列管理方法,属于分类存储和检索领域。
背景技术
在多用户自适应传输场景下,星地传输系统会根据地面站的接收能力、传输链路的信号质量等参数自动选择适合的编码调制方式进行传输,同时,结合用户优先级、帧类型等权重对占用的时隙长度进行控制,实现对不同传输链路状态,不同用户类型的最佳传输,以达到提高频谱利用率和用户容量的目的。
多用户自适应传输系统与以往通过遥控指令切换编码调制模式的非自适应传输系统相比,最大差异是帧调度的颗粒度更细。非自适应传输系统下,系统只需要将帧按先后顺序进行存储,随后按照当前模式依次输出,星载系统不需要考虑多用户间的数据帧差异;多用户自适应传输系统中,系统需要结合目的地址、优先级、时隙位置、链路状态等多个参数维度对数据帧进行动态调度管理,帧与帧的差异需要通过不同的输出队列来体现,同时每个输出队列的长度会根据应用场景和用户数目而长短不一。对应这种应用需求,常规静态划分存储空间的方法会导致存储空间利用率很低,特别是数据帧类型增多时,每种帧的存储空间规划过小,无法满足高速用户使用需求。建立动态链表是一种好的解决方式,动态链表优点是管理开销小,只需要管理表头和尾的结点;输出队列长度按需增减,实现复杂度不会随输出队列长度变化;存储空间按需划分,满足多用户传输需求。
在现有技术的实现过程中,单链表队列缓存结构实现简单,但节点之间缺少保护机制,链表内的结点通过指针链接,指针一旦错误,指针指向的后续结点就会断开或导入歧途,链表后续位置存储的帧全部丢失,无法满足空间复杂电磁环境下的高可靠性要求。
发明内容
本发明解决的技术问题是:克服现有技术的不足,提供了一种可自修复的多结点聚合共享队列管理方法,实现了队列管理的低资源高可靠性要求,既可用于空间复杂电磁环境中,也可以用于高可靠性的地面设备中。
本发明的技术解决方案是:一种可自修复的多结点聚合共享队列管理方法,包括:
将若干链表节点组成聚合区,将若干聚合区组成队列,并将队列的信息存入队列信息单元;所述队列携带的信息包括头部聚合区和尾部聚合区的信息以及其所有链表节点的总数,队列中的链表节点根据链表节点自身携带的信息进行关联;
根据接收的业务数据帧的特征信息,从空闲队列中申请聚合区,产生虚拟输出队列,同时更新队列信息单元;业务数据帧退出虚拟输出队列后,对应聚合区释放,重新编入空闲队列,同时更新队列信息单元;
以虚拟输出队列进行入队或出队操作。
进一步地,同一特征的业务数据帧被编入一个虚拟输出队列。
进一步地,所述聚合区包括相邻的若干个链表节点;初始化时,所有链表节点的逻辑地址单元的节点指针为所在聚合区的编号+1,同一聚合区内链表节点的节点指针相同,实现所有链表节点的串联。
进一步地,所述以虚拟输出队列进行入队操作包括如下步骤:
有业务数据帧到达时,申请虚拟输出队列入队;读取队列信息单元中虚拟输出队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取虚拟输出队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则将新到达的业务数据帧作为虚拟输出队列的第一个节点重新建立队列;
若虚拟输出队列的队列长度Lq未达到上限,检查队列长度Lq是否被m整除,然后Lq+1;如果不能整除,则将业务数据帧信息按照余数+1写入队尾聚合区对应链表节点的逻辑地址单元;如果能够整除,则从队列信息单元空闲队列中申请新的聚合区,更新逻辑地址单元虚拟输出队列队尾聚合区的所有链表节点指针NP指向新申请聚合区,并用新申请聚合区作为新的队尾聚合区;随后,更新队列信息单元的虚拟输出队列,将新的队列信息写入到虚拟输出队列聚合区的所有链表节点内;
如果申请聚合区,读取队列信息单元中空闲队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取空闲队列信息;如果CRC校验错误,则选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;同时,用逻辑地址单元空闲队列当前队头聚合区链表节点指针NP作为新的队头聚合区;随后,更新队列信息单元空闲队列,将新的队列信息写入到空闲队列聚合区的所有链表节点内。
进一步地,所述以虚拟输出队列进行出队操作包括如下步骤:
读取队列信息单元中虚拟输出队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,获取虚拟输出队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则将虚拟输出队列标记为空,读取停止;
若虚拟输出队列的队列长度Lq非0,则Lq-1;同时,从逻辑地址单元虚拟输出队列队头聚合区对应链表节点按顺序读取非空闲节点的业务数据帧信息,并将该节点置为空闲;如果聚合区内的节点均为空闲则释放聚合区,并用被释放聚合区链表节点指针NP作为新的队头聚合区;随后,更新队列信息单元的虚拟输出队列,将新的队列信息写入到虚拟输出队列聚合区的所有链表节点内;
如果释放聚合区,读取队列信息单元空闲队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取空闲队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;更新逻辑地址单元空闲队列队尾聚合区的所有链表节点指针NP到被释放聚合区,并用被释放聚合区作为新的队尾聚合区;随后,更新队列信息单元空闲队列,将新的队列信息写入到空闲队列聚合区的所有链表节点内。
进一步地,当业务数据帧到达频率低于预设值时,对空闲队列进行修复,防止空闲队列长时间不更新。
进一步地,所述对空闲队列进行修复包括如下步骤:
读取队列信息单元空闲队列聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,获得空闲队列队头和队尾聚合区地址;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;
在逻辑地址单元中,依次读取空闲队列队头聚合区的每个链表节点,并进行CRC校验;如果CRC校验正确,获得聚合区链表节点指针NP;如果CRC校验错误,则用CRC校验正确的链表节点指针NP进行更新,实现修复;按照同样方式,检查和修复空闲队列队尾聚合区的每个链表节点;
更新空闲队列信息。空闲队列是环链表,即队尾聚合区链表节点指针NP指向队头聚合区;更新空闲队列信息过程中,空闲队列滑动,将空闲队列队头聚合区链表节点指针NP作为新的队头,队尾聚合区链表节点指针NP作为新的队尾,更新后的队列信息写入到队列信息单元空闲队列对应聚合区的所有链表节点内。
进一步地,所述的链表节点存储单元对应一段存储空间,所述存储空间大于业务数据帧的长度。
一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,所述的计算机程序被处理器执行时实现所述一种可自修复的多结点聚合共享队列管理方法的步骤。
一种可自修复的多结点聚合共享队列管理设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述的处理器执行所述的计算机程序时实现所述一种可自修复的多结点聚合共享队列管理方法的步骤。
本发明与现有技术相比的优点在于:
(1)从可靠性方面,假设链表长度为L,结点node受干扰出现NP错误的概率为p,那么链表断链的概率为L*p;聚合共享链表的每个bank有m个node,那么聚合共享链表断链的概率为L/m*pm,可见聚合共享链表相对普通链表的断链概率指数级下降。同时,链表的周期性自修复使bank内NP的错误不会累积,在理论上聚合共享链表不存在断链的可能,解决了普通链表在复杂电磁环境下的断链风险。
(2)从存储资源方面,聚合共享链表与普通链表的存储资源几乎相同。单向链表的每个node存储一个NP地址,聚合共享链表的每个bank对应m和node存储m个NP地址,总的存储内容是相同的。在队列信息单元的开销上比单向链表多,单向链表存储一份队列信息,聚合共享链表存储m份。但m值远小于队列长度L,相对于L而言可忽略。
(3)从入队/出队操作流程方面,实现复杂度与普通单向链表相当。聚合共享链表每m个分组更新一次bank,每次更新操作m个node;单向链表每个分组更新一次node。
(4)本发明只是通过聚合共享方式实现了可靠地队列管理的功能,结构简单,易于实现,通用性较强,有利于降低星上设备的成本。
附图说明
图1、2分别为本发明入队、出队操作流程示意图;
图3为本发明队列示意图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本申请技术方案做详细的说明,应当理解本申请实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本申请实施例以及实施例中的技术特征可以相互组合。
以下结合说明书附图对本申请实施例所提供的一种可自修复的多结点聚合共享队列管理方法做进一步详细的说明,如图1~3所示。
本发明方法包括:
将若干链表节点组成聚合区,将若干聚合区组成队列,并将队列的信息存入队列信息单元;所述队列携带的信息包括头部聚合区和尾部聚合区的信息以及其所有链表节点的总数,队列中的链表节点根据链表节点自身携带的信息进行关联;
根据接收的业务数据帧的特征信息,从空闲队列中申请聚合区,产生虚拟输出队列,同时更新队列信息单元;业务数据帧退出虚拟输出队列后,对应聚合区释放,重新编入空闲队列,同时更新队列信息单元;
以虚拟输出队列进行入队或出队操作。
所述队列中的链表节点根据链表节点自身携带的信息进行关联,具体指:队列中的链表节点通过节点号与逻辑地址单元的地址一一对应,逻辑地址单元的每个地址上存储链表节点自身信息和下一聚合区链表节点指针,聚合区号用于链表节点进行关联。
进一步说明如下:本专利中链表管理分为2部分,一个是队列信息单元,一个逻辑地址单元。
1、队列信息单元存储空闲队列和虚拟输出队列的队头和队尾聚合区,对应到虚拟输出队列还存储队列长度,因为队列操作只与队头和队尾有关,设置的目的是快速操作入队和出队。为了提高信息的可靠性,队列信息单元存储队列时也采用了聚合区的方式,每个队列存储m份。作为备份。
2、链表中的所有节点(已使用的和空闲的)都会在逻辑地址单元中找到,逻辑地址单元的地址与节点号一一对应,每次节点被使用或被释放,都会修改逻辑地址单元对应节点的下一跳指针,实现新的关联。
在本申请实施例提供的技术方案中,一种可自修复的多结点聚合共享队列管理方法,包括:结点(node)、聚合区(bank)、空闲队列、虚拟输出队列(VOQ)、逻辑地址单元、存储单元、队列信息单元。在单链表队列结点node的基础上,设置聚合共享区(bank)。每个bank包括m个node,链表操作时以bank为单位进行申请和删除,bank内m个node的下一结点指针NP均指向同一个bank,每个NP增加CRC进行检错,确保使用过程中NP的正确性。将空闲队列设置为循环结构,即尾node的NP指向头node,在正常出队/入队操作之外,周期性的将头node和尾node后移,移动过程中,对bank内的node进行检查和修复。
队列的最小单元是结点node,node包括逻辑地址单元和存储单元2部分,业务数据帧到达后被分配到node中,一个node仅存储一个业务数据帧。其中,逻辑地址单元存储业务数据帧的特征信息(包括:帧长度、优先级、速率档等特征信息)、下一结点指针NodePointer(NP)和CRC校验值,存储单元存储业务数据帧的数据部分。node号、逻辑地址单元号、存储单元起始地址一一对应,通过node号就可以实现对业务数据帧的特征查询和数据帧内容的存储搬移。
聚合区(bank)由相邻的m个node组成。系统初始化时,所有node逻辑地址单元的NP等于所在bank的bank号+1,同一bank内node的NP相同,实现所有node的串联。随后将队列头bank号、尾bank号和node总数存入空闲队列,空闲队列仅管理头bank和尾bank及node总数,中间结点依靠node逻辑地址单元的NP进行关联。
系统开始工作后,根据业务数据帧的特征信息会动态地产生n个虚拟输出队列(VOQ),n根据业务需要设定。同一特征的业务数据帧被编入一个VOQ,进入VOQ的过程需要从空闲队列申请bank,被申请的bank通过bank内node逻辑地址单元的NP关联入VOQ,虚拟输出队列(VOQ)仅管理头bank和尾bank及node总数,中间结点依靠逻辑地址单元的NP进行关联。同一bank内的全部业务数据帧退出VOQ后,对应bank释放,重新编入空闲队列,编入方式同VOQ入队。
空闲队列和虚拟输出队列(VOQ)的信息统一存入队列信息单元,其中,地址0存储空闲队列的信息,地址1~n存储输出队列(VOQ)的信息。
系统工作过程中,当业务数据帧到达频率低甚至没有时,所有的node均会被编入空闲队列,空闲队列有长时间不更新的可能。基于上述工况,本专利设计了一种自修复机制,即:将空闲队列队尾bank内node的NP指向队头bank,系统周期性的从队列信息单元取出空闲队列,并对队头bank和队尾bank内的NP及CRC进行检查,一旦发现CRC错误,就按照CRC正确node的NP对其进行更新,然后将队头bank的NP作为新的队头bank,队尾bank的NP作为新的队尾bank重新写入队列信息单元的空闲队列。
所述的node存储单元对应一段存储空间。申请/删除一个node相当于使用/释放存储器对应偏移地址下基地址从零开始的一段存储块,这个存储空间必须大于业务数据帧的长度。
在本申请实施例所提供的方案中,多结点聚合共享链表进行入队/出队操作时,具体为:
入队操作流程:
1.有分组到达时,申请VOQ入队。读取队列信息单元中VOQ队列对应bank的某个node,如果CRC校验正确,提取队列信息(队列长度、队头结点号、队尾结点号);如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止。
2.在队列长度Lq未达到上限的情况下,检查Lq是否被m整除,然后Lq+1。如果能够整除,需要从队列信息单元空闲队列中申请新的bank地址并更新空闲队列;如果不能整除,直接将分组信息按照余数加1写入逻辑地址单元node。
3.空闲队列更新。读取队列信息单元空闲队列bank的某个node,如果CRC校验正确,获得空闲队列队头和队尾bank地址;如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止,输出新的bank地址。同时,用逻辑地址单元空闲队列队头bank的NP更新队列信息单元空闲队列队头bank信息,并将新结果写入到该bank的m个node内。
4.VOQ队列更新。如果申请了新bank,将分组信息写入逻辑地址单元新bank的第一个node,同时将VOQ队尾bank的NP更新,用新申请的bank地址写入到当前队尾bank的m个node内。
5.更新VOQ信息,将新的队列信息(更新了队列长度和队尾结点号)写入到队列信息单元VOQ队列对应bank的m个node内。
出队操作流程:
1.VOQ队列有分组输出。读取队列信息单元VOQ队列对应bank的某个node,如果CRC校验正确,提取队列信息(队列长度、队头结点号、队尾结点号);如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止。
2.在队列长度Lq非0的情况下,先Lq-1,然后检查bank内的空闲节点。如果m个节点均空闲,需要释放bank,将bank链入逻辑地址单元空闲队列队尾并更新队列信息单元空闲队列;如果有非空闲节点,直接从逻辑地址单元队头非空闲结点node中读取分组信息。
3.空闲队列更新。读取队列信息单元空闲队列bank的某个node,如果CRC校验正确,获得空闲队列队头和队尾bank地址;如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止。随后将逻辑地址单元空闲队列队尾bank的NP更新,用释放的bank地址写入空闲队列当前队尾bank的m个node内。同时,更新队列信息单元空闲队列,将新的队列信息(更新了队尾bank地址)写入到队列bank的m个node内
4.VOQ队列更新。读取逻辑地址单元VOQ队列队头bank的某个node,如果CRC校验正确,获得队头bank的NP;如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止。
5.更新VOQ信息。将新的队列信息(更新了队列长度和队头结点号)写入到队列信息单元VOQ队列对应bank的m个node内。
空闲队列自修复机制:
1.读取队列信息单元空闲队列bank的某个node,如果CRC校验正确,获得空闲队列队头和队尾bank地址;如果CRC校验错误,选取bank内的其他node直到获得CRC正确为止。
2.node检查及修复。依次读取逻辑地址单元空闲队列队头bank的每个node,如果CRC校验正确,获得队头bank的NP;如果CRC校验错误,则将CRC校验正确的node信息写入对应地址,实现修复。按照同样方式,检查和修复空闲队列队尾bank的每个node。
3.更新空闲队列信息。将新的队列信息(队列长度、原队头node的NP号和原队尾node的NP号)写入到队列信息单元空闲队列对应bank的m个node内。
综上所述,队列使用链表方式组织管理,常规链表内的结点node通过下一跳指针Node Pointer(NP)链接,指针NP一旦错误,指针指向的后续node就会断开或导入歧途,链表后续位置存储的帧全部丢失。本专利提出了一种可自修复的多结点聚合共享队列管理方法。多结点聚合共享链表队列的基本元素称作聚合区(bank)。每个bank包括m个node,链表操作时以bank为单位进行申请和删除,bank内m个node的NP均指向同一个bank,每个NP增加CRC进行检错,确保使用过程中NP的正确性。
链表管理时,分为2类链表,类1为虚拟输出队列(VOQ),VOQ根据帧类型和帧到达情况实时变化,链表更新频率高,在链表更新过程中,可对bank内的node进行修复,错误累积的时间短,出现断链的可能很小;类2为空闲队列,管理着全部地址空间,当到达业务较少或者没有时,空闲队列更新频率较低甚至不更新。为保证空闲队列的可靠性,将空闲队列设置为循环结构,将尾node的NP指向头node,在正常出队/入队操作之外,周期性的将头node和尾node后移,移动过程中,对bank内的node进行检查和修复。
本专利可以实现队列链表在空间复杂电磁环境干扰下发生错误的防护以及对发生错误的识别和更正,实现了队列管理的低资源高可靠性要求,既可用于空间复杂电磁环境中,也可以用于高可靠性的地面设备中。
本申请提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行图1所述的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。

Claims (10)

1.一种可自修复的多结点聚合共享队列管理方法,其特征在于,包括:
将若干链表节点组成聚合区,将若干聚合区组成队列,并将队列的信息存入队列信息单元;所述队列携带的信息包括头部聚合区和尾部聚合区的信息以及其所有链表节点的总数,队列中的链表节点根据链表节点自身携带的信息进行关联;
根据接收的业务数据帧的特征信息,从空闲队列中申请聚合区,产生虚拟输出队列,同时更新队列信息单元;业务数据帧退出虚拟输出队列后,对应聚合区释放,重新编入空闲队列,同时更新队列信息单元;
以虚拟输出队列进行入队或出队操作。
2.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于:同一特征的业务数据帧被编入一个虚拟输出队列。
3.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于:所述聚合区包括相邻的若干个链表节点;初始化时,所有链表节点的逻辑地址单元的节点指针为所在聚合区的编号+1,同一聚合区内链表节点的节点指针相同,实现所有链表节点的串联。
4.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于,所述以虚拟输出队列进行入队操作包括如下步骤:
有业务数据帧到达时,申请虚拟输出队列入队;读取队列信息单元中虚拟输出队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取虚拟输出队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则将新到达的业务数据帧作为虚拟输出队列的第一个节点重新建立队列;
若虚拟输出队列的队列长度Lq未达到上限,检查队列长度Lq是否被m整除,然后Lq+1;如果不能整除,则将业务数据帧信息按照余数+1写入队尾聚合区对应链表节点的逻辑地址单元;如果能够整除,则从队列信息单元空闲队列中申请新的聚合区,更新逻辑地址单元虚拟输出队列队尾聚合区的所有链表节点指针NP指向新申请聚合区,并用新申请聚合区作为新的队尾聚合区;随后,更新队列信息单元的虚拟输出队列,将新的队列信息写入到虚拟输出队列聚合区的所有链表节点内;
如果申请聚合区,读取队列信息单元中空闲队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取空闲队列信息;如果CRC校验错误,则选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;同时,用逻辑地址单元空闲队列当前队头聚合区链表节点指针NP作为新的队头聚合区;随后,更新队列信息单元空闲队列,将新的队列信息写入到空闲队列聚合区的所有链表节点内。
5.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于,所述以虚拟输出队列进行出队操作包括如下步骤:
读取队列信息单元中虚拟输出队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,获取虚拟输出队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则将虚拟输出队列标记为空,读取停止;
若虚拟输出队列的队列长度Lq非0,则Lq-1;同时,从逻辑地址单元虚拟输出队列队头聚合区对应链表节点按顺序读取非空闲节点的业务数据帧信息,并将该节点置为空闲;如果聚合区内的节点均为空闲则释放聚合区,并用被释放聚合区链表节点指针NP作为新的队头聚合区;随后,更新队列信息单元的虚拟输出队列,将新的队列信息写入到虚拟输出队列聚合区的所有链表节点内;
如果释放聚合区,读取队列信息单元空闲队列对应聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,则获取空闲队列信息;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;更新逻辑地址单元空闲队列队尾聚合区的所有链表节点指针NP到被释放聚合区,并用被释放聚合区作为新的队尾聚合区;随后,更新队列信息单元空闲队列,将新的队列信息写入到空闲队列聚合区的所有链表节点内。
6.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于,当业务数据帧到达频率低于预设值时,对空闲队列进行修复,防止空闲队列长时间不更新。
7.根据权利要求6所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于,所述对空闲队列进行修复包括如下步骤:
读取队列信息单元空闲队列聚合区的某个链表节点,并进行CRC校验;如果CRC校验正确,获得空闲队列队头和队尾聚合区地址;如果CRC校验错误,选取聚合区内的其他链表节点直到获得CRC正确为止;若所有链表节点的CRC校验均错误,则重新初始化队列信息单元;
在逻辑地址单元中,依次读取空闲队列队头聚合区的每个链表节点,并进行CRC校验;如果CRC校验正确,获得聚合区链表节点指针NP;如果CRC校验错误,则用CRC校验正确的链表节点指针NP进行更新,实现修复;按照同样方式,检查和修复空闲队列队尾聚合区的每个链表节点;
更新空闲队列信息。空闲队列是环链表,即队尾聚合区链表节点指针NP指向队头聚合区;更新空闲队列信息过程中,空闲队列滑动,将空闲队列队头聚合区链表节点指针NP作为新的队头,队尾聚合区链表节点指针NP作为新的队尾,更新后的队列信息写入到队列信息单元空闲队列对应聚合区的所有链表节点内。
8.根据权利要求1所述的一种可自修复的多结点聚合共享队列管理方法,其特征在于:所述的链表节点存储单元对应一段存储空间,所述存储空间大于业务数据帧的长度。
9.一种计算机可读存储介质,所述的计算机可读存储介质存储有计算机程序,其特征在于,所述的计算机程序被处理器执行时实现如权利要求1~权利要求8任一所述方法的步骤。
10.一种可自修复的多结点聚合共享队列管理设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述的处理器执行所述的计算机程序时实现如权利要求1~权利要求8任一所述方法的步骤。
CN202111387477.6A 2021-11-22 2021-11-22 一种可自修复的多结点聚合共享队列管理方法 Pending CN114185693A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111387477.6A CN114185693A (zh) 2021-11-22 2021-11-22 一种可自修复的多结点聚合共享队列管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111387477.6A CN114185693A (zh) 2021-11-22 2021-11-22 一种可自修复的多结点聚合共享队列管理方法

Publications (1)

Publication Number Publication Date
CN114185693A true CN114185693A (zh) 2022-03-15

Family

ID=80541171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111387477.6A Pending CN114185693A (zh) 2021-11-22 2021-11-22 一种可自修复的多结点聚合共享队列管理方法

Country Status (1)

Country Link
CN (1) CN114185693A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102130833A (zh) * 2011-03-11 2011-07-20 中兴通讯股份有限公司 一种高速路由器流量管理芯片链表存储管理方法及系统
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN103914341A (zh) * 2013-01-06 2014-07-09 中兴通讯股份有限公司 数据队列出队管控方法和装置
CN111124716A (zh) * 2019-12-26 2020-05-08 中国航空工业集团公司沈阳飞机设计研究所 一种无人机中多优先级队列消息传输方法
CN112667592A (zh) * 2020-12-24 2021-04-16 平安科技(深圳)有限公司 数据存储方法、装置、计算机设备和存储介质
CN112799860A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法
CN113157465A (zh) * 2021-04-25 2021-07-23 无锡江南计算技术研究所 基于指针链表的消息发送方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8738860B1 (en) * 2010-10-25 2014-05-27 Tilera Corporation Computing in parallel processing environments
CN102130833A (zh) * 2011-03-11 2011-07-20 中兴通讯股份有限公司 一种高速路由器流量管理芯片链表存储管理方法及系统
CN103914341A (zh) * 2013-01-06 2014-07-09 中兴通讯股份有限公司 数据队列出队管控方法和装置
CN111124716A (zh) * 2019-12-26 2020-05-08 中国航空工业集团公司沈阳飞机设计研究所 一种无人机中多优先级队列消息传输方法
CN112667592A (zh) * 2020-12-24 2021-04-16 平安科技(深圳)有限公司 数据存储方法、装置、计算机设备和存储介质
CN112799860A (zh) * 2021-01-27 2021-05-14 浪潮云信息技术股份公司 基于消息队列和搜索引擎实现服务回调的方法
CN113157465A (zh) * 2021-04-25 2021-07-23 无锡江南计算技术研究所 基于指针链表的消息发送方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BO CHEN: ""Design of LDPC Fast Encoding Based on Dynamic Memory Structure of Linked List Queue"", 《2017 14TH INTERNATIONAL SYMPOSIUM ON PERVASIVE SYSTEMS, ALGORITHMS AND NETWORKS & 2017 11TH INTERNATIONAL CONFERENCE ON FRONTIER OF COMPUTER SCIENCE AND TECHNOLOGY & 2017 THIRD INTERNATIONAL SYMPOSIUM OF CREATIVE COMPUTING (ISPAN-FCST-ISCC)》, 30 November 2017 (2017-11-30), pages 156 - 161 *
田维常: ""队列 | 如何使用数组和链表来实现"队列""", Retrieved from the Internet <URL:《https://cloud.tencent.com/developer/article/1623644》> *
赵驰: ""Crossbar交换单元分组处理与队列管理的设计与实现"", 《中国优秀硕士学位论文全文数据库 信息科技辑》, no. 2017, 15 March 2017 (2017-03-15), pages 136 - 660 *

Similar Documents

Publication Publication Date Title
CN107959636B (zh) Bgp消息的发送方法及装置
US7555579B2 (en) Implementing FIFOs in shared memory using linked lists and interleaved linked lists
US10263919B1 (en) Buffer assignment balancing in a network device
JP4763405B2 (ja) データ・フロー・アプリケーションのためのネットワーク・オン・チップ半自動通信アーキテクチャ
US7149226B2 (en) Processing data packets
US10523576B1 (en) High-performance garbage collection in a network device
WO2017172069A1 (en) Work conserving, load balancing, and scheduling
CN113498106A (zh) 一种时间敏感网络tsn流的调度方法及装置
US11677676B1 (en) Shared traffic manager
US20180183733A1 (en) Receive buffer architecture method and apparatus
US7433364B2 (en) Method for optimizing queuing performance
US11949601B1 (en) Efficient buffer utilization for network data units
US10999223B1 (en) Instantaneous garbage collection of network data units
CN111181874B (zh) 一种报文处理方法、装置及存储介质
US9641466B2 (en) Packet storage distribution based on available memory
CN111988345B (zh) 一种信息同步的方法及设备
CN114185693A (zh) 一种可自修复的多结点聚合共享队列管理方法
US7460544B2 (en) Flexible mesh structure for hierarchical scheduling
CN113835611A (zh) 存储调度方法、设备和存储介质
US9590926B2 (en) Global random early detection packet dropping based on available memory
CN112272933B (zh) 队列控制方法、装置及存储介质
CN115955441A (zh) 一种基于tsn队列的管理调度方法、装置
CN113157465B (zh) 基于指针链表的消息发送方法及装置
WO2003090018A2 (en) Network processor architecture
EP3299965B1 (en) Method and physical device for managing linked lists

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