CN117041189A - 队列管理方法及队列管理装置 - Google Patents

队列管理方法及队列管理装置 Download PDF

Info

Publication number
CN117041189A
CN117041189A CN202310959457.4A CN202310959457A CN117041189A CN 117041189 A CN117041189 A CN 117041189A CN 202310959457 A CN202310959457 A CN 202310959457A CN 117041189 A CN117041189 A CN 117041189A
Authority
CN
China
Prior art keywords
queue
buffer
buffers
separation
reduced
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
CN202310959457.4A
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.)
Realtek Singapore Pte Ltd
Original Assignee
Realtek Singapore Pte Ltd
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 Realtek Singapore Pte Ltd filed Critical Realtek Singapore Pte Ltd
Publication of CN117041189A publication Critical patent/CN117041189A/zh
Pending legal-status Critical Current

Links

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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9015Buffering arrangements for supporting a linked list
    • 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/544Buffers; Shared memory; Pipes
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Telephonic Communication Services (AREA)

Abstract

一种队列管理方法,包括:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接子队列的所述第一缓冲器以形成该队列;断开第一个第一缓冲器与第二个第一缓冲器之间的链接,使复数分离缓冲器自队列分离出来,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器;及释放出所述分离缓冲器。一种队列管理装置亦在此提出。

Description

队列管理方法及队列管理装置
技术领域
本发明是有关于一种数据存储技术,特别是指一种队列管理方法及其装置。
背景技术
队列可用来暂时存储数据,在数据传输上提供缓冲的功能。有时,需要清除(flush)队列,以使系统能回收储存空间来使用。清除队列的动作,意指将队列中的缓冲器中的数据丢弃,并使所述缓冲器回到空状态。
一般而言,单层链表(Linked list)方式所形成的队列在清除队列的过程是不能被中断,其包括以下动作:停止输入数据至队列、停止从队列输出数据、实际进行清除动作(包括对齐读指针和写指针、重置相关计数器、回收缓冲器至缓冲器池中)及将队列返回给系统。因此,为了清除队列,将使得队列在一段时间内无法正常的使用,影响系统的执行效率。
发明内容
有鉴于此,本发明一实施例提出一种队列管理方法,应用于管理包括复数缓冲器的一队列。队列管理方法包括:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接子队列的所述第一缓冲器以形成该队列;断开第一个第一缓冲器与第二个第一缓冲器之间的链接,使复数分离缓冲器自队列分离出来,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器;及释放出所述分离缓冲器。
本发明一实施例还提出一种队列管理装置,包括:一存储器电路及一队列管理电路。接收端口配置为接收一网络封包。存储器电路包括复数优先权队列,所述优先权队列对应于复数优先权。输出电路配置为将数据入队至所述优先权队列中的一目标队列,并将数据自目标队列出队而输出。队列管理电路配置为利用链表方式串接所述缓冲器而形成所述优先权队列中的至少一缩减队列。所串接的所述缓冲器包括复数第一缓冲器及复数第二缓冲器。每一第一缓冲器之后串接至少一第二缓冲器。队列管理电路还利用链表方式串接缩减队列的所述第一缓冲器。在断开第一个第一缓冲器与第二个第一缓冲器之间的链接之后,使复数分离缓冲器自缩减队列分离出来,并释放出所述分离缓冲器。其中,所述分离缓冲器包括第一个第一缓冲器及串接于其后的第二缓冲器。
本发明一实施例还提出一种队列管理装置,应用于管理包括复数缓冲器的一队列。队列管理装置包括一队列管理电路,耦接所述缓冲器,并配置为:利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;利用链表方式,串接该子队列的所述第一缓冲器以形成该队列;借由断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接,自该队列分离出复数分离缓冲器,所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器;及释放出所述分离缓冲器。
依据本发明实施例提出的队列管理方法及队列管理装置,可简便的释放队列(缩减队列)的部分缓冲器。并且,间歇地对队列(缩减队列)进行分段清除,无需一次完整的清除整个队列(缩减队列)。因此,可大幅减少影响队列(缩减队列)的入队和出队的功能,而不需中断网络封包转发动作。
附图说明
图1为本发明一实施例的队列管理方法的流程图。
图2为本发明一实施例的第一层链表的示意图
图3为本发明一实施例的第二层链表的示意图。
图4为本发明一实施例的自队列分离缓冲器的示意图。
图5为本发明一实施例的队列管理方法应用于封包转发装置的架构示意图。
10···接收端口
20···输出端口
30···存储器电路
31···缓冲器
31a···第一缓冲器
31b···第二缓冲器
32···缓冲器池
33,33a~33h···优先权队列
34···队列
35···区段
36···分离缓冲器
40···输出电路
50···队列管理电路
60···队列管理装置
S11~S14···步骤
具体实施方式
参照图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。
在步骤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中的最后一个第二缓冲器31b与下一个区段35的第一缓冲器31a的链接关系。在一些实施例中,每一区段35用于储存一网络封包的数据。也就是说,每一区段35的长度并非固定,视所储存的网络封包大小而定。
在执行步骤S11及步骤S12之后,可获得具有多层链表结构的队列34。例如,获得具有双层链表结构的队列34。
在一些实施例中,步骤S12在步骤S11之前执行。
在步骤S13中,断开第一个第一缓冲器31a与第二个第一缓冲器31a之间的链接,使复数缓冲器31(后称分离缓冲器36)自队列34分离出来,如图4所示。图4为本发明一实施例的自队列34分离缓冲器31的示意图。分离缓冲器36包括前述第一个第一缓冲器31a及串接于其后的第二缓冲器31b。详言之,断开第一个第一缓冲器31a与第二个第一缓冲器31a之间的链接,是利用第二表来查找出第二个第一缓冲器31a的地址,并更新第二表,将此第二个第一缓冲器31a替代成整个队列34的第一个第一缓冲器31a;且更新第一表,将此第二个第一缓冲器31a替代成整个队列34的第一个缓冲器31。未分离的所述缓冲器31仍形成队列34,队列34的大小相应地改变。在更新第一表之前,先将第一表中对应于分离缓冲器36的链接关系记录下来。
在步骤S14中,利用在步骤S13所记录的分离缓冲器36的链接关系,释放出分离缓冲器36。在此,是回收分离缓冲器36至缓冲器池32中。于此要说明的是,在使分离缓冲器36自队列34分离出来的过程中,队列34暂停执行入队和出队的功能,在分离缓冲器36自队列34分离出来之后,队列34恢复执行入队和出队的功能。由于使分离缓冲器36自队列34分离出来的过程中,只需要找出第二个第一缓冲器31a的地址,并更新第一表与第二表,其仅会占据极短的时间,例如1~2时钟周期(Clock Cycle Time)。分离缓冲器36可以在适当的时候(例如没有出队需求时)进行清除,以被释放。而多次重复执行步骤S13与步骤S14,则可多次分段地释放出分离缓冲器36。在每一次执行步骤S13与步骤S14之后,将有一个区段35的分离缓冲器36被释放。如此,系统可间歇地对队列34进行分段清除,无需一次完整的清除整个队列34。因此,可大幅减少影响队列34的入队和出队的功能。由于分段清除动作不会影响到队列34的功能,因此数据传输也不需要因为需要刷新队列34而停止。亦即,刷新队列34的动作可被隐匿在正常队列34功能背后。
在一些实施例中,第一表还记录队列34中的缓冲器31的数量,第二表还记录队列34中的第一缓冲器31a的数量。当刷新队列34时,缓冲器31的数量、第一缓冲器31a的数量、第一个缓冲器31的地址及、第一个第一缓冲器31a的地址会被更新。
参照图5,是为本发明一实施例的队列管理方法应用于封包转发装置的架构示意图。封包转发装置包括至少一接收端口10、至少一输出端口20及一队列管理装置60。队列管理装置60包括存储器电路30、输出电路40及队列管理电路50。接收端口10配置为接收一或多个封包。在此,接收端口10以一个为例,输出端口20以八个为例。存储器电路30包括一缓冲器池32及复数优先权队列33。缓冲器池32包括复数缓冲器(图未示)。所述优先权队列33对应于至少一输出端口20。对应于同一输出端口20的优先权队列33分别关联不同的传送优先权,用以分别暂存不同优先权级别的封包。在此,图1是以八个优先权队列33为例,其传送优先权由高至低分别编号为33a~33h。输出电路40配置为将每一封包的数据入队至某一输出端口20(后称「目标输出端口」)的某一优先权队列33(后称「目标队列」),并将经入队的封包数据自该目标队列出队而转发出去。
在一些实施例中,透过从封包档头中撷取出的信息决定目标输出端口及目标队列。
在一些实施例中,封包存入目标队列的过程包括下列步骤。首先,从缓冲器池32分配一个缓冲器31。接着,将封包数据存储入此缓冲器31。并且,决定此封包的目标输出端口及目标队列,而使封包数据入队此目标输出端口的目标队列,即目标队列末端以链表方式串接此缓冲器31。封包数据存入目标队列之后,便可按照出口排程让封包数据出队而由目标输出端口输出。封包转发装置还包括出口调度器(图未示),配置为执行所述出口排程。
队列管理电路50配置为自缓冲器池32分配复数缓冲器31给每一优先权队列33。所述优先权队列中的至少一者(后称缩减队列)需要缩减缓冲器31数量时,执行前述队列管理方法的步骤S13与S14。在执行一次步骤S13与S14之后,缩减队列的一个区段35的缓冲器31被收回。在一些实施例中,每一优先权队列33是透过前述队列管理方法的步骤S11与S12形成。在一些实施例中,至少一缩减队列是透过前述队列管理方法的步骤S11与S12形成。
如同前述实施例,在使分离缓冲器36自缩减队列分离出来的过程中,缩减队列暂停执行入队和出队的功能,在分离缓冲器36自缩减队列分离出来之后,缩减队列恢复执行入队和出队的功能。
在一些实施例中,如同前述实施例,缩减队列经由第一缓冲器31a区分为复数区段35,每一区段35包括一个第一缓冲器31a及其后的一个或多个第二缓冲器31b。在一些实施例中,每一区段35用于储存一网络封包的数据。
在一些实施例中,缩减队列相较于其他所述优先权队列具有较低优先权层级。
在一些实施例中,队列管理装置60应用于非属封包转发装置的其他装置,而可用于暂存网络封包之外的其他类型的数据。
依据本发明实施例提出的队列管理方法及队列管理装置60,可简便的释放队列34(缩减队列)的部分缓冲器31。并且,间歇地对队列34(缩减队列)进行分段清除,无需一次完整的清除整个队列34(缩减队列)。因此,可大幅减少影响队列34(缩减队列)的入队和出队的功能,而不需中断网络封包转发动作。

Claims (16)

1.一种队列管理方法,应用于管理包括复数缓冲器的一队列,该队列管理方法包括:
利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;
利用链表方式,串接该子队列的所述第一缓冲器以形成该队列;
断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接,使复数分离缓冲器自该队列分离出来,所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器;及
释放出所述分离缓冲器。
2.如权利要求1所述的队列管理方法,其中在使所述分离缓冲器自该队列分离出来的过程中,该队列暂停执行入队和出队的功能,在所述分离缓冲器自该队列分离出来之后,该队列恢复执行入队和出队的功能。
3.如权利要求1所述的队列管理方法,其中该队列经由所述第一缓冲器区分为复数区段,每一该区段包括一个该第一缓冲器及其后的该至少一第二缓冲器,每一该区段用于储存一网络封包。
4.如权利要求1所述的队列管理方法,适用于复数优先权队列中的至少一缩减队列,该至少一缩减队列相较于其他所述优先权队列具有较低优先权层级。
5.如权利要求1所述的队列管理方法,其中该队列为一多层链表结构。
6.如权利要求1所述的队列管理方法,其中未分离的所述缓冲器仍形成该队列,该队列的大小相应地改变。
7.一种队列管理装置,包括:
一存储器电路,包括复数优先权队列,所述优先权队列对应于复数优先权;
一输出电路,配置为将一数据入队至所述优先权队列中的一目标队列,并将该数据自该目标队列出队而输出;及
一队列管理电路,配置利用链表方式串接复数缓冲器而形成所述优先权队列中的至少一缩减队列,所串接的所述缓冲器包括复数第一缓冲器及复数第二缓冲器,每一该第一缓冲器之后串接至少一该第二缓冲器,该队列管理电路还利用链表方式串接该缩减队列的所述第一缓冲器,在断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接之后,使复数分离缓冲器自该缩减队列分离出来,并释放出所述分离缓冲器,其中所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器。
8.如权利要求7所述的队列管理装置,其中在使所述分离缓冲器自该缩减队列分离出来的过程中,该缩减队列暂停执行入队和出队的功能,在所述分离缓冲器自该缩减队列分离出来之后,该缩减队列恢复执行入队和出队的功能。
9.如权利要求7所述的队列管理装置,其中该缩减队列经由所述第一缓冲器区分为复数区段,每一该区段包括一个该第一缓冲器及其后的该至少一第二缓冲器,每一该区段用于储存一网络封包。
10.如权利要求7所述的队列管理装置,其中该缩减队列相较于其他所述优先权队列具有较低优先权层级。
11.如权利要求7所述的队列管理装置,其中该缩减队列为一多层链表结构。
12.如权利要求7所述的队列管理装置,其中未分离的所述缓冲器仍形成该缩减队列,该缩减队列的大小相应地改变。
13.一种队列管理装置,应用于管理包括复数缓冲器的一队列,该队列管理装置包括:
一队列管理电路,耦接所述缓冲器,并配置为:
利用链表方式,在各个复数第一缓冲器之后串接至少一第二缓冲器以形成复数子队列,其中所述缓冲器包括所述第一缓冲器及所述第二缓冲器;
利用链表方式,串接该子队列的所述第一缓冲器以形成该队列;
借由断开第一个该第一缓冲器与第二个该第一缓冲器之间的链接,自该队列分离出复数分离缓冲器,所述分离缓冲器包括第一个该第一缓冲器及串接于其后的该至少一第二缓冲器;及
释放出所述分离缓冲器。
14.如权利要求13所述的队列管理装置,其中该队列经由所述第一缓冲器区分为复数区段,每一该区段包括一个该第一缓冲器及其后的该至少一第二缓冲器,每一该区段用于储存一网络封包。
15.如权利要求13所述的队列管理装置,其中该队列为一多层链表结构。
16.如权利要求13所述的队列管理装置,其中未分离的所述缓冲器仍形成该队列,该队列的大小相应地改变。
CN202310959457.4A 2022-10-13 2023-08-01 队列管理方法及队列管理装置 Pending CN117041189A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/965,065 US20240126595A1 (en) 2022-10-13 2022-10-13 Method and apparatus for managing a queue and queue management device
US17/965,065 2022-10-13

Publications (1)

Publication Number Publication Date
CN117041189A true CN117041189A (zh) 2023-11-10

Family

ID=88627299

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310959457.4A Pending CN117041189A (zh) 2022-10-13 2023-08-01 队列管理方法及队列管理装置

Country Status (3)

Country Link
US (1) US20240126595A1 (zh)
CN (1) CN117041189A (zh)
TW (1) TWI847783B (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8615629B2 (en) * 2010-01-18 2013-12-24 Marvell International Ltd. Access scheduler
US9674086B2 (en) * 2013-11-05 2017-06-06 Cisco Technology, Inc. Work conserving schedular based on ranking
CN104598194B (zh) * 2014-12-09 2017-10-24 中国航空工业集团公司第六三一研究所 一种头尾指针链表存储器的初始化方法及电路
US10484311B2 (en) * 2015-03-31 2019-11-19 Cavium, Llc Method and apparatus for using multiple linked memory lists
CN109565455B (zh) * 2016-06-02 2023-09-26 马维尔以色列(M.I.S.L.)有限公司 具有高速缓存的分组存储器中的分组描述符存储
CN109783035A (zh) * 2019-02-28 2019-05-21 中国人民解放军陆军工程大学 一种基于大颗粒度存储单元的队列管理器及方法
CN115244499A (zh) * 2020-01-31 2022-10-25 哲库科技有限公司 队列管理器可执行的子队列插入方案和相关系统及操作
CN112084136B (zh) * 2020-07-23 2022-06-21 西安电子科技大学 队列缓存管理方法、系统、存储介质、计算机设备及应用
US11630601B2 (en) * 2021-03-02 2023-04-18 Silicon Motion, Inc. Memory and apparatus for performing access control with aid of multi-phase memory-mapped queue

Also Published As

Publication number Publication date
TW202416111A (zh) 2024-04-16
US20240126595A1 (en) 2024-04-18
TWI847783B (zh) 2024-07-01

Similar Documents

Publication Publication Date Title
US6715046B1 (en) Method and apparatus for reading from and writing to storage using acknowledged phases of sets of data
CN112084136B (zh) 队列缓存管理方法、系统、存储介质、计算机设备及应用
KR101407743B1 (ko) 패킷 처리 장비내에서의 플로우 데이터의 저장 관리 방법 및 패킷 처리 장비
JP2788577B2 (ja) フレーム変換方法及び装置
US5426639A (en) Multiple virtual FIFO arrangement
US6147996A (en) Pipelined multiple issue packet switch
US7773602B2 (en) CAM based system and method for re-sequencing data packets
US7546399B2 (en) Store and forward device utilizing cache to store status information for active queues
US8266344B1 (en) Recycling buffer pointers using a prefetch buffer
US9055011B2 (en) Methods and apparatus for linked-list circular buffer management
US7366831B2 (en) Lock-free bounded FIFO queue mechanism
US6754744B2 (en) Balanced linked lists for high performance data buffers in a network device
US7352766B2 (en) High-speed memory having a modular structure
US20040143593A1 (en) System and method for re-sequencing data packets on a per-flow basis
JPWO2004066570A1 (ja) ネットワークスイッチ装置およびネットワークスイッチ方法
CN107528789B (zh) 报文调度方法及装置
US7126959B2 (en) High-speed packet memory
US20020131419A1 (en) Packet switch apparatus and multicasting method
US20110016284A1 (en) Memory Management in Network Processors
US7480308B1 (en) Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly
US8363653B2 (en) Packet forwarding method and device
CN116235156A (zh) 组合大写入的写入事务
US7756131B2 (en) Packet forwarding system capable of transferring packets fast through interfaces by reading out information beforehand for packet forwarding and method thereof
CN117041189A (zh) 队列管理方法及队列管理装置
US20090232140A1 (en) Packet transmission apparatus and method

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