多层面网络装置的输出队列和多层面网络装置的输出队列的相关管理方法转让专利

申请号 : CN201480023337.2

文献号 : CN105164983B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林利莲刘大行林瑞哲

申请人 : 联发科技股份有限公司

摘要 :

本发明提供一种多层面网络装置的输出队列,包括第一处理电路、多个存储装置、以及第二处理电路。第一处理电路基于多个封包的到达序列,产生封包选择信息。存储装置存储多个封包链表以用于输出队列。根据封包选择信息,第二处理电路通过自封包链表选择链表条目而自输出队列出列封包;其中,该多个存储装置中的每一个为1R1W静态随机存取存储器。

权利要求 :

1.一种多层面网络装置的输出队列,其特征在于,包括:第一处理电路,用于基于来自多个层面的多个封包的到达序列产生封包选择信息;

多个存储装置,用于存储输出队列的多个封包链表,其中每一该多个层面分别对应于一个封包链表;以及第二处理电路,用于根据该封包选择信息通过自该多个封包链表选择链表条目而自该输出队列出列封包;

其中,该多个存储装置中的每一个为1R1W静态随机存取存储器。

2.根据权利要求1所述的多层面网络装置的输出队列,其特征在于,该多个封包中的每一个来自多个层面中的一个,以及该多个封包中的每一个需要通过该输出队列来转发,以及该封包链表分别对应于该多个层面,以使得自该多个层面中的特定层面的和需要通过该输出队列转发的封包入列至对应于该特定层面的封包链表。

3.根据权利要求1所述的多层面网络装置的输出队列,其特征在于,该封包选择信息包括该多个封包的序列号,以及该第一处理电路具有被配置为产生用于该多个封包中的每一个的序列号的序列号计数器。

4.根据权利要求3所述的多层面网络装置的输出队列,其特征在于,分配至每一个封包的该序列号在该封包的链表条目中被记录。

5.根据权利要求3所述的多层面网络装置的输出队列,其特征在于,该第二处理电路比较在该封包链表中可用的所有头封包的序列号,以产生比较结果,以及引用该比较结果以自该输出队列出列具有最小序列号的头封包。

6.根据权利要求1所述的多层面网络装置的输出队列,其特征在于,该封包选择信息包括该多个封包的时间戳,以及该第一处理电路具有被配置为产生用于该多个封包中的每一个的时间戳的时间戳计数器。

7.根据权利要求6所述的多层面网络装置的输出队列,其特征在于,分配至每一个封包的该时间戳在该封包的链表条目中被记录。

8.根据权利要求6所述的多层面网络装置的输出队列,其特征在于,该第二处理电路比较在该封包链表中可用的所有头封包的时间戳,以产生比较结果,并引用该比较结果以自该输出队列而出列具有最小时间戳的头封包。

9.根据权利要求1所述的多层面网络装置的输出队列,其特征在于,该封包选择信息包括指示封包入列至封包链表的顺序的封包链表标识符的序列。

10.一种多层面网络装置的输出队列的管理方法,其特征在于,基于来自多个层面的多个封包的到达序列产生封包选择信息;

利用多个存储装置来存储用于该输出队列的多个封包链表,其中每一该多个层面分别对应于一个封包链表;以及根据该封包选择信息通过自该多个封包链表选择链表条目而自该输出队列出列封包;

其中,该多个存储装置中的每一个为1R1W静态随机存取存储器。

11.根据权利要求10所述的多层面网络装置的输出队列的管理方法,其特征在于,该多个封包中的每一个来自多个层面中的一个,以及该多个封包中的每一个需要通过该输出队列来转发,以及该封包链表分别对应于该多个层面,以使得自该多个层面中的特定层面的和需要通过该输出队列转发的封包入列至对应于该特定层面的封包链表。

12.根据权利要求10所述的多层面网络装置的输出队列的管理方法,其特征在于,该封包选择信息包括该多个封包的序列号。

13.根据权利要求12所述的多层面网络装置的输出队列的管理方法,其特征在于,进一步包括:分配至每一个封包的该序列号在该封包的链表条目中被记录。

14.根据权利要求12所述的多层面网络装置的输出队列的管理方法,其特征在于,自该输出队列出列该封包的每一步包括:比较在该封包链表中可用的所有头封包的序列号,以产生比较结果;以及引用该比较结果以自该输出队列出列具有最小序列号的头封包。

15.根据权利要求10所述的多层面网络装置的输出队列的管理方法,其特征在于,该封包选择信息包括该多个封包的时间戳。

16.根据权利要求15所述的多层面网络装置的输出队列的管理方法,其特征在于,进一步包括:在该封包的链表条目中记录分配至每一个封包的该时间戳。

17.根据权利要求15所述的多层面网络装置的输出队列的管理方法,其特征在于,自该输出队列出列该封包的步骤包括:比较在该封包链表中可用的所有头封包的时间戳,以产生比较结果;以及引用该比较结果以自该输出队列而出列具有最小时间戳的头封包。

18.根据权利要求10所述的多层面网络装置的输出队列的管理方法,其特征在于,该封包选择信息包括指示封包入列至封包链表的顺序的封包链表标识符的序列。

说明书 :

多层面网络装置的输出队列和多层面网络装置的输出队列的

相关管理方法

[0001] 交叉引用
[0002] 本发明主张在2013年4月26日提出的申请号为61/816,247的美国临时专利申请的优先权;主张在2013年12月03日提出的申请号为61/910,967的美国临时专利申请的优先权;以及主张在2014年04月15日提出的申请号为14/252,789的美国临时专利申请的优先权。因此在全文中合并参考该些专利申请案。

技术领域

[0003] 本发明是有关于转发封包,特别是有关于多层面(plane)网络装置的输出队列和管理具有多封包链表的输出队列的相关方法。

背景技术

[0004] 网络交换机是连接不同电子装置的计算机网络装置。举例来说,网络交换机接收自连接至该网络交换机的源电子装置产生的传入封包,并传送自接收封包得到的发送封包至一个或多个目的电子装置,对网络交换机来说,接收的是接收封包。一般而言,网络交换机具有封包缓冲器,以用于缓冲自入端口(ingress ports)接收的封包的封包数据,并且网络交换机通过出端口(egress ports)转发存储于封包缓冲器中的封包。
[0005] 此外,当自一个入端口接收封包时,该封包被进一步入队列至一个输出队列(output queue)。为放宽输出队列的存储要求,单一的链表结构被采用服务于一个输出队列。当网络交换机具有多个层面时,多个封包在一个时钟周期中可被入队列至相同或不同的输出队列中。另外,多封包在一个时钟周期中也可自链表出队列。由于多个入队列和出队列操作需要在一个时钟周期中完成,多端口存储通常要求缓冲封包链表。举例来说,考虑两层面网络交换机,2R2W静态随机存取存储器(SRAM)存储用于输出队列的封包链表。然而,2R2W静态随机存取存储器具有大芯片面积和高成本。当网络交换机具有n层面(n>2)时,利用nRnW静态随机存取存储器将不是输出队列设计的具有成本效益的方案。

发明内容

[0006] 根据本发明的示范性实施方式,提出一种利用多个封包链表的多层面网络装置的输出队列和管理具有多个封包链表的输出队列的相关方法,以解决上述问题。
[0007] 根据本发明的第一方面,提出一种示范性的多层面网络装置的输出队列。输出队列包括第一处理电路、多个存储装置、以及第二处理电路。第一处理电路用于基于多个封包的到达序列,产生封包选择信息。存储装置用于存储多个封包链表以用于输出队列。根据封包选择信息,第二处理电路用于通过自封包链表选择链表条目,而自输出队列出列封包;其中,该多个存储装置中的每一个为1R1W静态随机存取存储器。
[0008] 根据本发明的第二方面,提出一种管理多层面网络装置的输出队列的示范性方法。示范性方法包括:基于多个封包的到达序列,产生封包选择信息;利用多个存储装置来存储多个封包链表以用于输出队列;以及根据封包选择信息,通过自封包链表选择链表条目,而自输出队列出列封包;其中,该多个存储装置中的每一个为1R1W静态随机存取存储器。
[0009] 在阅读完如下各附图中的较佳实施方式的详细描述之后,本领域技术人员可了解本发明的这些和其他目标。

附图说明

[0010] 图1为根据本发明的多层面网络装置采用的示范性输出队列结构的示意图。
[0011] 图2为根据本发明第一实施方式的多层面网络装置的输出队列的示意图。
[0012] 图3为根据本发明第二实施方式的多层面网络装置的输出队列的示意图。
[0013] 图4为根据本发明第三实施方式的多层面网络装置的输出队列的示意图。

具体实施方式

[0014] 在说明书及权利要求书当中使用了某些词汇来称呼特定的元件。本领域的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同一个元件。本说明书及权利要求书并不以名称的差异来作为区分元件的方式,而是以元件在功能上的差异来作为区分的准则。在通篇说明书及权利要求书当中所提及的“包含”是开放式的用语,故应解释成“包含但不限定于”。此外,“耦接”一词在此是包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或通过其它装置或连接手段间接地电气连接到第二装置。
[0015] 本发明的概念为利用多封包链表来实现网络装置的一个输出队列。其中,输出队列操作为一种数据缓冲电路,以及封包链表分别对应于不同层面。因此,自一个层面接收的、并要求通过输出队列转发的封包被入队列至一个封包链表。这样,尽管封包链表的每一个保持在两个端口的存储器(1R1W)中,多封包仍然在同一个时钟周期被入队列至输出队列,该两个端口的存储器具有用于地址的一个读端口和一个写端口,并控制仅允许每次两个同时存取(一个读存取和一个写存取)。与具有在多端口存储器(nRnW)中实现的单一的封包链表的一个输出队列相比较,利用两个端口的存储器(1R1W)的提出的输出队列具有较小的芯片尺寸和较低的成本。在多层面网络装置(例如,具有多于一个层面的网络交换机)中使用的提出的输出队列的进一步细节将描述如下。
[0016] 图1为根据本发明实施方式的多层面网络装置采用的示范性输出队列结构的示意图。假设多层面网络装置10具有N层面,每一个层面包括多个入端口(ingress ports)和多个出端口(egress ports)。在此实施方式中,在层面0~层面N-1的最多N封包被入队列至同一时钟周期中的一个输出队列。其中,每一个输出队列在N个双端口(N dual-port)存储器(例如,1R1W静态随机存取存储器)中具有N个封包链表。更具体地说,一个1R1W静态随机存取存储器在入端口和出端口之间耦接。该入端口为N层面中的一个的入端口,该出端口为N层面中的一个的出端口。因此,示范性的输出队列结构具有NxN全条目(full-entry)1R1W静态随机存取存储器。举例来说,对于与一个层面的同一入端口相关的多个输出端口(output ports)中的一个来说,用于输出队列的N封包链表中的一个被存储于一个1R1W SRAMi,j中,1R1W SRAMi,j位于第i个层面(入口)和第j个层面(出口)之间,其中i=0,1,…,N-1以及j=
0,1,…,N-1。为更好地理解本发明的技术特征,本发明提出的一个输出队列的结构和操作将祥述如下:
[0017] 请参考图2,图2为根据本发明第一实施方式的多层面网络装置的输出队列的示意图。输出队列100包括第一处理电路102和第二处理电路106。此外,输出队列100具有多个存储装置。对求简洁,以下描述假设多层面网络装置为两层面网络交换机。因此,存储装置104_1和存储装置104_2在输出队列100中使用,其中存储装置104_1和存储装置104_2分别对应于两个层面,包括层面1和层面0。
[0018] 第一处理电路102用于基于多个封包PKT的到达序列产生封包选择信息,每一个封包来自多个层面中(例如,在此示例中层面0和层面1)的一个,并需要通过同一输出队列100来转发。第一处理电路102具有序列数计数器108,序列数计数器108被配置为产生用于封包PKT中每一个的序列数SEQ_NUM以通过输出队列100来转发。因此,通过第一处理电路102产生的封包选择信息包括封包PKT的序列数。
[0019] 在此实施方式中,由于多层面网络装置100具有两个层面,两个存储装置(存储装置104_1和存储装置104_2)分别存储用于输出队列100的多个封包链表110_1和封包链表110_2。存储装置104_1和存储装置104_2中的每一个允许仅在一个时钟周期中的单一入队列操作。因此,存储装置104_1和存储装置104_2可利用低成本存储装置来实现。举例来说,存储装置104_1和存储装置104_2中的每一个为一个全条目(full-entry)1R1W SRAM。由于封包链表110_1和封包链表110_2分别对应于不同的入端口(即,具有多个入端口(例如,端口IP0-IP63)的层面0和具有多个入端口(例如,端口IP64-IP127)的层面1)。来自入层面的特定层面并需要通过输出队列100来转发的封包被入队列至对应于特定层面的封包链表。
举例来说,当第一封包被入队列至封包链表时,代表第一封包的封包标识符PID被存储于第一链表条目中,以及当在第一封包之后的第二封包被入队列至同一封包链表中时,代表第二封包的封包标识符PID被存储于第二链表条目中,以及第一链表条目将进一步通过第二封包的封包标识符PID设置下一封包标识符。因此,在已接收的封包被入队列至同一封包链表中之后,封包链表将具有数个链表条目。如图2所示,封包链表110_1具有由多个链表条目
112_1,112_2,112_3,112_4,…112_m形成的封包链;以及封包链表110_2具有由多个链表条目114_1,114_2,114_3,114_4,…114_n形成的另一封包链。
[0020] 关于封包链表110_1,一个存储单元116_1存储参数Qhead以指示在封包链表110_1中的头封包的封包标志符(即,在封包链表110_1中具有最高出队列优先级的封包的标识符),以及另一存储单元116_2存储参数Qtail以指示在封包链表110_1中的尾封包的封包标志符(即,在封包链表110_1中具有最低出队列优先级的封包的标识符)。相似地,关于封包链表110_2,一个存储单元118_1存储参数Qhead以指示在封包链表110_2中的头封包的封包标志符(即,在封包链表110_2中具有最高出队列优先级的封包的标识符),以及另一存储单元118_2存储参数Qtail以指示在封包链表110_2中的尾封包的封包标志符(即,在封包链表110_2中具有最低出队列优先级的封包的标识符)。举例来说,存储单元116_1,116_2,118_
1,118_2可利用触发器来实现。
[0021] 对于封包的入队列过程,参数Qhead被检测以确定封包链表110_1/110_2是否为空,以及参数Qtail被检测以了解在封包被入队列之前尾封包的封包标识符。在封包入队列之后,若已入队列的封包为新的头封包(即,由于已入队列的封包,封包链表110_1/110_2留下空状态),则参数Qhead和参数Qtail均被更新,以及若入队列的封包为新的尾封包(即,已入队列的封包被链接至非空封包链表110_1/110_2的原始尾封包),则仅参数Qtail被更新。由于本领域技术人员可了解封包入队列操作的实施细节,为求简洁省略进一步描述。
[0022] 对于封包的出队列过程,参数Qhead被检测以了解头封包的封包标识符(即,要被出队列的封包的封包标志符),以及参数Qtail被检测以确定要被出队列的封包是否为在封包链表110_1/110_2中的最后的封包。在封包被出队列之后,若已出队列的封包为最后的封包(即,由于已出队列的封包,封包链表110_1/110_2进入空状态),参数Qhead和参数Qtail均被更新,以及若已出队列的封包不是最后封包(即,在封包链表110_1/110_2的原始头封包被未链接之后,封包链表110_1/110_2为非空),则仅参数Qhead被更新。由于本领域技术人员可了解封包出队列操作的实施细节,为求简洁省略进一步描述。
[0023] 如上所述,基于封包PKT的到达序列(也称为封包PKT的入队列序列),序列数计数器108分配序列数SEQ_NUM至封包PKT。在一个示范性设计中,分配给每一个封包的序列数SEQ_NUM被记录于封包的链表条目中。如图2所示,来自层面0的封包被分配由PID11设置的封包标识符,以及序列数SEQ_NUM被设置为“1”;来自层面1的下一封包被分配由PID21设置的封包标识符,以及序列数SEQ_NUM被设置为“2”;来自层面1的下一封包被分配由PID22设置的封包标识符,以及序列数SEQ_NUM被设置为“3”;来自层面1的下一封包被分配由PID23设置的封包标识符,以及序列数SEQ_NUM被设置为“4”;来自层面0的下一封包被分配由PID12设置的封包标识符,以及序列数SEQ_NUM被设置为“5”;来自层面0的下一封包被分配由PID13设置的封包标识符,以及序列数SEQ_NUM被设置为“6”;来自层面0的下一封包被分配由PID14设置的封包标识符,以及序列数SEQ_NUM被设置为“7”;以及来自层面1的下一封包被分配由PID24设置的封包标识符,以及序列数SEQ_NUM被设置为“8”。
[0024] 单一的封包自输出队列100出队列一次。然而,提出的输出队列100利用多个封包链表110_1和封包链表110_2。每一个封包链表具有等待被转发至与输出队列100相关的出端口的已入队列的封包。第二处理电路106具有重排序的能力,并用于确定封包链表110_1和封包链表110_2中的哪一个被允许由此而出队列一个封包。具体地,根据由第一处理电路102产生的封包选择信息(例如,序列数),第二处理电路106用于通过自封包链表110_1和封包链表110_2选择链表条目而自输出队列100出队列封包。由于每一个链表条目具有封包的封包识别信息(封包标识符)和出队列优先级信息(序列数),第二处理电路106可比较在封包链表110_1和封包链表110_2中可用的所有头封包的序列数以产生比较结果,并引用比较结果以自输出队列100出队列具有最小序列数的头封包。如图2所示,在封包链表110_1中具有封包标识符PID11的头封包具有设置为“1”的序列数SEQ_NUM,以及在封包链表110_2中具有封包标识符PID21的头封包具有设置为“2”的序列数SEQ_NUM。因此,由于具有最小序列数,具有封包标识符PID11的头封包将自输出队列100而出队列。
[0025] 基于如上所述的相同的封包选择规则,第二处理电路106将顺序地出队列具有封包标识符PID21的封包、具有封包标识符PID22的封包(其在出队列具有封包标识符PID21的封包之后成为在封包链表110_2中的新的头封包)、具有封包标识符PID23的封包(其在出队列具有封包标识符PID22的封包之后成为在封包链表110_2中的新的头封包)、具有封包标识符PID12的封包(其在出队列具有封包标识符PID11的封包之后成为在封包链表110_1中的新的头封包)、具有封包标识符PID13的封包(其在出队列具有封包标识符PID12的封包之后成为在封包链表110_1中的新的头封包)、具有封包标识符PID14的封包(其在出队列具有封包标识符PID13的封包之后成为在封包链表110_1中的新的头封包)、以及具有封包标识符PID24的封包(其在出队列具有封包标识符PID23的封包之后成为在封包链表110_2中的新的头封包)。
[0026] 基于封包的达到序列,第一处理电路202产生封包选择信息。其中封包选择信息包括封包的序列数。在替代设计中,封包选择信息可由不同方法来产生。通过第二处理电路封包的到达/入队列序列的相同目标可达到。
[0027] 请参考图3,图3为根据本发明第二实施方式的多层面网络装置的输出队列的示意图。输出队列200包括第一处理电路202、第二处理电路206、以及上述的存储装置104_1和存储装置104_2。相似地,基于多个封包PKT的到达序列,第一处理电路202用于产生封包选择信息,每一个封包来自多个层面(例如,层面0和层面1)中的一个,并需要通过同一输出队列200而被转发。第一处理电路102和第一处理电路202的主要不同在于,第一处理电路202具有时间戳计数器208,时间戳计数器208被配置为产生用于封包PKT中的每一个的时间戳TS,以通过输出队列200而被转发。因此,通过第一处理电路202产生的封包选择信息将包括封包的时间戳。
[0028] 在一个示范性的设计中,分配至每一个封包的时间戳TS被记录于封包的链表条目中。因此,如图3所示,链表条目112_1-112_m和链表条目114_1-114_n中的每一个现存储已入队列封包的封包识别信息(封包标识符)和出队列优选级信息(时间戳)。具体地,来自层面0的封包被分配由PID11设置的封包标识符,以及时间戳TS被设置为“1”;来自层面1的下一个封包被分配由PID21设置的封包标识符,以及时间戳TS被设置为“2”;来自层面1的下一个封包被分配由PID22设置的封包标识符,以及时间戳TS被设置为“3”;来自层面1的下一个封包被分配由PID23设置的封包标识符,以及时间戳TS被设置为“4”;来自层面0的下一个封包被分配由PID12设置的封包标识符,以及时间戳TS被设置为“5”;来自层面0的下一个封包被分配由PID13设置的封包标识符,以及时间戳TS被设置为“6”;来自层面0的下一个封包被分配由PID14设置的封包标识符,以及时间戳TS被设置为“7”;来自层面1的下一个封包被分配由PID24设置的封包标识符,以及时间戳TS被设置为“8”。对于第二处理电路206,第二处理电路206用于确定封包链表110_1’和封包链表110_2’中的哪一个被允许由此而出队列一个封包。在此实施方式中,根据由第一处理电路202产生的封包选择信息(例如,时间戳),第二处理电路206用于通过自封包链表110_1’和封包链表110_2’选择链表条目而自输出队列200出队列封包。由于每一个链表条目具有封包的封包识别信息(封包标识符)和出队列优先级信息(时间戳),第二处理电路206可比较在封包链表110_1’和封包链表110_2’中可用的所有头封包的时间戳以产生比较结果,并引用比较结果以自输出队列200出队列具有最小时间戳的头封包。如图3所示,在封包链表110_1’中具有封包标识符PID11的头封包具有设置为“1”的时间戳TS,以及在封包链表110_2’中具有封包标识符PID21的头封包具有设置为“2”的时间戳TS。因此,由于具有最小时间戳,具有封包标识符PID11的头封包将自输出队列200而出队列。
[0029] 基于如上所述的相同的封包选择规则,第二处理电路206将顺序地出队列具有封包标识符PID21的封包、具有封包标识符PID22的封包(其在出队列具有封包标识符PID21的封包之后成为在封包链表110_2’中的新的头封包)、具有封包标识符PID23的封包(其在出队列具有封包标识符PID22的封包之后成为在封包链表110_2’中的新的头封包)、具有封包标识符PID12的封包(其在出队列具有封包标识符PID11的封包之后成为在封包链表110_1’中的新的头封包)、具有封包标识符PID13的封包(其在出队列具有封包标识符PID12的封包之后成为在封包链表110_1’中的新的头封包)、具有封包标识符PID14的封包(其在出队列具有封包标识符PID13的封包之后成为在封包链表110_1’中的新的头封包)、以及具有封包标识符PID24的封包(其在出队列具有封包标识符PID23的封包之后成为在封包链表110_2’中的新的头封包)。
[0030] 请参考图4,图4为根据本发明第三实施方式的多层面网络装置的输出队列的示意图。输出队列300包括第一处理电路302、第二处理电路306、以及上述的存储装置104_1和存储装置104_2。相似地,基于多个封包PKT的到达序列,第一处理电路302用于产生封包选择信息,每一个封包来自多个层面(例如,层面0和层面1)中的一个,并需要通过同一输出队列300而被转发。第一处理电路102和第一处理电路302的主要不同在于,第一处理电路302产生并输出封包链表标识符308的序列,封包链表标识符308指示对于被出队列的封包的封包链表110_1”和封包链表110_2”的顺序。因此,通过第一处理电路302产生的封包选择信息将包括封包链表标识符308的序列。封包链表标识符308的序列被传送至第二处理电路306,并不在封包链表110_1”和封包链表110_2”的链表条目12_1-112_m,114_1-114_n中被记录。举例来说,但并非以此为限。二进制值“0”用于作为封包链表110_1”的封包链表标识符,以及另一二进制值“1”用于作为封包链表110_2”的封包链表标识符。
[0031] 当顺序接收并出队列的入口封包包括来自层面0并由PID11设置封包标识符的封包、来自层面1并由PID21设置封包标识符的封包、来自层面1并由PID22设置封包标识符的封包、来自层面1并由PID23设置封包标识符的封包、来自层面0并由PID12设置封包标识符的封包、来自层面0并由PID13设置封包标识符的封包、来自层面0并由PID14设置封包标识符的封包、以及来自层面1并由PID24设置封包标识符的封包。因此,自第一处理电路302提供至第二处理电路306的封包链表标识符308的序列为比特流01110001。
[0032] 关于第二处理电路306,第二处理电路306用于确定封包链表110_1”和封包链表110_2”中的哪一个被允许由此而出队列一个封包。在此实施方式中,根据由第一处理电路
302产生的封包选择信息(例如,封包链表标识符308的序列),第二处理电路306用于通过自封包链表110_1”和封包链表110_2”选择链表条目而自输出队列300出队列封包。由于封包链表标识符308的序列基于封包链表110_1”,110_2”对于出队列哪一个封包的顺序而产生,封包链表标识符308的序列直接提供用于自封包链表110_1”,110_2”顺序选择链表条目的出队列优先级信息。
[0033] 如图4所示,第二处理电路306引用封包链表标识符308的序列以选择封包链表110_1”,然后自输出队列300出队列已选择的封包链表110_1”的头封包。基于如上所述的相同的封包选择规则,第二处理电路306将顺序选择封包链表110_2”、封包链表110_2”、封包链表110_2”、封包链表110_1”、封包链表110_1”、封包链表110_1”、以及封包链表110_2”。因此,第二处理电路306将顺序出队列具有封包标识符PID21的封包、具有封包标识符PID22的封包(其在出队列具有封包标识符PID21的封包之后成为在封包链表110_2”中的新的头封包)、具有封包标识符PID23的封包(其在出队列具有封包标识符PID22的封包之后成为在封包链表110_2”中的新的头封包)、具有封包标识符PID12的封包(其在出队列具有封包标识符PID11的封包之后成为在封包链表110_1”中的新的头封包)、具有封包标识符PID13的封包(其在出队列具有封包标识符PID12的封包之后成为在封包链表110_1”中的新的头封包)、具有封包标识符PID14的封包(其在出队列具有封包标识符PID13的封包之后成为在封包链表
110_1”中的新的头封包)、以及具有封包标识符PID24的封包(其在出队列具有封包标识符PID23的封包之后成为在封包链表110_2”中的新的头封包)。
[0034] 虽然本发明已以较佳实施例揭露如上,然而必须了解其并非用以限定本发明。相反,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围应当以权利要求书所界定的保护范围为准。