CN104124962A - 多阶复制计数器存储装置及用来管理多播封包处理的方法 - Google Patents
多阶复制计数器存储装置及用来管理多播封包处理的方法 Download PDFInfo
- Publication number
- CN104124962A CN104124962A CN201410169530.9A CN201410169530A CN104124962A CN 104124962 A CN104124962 A CN 104124962A CN 201410169530 A CN201410169530 A CN 201410169530A CN 104124962 A CN104124962 A CN 104124962A
- Authority
- CN
- China
- Prior art keywords
- multicast
- storage device
- count value
- package
- memory module
- 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
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种多阶复制计数器存储装置及用来管理多播封包处理的方法。多阶复制计数器存储装置,用于多播封包处理,包括:第一阶存储装置,用来存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和等于尚未被广播到所述第一多播封包的所述相同单元数据的所述多播目标的数目;以及第二阶存储装置,用来存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。本发明所公开的多阶复制计数器存储装置,能够以可接受的面积尺寸和成本来达到所需频宽。
Description
技术领域
本发明所揭露的实施例相关于封包的发送,特别指一种用于多播封包处理的多阶复制计数器存储装置(multi-level replication counter storage device)以及用来管理多播封包处理的方法。
背景技术
网络交换机为电脑网络装置,可用于连接不同电子装置。举例来说,网络交换机会接收由其所连接的源电子装置所产生的输入封包,并且只将依据所述接收到的封包所产生的输出封包转发至一个或是一个以上由所述接收到的封包所指定的目的电子装置。一般来说,网络交换机具有封包缓冲器以缓冲由入端口(ingress port)所接收到的封包的封包数据,并且通过出端口(egress port)来将封包缓冲器中所存储的封包转发出去。若是有分别连接至所述网络装置的不同出端口的一组目的电子装置要求相同封包时,可以在单一传输中从连接至所述网络装置的入端口的源电子装置得到所要求的封包,又称为多播封包,且所述网络交换机可执行多播操作来将存储在封包缓冲器中的所要求的封包的副本传送/广播至上述一组目的电子装置。复制计数器(又称为多播计数器)被广泛地使用在网络交换机中来计算网络中多播或是广播目标的数目。
在传统设计中,仅使用存储装置(memory device)来实现计数器存储装置。因此,当针对所述存储装置执行入列操作(en-queue operation)时,会将初始计数值存储至所述存储装置。当针对所述存储装置执行出列操作(de-queueoperation)时,会从存储位置(memory location)将所存储的计数值读出,并将其减去1再写回至相同的存储位置。一般来说,所述存储装置需要若干时钟周期来结束一个出列操作。此外,多数存储装置不允许同时进行读写的操作。因此,若是入列或是出列率较高(即所述交换机装置使用在高速网络中),存储装置的操作频率将无法达到所需要的频宽。
在另一传统设计中,仅使用触发器阵列(flip-flop array)来实现计数器存储装置。所述触发器阵列中的每一触发器都能够在单一时钟周期之内完成一个出列操作(直接更新所存储的计数值)。因此,若是入列或是出列率较高(即所述交换机装置使用在高速网络中),触发器阵列的操作频率可以达到所需要的频宽。如果n个比特(bit)都具有相同的m个字(word)的大小,不过芯片中触发器阵列的面积通常为同样容量的存储装置的8~12倍。因此,这样的作法会耗费相当高的成本。
有鉴于此,此领域亟需一种新颖的复制计数器存储设计,能够以可接受的面积尺寸和成本来达到所需频宽。
发明内容
有鉴于此,本发明提供一种用于多播封包处理的多阶复制计数器存储装置以及用来管理多播封包处理的方法,以解决上述问题。
依据本发明的第一示范性实施例,提出一种用于多播封包处理的多阶复制计数器存储装置,包括第一阶存储装置以及第二阶存储装置。所述第一阶存储装置用来存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和相等于尚未被广播到所述第一多播封包的所述相同单元数据的多播目标的数目。所述第二阶存储装置用来存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。
依据本发明的第二示范性实施例,提出一种用来管理多播封包处理的方法,包括:在第一阶存储装置中存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和相等于尚未被广播到所述第一多播封包的所述相同单元数据的多播目标的数目;以及在第二阶存储装置中存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。
本发明结合存储装置和触发器阵列的优点,所提出的用于多播封包处理的多阶复制计数器存储装置,可以在可接受的面积和成本的考量下,达到所要求的频宽。
对于已经阅读后续由各附图及内容所显示的较佳实施方式的本领域的技术人员来说,本发明的各目的是明显的。
附图说明
图1为本发明的网络系统的实施例的框图。
图2为本发明的多阶复制计数器存储装置的一实施例的示意图。
图3为本发明的多阶复制计数器存储装置的另一实施例的示意图。
具体实施方式
在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表所述第一装置可直接电连接于所述第二装置,或通过其他装置或连接手段间接地电连接至所述第二装置。
本发明的主要精神在于结合存储装置和触发器阵列的优点,因此提出一种用于多播封包处理的多阶复制计数器存储装置,以在可接受的面积和成本的考量下,达到所要求的频宽。举例来说,网络装置(例如网络交换机)中的多播控制机制可以采用单层多内存库多阶存储器(single-layer multi-bank multi-levelstorage)或是多层多内存库多阶存储器。以下将对更进一步的细节进行说明并佐以图式。
请参考图1,图1为本发明的网络系统的实施例的框图。网络系统100包括源电子装置(例如伺服器101)、多个目标电子装置(例如个人电脑102_1、102_2、102_3、…102_N)以及网络交换机104,网络交换机104耦接于所述源电子装置以及所述目标电子装置之间,以将所请求的一个或是一个以上的封包PKTREQ从所述源电子装置转发至一个或是一个以上的所述目标电子装置。如图1所示,伺服器101连接至网络交换机104的入端口P1,而个人电脑102_1~102_N分别耦接至出端口P21、P22、P23、…P2N。在一组目标电子装置(例如个人电脑102_1~102_N)对源电子装置(例如伺服器101)要求相同封包的情况下,网络交换机104可以利用单次传输来从伺服器101接收所述请求封包(requestedpacket)(即多播封包),然后执行多播操作以将所述多播封包的副本分别传送/广播至个人电脑102_1~102_N。如图1所示,网络交换机104包括但不限定于多播控制器112、多阶复制计数器存储装置114、链表存储装置(linked list storagedevice)116以及封包缓冲器118。
由于封包缓冲器118中的可用空间可能分散在不连续的存储位置,因此当网络交换机104从入端口P1接收到所述请求封包(即多播封包)时,网络交换机104可将所述请求封包(即多播封包)中的单元数据(cell data)存储在封包缓冲器118中的不连续存储位置中。举例来说,所述多播封包的第一单元数据PKT_CELLO被存储在存储地址‘5’中,所述多播封包的下一单元数据PKT_CELL1被存储在不同的存储地址‘10’中,所述多播封包的下一单元数据PKT_CELL2被存储在不同的存储地址‘12’中,并依此类推。为管理存储在封包缓冲器118中的封包单元数据,链表存储装置116中会建立链表。在此范例中,所述链表的表头节点位于存储地址‘5’中,而所述表头节点中的下一个地址记录为‘10’,表示所述链表中的下一个节点位于存储地址‘10’。相似地,存储地址‘10’的节点的下一个地址记录为‘12’,表示所述链表中的下一个节点位于存储地址‘12’。如此一来,便可基于记录于链表中的节点顺序来将所述多播封包中的单元数据从封包缓冲器118中读取出来。
多播控制器112可以接收复制计数值(replication count value)RC,复制计数值RC是依据网络系统100中,请求相同多播封包的多播/广播目标的数目来设定。在个人电脑102_1~102_N都对伺服器(例如多媒体伺服器)101请求相同封包的情况下,复制计数值RC等于N。相对于传统的复制计数器存储设计,其仅使用存储装置或是触发器阵列来记录复制计数值RC,然后减少复制计数值RC来反应多播封包副本的传送/广播,本发明使用混合存储设计,其使用存储装置(例如动态随机存取存储装置或是静态随机存取存储装置)来结合触发器阵列来管理所述多播封包处理。因此,多阶复制计数器存储装置114能够同时具有所述存储装置的好处(例如较低成本和面积)以及所述触发器阵列的优点(例如较快的出列速度)。以下将针对所提出的多阶复制计数器存储装置114的细节进行说明。
请参考图2,图2为本发明多阶复制计数器存储装置的一实施例的示意图。多阶复制计数器存储装置200采用单层多内存库多阶计数器存储架构,可以用来实现图1的网络交换机104中的多阶复制计数器存储装置114。多阶复制计数器存储装置200包括第一阶存储装置202以及第二阶存储装置204,第一阶存储装置202以及第二阶存储装置204具有不同数据存取特性(data accesscharacteristics)。例如第一阶存储装置202通过在K个时钟周期内更新其所存储的计数值来完成出列操作;第二阶存储装置204通过在L个时钟周期内更新其所存储的计数值来完成出列操作,其中K和L为正整数,且K>L。也就是说,相较于第一阶存储装置202,第二阶存储装置204能够支援较高速的出列操作。一般来说,出列速度和硬件成本/尺寸互为折衷关系,因此,相较于第二阶存储装置204,第一阶存储装置202的尺寸和成本较低。在一较佳实施例中,可以使用具有多个存储模块(例如多个内存库)212_1、212_2、…212_n-1、212_n的存储装置(例如动态随机存取存储装置或是静态随机存取存储装置)来实现第一阶存储装置202,其中每一存储模块212_1~212_n都由不同存储位置的多个存储空间113所组成;此外,可以使用位于不同存储位置的多组触发器115所构成的触发器阵列214来实现第二阶存储装置204。
第一阶存储装置202中的存储模块212_1~212_n的数目n依据实际设计考量来决定。举例来说,若是每一存储模块212_1~212_n都需要4个时钟周期来完成出列操作(从存储地址中读出所存储的第一计数器值、调整所述第一计数器值并且将调整后的第一计数器值写入相同的存储地址),便需要在第一阶存储装置202中设置4个存储模块(即n=4)。然而以上仅供说明用途,而非本发明的限制所在。
第一阶存储装置202用来存储多个第一计数值R1、R2、…Rn-1、Rn,所述第一计数值R1、R2、…Rn-1、Rn有关于需要被广播至多个多播目标的多播封包的相同单元数据(例如暂存在封包缓冲器118内的存储地址‘5’的第一单元数据PKT_CELL0)。所存储的第一计数值R1~Rn的总和等于尚未被广播到多播封包的相同单元数据的多播目标的数目。在所述多播目标为图1的个人电脑102_1~102_N的情况下,多播控制器112所接收到的复制计数值RC会等于N。一开始,由于网络交换机104和所述多播目标之间的多播封包单元数据传输尚未开始,因此可以得知RC=R1+R2+…+Rn-1+Rn=N,在此实施例中,多播控制器112会基于端口群(port groups)PG1、PG2、…、PGn-1、PGn来将复制计数值RC分割为第一计数值R1~Rn。具体地说,存储模块212_1~212_n分别对应端口群PG1~PGn。每一多播目标(例如个人电脑102_1~102_N)都耦接至端口群PG1~PGn中的一个出端口。在一较佳实施例中,所述多播目标平均地或是尽量平均地被指定至端口群PG1~PGn。更具体地说,若N可以被n所整除,则因为端口群PG1~PGn中的每一个耦接至N/n个多播目标,故每一第一计数值R1~Rn为N/n。然而,若是N无法被n所整除,第一计数值R1~Rn中的一部份可以被设为值CV(例如CV=floor(N/n)),而剩下的所述第一计数值可以被设为另一个值(CV+1)。然而以上仅供说明用途,本发明并不以此为限。
当所述多播封包被存储至封包缓冲器118后,多播控制器112会同时针对各个存储模块212_1~212_n分别执行入列操作EG1、EG2、…EGn-1、EGn。在此实施例中,由入列操作所存储于存储模块的第一计数值由有关于所述存储模块的属于一个端口群的多播目标的数目来决定。举例来说,若是端口群PGx(x=1~n)具有X个出端口分别连接至X个多播目标,多播控制器112会将初始值X指定给第一计数值Rx。关于每一端口群PG1~PGn,相对应第一计数值会指示尚未被广播到多播封包的相同单元数据的多播目标的数目。因此,在网络交换机104和所述多播目标之间的多播封包单元数据传输开始之前,每一初始值X代表所述多播封包的相同单元数据应通过端口群PGx来被传送/广播的最大次数。
较佳地,第一计数值R1~Rn所存储的存储位置和封包缓冲器118中所述多播封包的相同单元数据同步。举例来说,当第一计数值R1~Rn关于所述多播封包的相同单元数据PKT_CELL0,第一计数值R1~Rn会被存储在存储模块212_1~212_n中相同存储地址‘5’的共址存储空间(co-located storage space)。
当所述封包缓冲器中的所述多播封包的相同单元数据被通过端口群中的一个端口来广播时,多播控制器112会针对相关于所述端口群的存储模块执行出列操作。举例来说,当所述多播封包的相同单元数据通过多个端口被广播至一个多播目标,其中每一端口都是从端口群PG1~PGn中选出的一个,多播控制器112会分别针对存储模块212_1~212_n执行出列操作DG1、DG2、…DGn-1、DGn。如上所述,针对存储模块所执行的出列操作包括从存储位置读取第一计数值、调整从所述存储位置所读取的所述第一计数值、以及将所述调整后第一计数值写入至相同存储位置。以针对存储装置212_1所执行的出列操作DG1为例,会读取第一计数值R1,将其值减去1(即R1=R1-1),然后将新的值写回。
为了增进对第一阶存储装置202的原理的了解,管理存储在存储模块中的第一计数值的范例被提出如下,假设端口群PG1包括图1所示的出端口P21、P22以及P23,当多播封包的单元数据(例如PKT_CELL0)被存储至封包缓冲器118,会针对存储模块212_1执行出列操作,第一计数值R1便会被设定为3(即R1=3)并存储在存储模块212_1的存储空间中。当所述单元数据(例如PKT_CELL0)的第一副本通过端口群PG1的出端口被传送至个人电脑102_1~102_3的其中之一时,会针对存储模块212_1执行出列操作来更新第一计数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例如PKT_CELL0)的多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_CELL0)至个人电脑102_1~102_3的其中之一时,第一计数值R1便会被减去1。因此,现在存储模块212_1中第一计数值R1被更新至2。
当所述单元数据(例如PKT_CELL0)的第二副本通过端口群PG1的另一出端口被传送至个人电脑102_1~102_3的其中之一时,会针对存储模块212_1再次执行出列操作来更新第一计数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例如PKT_CELL0)的多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_CELL0)至个人电脑102_1~102_3的其中之一时,第一计数值R1便会被减去1。因此,现在存储模块212_1中第一计数值R1被更新至1。
当所述单元数据(例如PKT_CELL0)的第三副本通过端口群PG1的又一出端口被传送至个人电脑102_1~102_3的其中之一时,会针对存储模块212_1再次执行出列操作来更新第一计数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例如PKT_CELL0)的多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_CELL0)至个人电脑102_1~102_3的其中之一时,第一计数值R1便会被减去1。因此,现在存储模块212_1中第一计数值R1被更新至0。在第一计数值R1不再是非零值时,表示针对耦接至属于端口群PG1的相同出端口的个人电脑102_1~102_3的此部份多播操作已经完成。
本领域的技术人员在阅读过上述段落后,应能立即明白对存储在其他存储模块212_2~212_n的其他第一计数值R2~Rn的管理与操作,故在此便不多做赘述。不言而喻的是,在每一第一计数值R1~Rn都等于预定值(即0)时,所述多播封包的所述相同单元数据(例如PKT_CELL0)的多播操作便宣告完成。
如上所述,原始的复制计数值RC被分割为第一计数值R1~Rn,并分别被保持在不同的存储模块212_1~212_n中。因此,需要检查第一计数值R1~Rn来判断所述多播封包的所述相同单元数据(例如PKT_CELL0)的所述多播操作是否已经完成。在此实施例中,图1所示的第二阶存储装置204用来快速地处理出列操作。具体来说,第二阶存储装置204用来存储第二计数值RS,其中第二计数值RS基于第一计数值R1~Rn来调整,进而指示所述多播封包的相同单元数据的多播操作是否完成。举例来说,当第二计数值RS达到预定值(例如0),表示所述多播封包的相同单元数据的多播操作已经完成。
当所述多播封包被存储至封包缓冲器118后,多播控制器112会针对第二阶存储装置204进一步执行入列操作EG’。在此实施例中,使用触发器阵列214来实现第二阶存储装置204。因此,由入列操作EG’所存储于触发器阵列214中的一组触发器的第二计数值RS一开始由第一阶存储装置202中的存储模块212_1~212_n的数目来决定。换句话说,由于在网络交换机104和所述多播目标之间的多播封包传输尚未开始,因此第一计数值R1~Rn一开始为非零值,故第二计数值RS会和不为零的第一计数值R1~Rn的数目相等。
每当至少一第一计数值达到预定值时(例如0),多播控制器112会针对第二阶存储装置204执行至少一出列操作DG’。由于第二阶存储装置204由触发器阵列214来实现,第二阶存储装置204能够在一个时钟周期之内对多个出列操作DG’做出反应。具体而言,当仅有一个出列操作DG’受到一个第一计数值达到所述预定值(例如0)而触发时,触发器阵列214会直接以调整值(例如RS=RS-1)来更新内部存储的第二计数值RS。当有S个出列操作DG’受到S个第一计数值达到所述预定值(例如0)而触发时,触发器阵列214会直接以调整值(例如RS=RS-S)来更新内部存储的第二计数值RS。简而言之,第二计数值RS可以依据以下的虚拟码来设定。
RS=PR1+PR2+…+PRn,
if(Rx!=0),then PRx=1,
else PRx=0
where x=0,1,2,…,n
当第二计数值RS不再是非零值时,代表所有的第一计数值R1~Rn都等于所述预定值(例如0)。多播控制器112因此便认可所述多播封包的所述相同单元数据的所述多播操作的结束。此时,第一计数值R1~Rn以及第二计数值RS所占据的存储空间便可被释放出来以供重复使用。
尽管第一阶存储装置202中的每一存储模块(例如内存库)212_1~212_n须花费若干时钟周期来完成一个出列操作(其中可包括读出、减值以及写回),存储模块(例如内存库)212_1~212_n能够同时进行多个出列操作。因此,平行的出列操作等同于在若干时钟周期内完成若干出列操作。假设存储装置须花费4个时钟周期来完成一个出列操作、1个时钟周期来完成一个入列操作,且多播目标的个数为4。传统的基于存储装置的计数器存储设计需要至少17(即1+4*4)个时钟周期来完成多播封包的所述相同单元数据的多播操作。而使用所提出的多内存库架构的第一阶存储装置202最少仅需要花费5(即1+4)个时钟周期来完成多播封包的所述相同单元数据的多播操作。因此,本发明的多内存库架构由于其具有可对多个出列操作平行处理的基于存储装置的存储模块,可以达到满足高速网络所需的封包多播频宽要求的高出列率。
由于所提出的多内存库架构允许基于存储装置的存储模块的多出列操作的平行处理,本发明因此提出了使用第二阶存储装置204的多阶架构,例如采用触发器阵列214,来及时地满足所需支援的多个出列操作,其中所述出列操作由第一阶存储装置202中的存储模块212_1~212_n的多个出列操作的平行操作结果所同时触发。简单来说,无论多少个第一计数值同时被减至0,第二阶存储装置204都能够及时地更新第二计数值RS来立即反应所述多播操作的即时状态。
通过存储装置以及触发器阵列的结合,能够以可接受的成本和芯片尺寸来满足频宽要求。假设原本的复制计数器需要w*d个比特,其中w代表条目数(即所述复制计数器的深度),以及d代表每一条目的比特数。若是存储装置相对触发器的面积因数为1:α(在此经过简化,假设存储装置面积单元为1),当所述复制计数器仅使用触发器来实现时,所述复制计数器的面积为α·w·d。然而,当所述复制计数器使用所提出的混合存储架构来实现时,所述一层n内存库二阶(1-layer n-bank2-level)复制计数器的面积为n·w·(d-log2n)+α·w·log2n。因此,相较于传统的设计,在(1)若n<α,则log2n<d和(2)若n>=α,则log2n>d的情况之下,所提出的混合设计可以更节省成本与芯片尺寸。然而以上仅供说明用途,本发明并不以此为限。即任何使用所提出的混合式存储架构的复制计数器存储设计皆落入本发明的权利要求范围之中。
在某些应用中,由于存储在封包缓冲器中的多个多播封包在一个时钟周期之内同时触发多个入列操作,因此入列率会较高。图2所示的一层多内存库复制计数器架构可能无法达到高入列率的要求。因此,本发明另提出多层多内存库复制计数器架构来满足所需要的高入列率。具体而言,在每一时钟,每一阶的混合式复制计数器存储器都支援同时的多重入列操作,换言之,入端口可以被视为分割为多个部份,以使得每一部份被允许具有较低入列率。举例来说,二层多内存库多阶复制计数器可以被用来处理同时传输存储在封包缓冲器中的两个多播封包。
请参考图3,图3为本发明另一实施例的多阶复制计数器存储装置。多阶复制计数器存储装置300采用两层多内存库多阶计数器存储架构,可以用来实现图1的网络交换机104中的多阶复制计数器存储装置114。和多阶复制计数器存储装置200相似,多阶复制计数器存储装置300也包括第一阶存储装置302以及第二阶存储装置304,其中可以使用具有多个存储模块(例如多个内存库)311_1~311_n、312_1~312_n的存储装置(例如动态随机存取存储装置或是静态随机存取存储装置)来实现第一阶存储装置302。此外,可以使用触发器阵列314来实现第二阶存储装置304。多阶复制计数器存储装置200和多阶复制计数器存储装置300之间主要的差异在于,第一阶存储装置302具有分别对应于两个不同的多播封包的两层存储模块。应注意的是,存储模块的层数并非限定为2,可基于实际设计需求和考量来调整存储模块的层数。
在此实施例中,一层存储模块包括分别对应于端口群PG1、PG2、…、PGn-1、PGn的第一存储模块311_1、311_2、…311_n-1、311_n;而另一层存储模块包括分别对应于端口群PG1~PGn(未显示于图中)的第二存储模块312_1、312_2、…312_n-1、312_n。多播控制器112会针对第一存储模块311_1~311_n执行多个入列操作EG11、EG12、…EG1n-1、EG1n来存储第一计数值R11、R12、…R1n-1、R1n,以反应在一个时钟周期内被存储至封包缓冲器118的第一多播封包的单元数据。以及也会针对第二存储模块312_1~312_n执行多个入列操作EG21、EG22、…EG2n-1、EG2n来存储第三计数值R21、R22、…R2n-1、R2n,以反应在一个时钟周期内被存储至封包缓冲器118的第二多播封包的单元数据。换言之,第一计数值R11~R1n相关于所述第一多播封包的相同单元数据,而第三计数值R21~R2n相关于不同于所述第一多播封包的所述第二多播封包的相同单元数据。因此,所存储的第一计数值R11~R1n的总和反映尚未被广播到所述第一多播封包的相同单元数据的多播目标的数目;而所存储的第三计数值R21~R2n的总和反映尚未被广播到所述第二多播封包的相同单元数据的多播目标的数目。
除此之外,多播控制器112会执行入列操作EG1’来将一二计数值RS1存储至触发器阵列314中的一组触发器,并且执行另一入列操作EG2’来将第四计数值RS2存储至触发器阵列314中的另一组触发器。第二计数值RS1基于第一计数值R11~R1n来调整,进而指示所述第一多播封包的相同单元数据的多播操作是否完成。第四计数值RS2基于第三计数值R21~R2n来调整,进而指示所述第二多播封包的相同单元数据的多播操作是否完成。
入列操作EG11~EG1n以及EG21~EG2n的原理和上述入列操作EG1~EGn的原理相同,且入列操作EG1’~EG2’的原理和上述入列操作EG’的原理相同。此外,出列操作DG11~DG1n以及DG21~DG2n的原理和上述出列操作DG1~DGn的原理相同,以及出列操作DG1’以及DG2’的原理和上述出列操作DG’的原理相同。为简洁起见,更进一步的细节在此便不多做赘述。
以上所述仅为本发明的较佳实施方式,凡依本发明权利要求所做的均等变化和修饰,均应属本发明的涵盖范围。
Claims (20)
1.一种多阶复制计数器存储装置,用于多播封包处理,其特征在于,包括:
第一阶存储装置,用来存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和等于尚未被广播到所述第一多播封包的所述相同单元数据的所述多播目标的数目;以及
第二阶存储装置,用来存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。
2.如权利要求1所述的多阶复制计数器存储装置,其特征在于,所述第一阶存储装置包括:
多个存储模块,其中所述第一计数值分别被存储在所述存储模块中。
3.如权利要求2所述的多阶复制计数器存储装置,其特征在于,每一所述存储模块都具有多个存储空间,以及所述第一计数值会被存储在所述存储模块中的共址存储空间。
4.如权利要求2所述的多阶复制计数器存储装置,其特征在于,所述存储模块分别对应至多个端口群,每一所述多播目标耦接至所述端口群中的一个端口;以及通过入列操作存储至所述存储模块的所述第一计数值依据属于有关于所述存储模块的所述端口群的所述多播目标的数目来设定。
5.如权利要求2所述的多阶复制计数器存储装置,其特征在于,所述存储模块分别对应至多个端口群,每一所述多播目标耦接至所述端口群中的一个端口;以及当所述第一多播封包的所述相同单元数据通过关于所述存储模块的所述端口群的一个端口来被广播时,存储在所述存储模块中的所述第一计数值通过出列操作来调整。
6.如权利要求2所述的多阶复制计数器存储装置,其特征在于,通过入列操作存储至所述第二阶存储装置的所述第二计数值依据所述存储模块的数目来设定。
7.如权利要求2所述的多阶复制计数器存储装置,其特征在于,存储在所述第二阶存储装置中的所述第二计数值通过至少一所述第一计数值达到预定值所触发的至少一出列操作来调整。
8.如权利要求1所述的多阶复制计数器存储装置,其特征在于,多个多播封包在单一时钟周期内被缓冲,所述多个多播封包包括所述第一多播封包以及第二多播封包;所述第一阶存储装置另用来存储关于需要被广播至所述多播目标的所述第二多播封包的相同单元数据的多个第三计数值;被存储的所述第三计数值的总和相等于尚未被广播到所述第二多播封包的所述相同单元数据的多播目标的所述数目;以及所述第二阶存储装置另用来存储第四计数值,所述第四计数值基于所述第三计数值来调整,以指示所述第二多播封包的所述相同单元数据的多播操作是否完成。
9.如权利要求1所述的多阶复制计数器存储装置,其特征在于,所述第一阶存储装置通过在K个时钟周期内更新所述第一计数值来完成一个出列操作,所述第二阶存储装置通过在L个时钟周期内更新所述第二计数值来完成一个出列操作,K以及L都是正整数,且K>L。
10.如权利要求9所述的多阶复制计数器存储装置,其特征在于,所述第一阶存储装置为存储装置,以及所述第二阶存储装置为触发器阵列。
11.一种用来管理多播封包处理的方法,其特征在于,包括:
在第一阶存储装置中存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和相等于尚未被广播到所述第一多播封包的所述相同单元数据的所述多播目标的数目;以及
在第二阶存储装置中存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。
12.如权利要求11所述的用来管理多播封包处理的方法,其特征在于,所述第一阶存储装置包括多个存储模块;以及存储所述第一计数值的步骤包括:
将所述第一计数值分别存储至所述存储模块。
13.如权利要求12所述的用来管理多播封包处理的方法,其特征在于,每一所述存储模块都具有多个存储空间,以及所述将所述第一计数值分别存储至所述存储模块的步骤包括:
将所述第一计数值存储至所述存储模块中的共址存储空间。
14.如权利要求12所述的用来管理多播封包处理的方法,其特征在于,所述存储模块分别对应至多个端口群;每一所述多播目标耦接至所述端口群的一个端口;以及所述用来管理多播封包处理的方法还包括:
当针对所述存储模块执行入列操作时,依据属于有关于所述存储模块的所述端口群的所述多播目标的数目来设定存储至所述存储模块的所述第一计数值。
15.如权利要求12所述的用来管理多播封包处理的方法,其特征在于,所述存储模块分别对应至多个端口群;每一多播目标耦接至所述端口群的一个端口;以及所述用来管理多播封包处理的方法还包括:
当所述第一多播封包的所述相同单元数据通过关于所述存储模块的所述端口群的一个端口来被广播时,针对所述存储模块执行出列操作来调整存储在所述存储模块中的所述第一计数值。
16.如权利要求12所述的用来管理多播封包处理的方法,其特征在于,还包括:
当针对所述第二阶存储装置执行入列操作时,依据所述存储模块的数目来设定存储至所述第二阶存储装置的所述第二计数值。
17.如权利要求12所述的用来管理多播封包处理的方法,其特征在于,还包括:
当至少一出列操作因至少一所述第一计数值达到预定值而被触发时,调整存储在所述第二阶存储装置中的所述第二计数值。
18.如权利要求11所述的用来管理多播封包处理的方法,其特征在于,多个多播封包在一单一时钟周期内被缓冲,所述多个多播封包包括所述第一多播封包以及第二多播封包;以及所述用来管理多播封包处理的方法还包括:
将关于需要被广播至所述多播目标的所述第二多播封包的相同单元数据的多个第三计数值存储至所述第一阶存储装置,其中被存储的所述第三计数值的总和相等于尚未被广播到所述第二多播封包的所述相同单元数据的多播目标的所述数目;以及
将第四计数值存储至所述第二阶存储装置,其中所述第四计数值基于所述第三计数值来调整,以指示所述第二多播封包的所述相同单元数据的多播操作是否完成。
19.如权利要求11所述的用来管理多播封包处理的方法,其特征在于,还包括:
使用所述第一阶存储装置来通过在K个时钟周期内更新所述第一计数值以完成一个出列操作;以及
使用所述第二阶存储装置来通过在L个时钟周期内更新所述第二计数值以完成一个出列操作;
其中K以及L都系正整数,且K>L。
20.如权利要求19所述的用来管理多播封包处理的方法,其特征在于,所述第一阶存储装置为存储装置,以及所述第二阶存储装置为触发器阵列。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361815913P | 2013-04-25 | 2013-04-25 | |
US61/815,913 | 2013-04-25 | ||
US14/243,888 | 2014-04-03 | ||
US14/243,888 US9521007B2 (en) | 2013-04-25 | 2014-04-03 | Multi-level replication counter storage device for multicast packet processing and related method for managing multicast packet processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104124962A true CN104124962A (zh) | 2014-10-29 |
CN104124962B CN104124962B (zh) | 2017-07-07 |
Family
ID=51770243
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410169530.9A Active CN104124962B (zh) | 2013-04-25 | 2014-04-25 | 多阶复制计数器存储装置及用来管理多播封包处理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104124962B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109845199A (zh) * | 2016-09-12 | 2019-06-04 | 马维尔国际贸易有限公司 | 合并网络设备架构中的读取请求 |
CN113992606A (zh) * | 2020-07-10 | 2022-01-28 | 瑞昱半导体股份有限公司 | 用于多播封包复制的复制串列表结构 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1366400A (zh) * | 2001-05-10 | 2002-08-28 | 威盛电子股份有限公司 | 网络数据包的输出队列方法与装置 |
CN1444812A (zh) * | 2000-07-24 | 2003-09-24 | 睦塞德技术公司 | 减少共享存储器交换机中的存储池不足的方法和装置 |
CN1984079A (zh) * | 2006-02-01 | 2007-06-20 | 威盛电子股份有限公司 | 分组传送控制方法与系统 |
CN101848150A (zh) * | 2010-04-26 | 2010-09-29 | 华为技术有限公司 | 维护多播计数器的计数值的方法及装置 |
US20120063318A1 (en) * | 2002-04-04 | 2012-03-15 | Juniper Networks, Inc. | Dequeuing and congestion control systems and methods for single stream multicast |
-
2014
- 2014-04-25 CN CN201410169530.9A patent/CN104124962B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444812A (zh) * | 2000-07-24 | 2003-09-24 | 睦塞德技术公司 | 减少共享存储器交换机中的存储池不足的方法和装置 |
CN1366400A (zh) * | 2001-05-10 | 2002-08-28 | 威盛电子股份有限公司 | 网络数据包的输出队列方法与装置 |
US20120063318A1 (en) * | 2002-04-04 | 2012-03-15 | Juniper Networks, Inc. | Dequeuing and congestion control systems and methods for single stream multicast |
CN1984079A (zh) * | 2006-02-01 | 2007-06-20 | 威盛电子股份有限公司 | 分组传送控制方法与系统 |
CN101848150A (zh) * | 2010-04-26 | 2010-09-29 | 华为技术有限公司 | 维护多播计数器的计数值的方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109845199A (zh) * | 2016-09-12 | 2019-06-04 | 马维尔国际贸易有限公司 | 合并网络设备架构中的读取请求 |
CN109845199B (zh) * | 2016-09-12 | 2022-03-04 | 马维尔亚洲私人有限公司 | 合并网络设备架构中的读取请求 |
CN113992606A (zh) * | 2020-07-10 | 2022-01-28 | 瑞昱半导体股份有限公司 | 用于多播封包复制的复制串列表结构 |
Also Published As
Publication number | Publication date |
---|---|
CN104124962B (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102232215B (zh) | 多串行接口堆叠裸片存储器架构 | |
CN100458757C (zh) | 嵌入式实时操作系统中多核处理器的核间通信方法及装置 | |
CN101405708B (zh) | 自动计算机器的存储器系统 | |
US20220121599A1 (en) | Network-on-chip data processing method and device | |
US8635390B2 (en) | System and method for a hierarchical buffer system for a shared data bus | |
US10620841B2 (en) | Transfer of object memory references in a data storage device | |
CN104717152B (zh) | 一种实现接口缓存动态分配的方法和装置 | |
US20170364266A1 (en) | Method and device for managing input/output (i/o) of storage device | |
CN106843773A (zh) | 存储方法和分布式存储系统 | |
CN104205780B (zh) | 一种存储数据的方法和装置 | |
US20170048320A1 (en) | Distributed gather/scatter operations across a network of memory nodes | |
CN102402422B (zh) | 处理器组件及该组件内存共享的方法 | |
CN106446168A (zh) | 一种面向分布式数据仓库的高效加载客户端实现方法 | |
US20020071321A1 (en) | System and method of maintaining high bandwidth requirement of a data pipe from low bandwidth memories | |
US20110131288A1 (en) | Load-Balancing In Replication Engine of Directory Server | |
CN114721994A (zh) | 众核处理装置、数据处理方法及设备、介质 | |
US10782914B2 (en) | Buffer systems and methods of operating the same | |
US10078602B2 (en) | Information processing apparatus, memory controller, and memory control method | |
US9390017B2 (en) | Write and read collision avoidance in single port memory devices | |
CN104124962A (zh) | 多阶复制计数器存储装置及用来管理多播封包处理的方法 | |
CN114691037A (zh) | 卸载卡命名空间管理、输入输出请求处理系统和方法 | |
CN102404183B (zh) | 仲裁方法和仲裁器 | |
CN107403642A (zh) | 有源随机存取存储器 | |
CN100541463C (zh) | 仲裁访问的装置和方法 | |
CN102650932A (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 |