一种队列管理方法,包括:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接子队列的所述第一缓冲器以形成该队列;断开第一个第一缓冲器与第二个第一缓冲器之间的链接,使复数分离缓冲器自队列分离出来,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器;及释放出所述分离缓冲器。一种队列管理装置亦在此提出。一种队列管理装置亦在此提出。一种队列管理装置亦在此提出。
【技术实现步骤摘要】
队列管理方法及队列管理装置
[0001]本专利技术是有关于一种数据存储技术,特别是指一种队列管理方法及其装置。
技术介绍
[0002]队列可用来暂时存储数据,在数据传输上提供缓冲的功能。有时,需要清除(flush)队列,以使系统能回收储存空间来使用。清除队列的动作,意指将队列中的缓冲器中的数据丢弃,并使所述缓冲器回到空状态。
[0003]一般而言,单层链表(Linked list)方式所形成的队列在清除队列的过程是不能被中断,其包括以下动作:停止输入数据至队列、停止从队列输出数据、实际进行清除动作(包括对齐读指针和写指针、重置相关计数器、回收缓冲器至缓冲器池中)及将队列返回给系统。因此,为了清除队列,将使得队列在一段时间内无法正常的使用,影响系统的执行效率。
技术实现思路
[0004]有鉴于此,本专利技术一实施例提出一种队列管理方法,应用于管理包括复数缓冲器的一队列。队列管理方法包括:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接子队列的所述第一缓冲器以形成该队列;断开第一个第一缓冲器与第二个第一缓冲器之间的链接,使复数分离缓冲器自队列分离出来,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器;及释放出所述分离缓冲器。
[0005]本专利技术一实施例还提出一种队列管理装置,包括:一存储器电路及一队列管理电路。接收端口配置为接收一网络封包。存储器电路包括复数优先权队列,所述优先权队列对应于复数优先权。输出电路配置为将数据入队至所述优先权队列中的一目标队列,并将数据自目标队列出队而输出。队列管理电路配置为利用链表方式串接所述缓冲器而形成所述优先权队列中的至少一缩减队列。所串接的所述缓冲器包括复数第一缓冲器及复数第二缓冲器。每一第一缓冲器之后串接至少一第二缓冲器。队列管理电路还利用链表方式串接缩减队列的所述第一缓冲器。在断开第一个第一缓冲器与第二个第一缓冲器之间的链接之后,使复数分离缓冲器自缩减队列分离出来,并释放出所述分离缓冲器。其中,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器。
[0006]本专利技术一实施例还提出一种队列管理装置,应用于管理包括复数缓冲器的一队列。队列管理装置包括一队列管理电路,耦接所述缓冲器,并配置为:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接该子队列的所述第一缓冲器以形成该队列;借由断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接,自该队列分离出复数分离缓冲器,所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器;及释放出所述分离缓冲器。
[0007]依据本专利技术实施例提出的队列管理方法及队列管理装置,可简便的释放队列(缩减队列)的部分缓冲器。并且,间歇地对队列(缩减队列)进行分段清除,无需一次完整的清除整个队列(缩减队列)。因此,可大幅减少影响队列(缩减队列)的入队和出队的功能,而不需中断网络封包转发动作。
附图说明
[0008]图1为本专利技术一实施例的队列管理方法的流程图。
[0009]图2为本专利技术一实施例的第一层链表的示意图
[0010]图3为本专利技术一实施例的第二层链表的示意图。
[0011]图4为本专利技术一实施例的自队列分离缓冲器的示意图。
[0012]图5为本专利技术一实施例的队列管理方法应用于封包转发装置的架构示意图。
[0013]10
···
接收端口
[0014]20
···
输出端口
[0015]30
···
存储器电路
[0016]31
···
缓冲器
[0017]31a
···
第一缓冲器
[0018]31b
···
第二缓冲器
[0019]32
···
缓冲器池
[0020]33,33a~33h
···
优先权队列
[0021]34
···
队列
[0022]35
···
区段
[0023]36
···
分离缓冲器
[0024]40
···
输出电路
[0025]50
···
队列管理电路
[0026]60
···
队列管理装置
[0027]S11~S14
···
步骤
具体实施方式
[0028]参照图1,是为本专利技术一实施例的队列管理方法的流程图,是执行多层链表(Linked list)。所述队列管理方法是由一队列管理电路50(如图5所示)执行。首先,在步骤S11中,利用链表方式,串接复数缓冲器31而形成一队列34。如图2所示,是为本专利技术一实施例的第一层链表的示意图,虚线箭头示意缓冲器31之间的链接关系。所述缓冲器31是来自于一缓冲器池32(如图5所示)。具体来说,第一层链表会建立一记录表(后称第一表),用以记录第一个缓冲器31的地址及每一缓冲器31所链接到的下一个缓冲器31地址。如此,依据第一表可逐一遍历(traverse)队列34中的缓冲器31而取得储存于其内的数据,即出队(dequeue)。在出队过程中,从队列34前端的缓冲器31取出数据,将已取出数据的缓冲器31释放出去在此,经释放的缓冲器31是回收至缓冲器池32中。另一方面,对队列34加入数据时,即入队(enqueue),也会利用到第一表。具体来说,当需要加入相当于一个缓冲器31能存储的数据时,会从缓冲器池32中取出一个未使用的缓冲器31,将数据存储至此缓冲器31,并
在队列34末端以链表方式串接此缓冲器31。
[0029]在步骤S12中,利用链表方式,串接队列34的部分缓冲器31(于后称第一缓冲器31a),如图3所示,是为本专利技术一实施例的第二层链表的示意图,粗线箭头示意第一缓冲器31a间的链接关系。第二层链表会建立一记录表(后称第二表),以记录第一缓冲器31a的地址及每一第一缓冲器31a所链接到的下一个第一缓冲器31a地址。为了便于说明,队列34中除了第一缓冲器31a之外的其余缓冲器31将称作第二缓冲器31b。也就是说,缓冲器31包括复数第一缓冲器31a及复数第二缓冲器31b。在第一层链表,利用链表方式,在每一第一缓冲器31a之后串接至少一第二缓冲器31b以形成复数子队列。队列34经由第一缓冲器31a区分为复数区段35(即子队列),每一区段35(即子队列)包括一个第一缓冲器31a及其后的一个或多个第二缓冲器31b。依据第二表,可逐一遍历队列34中的区段35(即子队列)。由于第一表记录每一个区段35的所述缓冲器31的链接关系,依据第一表,可逐一遍历区段35中的缓冲器31。在一些实施例中,在步骤S11中,第一表不记录每一区段35中的最后一个第二缓冲器31本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种队列管理方法,应用于管理包括复数缓冲器的一队列,该队列管理方法包括:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接该子队列的所述第一缓冲器以形成该队列;断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接,使复数分离缓冲器自该队列分离出来,所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器;及释放出所述分离缓冲器。2.如权利要求1所述的队列管理方法,其中在使所述分离缓冲器自该队列分离出来的过程中,该队列暂停执行入队和出队的功能,在所述分离缓冲器自该队列分离出来之后,该队列恢复执行入队和出队的功能。3.如权利要求1所述的队列管理方法,其中该队列经由所述第一缓冲器区分为复数区段,每一该区段包括一个该第一缓冲器及其后的该至少一第二缓冲器,每一该区段用于储存一网络封包。4.如权利要求1所述的队列管理方法,适用于复数优先权队列中的至少一缩减队列,该至少一缩减队列相较于其他所述优先权队列具有较低优先权层级。5.如权利要求1所述的队列管理方法,其中该队列为一多层链表结构。6.如权利要求1所述的队列管理方法,其中未分离的所述缓冲器仍形成该队列,该队列的大小相应地改变。7.一种队列管理装置,包括:一存储器电路,包括复数优先权队列,所述优先权队列对应于复数优先权;一输出电路,配置为将一数据入队至所述优先权队列中的一目标队列,并将该数据自该目标队列出队而输出;及一队列管理电路,配置利用链表方式串接复数缓冲器而形成所述优先权队列中的至少一缩减队列,所串接的所述缓冲器包括复数第一缓冲器及复数第二缓冲器,每一该第一缓冲器之后串接至少一该第二缓冲器,该队列管理电路还利用链表方式串接该缩减队列的所述第一缓冲器,在断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接之后,使复数分离缓冲器自该缩减...
【专利技术属性】
技术研发人员:黄德隆,
申请(专利权)人:瑞昱新加坡有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。