专利名称:队列存储空间的管理方法和设备的制作方法
技术领域:
本发明涉及通信技术领域,特别涉及一种队列存储空间的管理方法和设备。
背景技术:
报文或报文信息的入队、出队管理是通信处理芯片中常见的功能。随着
网络流量的飞速发展,对队列管理模块(Queue Manager;简称QM)的要求 也越来越高,从流量从10G比特每秒(Giga bit pet second;简称Gbps)、 20Gbps到40Gbps,甚至100Gbps。通常情况下,队列管理包括入队、出队两 个基本操作。报文入队时,根据报文包含的队列号可以将报文存储到对应的 队列空间中,在报文从出口出队时,可以从队列空间读出入队的报文。
在一个具体队列中,报文是按照顺序存入、顺序读出的,存储报文的队 列空间总是有限的。现有的一种分配管理队列空间方法是固定独享分配地址 空间为每一个队列预先分配一大段连续空间,所有属于同一个队列"^艮文按 到达的顺序依次使用这个队列的连续空间。 一般是把已有的队列存储空间平 均分配给每个队列,进行队列的存储访问时,可以根据队列号以及队列内的 报文顺序号计算出访问的地址。固定独享分配地址空间方法的处理非常简单, 队列在发完一个包之后,可以顺序递增的计算出下一个包的地址。但是,固 定独享分配地址空间的方法中地址空间不能共享,即^f吏某个队列 一个包都没 有,它的地址空间也不会给别的队列用,造成了地址空间的浪费;并且由于 地址空间有限,当队列数非常多的时候,每个队列分配到的空间就非常小了, 抗突发能力较弱。
另 一种分配管理队列空间的方法是共享空间队列,共享空间队列空间管 理方法更为通用,尤其是在队列数目比较多的情况下。在共享空间队列空间 管理中,空间由所有队列共享,当某个报文到达时给该报文分配一个地址空 间。由于属于不同队列的报文交错到达,因此一个队列下各个报文存放的地址空间通常无法保证连续,需要给每个队列做一个链表,把属于同一个队列 的报文的地址空间链接起来。共享空间队列空间管理的方法的优点是空间充
分共享,缺点是需要操作链表。在报文出队的时候,首先要读出队列头;然 后根据队列头中的信息,读出下一个报文的地址;再将这个地址作为新的队 列头指针。
共享空间队列空间管理是一种基于链表的队列管理, 一般包括以下4个 方面(1)空闲指针链表,进行指针的分配、回收处理;(2)队列的链表 状态信息表,包括每个队列的长度、此链表的头指针、尾指针;(3)队列 链表,每个队列维护一个链表,把所有报文入队时申请的队列指针按照顺序 链接起来;(4)队列报文信息,通过链表的指针直接访问。其中报文入队操 作具体为申请一个空闲指针,更新队列链表状态信息表的尾指针以及队列 长度(长度加l),更新队列链表,把当前尾指针指向刚申请的空闲指针(链 表增加一个节点)。报文出队操作具体为根据队列链表状态信息表的头指 针去读队列链表,得到头指针的下一个指针,更新链表状态信息表的队列长 度(长度减l),刷新链表头指针为下一个指针。
现有的基于链表的队列管理方法,是一个报文分配一个独立地址。由于 地址数量非常多,需要用一个随机存储器 (Random Access Memory;简称 RAM)来存放。队列每发送一个报文,都需要刷新这个队列的头指针,需要先 从RAM中读出队列下一个报文的地址,然后在将这个报文的地址写到队列头 指针。假如RAM的读延时比较大,则头指针的刷新要花很长时间。而在头指 针刷新完成之前,这个队列不能发下一个报文。影响队列发报文的速度。由 于共享空间队列空间管理涉及空闲指针的分配回收、队列链表的管理, 一般 需要用FPGA片外RAM来存放队列指针链表。以流量为40Gbps的队列管理为 例,包处理速率为60百万包每秒(Million Packet Per Second;简称Mpps ) 次,在FPGA的200Mpps工作时钟频率的情况下,空闲指针的分配、回收、队 列的链表更新则需要200Mpps/60 Mpps =3周期(cycle),即每3个周期需 要完成一次指针的分配、回收处理操作,链表的更新也要求3个周期处理完 成。但链表本身的特点需要根据当前指针去读RAM,获取RAM的内容后才能 得到下一个RAM的读地址,读取延迟也较大。而如果处理80Gbps/100Gbps时, 则对RAM的要求更高,已经达到目前RAM、现场可编程门阵列(Field-Programmable Gate Array;简称FPGA)工作频率的设计能力极限。
采用共享队列空间管理的方法,可以支持的队列管理能力较低,如果需 要支持更高的队列管理能力,则需要提升FPGA工作频率,并选用时钟频率更 高、读延时更小的片外存储器RAM,不仅增加了成本,而且加大了设计难度。
发明内容
本发明实施例提供一种队列存储空间的管理方法和设备,用以解决现有 技术中存在的队列管理能力低以及提高队列管理能力所需成本高、设计难度 大的问题。
本发明实施例提供一种队列存储空间的管理方法,包括
将队列空闲指针链表中的队列空闲指针设置为块指针,每个所述块指针 包括第一数量个子指针;
若报文需要加入指定队列,判断所述指定队列申请的块指针内的第一数 量个子指针是否用完或判断所述指定队列的长度是否为空;
如果所述指定队列申请的块指针内的第一数量个子指针已用完或所述指 定队列的长度为空,从队列空闲指针链表中为所述指定队列申请一个队列空 闲指针作为新的块指针,才艮据所述新的块指针将所述报文加入所述指定队列。
本发明实施例又提供一种队列存储空间的管理设备,包括
设置模块,用于将队列空闲指针链表中的队列空闲指针设置为块指针, 每个所述块指针包括第一数量个子指针;
判断模块,用于在报文需要加入指定队列时,判断所述指定队列已申请 的块指针内的固定数量的子指针是否用完或判断所述指定队列的长度是否为
々
么,
第一入队模块,用于在所述指定队列申请的块指针内的固定数量的子指 针已用完或所述指定队列的长度为空时,从队列空闲指针链表中为所述指定 队列申请一个队列空闲指针作为新的块指针,根据所述新的块指针将所述报 文加入所述指定队列;
存储模块,用于存储所述队列空闲指针链表。
本发明实施例提供的队列存储空间的管理方法和设备,采用块指针对队列存储空间进行管理,可以降低对队列空闲指针链表和队列链表的访问次数,
减少管理RAM所需的带宽,可以在RAM固定的情况下大幅提高队列管理能力, 成本低、开发简单灵活。
图1为本发明队列存储空间的管理方法第一实施例的流程图; 图2为本发明队列存储空间的管理方法第二实施例的流程图; 图3为本发明队列存储空间的管理方法第三实施例的示意图; 图4为本发明队列存储空间的管理方法第三实施例中报文入队的初始状 态图5为本发明队列存储空间的管理方法第三实施例中1号实线报文加入 指定队列QO的状态图6为本发明队列存储空间的管理方法第三实施例中2号实线报文加入 指定队列QO的状态图7为本发明队列存储空间的管理方法第三实施例中1号虚线才艮文加入 指定队列Ql的状态图8为本发明队列存储空间的管理方法第三实施例中2号虛线报文加入 指定队列Ql的状态图9为本发明队列存储空间的管理方法第三实施例中16号虛线^艮文加入 指定队列Ql的状态图10为本发明队列存储空间的管理方法第三实施例中17号虚线报文加 入指定队列Ql的状态图11为本发明队列存储空间的管理方法第三实施例中16号实线才艮文加 入指定队列QO的状态图12为本发明队列存储空间的管理方法第三实施例中17号实线才艮文加 入指定队列Q0的状态图13为本发明队列存储空间的管理设备第一实施例的结构示意图14为本发明队列存储空间的管理设备第二实施例的结构示意图。
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明队列存储空间的管理方法第一实施例的流程图,如图1所
示,该队列存储空间的管理方法包括以下步骤
步骤101、将队列空闲指针链表中的队列空闲指针设置为块指针,每个 所述块指针包括第一数量个子指针。
队列本身的入队/出队操作是按照先进先出的顺序进行处理的。队列存储 空间的管理设备在为队列进行指针分配时,可以预先将队列空闲指针链表中 的空闲指针设置为块指针,每个所述块指针包括第一数量个子指针。第一数 量可以根据具体的队列管理需求(例如队列管理实际需要的处理能力和RAM 工作时钟频率等)设置。
步骤102、若报文需要加入指定队列,判断所述指定队列申请的块指针 内的第一数量个子指针是否用完或判断所述指定队列的长度是否为空,如果 所述指定队列申请的块指针内的第一数量个子指针已用完或所述指定队列的 长度为空,执行步骤103。
报文入队时,可以判断该报文需要加入的指定队列是否已经申请了块指 针,也就是可以判断指定队列是否为空,如果为空,则该指定队列没有申请 过块指针,需要执行步骤103。如果指定队列不为空即则该指定队列申请过 块指针,需要判断指定队列申请的块指针内的子指针是否已经用完,具体方 法为判断所述子指针是否指示达到所述第一数量,如果是则所述指定队列 申请的所述块指针内的第一数量个子指针用完。
例如 一般来说,子指针可以从"0000"开始,也就是"0000"对应第 一个子指针,如果第一数量为"16",则子指针为"1111"对应第16个子指 针,当子指针为"1111"时可以指示此次循环计数已达到第一数量"16", 也可以指示块指针内的第 一数量个子指针用完。
步骤103、从队列空闲指针链表中为所述指定队列申请一个队列空闲指 针作为新的块指针,根据所述新的块指针将所述报文加入所述指定队列。
如果指定队列申请的块指针内的子指针已经用完,需要从队列空闲指针 链表中为需要加入指定队列的报文申请一个队列空闲指针作为新的块指针, 根据所述新的块指针将所述报文加入所述指定队列。
步骤103具体可以包括步骤1031、从队列空闲指针链表中为所述指定队列申请一个队列空闲指 针作为新的块指针。
步骤1032、将所述新的块指针作为实际访问地址的高位地址,并将所述 新的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问 地址,所述子指针为入队顺序计数器的数值,所述入队顺序计数器的初始值 为零。
报文入队时,实际访问地址由高位地址和低位地址两部分组成,高位地 址为申请的新的块指针;低位地址为新的块指针的子指针,其中子指针具体 为入队顺序计数器的数值,入队顺序计数器记录的是当前加入指定队列的报 文的循环次序。例如队列空闲指针"0010"为新的块指针,入队顺序计数 器的数值初始的二进制地址"OOOO,,为子指针,则实际访问地址为"00100000"。
步骤1033、将所述"^艮文加入所述指定队列中所述实际访问地址后,将所 述入队顺序计数器的数值加"1",将所述指定队列的长度加'T,。
例如第一数量为"16",当第l个报文入队时,将该第1个报文加入 指定队列中实际访问地址"00100000",并将入队顺序计数器的数值加T 为"0001",将实际访问地址更新为"00100001",并将指定队列的长度加 'T,。同理,入队顺序计数器的数值为T到'"15"时,可以将15个报文 依次加入指定队列。
步骤1034、将所述指定队列的队列链表当前的尾指针更新为所述新的块 指针,并将所述队列空闲指针链表的头指针更新为下一个可用的队列空闲指 针。
如果在步骤102中当判断得出指定队列申请的块指针内的第一数量个子 指针未用完时,可以执行步骤104,具体为
步骤104、根据已有的块指针将所述报文加入所述指定队列。
指定队列不为空时,已申请的块指针内的子指针可能未用完,也可能已 用完。如果指定队列申请的块指针内的子指针没有用完,则不用申请队列空 闲指针,而是使用已有的块指针内的子指针将所述报文加入指定队列。
其中步骤104具体可以包括
步骤1041、将所述已有的块指针作为实际访问地址的高位地址,并将所 述指定队列对应的已有的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址,所述子指针为入队顺序计数器的数值,所述入 队顺序计数器的初始值为零。
步骤1042、将所述"^艮文加入所述指定队列中所述实际访问地址后,将所 述入队顺序计数器的数值加"1",将所述指定队列的长度加"1"。
例如第一数量为"16",当第16个报文入队时,将该第16个报文加 入指定队列中实际访问地址"00101111",将指定队列的长度加"1",并将 将入队顺序计数器的数值加"1"得到"0000",将实际访问地址更新为 "00100000",此时相当于将入队顺序计数器清零。如果第一数量为"4", 且入队顺序计数器的数值从"0000"开始,则在入队顺序计数器为"0011" 时清零。
在第一数量个报文加入指定队列之后,如果还有其他的报文需要加入指 定队列,则队列存储空间的管理设备可以执行步骤103,再为该指定队列申 请一个队列空闲指针;然后将队列空闲指针作为实际访问地址的高位地址, 将子指针对应的入队顺序计数器记录的数值作为实际访问地址的低位地址, 继续将第 一数量个报文加入指定队列。直到将需要加入指定队列的报文处理 完毕后,该入队操作才结束。
本实施例采用块指针对队列存储空间进行管理,块指针内的子指针个数 即第一数量可以根据队列管理能力的需求和RAM的能力具体设计,根据块指 针内的子指针对第一数量个需要加入指定队列的报文进行入队操作,降低了 对队列空闲指针链表和队列链表的访问次数,减少管理RAM所需的带宽,在 RAM固定的情况下大幅提高队列管理能力,成本低、开发简单、应用灵活。
图2为本发明队列存储空间的管理方法第二实施例的流程图,如图2所 示,在本发明队列存储空间的管理方法第一实施例的基础上,该队列存储空 间的管理方法还可以包括出队的过程,具体为
步骤201、若所述指定队列中有报文需要出队,判断指定队列中当前出 队报文对应的块指针内的子指针是否用完或所述报文出队后该指定队列是否 为空,如果是,则执行步骤202,否则,执行步骤203。
在报文出队时,队列存储空间的管理设备可以根据指定队列的链表状态 信息表读取指定队列的队列链表,判断所述报文对应的块指针内的所有子指 针是否用完或者判断所述报文出队后该指定队列是否为空,其中判断报文对应的块指针内的所有子指针是否用完的方法为判断所述报文对应的块指针 内的子指针是否指示达到所述第一数量,如果是则所述^t艮文对应的所述块指 针内的第 一数量个子指针用完。
步骤202、将所述报文对应的块指针释放,并将释放出的块指针加入所 述队列空闲指针链表。
当所述"^艮文对应的块指针内的所有子指针用完时,步骤202具体可以包
括
步骤2021 、根据所述指定队列的链表状态信息表读取所述指定队列的队 列链表。
步骤2022、将所述队列链表的头指针作为实际访问地址的高位地址,并 将所述报文对应的块指针的子指针作为所述实际访问地址的低位地址,得到 所述实际访问地址,所述子指针为出队顺序计数器的数值,所述出队顺序计 数器的初始值为零。
其中队列链表的头指针指向的地址可以作为实际访问地址的高位地址, 报文对应的块指针的子指针可以作为实际访问地址的低位地址,从而得到实 际访问地址。其中报文对应的块指针的子指针为出队顺序计数器的数值,出 队顺序计数器的数值为当前从指定队列出队的报文的循环次序。例如链表 状态信息表的头指针指向的地址为"0001",入队顺序计数器的数值初始的 二进制地址为"0000",则实际访问地址为"00010000"。或者例如队列 链表的头指针指向的地址为"0011"入队顺序计数器的数值初始的二进制地 址为"0000",则实际访问地址为"00110000"。
步骤2023、所述指定队列中所述实际访问地址中的报文出队后,将所述 指定队列的长度减'T,,将所述实际访问地址中的报文对应的块指针释放, 并将释放出的块指针加入所述队列空闲指针链表。
步骤2024、将所述指定队列的队列链表当前的头指针更新为所述队列链 表的下一指针,将所述队列空闲指针链表的尾指针或头指针更新为释放出的 块指针。
例如第一数量为"16",指定队列中实际访问地址"00011111",第 16个报文从实际访问地址"00011111"出队时,将出队顺序号加'T,得到 "0000",将实际访问地址更新为"00010000"",此时可以将出队顺序计数器清零。将得到的实际访问地址的高位地址"0001"释放为队列空闲指针。
释放出队列空闲指针后,可以将指定队列的队列链表的头指针更新为队列链 表的下一指针后,将队列空闲指针链表的尾指针更新为上述例子中释放得到
的队列空闲指针,例如"0001"。
步骤203、不释放所述报文对应的块指针。
当所述报文对应的块指针内的所有子指针未用完时,不释放所述报文对 应的块指针具体包括
步骤2031、根据所述指定队列的链表状态信息表读取所述指定队列的队 列链表。
步骤2032、将所述队列链表的头指针作为实际访问地址的高位地址,并 将所述报文对应的块指针的子指针作为所述实际访问地址的低位地址,得到 所述实际访问地址,所述子指针为出队顺序计数器的数值,所述出队顺序计 数器的初始值为零。
步骤2033、所述指定队列中所述实际访问地址中的报文出队后,将所述 出队顺序计数器的数值加"1",将所述指定队列的长度减"1",不释放所 述报文对应的块指针。
例如第一数量为"16",当第l个报文出队时,将该第1个报文从对 应的实际访问地址"00010000"出队后,将出队顺序计数器的数值加'T,为 "0001",将实际访问地址更新为"00010001"。同理,出队顺序计数器的 数值为'T,到"15"时,执行步骤202则连续15个报文可以依次从指定队 列出队。
在第一数量个报文从指定队列出队之后,如果指定队列中还有其他的报 文需要出队,则队列存储空间的管理设备根据读取队列链表的当前的头指针, 然后执行步骤201,将队列链表当前的头指针为实际访问地址的高位地址, 将报文对应的块指针的子指针即出队顺序计数器记录的数值作为实际访问地 址低位地址,将第一数量个报文从指定队列出队。直到将需要从指定队列出 队的报文处理完毕后,该出队操作才结束。
本实施例根据块指针内的子指针对指定队列中第一数量个报文进行连续 的出队操作,子指针的第一数量可以^f艮据队列管理能力的需求和RAM的能力 具体设计,通过实施本发明,可以降低对队列空闲指针链表和队列链表的访问次数,减少管理RAM所需的带宽,在RAM固定的情况下大幅提高队列管理 能力,成本低,开发简单,应用灵活。
图3为本发明队列存储空间的管理方法第三实施例的示意图,如图3所 示,在本发明队列存储空间的管理方法第一、第二实施例的基础上,以指定 队列为队列O时为例,该队列存储空间的管理方法具体为将队列空闲指针 链表中的队列空闲指针设置为块指针,每个块指针包括第一数量个子指针; 在报文入队操作时,如果指定队列申请的块指针内的第一数量个子指针已用 完或指定队列的长度为空,队列存储空间的管理设备从队列空闲指针链表31 中为队列0申请一个队列空闲指针"0001",将队列链表状态信息表32中的 尾指针Tail-Ptr-0更新为"0001",将队列0的长度(Length)力口 "1",并 更新队列链表33,将队列链表当前的尾指针指向刚申请的队列空闲指针
"0001",此时队列链表增加一个节点。假设第一数量为"16",在队列的 报文表34进行入队操作时,将入队顺序计数器counter — i记录当前报文入队 的循环次序(从"0000"到"1111")作为子指针,将申请的队列空闲指针 指向的地址"0001"与当前报文入队的循环次序(从"0000"到"1111") 结合,可以得到16个可用的实际访问地址Ptr_i_addr:从"00010000"到
"00011111",其中实际访问地址的高位地址Ptr_i为队列空闲指针,实际 访问地址的低位地址addr为入队顺序计数器counter-i记录的当前报文入队 的循环次序。然后,根据这16个实际访问地址可以将16个需要加入指定的 队列0报文依次加入队列0。此外,如果还有需要加入队列0的报文,则为 队列0再申请一个队列空闲指针例如"0011",然后将"0011"与当前报文 入队的循环次序(从"0000"到"1111")结合得到16个可用的实际访问地 址从"00110000"到"00111111",继续将需要加入指定队列0的报文依 次加入队列0,如此重复直至将需要加入指定队列0的报文全部加入队列0 为止。
在报文出队操作时,队列存储空间的管理设备根据队列的链表状态信息 表32的头指针Head—Ptr —0读取队列链表33,可以从队列链表33得到队列0 的头指针Next_Ptr_0,根据Next—Ptr — 0可以获取队列链表33的下一个指针 Next_Ptr_i。假设第一数量为"16",在队列的报文表34进行出队操作时, 可以将队列0的头指针Next-Ptr-0指向的地址Ptr —0作为实际访问地址的高位地址,将子指针即当前报文出队的循环次序作为实际访问地址的低位地址, 生成实际访问地址,具体生成方法和入队操作时相同。才艮据生成的实际访问
地址依次将队列0中的16个报文出队。并将实际访问地址的高位地址释放为 队列空闲指针,然后将链表状态信息表的队列0的长度减"1",并且将队列 链表中队列0头指针刷新为下一个指针Next-Ptr一i。
下面以第一数量为"16",制定队列为QO、 Ql为例,说明队列存储空间 的管理的具体方法
图4为本发明队列存储空间的管理方法第三实施例中报文入队的初始状 态图,如图4所示,实线报文为需要加入指定队列Q0的报文,虚线报文为需 要加入指定队列Ql的报文;指定队列QO、 Ql的初始为空;队列空闲指针链 表初始的头指针为"0",尾指针为N-1,长度为N;入队操作时,子指针对 应的QO、 Ql的入队顺序计数器Counter_i的数值为报文入队的循环次序,出 队操作时,子指针对应的出队顺序计数器Counter_o的数值为报文出队的循 环次序,Counter —i、 Counter_o初始值为"0"。
图5为本发明队列存储空间的管理方法第三实施例中1号实线报文加入 指定队列QO的状态图,如图5所示,1号实线报文是指定队列QO的第一个 报文,队列存储空间的管理设备需要为QO申请一个队列空闲指针O,此时队 列空闲指针链表的头指针更新为下一个可用指针'T',长度减"1"更新为 N-l。 QO的指针链表为0/0即QO的头指针和尾指针都为"0",此时QO的长 度为'T,,将队列空闲指针O作为实际访问地址的高位地址,将QO的入队 顺序计数器的数值"0"作为实际访问地址的低位地址,可以生成实际访问地 址,根据实际访问地址可以将1号实线报文加入指定队列Q0。 l号实线报文 加入QO后,用Counter_iO表示QO的入队顺序计数器,则入队顺序计数器 Counter —i0的数值加"1"后更新为"1"。
图6为本发明队列存储空间的管理方法第三实施例中2号实线报文加入 指定队列QO的状态图,如图6所示,2号实线报文加入指定队列QO时,将 队列空闲指针"0"作为实际访问地址的高位地址,将QO的入队顺序计数器 Counter-iO的数值"1"作为实际访问地址的^f氐位地址,生成实际访问地址 后,2号实线报文根据实际访问地址加入QO成功后,只需要将QO的入队顺 序计数器的数值加'T,后更新为"2",不需要申请新的队列空闲指针。QO的指针链表还是0/0,但是QO的长度更新为"2"。
图7为本发明队列存储空间的管理方法第三实施例中1号虚线报文加入 指定队列Ql的状态图,如图7所示,1号虚线报文为加入指定队列Ql的第 一个报文,需要从队列空闲指针链表中为Ql申请新的队列空闲指针"1"。 队列空闲指针链表的头指针更新为下一个可用指针"2",长度减"1"更新 为N-2。 Ql的指针链表为1/1即Ql的头指针和尾指针都为T ,此时Ql的 长度为"1"。将队列空闲指针'T,作为实际访问地址的高位地址,用Coun t er _ i 1 表示Ql的入队顺序计数器,则将入队顺序计数器Counter —il记录的报文入 队的循环次序"O"作为实际访问地址的低位地址,可以生成实际访问地址的, 根据实际访问地址可以将1号实线报文加入指定队列Ql中。1号虚线报文加 入Q1后,Ql的入队顺序计数器的数值加"1"后更新为"1"。
图8为本发明队列存储空间的管理方法第三实施例中2号虛线报文加入 指定队列Ql的状态图,如图8所示,2号虚线报文加入指定队列Ql时,将 队列空闲指针'T,作为实际访问地址的高位地址,将Q1的入队顺序计数器 Counter-il的数值"1"作为实际访问地址的4氐位地址,生成实际访问地址, 2号虛线报文根据实际访问地址加入Q1成功后,Ql的指针链表还是1/1,但 是QO的长度更新为"2"。只需要将QO的入队顺序计数器的数值加'T,后 更新为"2",不需要申请新的队列空闲指针。随后的3-15号虚线报文加入 Ql的方法与2号虚线报文相同。
图9为本发明队列存储空间的管理方法第三实施例中16号虛线报文加入 指定队列Ql的状态图,如图9所示,16号虚线报文加入指定队列Ql时,将 队列空闲指针'T,作为实际访问地址的高位地址,将Q1的入队顺序计数器 Coimter-il的数值"15"作为实际访问地址的低位地址,生成实际访问地址, 16号虛线报文根据实际访问地址加入Ql成功后,Ql的指针链表还是1/1, 但是Q1的长度更新为"16",队列空闲指针"1"对应的块指针的子指针已 经被全部使用。将Q1入队顺序计数器清零,表示下一个报文加入队列Ql时 需要申请新的队列空闲指针。
图10为本发明队列存储空间的管理方法第三实施例中17号虚线报文加 入指定队列Ql的状态图,如图10所示,17号虚线报文加入指定队列Ql时, 需要从队列空闲指针链表中为Ql申请新的队列空闲指针"2"。队列空闲指针链表的头指针更新为下一个可用指针"3",长度减"1"更新为N-3。 Ql 的指针链表为1/2即Q0的头指针为'T,、尾指针为"2",此时Q1的长度 为"2"。将队列空闲指针"2"作为实际访问地址的高位地址,将Q1的入队 顺序计数器Counter-il的数值"0"作为实际访问地址的低位地址,生成实 际访问地址,17号虚线报文根据实际访问地址加入Q1成功后,Ql的长度更 新为17。 17号虚线报文加入Ql后,Ql入队顺序计数器的数值加"1"后更 新为"1"。此时Ql的入队顺序计数器Counter-il进行新一轮的0-15循环 计数,队列存储空间的管理设备对需要加入Q1的报文进行新一轮入队操作。 图11为本发明队列存储空间的管理方法第三实施例中16号实线报文加 入指定队列Q0的状态图,如图11所示,假设3-15号实线报文已按照与2号 实线才艮文相同的方法加入Q 0 , 16号实线才艮文加入指定队列Q 0时,将队列空 闲指针"0"作为高位地址,将QO的入队顺序计数器Counter-i0记录的报文 入队的顺序"15"作为实际访问地址的低位地址,生成实际访问地址的,16 号实线报文根据实际访问地址成功加入QO后,Q0的指针链表还是0/0,但是 Q0的长度更新为"16",队列空闲指针"1"对应的块指针的子指针已经被 全部使用。将Q0的入队顺序计数器清零,表示下一个报文加入队列Q0时需 要申请新的队列空闲指针。
图12为本发明队列存储空间的管理方法第三实施例中17号实线4艮文加 入指定队列Q0的状态图,如图12所示,17号实线报文加入指定队列Q0时, 需要从队列空闲指针链表中为Q0申请新的队列空闲指针"3"。队列空闲指 针链表的头指针更新为下一个可用指针"4 ",长度减'T'更新为N-4。 Q0 的指针链表为0/3即Q0的头指针为"0"、尾指针为"3",此时Q0的长度 为"2"。将队列空闲指针"3"作为高位地址,将Q0的入队顺序计数器 Counter —i0的数值"0"作为实际访问地址的j氐位地址,生成实际访问地址, 17号实线报文根据实际访问地址加入QO成功后,Q0的长度更新为"17"。 17号实线报文加入QO后,Q0的入队顺序计数器的数值加'T,后更新为'T,。 此时Q0的入队顺序计数器ounter-iO进行新一轮的0-15计数,队列存储空 间的管理设备对需要加入Q0的报文进行新一轮的入队操作。
将上述1-17号实线报文和1-17号虚线报文分别加入指定队列Q0和Ql 之后,队列的报文信息的存储地址,入队时可以根据(当前报文的块指针,coimter-U访问,出队时可以根据{当前报文的块指针,counter_o)访问。
出队时,可以从队列的链表状态信息表读取队列链表,根据出队顺序计 数器Counter-o中记录的才艮文出队的顺序控制出队操作,当Counter—o计数 到"15"后,如果当前队列的报文又出队,那么可以释放队列链表的首指针, 将Counter—o清零,并更新队列空闲指针链表。但是Counter—o为"1"到 "15"时,则仅进行出队操作,并不更新队列空闲指针链表。
以2M个队列指针为例,釆用之前的一个指针控制一个^^艮文的入队出队 时,需要2Mx21bit的RAM;而本发明实施例中采用一个指4f生成16个实际 访问地址,可以对指定队列的16个报文进行入队或者出队的操作,只需要 認xl7bit的RAM,其中128K=2M/16。因此队列的链表状态信息表中,每 个队列的头指针、尾指针记录存储的指针为17bit。此外本发明实施例中申 请一个队列空闲指针,可以得到16个实际访问地址,那么对队列空闲指针链 表的访问次数降低为原来的1/16,对RAM的带宽需求也降^f氐为原来的1/16, 从而可以明显P争低对RAM的带宽需求。综上所述,本发明实施例的队列存储 空间的管理方法降低了对队列空闲指针链表和队列链表的访问次数,减少管 理RAM所需的带宽,可以在RAM固定的情况下大幅提高队列管理能力,成本
低,开发简单,应用灵活。
本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤 可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读 取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述 的存储介质包括R0M、 RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图13为本发明队列存储空间的管理设备第一实施例的结构示意图,如图 13所示,该队列存储空间的管理设备包括设置模块51、判断模块52、第 一入队模块53和存储模块55。其中设置模块51用于将队列空闲指针链表中 的队列空闲指针设置为块指针,每个所述块指针包括第一数量个子指针。判 断模块52用于在报文需要加入指定队列时,判断所述指定队列已申请的块指 针内的第一数量个子指针是否用完或判断所述指定队列的长度是否为空。第 一入队模块53用于在所述指定队列申请的块指针内的第一数量个子指针已 用完或所述指定队列的长度为空时,从队列空闲指针链表中为所述指定队列 申请一个队列空闲指针作为新的块指针,根据所述新的块指针将所述报文加入所述指定队列。存储模块55用于存储所述队列空闲指针链表。
具体地,队列本身的入队/出队操作是按照先进先出的顺序进行处理的。 入队操作时,设置模块51将存储模块55中的队列空闲指针链表中的队列空 闲指针设置为块指针,每个所述块指针包括第一数量个子指针,其中存储模 块可以为RAM。当有报文需要加入指定队列时,判断模块52判断该指定队列 申请的块指针内的第一数量个子指针是否用完或所述指定队列的长度为空, 如果所述指定队列申请的块指针内的第一数量个子指针已用完或所述指定队 列的长度为空,第一入队模块53可以从队列空闲指针链表中为所述指定队列 申请一个队列空闲指针作为新的块指针,根据所述新的块指针将所述报文加 入所述指定队列。具体可以参照本发明队列存储空间的管理方法第一、第二、 第三实施例中的相关描述。
本实施例中,第一入队^t块申请一个队列空闲指针后,可以采用块指针 内的第 一数量个子指针进行队列管理,其中第 一数量可以根据队列管理能力 的需求和RAM的能力灵活设计,根据块指针内的子指针对第一数量个需要加 入指定队列的报文进行入队操作,降低了对队列空闲指针链表和队列链表的 访问次数,减少管理RAM所需的带宽,可以在R'AM固定的情况下大幅提高队 列管理能力,成本低、开发简单、应用灵活。
图14为本发明队列存储空间的管理设备第二实施例的结构示意图,如图 14所示,队列管理包括入队操作和出队操作,在本发明队列存储空间的管理 设备第 一 实施例的基础上,该队列存储空间的管理设备在对指定队列进行入 队操作时可以包括入队顺序计数器61,用于记录当前加入所述指定队列的 报文的循环次序。
进一步地,判断模块52包括入队判断子丧块521,用于判断所述子指 针是否指示达到所述第一数量,如果是则所述指定队列申请的所述块指针内 的第一数量个子指针用完。
如果所述指定队列申请的块指针内的第一数量个子指针已用完,则第一 入队模块53可以包括申请子模块531、第一子指针子才莫块532、第一入队 子模块533和第一更新子模块534。其中申请子模块531用于从队列空闲指 针链表中为所述指定队列申请一个队列空闲指针作为块指针。第一子指针子 模块532用于将所述新的块指针作为实际访问地址的高位地址,并将所述新的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地 址,所述子指针为入队顺序计数器的数值,所述入队顺序计数器的初始值为
零。第一入队子模块533用于将所述报文加入所述指定队列中所述实际访问 地址后,将所述入队顺序计数器的数值加1,将所述指定队列的长度加1。第 一更新子模块534用于在将所述报文加入所述指定队列之后,将所述指定队 列的队列链表当前的尾指针更新为所述新的块指针,并将所述队列空闲指针 链表的头指针更新为下一个可用的队列空闲指针。
进一步地,该队列存储空间的管理设备还可以包括第二入队模块54,用 于当所述指定队列申请的块指针内的第 一数量个子指针未用完时,根据已有 的块指针将所述报文加入所述指定队列。在所述指定队列申请的块指针内的 第一数量个子指针未用完时,第二入队模块54包括第二子指针子模块541 和第二入队子模块542。其中第二子指针子模块541将所述已有的块指针作 为实际访问地址的高位地址,并将所述指定队列奸应的已有的块指针的子指 针作为所述卖际访问地址的低位地址,得到所述实际访问地址,所述子指针 为入队顺序计数器的数值,所述入队顺序计数器的初始值为零。第二入队子 模块542用于将所述才艮文加入所述指定队列中所述实际访问地址后,将所述 入队顺序计数器的数值加1,将所述指定队列的长度加1。
具体地,设置模块51将存储模块55中的队列空闲指针链表中的队列空 闲指针设置为块指针,每个所述块指针包括第一数量个子指针,其中存储模 块可以为RAM。当有报文需要加入指定队列时,判断模块52判断该指定队列 申请的块指针内的第一数量个子指针是否用完iU旨定队列是否为空,如果所 述指定队列申请的块指针内的第一数量个子指针已用完或指定队列是否为 空,申请子模块531从队列空闲指针链表中为所述报文申请一个队列空闲指 针作为新的块指针,第一子指针子模块532将所述新的块指针作为实际访问 地址的高位地址,并将所述指定队列的入队顺序计数器的数值作为所述实际 访问地址的低位地址,得到所述实际访问地址,所述入队顺序计数器的初始 值为零。然后第一入队子模块533将所述报文加入所述指定队列的实际访问 地址后,将入队顺序计数器的数值加1,并将指定队列的长度加l。此时。第 一更新子模块534可以将所述指定队列的队列链表当前的尾指针更新为所述 新的块指针,并将所述队列空闲指针链表的头指针更新为下一个可用的队列
22空闲指针。如果指定队列申请的块指针内的第一数量个子指针未用完,第二
入队模块54根据已有的块指针将所述报文加入所述指定队列。具体可以参照 本发明第一、第二、第三实施例中入队操作的相关描述。
该队列存储空间的管理设备在对指定队列进行出队操作时,还可以包括 出队模块63,用于若所述指定队列中有报文需要出队,判断所述报文对应的 块指针内的所有子指针是否用完或所述报文出队后该指定队列是否为空,如 果是,则将所述报文对应的块指针释放,并将释放出的块指针加入所述队列 空闲指针链表,否则,不释放所述报文对应的块指针。出队时,判断模块52 可以包括出队判断子模块523,用于判断所述报文对应的块指针内的子指 针是否指示达到所述第一数量,如果是则所述报文对应的所述块指针内的第 一数量个子指针用完。
进一步地,该队列存储空间的管理设备还包括出队顺序计数器65,用 于记录当前从所述指定队列出队的报文的循环次序。
再进一步地,出EM莫块63可以包括读取子模块631、第一出队子模块 632、第二出队子模块633和第二更新子模块634。其中,读取子模块631用 于根据所述指定队列的链表状态信息表读取所述指定队列的队列链表,将所 述队列链表的头指针作为实际访问地址的高位地址,并将所述报文对应的块 指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址, 所述子指针为出队顺序计数器的数值,所述出队顺序计数器的初始值为零。 第一出队子i^莫块632用于当所述^JL对应的块指针内的所有子指针未用完 时,所述指定队列中所述实际访问地址中的报文出队后,将所述出队顺序计 数器的数值加1,将所述指定队列的长度减1。第二出队子才莫块633用于当所 述^^文对应的块指针内的所有子指针用完时,所述指定队列中所述实际访问 地址中的报文出队后,将所述指定队列的长度减1,将所述实际访问地址中 的报文对应的块指针释放,并将释放出的块指针加入所述队列空闲指针链表。 第二更新子模块634用于在将所述块指针加入所述队列空闲指针链表之后, 将所述指定队列的队列链表当前的头指针更新为所述队列链表的下一指针, 将所述队列空闲指针链表的尾指针或头指针更新为释》文出的块指针。
存储模块中除了存储队列空闲指针链表之外,还可以存储指定队列的链 表状态信息表和队列链表,以及入队顺序计数器和出队顺序计数器。具体地,出队操作时,读取子模块631根据指定队列的链表状态信息表 读取指定队列的队列链表后,将队列链表的头指针作为实际访问地址高位地 址,并将子指针作为实际访问地址的低位地址,得到实际访问地址,其中子 指针为出队顺序计数器65的数值。当所述报文对应的块指针内的所有子指针 未用完时,第一出队子模块632将指定队列中实际访问地址中的报文出队后, 将所述出队顺序计数器的数值加1,将所述指定队列的长度减1,此时并不释 放报文对应的块指针。当所述报文对应的块指针内的所有子指针用完时,第 二出队子模块633将所述指定队列中所述实际访问地址中的报文出队后,将 所述指定队列的长度减1,将所述报文对应的块指针释放,并将所述块指针 加入所述队列空闲指针链表,然后,第二更新子模块634将指定队列的队列 链表当前的头指针更新为所述队列链表的下一指针,将队列空闲指针链表的 尾指针或头指针更新为释放出的块指针。
本实施例可以根据块指针内的子指针对指定队列中第一数量个报文进行 连续的入队或出队操作,子指针的第 一数量可以根据队列管理能力的需求和 RAM的能力具体设计,降低了对队列空闲指针链表和队列链表的访问次数, 减少管理RAM所需的带宽,可以在RAM固定的情况下大幅提高队列管理能力, 成本低,开发简单,应用灵活。
最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或 者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技 术方案的本质脱离本发明各实施例技术方案的范围。
2权利要求
1、一种队列存储空间的管理方法,其特征在于,包括将队列空闲指针链表中的队列空闲指针设置为块指针,每个所述块指针包括第一数量个子指针;若报文需要加入指定队列,判断所述指定队列申请的块指针内的第一数量个子指针是否用完或判断所述指定队列的长度是否为空;如果所述指定队列申请的块指针内的第一数量个子指针已用完或所述指定队列的长度为空,从队列空闲指针链表中为所述指定队列申请一个队列空闲指针作为新的块指针,根据所述新的块指针将所述报文加入所述指定队列。
2、 根据权利要求l所述的队列存储空间的管理方法,其特征在于,判断所述指定队列申请的块指针内的第一数量个子指针是否用完,包括判断所述子指针是否指示达到所述第一数量,如果是则所述指定队列申请的所述块指针内的第一数量个子指针用完。
3、 根据权利要求1或2所述的队列存储空间的管理方法,其特征在于,从队列空闲指针链表中为所述指定队列申请一个队列空闲指针作为新的块指针,根据所述新的块指针将所述报文加入所述指定队列,包括从队列空闲指针链表中为所述指定队列申请一个队列空闲指针作为新的块指针;将所述新的块指针作为实际访问地址的高位地址,并将所述新的块指针的子指针作为所述实际访问地址的〗氐位地址,得到所述实际访问地址,所述子指针为入队顺序计数器的数值,所述入队顺序计数器的初始值为零;将所述才艮文加入所述指定队列中所述实际访问地址后,将所述入队顺序计数器的数值加l,将所述指定队列的长度加1;将所述指定队列的队列链表当前的尾指针更新为所述新的块指针,并将所述队列空闲指针链表的头指针更新为下一个可用的队列空闲指针。
4、 根据权利要求1或2所述的队列存储空间的管理方法,其特征在于,还包括当所述指定队列申请的块指针内的第一数量个子指针未用完时,根据已有的块指针将所述报文加入所述指定队列,具体包括将所述已有的块指针作为实际访问地址的高位地址,并将所述指定队列对应的已有的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址,所述子指针为入队顺序计数器的数值,所述入队顺序计数器的初始^f直为零;将所述报文加入所述指定队列中所述实际访问地址后,将所述入队顺序计数器的数值加l,将所述指定队列的长度加1。
5、 根据权利要求1或2所述的队列存储空间的管理方法,其特征在于,还包括若所述指定队列中有报文需要出队,判断所述报文对应的块指针内的所有子指针是否用完或所述报文出队后该指定队列是否为空,如果是,则将所述报文对应的块指针释放,并将释放出的块指针加入所述队列空闲指针链表,否则,不释放所述报文对应的块指针。
6、 根据权利要求5所述的队列存储空间的管理方法,其特征在于,所述判断所述报文对应的块指针内的所有子指针是否用完,包括判断所述才艮文对应的块指针内的子指针是否指示达到所述第一数量,如果是则所述报文对应的块指针内的第 一数量个子指针用完。
7、 根据权利要求5所述的队列存储空间的管理方法,其特征在于,所述将所述报文对应的块指针释放,并将释放出的块指针加入所述队列空闲指针链表,包括根据所述指定队列的链表状态信息表读取所述指定队列的队列链表,将所述队列链表的头指针作为实际访问地址的高位地址,并将所述报文对应的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址,所述子指针为出队顺序计数器的数值,所述出队顺序计数器的初始值为零;所述指定队列中所述实际访问地址中的报文出队后,将所述指定队列的长度减1,将所述实际访问地址中的报文对应的块指针释放,并将释放出的块指针加入所述队列空闲指针链表;将所述指定队列的队列链表当前的头指针更新为所述队列链表的下一指针,将所述队列空闲指针链表的尾指针或头指针更新为释放出的块指针。
8、 根据权利要求5所述的队列存储空间的管理方法,其特征在于,所述不释放所述报文对应的块指针,包括根据所述指定队列的链表状态信息表读取所述指定队列的队列链表,将所述队列链表的头指针作为实际访问地址的高位地址,并将所述报文对应的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址,所述子指针为出队顺序计数器的数值,所述出队顺序计数器的初始值为零;所述指定队列中所述实际访问地址中的报文出队后,将所述出队顺序计数器的数值加1,将所述指定队列的长度减1,不释放所述报文对应的块指针。
9、 一种队列存储空间的管理设备,其特征在于,包括设置模块,用于将队列空闲指针链表中的队列空闲指针设置为块指针,每个所述块指针包括第一数量个子指针;判断模块,用于在报文需要加入指定队列时,判断所述指定队列已申请的块指针内的固定数量的子指针是否用完或判断所述指定队列的长度是否为土 ,第一入队模块,用于在所述指定队列申请的块指针内的固定数量的子指针已用完或所述指定队列的长度为空时,从队列空闲指针链表中为所述指定队列申请一个队列空闲指针作为新的块指针,才艮据所述新的块指针将所述报文加入所述指定队列;存储模块,用于存储所述队列空闲指针链表。
10、 根据权利要求9所述的队列存储空间的管理设备,其特征在于,所述判断模块包括入队判断子模块,用于判断所述子指针是否指示达到所述第一数量,如果是则所述指定队列申请的所述块指针内的第一数量个子指针用完。
11、 根据权利要求9或10所述的队列存储空间的管理设备,其特征在于,还包括入队顺序计数器,用于记录当前加入所述指定队列的报文的循环次序。
12、 根据权利要求ll所述的队列存储空间的管理设备,其特征在于,所述第一入队模块包括申请子模块,用于从队列空闲指针链表中为所述指定队列申请一个队列空闲指针作为新的块指针;第 一子指针子模块,用于将所述新的块指针作为实际访问地址的高位地址,并将所述新的块指针的子指针作为所述实际访问地址的低位地址,得到所述实际访问地址,所述子指针为入队顺序计数器的数值,所述入队顺序计数器的初始值为零;第一入队子模块,用于将所述报文加入所述指定队列中所述实际访问地 址后,将所述入队顺序计数器的数值加1,将所述指定队列的长度加1;第一更新子模块,用于在将所述报文加入所述指定队列之后,将所述指 定队列的队列链表当前的尾指针更新为所述新的块指针,并将所述队列空闲 指针链表的头指针更新为下一个可用的队列空闲指针。
13、 根据权利要求11所述的队列存储空间的管理设备,其特征在于,还 包括第二入队模块,用于当所述指定队列申请的块指针内的第一数量个子指 针未用完时,才艮据已有的块指针将所述^^文加入所述指定队列。
14、 根椐权利要求13所述的队列存储空间的管理设备,其特征在于,所 述第二入队模块包括第二子指针子模块,用于将所述已有的块指针作为实际访问地址的高位 地址,并将所述指定队列对应的已有的块指针的子指针作为所述实际访问地 址的低位地址,得到所述实际访问地址,所述子指针为入队顺序计数器的数 值,所述入队顺序计数器的初始值为零;第二入队子模块,用于将所述报文加入所述指定队列中所述实际访问地 址后,将所述入队顺序计数器的数值加1 ,将所述指定队列的长度加1。
15、 根据权利要求9或10所述的队列存储空间的管理设备,其特征在于, 还包括出队模块,用于若所述指定队列中有报文需要出队,判断所述报文对应 的块指针内的所有子指针是否用完或所述"^艮文出队后该指定队列是否为空, 如果是,则将所述报文对应的块指针释放,并将释放出的块指针加入所述队 列空闲指针链表,否则,不释放所述报文对应的块指针。
16、 根据权利要求15所述的队列存储空间的管理设备,其特征在于,所述判断模块包括出队判断子模块,用于判断所述报文对应的块指针内的子指针是否指示 达到所述第一数量,如果是则所述报文对应的所述块指针内的第一数量个子 指针用完。
17、 根据权利要求15所述的队列存储空间的管理设备,其特征在于,还包括出队顺序计数器,用于记录当前从所述指定队列出队的报文的循环次序。
18、根据权利要求15所述的队列存储空间的管理设备,其特征在于,所 述出队模块包括以下模块的一个或者多个读取子模块,用于根据所述指定队列的链表状态信息表读取所述指定队 列的队列链表,将所述队列链表的头指针作为实际访问地址的高位地址,并 将所述4艮文对应的块指针的子指针作为所述实际访问地址的低位地址,得到 所述实际访问地址,所述子指针为出队顺序计数器的数值,所述出队顺序计 数器的初始值为零;第 一 出队子才莫块,用于当所述报文对应的块指针内的所有子指针未用完 时,所述指定队列中所述实际访问地址中的报文出队后,将所述出队顺序计 数器的数值加l,将所述指定队列的长度减l;第二出队子才莫块,用于当所述报文对应的块指针内的所有子指针用完或 所述报文出队后该指定队列为空时,所述指定队列中所述实际访问地址中的 报文出队后,将所述指定队列的长度减1,将所述实际访问地址中的报文对 应的块指针释放,并将释放出的块指针加入所述队列空闲指针链表;第二更新子模块,用于在将所述块指针加入所述队列空闲指针链表之后, 将所述指定队列的队列链表当前的头指针更新为所述队列链表的下一指针, 将所述队列空闲指针链表的尾指针或头指针更新为释放出的块指针。
全文摘要
本发明实施例涉及一种队列存储空间的管理方法和设备,该队列存储空间的管理方法包括将队列空闲指针链表中的队列空闲指针设置为块指针,每个块指针包括第一数量个子指针;若报文需要加入指定队列,判断指定队列申请的块指针内的第一数量个子指针是否用完或判断指定队列的长度是否为空;如果指定队列申请的块指针内的第一数量个子指针已用完或指定队列的长度为空,从队列空闲指针链表中为指定队列申请一个队列空闲指针作为新的块指针,根据新的块指针将报文加入指定队列。本发明实施例采用块指针管理队列存储空间,降低访问队列空闲指针链表和队列链表的次数,减少管理RAM所需带宽,在RAM固定的情况下提高队列管理能力,成本低。
文档编号G06F12/06GK101605100SQ20091015198
公开日2009年12月16日 申请日期2009年7月15日 优先权日2009年7月15日
发明者伊学文, 程贵锋, 范嘉旗, 陈武茂 申请人:华为技术有限公司