CN103914341A - 数据队列出队管控方法和装置 - Google Patents

数据队列出队管控方法和装置 Download PDF

Info

Publication number
CN103914341A
CN103914341A CN201310003565.0A CN201310003565A CN103914341A CN 103914341 A CN103914341 A CN 103914341A CN 201310003565 A CN201310003565 A CN 201310003565A CN 103914341 A CN103914341 A CN 103914341A
Authority
CN
China
Prior art keywords
queue
node
chained list
group
restructuring
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
Application number
CN201310003565.0A
Other languages
English (en)
Other versions
CN103914341B (zh
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.)
Sanechips Technology Co Ltd
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201310003565.0A priority Critical patent/CN103914341B/zh
Priority to PCT/CN2013/090148 priority patent/WO2014106436A1/zh
Publication of CN103914341A publication Critical patent/CN103914341A/zh
Application granted granted Critical
Publication of CN103914341B publication Critical patent/CN103914341B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种数据队列出队管控方法和装置,其方法包括:接收队列调度指令,获取队列首地址和出队子指针,组合成绝对地址;按照绝对地址的顺序,获取出队节点的子节点信息,写入重组队列;按照奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表;监测开始标志,按照开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;按照调度序号顺序,依次将重组队列中出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。本发明使用“节点汇聚”方式实现单链表队列管控,通过单链表实现大规模队列管控,保证线速,节省片外QDR存储器存储空间及管脚,结构简单易实现。

Description

数据队列出队管控方法和装置
技术领域
本发明涉及到数据处理技术领域,特别涉及到数据队列出队管控方法和装置。
背景技术
随着网络业务和容量的不断增长,对于流量管控芯片的处理能力要求越来越高。流量管控芯片实现大规模队列管控时,比较常见的是采用链表的方式,将数据报文存储于片外DDR(Double Data Rate)存储器中,数据报文对应的索引地址以队列的形式,存储在片外QDR(Quad Data Rate,4倍数据倍率)存储器中,在出队操作时,获取索引地址,将索引地址对应的数据报文读出,完成数据报文出队。
队列的管控主要是对报文存储的管控,包括入队和出队两步,队列按照一定的原则,将属于同一队列的数据报文划分为一个或者多个节点,存储在缓存空间里,多个节点组成一个汇聚节点,多个汇聚节点组成一条队列链表;队列与队列之间逻辑相互独立,每一队列维护一条队列链表。在入队和出队过程中,缓存根据调度指令给出的读写命令,对索引地址和数据报文进行存储和读出,实现数据流的管控。
队列管控有两种方式,一是为每一队列分配固定的存储空间,二是所有的队列共享同一存储空间。在大规模队列的情况下,采用固定分配存储空间的方式会造成每组队列分配的存储空间很小,对突发流量的吸收能力比较弱,同时存储空间的浪费比较严重。因此在大规模的队列管控中基本都采用共享存储空间的方式。现有的共享存储空间的队列管控技术主要采用单链表和多链表的实现方式,实现队列管控中链表的存储。如果采用传统的单链表结构,片外QDR存储器的读写延时导致单队列出队不能满足出入队速率要求,同时会大量占用SRAM(Static Random Access Memory,静止随机存储器)资源,使用FPGA(Field-Programmable Gate Array,现场可编程门阵列)实现时,无论对于器件管脚分配还是布局布线都是巨大的挑战;如果采用多链表结构,依然存在大量SRAM资源被占用的缺点,并且使用FPGA实现时,器件管脚分配和布局布线比单链表方案的难度更大。同时,采用单链表实现队列管控的方式主要是将队列中每个节点的地址指针存储在链表中,需要读出一个节点之后才能得到下一个节点的地址,考虑到QDR存储器的读延时,不能满足出队处理的速率要求。
发明内容
本发明的主要目的为提供一种提高大规模队列出队速率的数据队列出队管控方法和装置。
本发明提出一种数据队列出队管控方法,包括步骤:
接收队列调度指令,获取队列描述符中的队列首地址和所述队列的出队链表中出队节点的出队子指针,组合成出队节点的绝对地址;
按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识;
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
按照所述排序队列中出队数据报文的调度序号顺序,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
优选地,所述按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识的步骤具体包括:
按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表;
根据下一奇数节点的绝对地址,获取下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,写入奇链表;
根据下一偶数节点的绝对地址,获取下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,写入偶链表;
以此类推,直至当前链表中所有节点的子节点信息均写入重组队列。
优选地,所述监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中的步骤具体包括:
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志和所述开始标志到达的先后顺序;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
依次将与所述首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
在当前写入节点的子节点信息中包括报文尾标识时,下一个到达的节点作为开始标志对应的节点,将下一个到达的节点的调度序号写入排序队列中;
依次将与所述下一个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
以此类推,直至所有重组队列的所有数据报文的调度序号均写入排序队列中。
优选地,所述按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识的步骤之后还包括:
在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空;
当所述队列在出队后为非空时,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
按照下一链表中出队节点的绝对地址的奇偶顺序,交叉获取下一链表中出队节点的子节点信息,写入重组队列。
优选地,所述在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空的步骤之后还包括:
当所述队列在出队后为空时,释放队列调度指令,停止写入重组队列。
本发明还提出一种数据队列出队管控装置,包括:
地址生成模块,用于接收队列调度指令,获取队列描述符中的队列首地址和所述队列的出队链表中出队节点的出队子指针,组合成出队节点的绝对地址;
重组队列模块,用于按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;
预读队列模块,用于按照出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识;
排序队列模块,用于监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
出队指令模块,用于按照所述排序队列中出队数据报文的调度序号,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
优选地,所述重组队列模块具体用于:
按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表;
根据下一奇数节点的绝对地址,获取下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,写入奇链表;
根据下一偶数节点的绝对地址,获取下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,写入偶链表;
以此类推,直至当前链表中所有节点的子节点信息均写入重组队列。
优选地,所述排序队列模块具体用于:
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志和所述开始标志到达的先后顺序;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
依次将与所述首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
在当前写入节点的子节点信息中包括报文尾标识时,下一个到达的节点作为开始标志对应的节点,将下一个到达的节点的调度序号写入排序队列中;
依次将与所述下一个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
以此类推,直至所有重组队列的所有数据报文的调度序号均写入排序队列中。
优选地,所述重组队列模块还用于:
在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空;
当所述队列在出队后为非空时,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
按照下一链表中出队节点的绝对地址的奇偶顺序,交叉获取下一链表中出队节点的子节点信息,写入重组队列。
优选地,所述重组队列模块还用于:
当所述队列在出队后为空时,释放队列调度指令,停止写入重组队列的步骤。
本发明为了解决大规模队列管控中资源和速率的瓶颈,使用“节点汇聚”的方式实现单链表队列管控,解决节点占用SRAM资源过多而引起的管脚和布线问题,通过单链表实现大规模队列的队列管控,在保证线速的前提下,节省了外部片外QDR存储器存储空间以及管脚,减轻了使用FPGA实现的流量管控的布板的复杂度。
附图说明
图1为本发明数据队列出队管控方法的第一实施例的流程图;
图2为本发明数据队列出队管控方法的第二实施例的流程图;
图3为本发明数据队列出队管控方法的第三实施例的流程图;
图4为本发明数据队列出队管控方法的第四实施例的流程图;
图5为本发明数据队列出队管控装置的结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1为本发明数据队列出队管控方法的第一实施例的流程图。本实施例提到的数据队列出队管控方法,包括:
步骤S10,接收队列调度指令,获取队列描述符中的队列首地址和队列的出队链表中出队节点的出队子指针,组合成出队节点的绝对地址;
本实施例的片外QDR存储器包括队列描述符片外QDR存储器、链表片外QDR存储器和子节点信息片外QDR存储器,分别存储每个队列的描述符、队首指针和队尾指针、汇聚节点(即各链表中所有节点)的信息、每个节点的子节点信息,其中汇聚节点的信息包括队列链表中下一汇聚节点的首节点的报文尾标识和队列链表中下一汇聚节点的地址,子节点信息包括节点长度和节点是否为报文尾标识。出队操作接收来自队列调度的出队队列号,读取队列描述符和出队子指针,队列描述符中包括有队列首地址。每个节点的实际地址由基地址加上偏移地址组成,对于同一个链表内节点的基址是相同的,偏址为其余节点相对于同一个链表中的第一个节点的偏移量。由于一个链表内各个汇聚节点内的节点的地址是连续的,所以如果从一个链表的一个汇聚节点的第一个节点读取的话,就可以立即知道下一个节点的地址,而不需要等待第一次读操作的返回结果,汇聚节点的地址分配和释放以链表为基本单位。因此,在获取每个节点的实际地址,即绝对地址,可将队列的队首汇聚节点存储的地址和队列中各节点的出队子指针组合成出队节点的绝对地址。属于同一数据报文的所有节点必须写入同一个重组队列中。
步骤S20,按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识;
读取子节点信息片外QDR存储器,根据出队子指针的奇偶属性,将当前链表分为奇链表和偶链表,交叉读取奇链表和偶链表中各子节点信息,在获取奇链表的子节点信息时,预读偶链表的节点地址,在获取偶链表的子节点信息时,预读奇链表的节点地址,通过双链表交叉操作,有效提高各节点的子节点信息出队效率。奇偶链表中保存的数据报文起止信息及时反馈给调度侧,保证调度侧及时切换调度队列,满足调度侧的线速要求。
步骤S30,监测重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
由于队列调度交叉出队,属于同一个数据报文的节点并不是连续的,为了避免同一个数据报文的节点不能连续地给出出队命令的问题,设计了出队命令的报文重组操作。属于同一个数据报文的节点形成的链表中,首节点包括开始标志,尾节点包括报文尾标识,按照开始标志到达的先后顺序,即按照同一个数据报文中首节点到达的先后顺序,将同一数据报文的节点依次写入排序队列,实现报文重组操作,使属于同一个数据报文的节点连续地给出出队命令,保证发出出队命令的顺序与调度的顺序相同,避免出现出队命令的报文交错和乱序。
步骤S40,按照排序队列中出队数据报文的调度序号顺序,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
根据排序队列的顺序,将出队命令发送给寄存器,获取对应的数据报文,完成数据报文的出队。当排序队列中一个数据报文对应的节点的报文尾标识标志为1时,标志着一个报文出队结束,启动另一个数据报文的出队。当出队的节点为尾节点,即节点包括报文尾标识时,读取排序队列中下一数据报文对应的节点,并更新队列描述符的队首指针。如果最近一次出队的节点不是尾节点,则队首指针保持不变。在链表中的一个汇聚节点出队完毕后,接收链表释放命令,检测到释放标志,释放链表中汇聚节点的地址空间,完成数据报文的出队操作。
本实施例为了解决大规模队列管控中资源和速率的瓶颈,使用“节点汇聚”的方式实现单链表队列管控,解决节点占用SRAM资源过多而引起的管脚和布线问题,通过单链表实现大规模队列的队列管控,在保证线速的前提下,节省了外部片外QDR存储器存储空间以及管脚,减轻了使用FPGA实现的流量管控的布板的复杂度。
如图2所示,图2为本发明数据队列出队管控方法的第二实施例的流程图。本实施例以图1所示实施例为基础,对写入重组队列的步骤进行详细描述,步骤S20具体包括:
步骤S21,按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
本实施例将当前链表中各节点划分为奇数节点和偶数节点,即构成了奇链表和偶链表,在接收队列调度指令、获取队列描述符和出队指针的同时,还可获取奇链表报文尾标识和偶链表报文尾标识。
步骤S22,i=1;
步骤S23,根据第i个奇数节点的绝对地址,获取第i个奇数节点的子节点信息,写入重组队列,并预读第i+1个奇数节点的子节点信息,写入奇链表;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表。具体为,获取调度侧给出的出队队列号,查询奇链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出奇数节点的子节点信息,写入重组队列;预读本队列下一奇数节点的子节点信息,得到结果后写入奇链表。
步骤S24,根据第i个偶数节点的绝对地址,获取第i个偶数节点的子节点信息,写入重组队列,并预读第i+1个偶数节点的子节点信息,写入偶链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表。具体为,获取当前调度侧给出的出队队列号,查询偶链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,得到结果后写入偶链表;
步骤S25,判断当前链表中是否所有节点的子节点信息均写入重组队列;如果是,则结束步骤S20;如果否,则i加1,返回步骤S23。
如果当前链表中仍然有节点的子节点信息未写入重组队列,则获取下一奇数节点的子节点信息,写入重组队列,并预读再下一奇数节点的子节点信息;之后再获取下一偶数节点的子节点信息,写入重组队列,并预读再下一偶数节点的子节点信息。具体为,获取调度侧给出的出队队列号(与上队列号相同),查询奇链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取队列描述符和出队子指针,读出下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,得到结果后写入奇链表;获取调度侧给出的出队队列号(与上队列号相同),查询偶链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,得到结果后写入偶链表。
奇偶链表的更新在队列出队时完成,根据当前出队的节点的奇偶属性,读取下一个奇数节点或者偶数节点。在同一个汇聚节点内的节点的预读按照奇偶交叉的方式预读,出队过程中将队列属于同一数据报文的节点进行编号,分为奇数节点和偶数节点,奇数节点出队过程中,对下一个奇数节点进行预读;偶数节点出队过程中,对下一个偶数节点进行预读;预读得到的节点存储在FPGA的片内RAM中,奇链表和偶链表独立存储,与队列相对应。在得到出队队列号之后,立刻给出数据报文的出队是否完成标志,以切换调度端口队列。当汇聚节点内的最后两个节点出队时,需要首先得到队列链表中下一个汇聚节点的地址,考虑到片外QDR存储器的读延时和线速要求,在入队申请新的队列链表汇聚节点地址后,将新的汇聚节点的首个奇数节点的地址写入上一链表的最后一个奇数节点的子节点信息中,新的链表的首个偶数节点的地址写入上一链表的最后一个偶数节点的子节点信息中。通过队列双链表预读操作,有效提高了节点出队的效率。
如图3所示,图3为本发明数据队列出队管控方法的第三实施例的流程图。本实施例以图1所示实施例为基础,对写入排序队列的步骤进行详细描述,步骤S30具体包括:
步骤S31,监测重组队列中出队节点的子节点信息中包括的数据报文的开始标志和开始标志到达的先后顺序;
由于队列调度交叉出队,属于同一个数据报文的节点并不是连续的,为了避免同一个数据报文的节点不能连续地给出出队命令的问题,设计了出队命令的报文重组操作。属于同一个数据报文的节点形成的链表中,首节点包括开始标志,尾节点包括报文尾标识,按照开始标志到达的先后顺序,即按照同一个数据报文中首节点到达的先后顺序,将同一数据报文的节点依次写入排序队列,实现报文重组操作,使属于同一个数据报文的节点连续地给出出队命令,保证发出出队命令的顺序与调度的顺序相同,避免出现出队命令的报文交错和乱序。
步骤S32,j=1;
步骤S33,将第j个到达的开始标志对应的节点的调度列号写入排序队列中;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
步骤S34,依次将与第j个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
依次将与首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
步骤S35,判断当前写入节点的子节点信息中是否包括报文尾标识;如果是,则执行步骤S36;如果否,则返回步骤S34;
步骤S36,判断重组队列中是否所有数据报文的调度序号均写入排序队列中;如果是,则结束步骤S30;如果否,则j加1,返回步骤S33。
如果当前数据报文已写完,则将下一个到达的开始标志对应的节点的子节点信息写入排序队列中,并依次将与下一个到达的开始标志对应的节点属于同一数据报文的节点的子节点信息写入排序队列中。
报文重组为所有队列设置一组重组队列和一个排序队列,根据线速的要求和采用的时钟,来设置重组队列的数量。例如,以10个时钟周期为一个出队时间节点,每一个出队时间节点内完成四个不同队列的出队操作为例,需要设置四个重组队列,每个队列对应一个时隙内的出队操作。为了实现报文出队保序,设置一个排序队列存储各个重组队列的开始标志到达的顺序,实现队列报文的出队命令按照队列调度的顺序由重组队列中读出。重组队列的读取与线速要求的出队速率相同,以每2个周期完成一个节点的出队为例,重组队列实现每2个周期读取一个队列节点,然后根据其中的报文尾标识字段决定是否继续读取本队列还是切换队列。每个队列中存储的出队命令都由队列中读出,并且在得到第一个节点的内容后,确定是否读本队列的下一节点还是读另外的队列节点,由于队列第三个周期才能出数据,每2个周期读出1个节点的出队命令的要求为每个队列做出预读操作,排序队列的内容也预读。四组重组队列和一组排序队列进行独立预读,存储在每个队列的预读寄存器中。每一个重组队列的预读寄存器,存储队列中第一个节点的内容,每个重组队列预读的操作是各自独立的,每一次预读寄存器内的内容被读取时,都触发新的预读操作;排序队列也进行预读,将下一个将要出队的队列的编号预读出来,设置一组出队信息寄存器,读取排序队列的预读寄存器的值,在出队过程中,为选择出队节点命令做出指示。本实施例通过对连续出队队列的报文重组方案,实现按照报文分割的节点调度,整报文出队。
如图4所示,图4为本发明数据队列出队管控方法的第四实施例的流程图。本实施例在图1所示实施例的基础上,增加了预读下一链表的步骤,步骤S20之后还包括:
步骤S51,在当前写入节点的子节点信息中包括报文尾标识时,判断队列在出队后是否为空;如果是,则执行步骤S52;如果否,则执行步骤S54;
报文尾标识用于指示每个链表的尾节点是否为报文的最后一个节点(0表示不是报文尾,1代表是报文尾),以便于预出队操作。在初始化时对每一个链表预先分配好连续的空间,1个链表只接收同一个数据报文的节点。
步骤S52,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
步骤S53,按照下一链表中各节点的绝对地址的奇偶顺序,交叉获取下一链表中各节点的子节点信息,写入重组队列。
步骤S54,释放队列调度指令,停止写入重组队列。
出队过程中,每个链表由第一个节点出队开始,直到最后一个节点读出,链表被释放。在队列出队读空之后,队列所属的最后一个链表节点出队之后,释放队列。根据队列描述符中的队列首地址和尾地址、以及队列的出队子指针和入队子指针,判断队列出队之后是否为空,如果队列为空,发出释放本链表的命令,不再预读报文尾标识。如果队列为非空,则在队列中预读下一链表的子节点信息,选择对应的节点报文尾标识信息,写入奇偶报文尾标识链表。本实施例通过队列空和将空属性的判断,完成空闲链表的维护。
如图5所示,图5为本发明数据队列出队管控装置的结构示意图。本实施例的数据队列出队管控装置,包括:
地址生成模块10,用于接收队列调度指令,获取队列描述符中的队列首地址和队列的各链表中各节点的出队子指针,组合成各节点的绝对地址;
重组队列模块20,用于按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;
预读队列模块30,用于按照出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表;并从奇偶链表中获取本次出队节点的报文尾标识;
排序队列模块40,用于监测重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
出队指令模块50,用于按照排序队列中出队数据报文的调度序号,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
本实施例的片外QDR存储器包括队列描述符片外QDR存储器、链表片外QDR存储器和子节点信息片外QDR存储器,分别存储每个队列的描述符、队首指针和队尾指针、汇聚节点(即各队列链表中所有节点)的信息、每个节点的子节点信息,其中汇聚节点的信息包括队列链表中下一个汇聚节点的首节点报文尾标识和队列链表中下一汇聚节点的地址,子节点信息包括节点长度和节点是否为报文尾标识。出队操作接收来自队列调度的出队队列号,读取队列描述符和出队子指针,队列描述符中包括有队列首地址。每个节点的实际地址由基地址加上偏移地址组成,对于队列链表的同一个汇聚节点内的节点的基址是相同的,偏址为其余节点相对于同一个链表中的第一个节点的偏移量。由于一个链表内各个节点的地址是连续的,所以如果从一个汇聚节点的第一个节点读取的话,就可以立即知道下一个节点的地址,而不需要等待第一次读操作的返回结果,汇聚节点的分配和释放以链表为基本单位。因此,在获取每个节点的实际地址,即绝对地址,可将队列的队首报文存储的地址和队列中各节点的出队子指针组合成出队节点的绝对地址。属于同一数据报文的所有节点必须写入同一个重组队列中。读取子节点信息片外QDR存储器,根据出队子指针的奇偶属性,将当前链表分为奇链表和偶链表,交叉读取奇链表和偶链表中各子节点信息,在获取奇链表的子节点信息时,预读偶链表的节点地址,在获取偶链表的子节点信息时,预读奇链表的节点地址,通过双链表交叉操作,有效提高各节点的子节点信息出队效率。奇偶链表中保存的数据报文起止信息及时反馈给调度侧,保证调度侧及时切换调度队列,满足调度侧的线速要求。由于队列调度交叉出队,属于同一个数据报文的节点并不是连续的,为了避免同一个数据报文的节点不能连续地给出出队命令的问题,设计了出队命令的报文重组操作。属于同一个数据报文的节点形成的链表中,首节点包括开始标志,尾节点包括报文尾标识,按照开始标志到达的先后顺序,即按照同一个数据报文中首节点到达的先后顺序,将同一数据报文的节点依次写入排序队列,实现报文重组操作,使属于同一个数据报文的节点连续地给出出队命令,保证发出出队命令的顺序与调度的顺序相同,避免出现出队命令的报文交错和乱序。根据排序队列的顺序,将出队命令发送给寄存器,获取对应的数据报文,完成数据报文的出队。当排序队列中一个数据报文对应的节点的报文尾标识标志为1时,标志着一个报文出队结束,启动另一个数据报文的出队。当出队的节点为尾节点,即节点包括报文尾标识时,读取排序队列中下一数据报文对应的节点,并更新出队信息寄存器的值。如果最近一次出队的节点不是尾节点,则出队信息寄存器保持不变。在一个链表中的节点出队完毕后,接收链表释放命令,检测到释放标志,释放链表,完成数据报文的出队操作。
本实施例为了解决大规模队列管控中资源和速率的瓶颈,使用“节点汇聚”的方式实现单链表队列管控,解决节点占用SRAM资源过多而引起的管脚和布线问题,通过单链表实现大规模队列的队列管控,在保证线速的前提下,节省了外部片外QDR存储器存储空间以及管脚,减轻了使用FPGA实现的流量管控的布板的复杂度。
本发明实施例中,重组队列模块20具体用于:
按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表;
根据下一奇数节点的绝对地址,获取下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,写入奇链表;
根据下一偶数节点的绝对地址,获取下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,写入偶链表;
以此类推,直至当前链表中所有节点的子节点信息均写入重组队列。
本实施例将当前链表中各节点划分为奇数节点和偶数节点,即构成了奇链表和偶链表,在接收队列调度指令、获取队列描述符和出队指针的同时,还可获取奇链表报文尾标识和偶链表报文尾标识。获取调度侧给出的出队队列号,查询奇链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出奇数节点的子节点信息,写入重组队列;预读本队列下一奇数节点的子节点信息,得到结果后写入奇链表。获取当前调度侧给出的出队队列号,查询偶链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,得到结果后写入偶链表;如果当前链表中仍然有节点的子节点信息未写入重组队列,则获取下一奇数节点的子节点信息,写入重组队列,并预读再下一奇数节点的子节点信息;之后再获取下一偶数节点的子节点信息,写入重组队列,并预读再下一偶数节点的子节点信息。具体为,获取调度侧给出的出队队列号(与上队列号相同),查询奇链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取队列描述符和出队子指针,读出下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,得到结果后写入奇链表;获取调度侧给出的出队队列号(与上队列号相同),查询偶链表,给出队列的报文起止标识,调度侧确定是否切换队列;获取当前出队队列的队列描述符和出队子指针作为地址,读出下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,得到结果后写入偶链表。奇偶链表的更新在队列出队时完成,根据当前出队的节点的奇偶属性,读取下一个奇数节点或者偶数节点。在同一个汇聚节点内的节点的预读按照奇偶交叉的方式预读,出队过程中将队列属于同一数据报文的节点进行编号,分为奇数节点和偶数节点,奇数节点出队过程中,对下一个奇数节点进行预读;偶数节点出队过程中,对下一个偶数节点进行预读;预读得到的节点存储在FPGA的片内RAM中,奇链表和偶链表独立存储,与队列相对应。在得到出队队列号之后,立刻给出数据报文的出队是否完成标志,以切换调度端口队列。当同一链表内的最后两个节点出队时,需要首先得到链表节点中下一个节点,考虑到片外QDR存储器的读延时和线速要求,在入队申请新的链表时,将新的链表的首个奇数节点的地址写入上一链表的最后一个奇数节点的子节点信息中,新的链表的首个偶数节点的地址写入上一链表的最后一个偶数节点的子节点信息中。通过队列双链表预读操作,有效提高了节点出队的效率。
本发明实施例中,排序队列模块40具体用于:
监测重组队列中出队节点的子节点信息中包括的数据报文的开始标志和开始标志到达的先后顺序;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
依次将与首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
在当前写入节点的子节点信息中包括报文尾标识时,下一个到达的节点作为开始标志对应的节点,将下一个到达的节点的调度序号写入排序队列中;
依次将与下一个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
以此类推,直至所有重组队列的所有数据报文的调度序号均写入排序队列中。
本实施例中,由于队列调度交叉出队,属于同一个数据报文的节点并不是连续的,为了避免同一个数据报文的节点不能连续地给出出队命令的问题,设计了出队命令的报文重组操作。属于同一个数据报文的节点形成的链表中,首节点包括开始标志,尾节点包括报文尾标识,按照开始标志到达的先后顺序,即按照同一个数据报文中首节点到达的先后顺序,将同一数据报文的节点依次写入排序队列,实现报文重组操作,使属于同一个数据报文的节点连续地给出出队命令,保证发出出队命令的顺序与调度的顺序相同,避免出现出队命令的报文交错和乱序。报文重组为所有队列设置一组重组队列和一个排序队列,根据线速的要求和采用的时钟,来设置重组队列的数量。例如,以10个时钟周期为一个出队时间节点,每一个出队时间节点内完成四个不同队列的出队操作为例,需要设置四个重组队列,每个队列对应一个时隙内的出队操作。为了实现报文出队保序,设置一个排序队列存储出队个重组队列的开始标志到达的顺序,实现队列报文的出队命令按照队列调度的顺序由重组队列中读出。重组队列的读取与线速要求的出队速率相同,以每2个周期完成一个节点的出队为例,重组队列实现每2个周期读取一个队列节点,然后根据其中的报文尾标识字段决定是否继续读取本队列还是切换队列。每个队列中存储的出队命令都由队列中读出,并且在得到第一个节点的内容后,确定是否读本队列的下一节点还是读另外的队列节点,由于队列第三个周期才能出数据,每2个周期读出1个节点的出队命令的要求为每个队列做出预读操作,排序队列的内容也预读。四组重组队列和一组排序队列进行独立预读,存储在每个队列的预读寄存器中。每一个重组队列的预读寄存器,存储队列中第一个节点的内容,每个重组队列预读的操作是各自独立的,每一次预读寄存器内的内容被读取时,都触发新的预读操作;排序队列也进行预读,将下一个将要出队的队列的编号预读出来,设置一组出队信息寄存器,读取排序队列的预读寄存器的值,在出队过程中,为选择出队节点命令做出指示。本实施例通过对连续出队队列的报文重组方案,实现按照报文分割的节点调度,整报文出队。
本发明实施例中,重组队列模块20还用于:
在当前写入节点的子节点信息中包括报文尾标识时,判断队列在出队后是否为空;
当队列在出队后为非空时,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
按照下一链表中各节点的绝对地址的奇偶顺序,交叉获取下一链表中各节点的子节点信息,写入重组队列。
本发明实施例中,重组队列模块20还用于:
当队列在出队后为空时,释放队列调度指令,停止写入重组队列的步骤。
本实施例报文尾标识用于指示每个链表的尾节点是否为报文的最后一个节点(0表示不是报文尾,1代表是报文尾),以便于预出队操作。在初始化时对每一个链表预先分配好连续的空间,1个链表只接收同一个数据报文的节点。出队过程中,每个链表由第一个节点出队开始,直到最后一个节点读出,链表被释放。在队列出队读空之后,队列所属的最后一个链表节点出队之后,释放队列。根据队列描述符中的队列首地址和尾地址、以及队列的出队子指针和入队子指针,判断队列出队之后是否为空,如果队列为空,发出释放本链表的命令,不再预读报文尾标识。如果队列为非空,则在队列中预读下一链表的子节点信息,选择对应的节点报文尾标识信息,写入奇偶报文尾标识链表。本实施例通过队列空和将空属性的判断,完成空闲链表的维护。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种数据队列出队管控方法,其特征在于,包括步骤:
接收队列调度指令,获取队列描述符中的队列首地址和所述队列的出队链表中出队节点的出队子指针,组合成出队节点的绝对地址;
按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识;
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
按照所述排序队列中出队数据报文的调度序号顺序,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
2.根据权利要求1所述的数据队列出队管控方法,其特征在于,所述按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识的步骤具体包括:
按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表;
根据下一奇数节点的绝对地址,获取下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,写入奇链表;
根据下一偶数节点的绝对地址,获取下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,写入偶链表;
以此类推,直至当前链表中所有节点的子节点信息均写入重组队列。
3.根据权利要求1所述的数据队列出队管控方法,其特征在于,所述监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中的步骤具体包括:
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志和所述开始标志到达的先后顺序;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
依次将与所述首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
在当前写入节点的子节点信息中包括报文尾标识时,下一个到达的节点作为开始标志对应的节点,将下一个到达的节点的调度序号写入排序队列中;
依次将与所述下一个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
以此类推,直至所有重组队列的所有数据报文的调度序号均写入排序队列中。
4.根据权利要求1至3任一项所述的数据队列出队管控方法,其特征在于,所述按照当前链表中出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识的步骤之后还包括:
在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空;
当所述队列在出队后为非空时,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
按照下一链表中出队节点的绝对地址的奇偶顺序,交叉获取下一链表中出队节点的子节点信息,写入重组队列。
5.根据权利要求4所述的数据队列出队管控方法,其特征在于,所述在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空的步骤之后还包括:
当所述队列在出队后为空时,释放队列调度指令,停止写入重组队列。
6.一种数据队列出队管控装置,其特征在于,包括:
地址生成模块,用于接收队列调度指令,获取队列描述符中的队列首地址和所述队列的出队链表中出队节点的出队子指针,组合成出队节点的绝对地址;
重组队列模块,用于按照当前链表中出队节点的绝对地址的顺序,获取当前链表中出队节点的子节点信息,写入重组队列,重新组合为数据报文;
预读队列模块,用于按照出队节点的奇偶顺序,交叉预取下次出队节点的子节点信息,写入奇偶链表,并从奇偶链表中预取下次出队节点的报文尾标识;
排序队列模块,用于监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志,按照所述开始标志到达的先后顺序,依次将数据报文的调度序号写入排序队列中;
出队指令模块,用于按照所述排序队列中出队数据报文的调度序号,依次将重组队列中存储的出队节点的子节点信息取出,指向对应的数据报文存储位置,发送数据报文出队指令。
7.根据权利要求6所述的数据队列出队管控装置,其特征在于,所述重组队列模块具体用于:
按照当前链表中出队节点的绝对地址的奇偶顺序,将当前链表中出队节点划分为奇数节点和偶数节点;
根据当前奇数节点的绝对地址,获取当前奇数节点的子节点信息,写入重组队列;预读下一奇数节点的子节点信息,写入奇链表;
根据当前偶数节点的绝对地址,获取当前偶数节点的子节点信息,写入重组队列;预读下一偶数节点的子节点信息,写入偶链表;
根据下一奇数节点的绝对地址,获取下一奇数节点的子节点信息,写入重组队列;预读再下一奇数节点的子节点信息,写入奇链表;
根据下一偶数节点的绝对地址,获取下一偶数节点的子节点信息,写入重组队列;预读再下一偶数节点的子节点信息,写入偶链表;
以此类推,直至当前链表中所有节点的子节点信息均写入重组队列。
8.根据权利要求6所述的数据队列出队管控装置,其特征在于,所述排序队列模块具体用于:
监测所述重组队列中出队节点的子节点信息中包括的数据报文的开始标志和所述开始标志到达的先后顺序;
将首个到达的开始标志对应的节点的调度列号写入排序队列中;
依次将与所述首个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
在当前写入节点的子节点信息中包括报文尾标识时,下一个到达的节点作为开始标志对应的节点,将下一个到达的节点的调度序号写入排序队列中;
依次将与所述下一个到达的开始标志对应的节点属于同一重组队列的数据报文的调度序号写入排序队列中;
以此类推,直至所有重组队列的所有数据报文的调度序号均写入排序队列中。
9.根据权利要求6至8任一项所述的数据队列出队管控装置,其特征在于,所述重组队列模块还用于:
在当前写入节点的子节点信息中包括报文尾标识时,判断所述队列在出队后是否为空;
当所述队列在出队后为非空时,提取当前写入节点的子节点信息中包括的下一链表首节点的地址,预读下一链表首节点的子节点信息;
按照下一链表中出队节点的绝对地址的奇偶顺序,交叉获取下一链表中出队节点的子节点信息,写入重组队列。
10.根据权利要求9所述的数据队列出队管控装置,其特征在于,所述重组队列模块还用于:
当所述队列在出队后为空时,释放队列调度指令,停止写入重组队列的步骤。
CN201310003565.0A 2013-01-06 2013-01-06 数据队列出队管控方法和装置 Active CN103914341B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310003565.0A CN103914341B (zh) 2013-01-06 2013-01-06 数据队列出队管控方法和装置
PCT/CN2013/090148 WO2014106436A1 (zh) 2013-01-06 2013-12-20 数据队列出队管控方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310003565.0A CN103914341B (zh) 2013-01-06 2013-01-06 数据队列出队管控方法和装置

Publications (2)

Publication Number Publication Date
CN103914341A true CN103914341A (zh) 2014-07-09
CN103914341B CN103914341B (zh) 2018-09-25

Family

ID=51040046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310003565.0A Active CN103914341B (zh) 2013-01-06 2013-01-06 数据队列出队管控方法和装置

Country Status (2)

Country Link
CN (1) CN103914341B (zh)
WO (1) WO2014106436A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254270A (zh) * 2015-06-15 2016-12-21 深圳市中兴微电子技术有限公司 一种队列管理方法及装置
WO2016202120A1 (zh) * 2015-06-17 2016-12-22 深圳市中兴微电子技术有限公司 一种队列存储空间管理方法及装置、计算机存储介质
WO2018107681A1 (zh) * 2016-12-13 2018-06-21 深圳市中兴微电子技术有限公司 一种队列操作中的处理方法、装置及计算机存储介质
CN108415779A (zh) * 2017-02-09 2018-08-17 英特尔公司 用于通过主机结构接口的队列管理的技术
CN108763116A (zh) * 2018-05-21 2018-11-06 南京大学 一种基于贪婪式算法的多通道ddr控制器
CN110837414A (zh) * 2018-08-15 2020-02-25 北京京东金融科技控股有限公司 任务处理方法和装置
CN111158936A (zh) * 2017-06-15 2020-05-15 北京忆芯科技有限公司 队列交换信息的方法及***
CN111796306A (zh) * 2020-07-31 2020-10-20 北京中捷时代航空科技有限公司 一种导航卫星信号接收方法及接收机
CN111930307A (zh) * 2020-07-30 2020-11-13 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及计算机可读存储介质
CN112118262A (zh) * 2020-09-21 2020-12-22 武汉中元华电科技股份有限公司 一种基于动态内存分配实现数据排序与合并的***及方法
CN113595932A (zh) * 2021-08-06 2021-11-02 上海金仕达软件科技有限公司 数据乱序报文的处理方法及专用集成电路
CN114185693A (zh) * 2021-11-22 2022-03-15 西安空间无线电技术研究所 一种可自修复的多结点聚合共享队列管理方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101594302A (zh) * 2009-07-01 2009-12-02 华为技术有限公司 数据出队的方法及装置
CN101854309A (zh) * 2010-06-18 2010-10-06 中兴通讯股份有限公司 报文输出的管理方法和装置
US8036117B1 (en) * 2002-01-17 2011-10-11 Juniper Networks, Inc. Dequeuing and congestion control systems and methods
CN102437929A (zh) * 2011-12-16 2012-05-02 华为技术有限公司 队列管理中的数据出队方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8036117B1 (en) * 2002-01-17 2011-10-11 Juniper Networks, Inc. Dequeuing and congestion control systems and methods
CN101594302A (zh) * 2009-07-01 2009-12-02 华为技术有限公司 数据出队的方法及装置
CN101854309A (zh) * 2010-06-18 2010-10-06 中兴通讯股份有限公司 报文输出的管理方法和装置
CN102437929A (zh) * 2011-12-16 2012-05-02 华为技术有限公司 队列管理中的数据出队方法及装置

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106254270A (zh) * 2015-06-15 2016-12-21 深圳市中兴微电子技术有限公司 一种队列管理方法及装置
WO2016202113A1 (zh) * 2015-06-15 2016-12-22 深圳市中兴微电子技术有限公司 一种队列管理方法、装置及存储介质
WO2016202120A1 (zh) * 2015-06-17 2016-12-22 深圳市中兴微电子技术有限公司 一种队列存储空间管理方法及装置、计算机存储介质
CN108234348B (zh) * 2016-12-13 2020-09-25 深圳市中兴微电子技术有限公司 一种队列操作中的处理方法及装置
CN108234348A (zh) * 2016-12-13 2018-06-29 深圳市中兴微电子技术有限公司 一种队列操作中的处理方法及装置
WO2018107681A1 (zh) * 2016-12-13 2018-06-21 深圳市中兴微电子技术有限公司 一种队列操作中的处理方法、装置及计算机存储介质
CN108415779A (zh) * 2017-02-09 2018-08-17 英特尔公司 用于通过主机结构接口的队列管理的技术
CN108415779B (zh) * 2017-02-09 2023-12-12 英特尔公司 用于通过主机结构接口的队列管理的方法和装置
CN111158936A (zh) * 2017-06-15 2020-05-15 北京忆芯科技有限公司 队列交换信息的方法及***
CN111158936B (zh) * 2017-06-15 2024-04-09 北京忆芯科技有限公司 队列交换信息的方法及***
CN108763116A (zh) * 2018-05-21 2018-11-06 南京大学 一种基于贪婪式算法的多通道ddr控制器
CN110837414A (zh) * 2018-08-15 2020-02-25 北京京东金融科技控股有限公司 任务处理方法和装置
CN110837414B (zh) * 2018-08-15 2024-04-12 京东科技控股股份有限公司 任务处理方法和装置
CN111930307B (zh) * 2020-07-30 2022-06-17 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及计算机可读存储介质
CN111930307A (zh) * 2020-07-30 2020-11-13 北京浪潮数据技术有限公司 一种数据读取方法、装置、设备及计算机可读存储介质
CN111796306B (zh) * 2020-07-31 2023-05-02 北京中捷时代航空科技有限公司 一种导航卫星信号接收方法及接收机
CN111796306A (zh) * 2020-07-31 2020-10-20 北京中捷时代航空科技有限公司 一种导航卫星信号接收方法及接收机
CN112118262A (zh) * 2020-09-21 2020-12-22 武汉中元华电科技股份有限公司 一种基于动态内存分配实现数据排序与合并的***及方法
CN113595932A (zh) * 2021-08-06 2021-11-02 上海金仕达软件科技有限公司 数据乱序报文的处理方法及专用集成电路
CN113595932B (zh) * 2021-08-06 2024-05-14 上海金仕达软件科技股份有限公司 数据乱序报文的处理方法及专用集成电路
CN114185693A (zh) * 2021-11-22 2022-03-15 西安空间无线电技术研究所 一种可自修复的多结点聚合共享队列管理方法

Also Published As

Publication number Publication date
WO2014106436A1 (zh) 2014-07-10
CN103914341B (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
CN103914341A (zh) 数据队列出队管控方法和装置
CN102437929B (zh) 队列管理中的数据出队方法及装置
CN101635682B (zh) 一种存储管理的方法和***
CN103581055B (zh) 报文的保序方法、流量调度芯片及分布式存储***
CN110462599A (zh) 用于循环缓冲器的自主硬件管理的设备和方法
CN106325758B (zh) 一种队列存储空间管理方法及装置
CN102262590B (zh) 一种用于对硬件加速器的请求队列重排的方法和***
CN105653474B (zh) 一种面向粗粒度动态可重构处理器的配置缓存控制器
CN108234348A (zh) 一种队列操作中的处理方法及装置
CN102130833A (zh) 一种高速路由器流量管理芯片链表存储管理方法及***
CN101771598A (zh) 一种实时以太网通信调度方法
US20200259766A1 (en) Packet processing
CN107800644A (zh) 一种可动态配置的流水化令牌桶限速方法与装置
CN108199985A (zh) GPGPU中基于全局节点信息的NoC仲裁方法
CN104243536A (zh) 一种高速列车控制网络半实物仿真***
CN102882809B (zh) 一种基于报文缓存的网络限速方法及装置
CN107255961A (zh) 一种高效数据交互的无线智能示波器
CN104468156B (zh) 一种利用时隙仲裁节省资源开销的方法和设备
CN106254270A (zh) 一种队列管理方法及装置
CN106375249B (zh) 交换芯片的控制方法及控制***
CN101594201B (zh) 链式队列管理结构整合错误数据过滤的方法
CN104808950B (zh) 对嵌入式存储器元件的模式依赖性访问
CN102025694B (zh) 基于dsp阵列实现以太网数据发送的装置及方法
CN109450825A (zh) 用于交换机的数据调度方法和装置
CN100499563C (zh) 提高分组应用的存储器存取效率

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221024

Address after: Zhongxing Industrial Park, Liuxian Avenue, Xili Street, Nanshan District, Shenzhen City, Guangdong Province

Patentee after: SANECHIPS TECHNOLOGY Co.,Ltd.

Address before: 518057 Ministry of justice, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen, Guangdong

Patentee before: ZTE Corp.