多阶复制计数器存储装置及用来管理多播封包处理的方法

文档序号:7545561研发日期:2014年阅读:168来源:国知局
技术简介:
本专利针对多播封包处理中数据传输状态跟踪效率低的问题,提出采用多阶复制计数器存储装置的解决方案。通过第一阶存储装置分模块存储多播目标计数值,第二阶触发器阵列动态调整主控计数值,实现多播数据传输状态的并行跟踪与快速更新。该方法利用存储模块的共址特性与触发器的高速响应,显著提升多播操作的处理效率和资源利用率。
关键词:多播封包处理,复制计数器,多阶存储装置
多阶复制计数器存储装置及用来管理多播封包处理的方法
【专利摘要】本发明公开一种多阶复制计数器存储装置及用来管理多播封包处理的方法。多阶复制计数器存储装置,用于多播封包处理,包括:第一阶存储装置,用来存储关于需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存储的所述第一计数值的总和等于尚未被广播到所述第一多播封包的所述相同单元数据的所述多播目标的数目;以及第二阶存储装置,用来存储第二计数值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。本发明所公开的多阶复制计数器存储装置,能够以可接受的面积尺寸和成本来达到所需频宽。
【专利说明】多阶复制计数器存储装置及用来管理多播封包处理的方法

【技术领域】
[0001] 本发明所揭露的实施例相关于封包的发送,特别指一种用于多播封包处理的多阶 复制计数器存储装置(multi-level replication counter storage device)以及用来管 理多播封包处理的方法。

【背景技术】
[0002] 网络交换机为电脑网络装置,可用于连接不同电子装置。举例来说,网络交换机会 接收由其所连接的源电子装置所产生的输入封包,并且只将依据所述接收到的封包所产生 的输出封包转发至一个或是一个以上由所述接收到的封包所指定的目的电子装置。一般来 说,网络交换机具有封包缓冲器以缓冲由入端口(ingress port)所接收到的封包的封包数 据,并且通过出端口(egress port)来将封包缓冲器中所存储的封包转发出去。若是有分 别连接至所述网络装置的不同出端口的一组目的电子装置要求相同封包时,可以在单一传 输中从连接至所述网络装置的入端口的源电子装置得到所要求的封包,又称为多播封包, 且所述网络交换机可执行多播操作来将存储在封包缓冲器中的所要求的封包的副本传送/ 广播至上述一组目的电子装置。复制计数器(又称为多播计数器)被广泛地使用在网络交 换机中来计算网络中多播或是广播目标的数目。
[0003] 在传统设计中,仅使用存储装置(memory device)来实现计数器存储装置。因此, 当针对所述存储装置执行入列操作(en-queue operation)时,会将初始计数值存储至所述 存储装置。当针对所述存储装置执行出列操作(de-queue operation)时,会从存储位置 (memory location)将所存储的计数值读出,并将其减去1再写回至相同的存储位置。一般 来说,所述存储装置需要若干时钟周期来结束一个出列操作。此外,多数存储装置不允许同 时进行读写的操作。因此,若是入列或是出列率较高(即所述交换机装置使用在高速网络 中),存储装置的操作频率将无法达到所需要的频宽。
[0004] 在另一传统设计中,仅使用触发器阵列(flip-flop array)来实现计数器存储装 置。所述触发器阵列中的每一触发器都能够在单一时钟周期之内完成一个出列操作(直接 更新所存储的计数值)。因此,若是入列或是出列率较高(即所述交换机装置使用在高速网 络中),触发器阵列的操作频率可以达到所需要的频宽。如果η个比特(bit)都具有相同的 m个字(word)的大小,不过芯片中触发器阵列的面积通常为同样容量的存储装置的8?12 倍。因此,这样的作法会耗费相当高的成本。
[0005] 有鉴于此,此领域亟需一种新颖的复制计数器存储设计,能够以可接受的面积尺 寸和成本来达到所需频宽。


【发明内容】

[0006] 有鉴于此,本发明提供一种用于多播封包处理的多阶复制计数器存储装置以及用 来管理多播封包处理的方法,以解决上述问题。
[0007] 依据本发明的第一示范性实施例,提出一种用于多播封包处理的多阶复制计数器 存储装置,包括第一阶存储装置以及第二阶存储装置。所述第一阶存储装置用来存储关于 需要被广播至多个多播目标的第一多播封包的相同单元数据的多个第一计数值,其中所存 储的所述第一计数值的总和相等于尚未被广播到所述第一多播封包的所述相同单元数据 的多播目标的数目。所述第二阶存储装置用来存储第二计数值,所述第二计数值基于所述 第一计数值来调整,以指示所述第一多播封包的所述相同单元数据的多播操作是否完成。
[0008] 依据本发明的第二示范性实施例,提出一种用来管理多播封包处理的方法,包括: 在第一阶存储装置中存储关于需要被广播至多个多播目标的第一多播封包的相同单元数 据的多个第一计数值,其中所存储的所述第一计数值的总和相等于尚未被广播到所述第一 多播封包的所述相同单元数据的多播目标的数目;以及在第二阶存储装置中存储第二计数 值,所述第二计数值基于所述第一计数值来调整,以指示所述第一多播封包的所述相同单 元数据的多播操作是否完成。
[0009] 本发明结合存储装置和触发器阵列的优点,所提出的用于多播封包处理的多阶复 制计数器存储装置,可以在可接受的面积和成本的考量下,达到所要求的频宽。
[0010] 对于已经阅读后续由各附图及内容所显示的较佳实施方式的本领域的技术人员 来说,本发明的各目的是明显的。

【专利附图】

【附图说明】
[0011] 图1为本发明的网络系统的实施例的框图。
[0012] 图2为本发明的多阶复制计数器存储装置的一实施例的示意图。
[0013] 图3为本发明的多阶复制计数器存储装置的另一实施例的示意图。

【具体实施方式】
[0014] 在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中的技术 人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明 书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准 贝1J。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限 定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第 一装置耦接于第二装置,则代表所述第一装置可直接电连接于所述第二装置,或通过其他 装置或连接手段间接地电连接至所述第二装置。
[0015] 本发明的主要精神在于结合存储装置和触发器阵列的优点,因此提出一种用于多 播封包处理的多阶复制计数器存储装置,以在可接受的面积和成本的考量下,达到所要求 的频宽。举例来说,网络装置(例如网络交换机)中的多播控制机制可以采用单层多内存 库多阶存储器(single-layer multi-bank multi-level storage)或是多层多内存库多阶 存储器。以下将对更进一步的细节进行说明并佐以图式。
[0016] 请参考图1,图1为本发明的网络系统的实施例的框图。网络系统100包括源电子 装置(例如伺服器101)、多个目标电子装置(例如个人电脑1〇2_1、102_2、102_3、…102_N) 以及网络交换机104,网络交换机104耦接于所述源电子装置以及所述目标电子装置之间, 以将所请求的一个或是一个以上的封包PKT KEQ从所述源电子装置转发至一个或是一个以上 的所述目标电子装置。如图1所示,伺服器101连接至网络交换机104的入端口 Pi,而个人 电脑102_1?102_N分别耦接至出端口 P21、P22、P23、…P2N。在一组目标电子装置(例如个 人电脑102_1?102_N)对源电子装置(例如伺服器101)要求相同封包的情况下,网络交 换机104可以利用单次传输来从伺服器101接收所述请求封包(requested packet)(即多 播封包),然后执行多播操作以将所述多播封包的副本分别传送/广播至个人电脑1〇2_1? 102_N。如图1所示,网络交换机104包括但不限定于多播控制器112、多阶复制计数器存储 装置114、链表存储装置(linked list storage device) 116以及封包缓冲器118。
[0017] 由于封包缓冲器118中的可用空间可能分散在不连续的存储位置,因此当网络交 换机104从入端口 Pi接收到所述请求封包(即多播封包)时,网络交换机104可将所述请 求封包(即多播封包)中的单元数据(cell data)存储在封包缓冲器118中的不连续存储 位置中。举例来说,所述多播封包的第一单元数据PKT_CELL0被存储在存储地址'5'中,所 述多播封包的下一单元数据PKT_CELL1被存储在不同的存储地址'10'中,所述多播封包的 下一单元数据PKT_CELL2被存储在不同的存储地址' 12'中,并依此类推。为管理存储在封 包缓冲器118中的封包单元数据,链表存储装置116中会建立链表。在此范例中,所述链表 的表头节点位于存储地址'5'中,而所述表头节点中的下一个地址记录为'10',表示所述 链表中的下一个节点位于存储地址'10'。相似地,存储地址'10'的节点的下一个地址记录 为'12',表示所述链表中的下一个节点位于存储地址'12'。如此一来,便可基于记录于链 表中的节点顺序来将所述多播封包中的单元数据从封包缓冲器118中读取出来。
[0018] 多播控制器112可以接收复制计数值(replication count value)RC,复制计数 值RC是依据网络系统100中,请求相同多播封包的多播/广播目标的数目来设定。在个人 电脑102_1?102_N都对伺服器(例如多媒体伺服器)101请求相同封包的情况下,复制计 数值RC等于N。相对于传统的复制计数器存储设计,其仅使用存储装置或是触发器阵列来 记录复制计数值RC,然后减少复制计数值RC来反应多播封包副本的传送/广播,本发明使 用混合存储设计,其使用存储装置(例如动态随机存取存储装置或是静态随机存取存储装 置)来结合触发器阵列来管理所述多播封包处理。因此,多阶复制计数器存储装置114能 够同时具有所述存储装置的好处(例如较低成本和面积)以及所述触发器阵列的优点(例 如较快的出列速度)。以下将针对所提出的多阶复制计数器存储装置114的细节进行说明。
[0019] 请参考图2,图2为本发明多阶复制计数器存储装置的一实施例的示意图。多阶复 制计数器存储装置200采用单层多内存库多阶计数器存储架构,可以用来实现图1的网络 交换机104中的多阶复制计数器存储装置114。多阶复制计数器存储装置200包括第一阶 存储装置202以及第二阶存储装置204,第一阶存储装置202以及第二阶存储装置204具 有不同数据存取特性(data access characteristics)。例如第一阶存储装置202通过在 K个时钟周期内更新其所存储的计数值来完成出列操作;第二阶存储装置204通过在L个 时钟周期内更新其所存储的计数值来完成出列操作,其中K和L为正整数,且K>L。也就是 说,相较于第一阶存储装置202,第二阶存储装置204能够支援较高速的出列操作。一般来 说,出列速度和硬件成本/尺寸互为折衷关系,因此,相较于第二阶存储装置204,第一阶存 储装置202的尺寸和成本较低。在一较佳实施例中,可以使用具有多个存储模块(例如多 个内存库)212_1、212_2、一212^-1312^的存储装置(例如动态随机存取存储装置或 是静态随机存取存储装置)来实现第一阶存储装置202,其中每一存储模块212_1?212_ η都由不同存储位置的多个存储空间113所组成;此外,可以使用位于不同存储位置的多组 触发器115所构成的触发器阵列214来实现第二阶存储装置204。
[0020] 第一阶存储装置202中的存储模块212_1?212_n的数目η依据实际设计考量来 决定。举例来说,若是每一存储模块212_1?212_η都需要4个时钟周期来完成出列操作 (从存储地址中读出所存储的第一计数器值、调整所述第一计数器值并且将调整后的第一 计数器值写入相同的存储地址),便需要在第一阶存储装置202中设置4个存储模块(即η =4)。然而以上仅供说明用途,而非本发明的限制所在。
[0021] 第一阶存储装置202用来存储多个第一计数值R1、R2、…Rn-l、Rn,所述第一计数 值R1、R2、…Rn-l、Rn有关于需要被广播至多个多播目标的多播封包的相同单元数据(例 如暂存在封包缓冲器118内的存储地址'5'的第一单元数据PKT_CELL0)。所存储的第一计 数值R1?Rn的总和等于尚未被广播到多播封包的相同单元数据的多播目标的数目。在所 述多播目标为图1的个人电脑1〇2_1?102_N的情况下,多播控制器112所接收到的复制 计数值RC会等于N。一开始,由于网络交换机104和所述多播目标之间的多播封包单元数 据传输尚未开始,因此可以得知RC = Rl+R2+?"+Rn-l+Rn = N,在此实施例中,多播控制器 112会基于端口群(port groups)PGl、PG2、…、PGn-l、PGn来将复制计数值RC分割为第一 计数值R1?Rn。具体地说,存储模块212_1?212_n分别对应端口群PG1?PGn。每一多 播目标(例如个人电脑1〇2_1?102_N)都耦接至端口群PG1?PGn中的一个出端口。在 一较佳实施例中,所述多播目标平均地或是尽量平均地被指定至端口群PG1?PGn。更具体 地说,若N可以被η所整除,则因为端口群PG1?PGn中的每一个耦接至N/n个多播目标, 故每一第一计数值R1?Rn为N/n。然而,若是N无法被η所整除,第一计数值R1?Rn中 的一部份可以被设为值CV (例如CV = floor (N/n)),而剩下的所述第一计数值可以被设为 另一个值(CV+1)。然而以上仅供说明用途,本发明并不以此为限。
[0022] 当所述多播封包被存储至封包缓冲器118后,多播控制器112会同时针对各个存 储模块212_1?212_n分别执行入列操作EG1、EG2、"4611-1、EGn。在此实施例中,由入 列操作所存储于存储模块的第一计数值由有关于所述存储模块的属于一个端口群的多播 目标的数目来决定。举例来说,若是端口群PGx(x = 1?η)具有X个出端口分别连接至X 个多播目标,多播控制器112会将初始值X指定给第一计数值Rx。关于每一端口群PG1? PGn,相对应第一计数值会指示尚未被广播到多播封包的相同单元数据的多播目标的数目。 因此,在网络交换机104和所述多播目标之间的多播封包单元数据传输开始之前,每一初 始值X代表所述多播封包的相同单元数据应通过端口群PGx来被传送/广播的最大次数。
[0023] 较佳地,第一计数值R1?Rn所存储的存储位置和封包缓冲器118中所述多播封 包的相同单元数据同步。举例来说,当第一计数值R1?Rn关于所述多播封包的相同单元 数据PKT_CELL0,第一计数值R1?Rn会被存储在存储模块212_1?212_n中相同存储地址 '5' 的共址存储空间(co-located storage space)。
[0024] 当所述封包缓冲器中的所述多播封包的相同单元数据被通过端口群中的一个端 口来广播时,多播控制器112会针对相关于所述端口群的存储模块执行出列操作。举例来 说,当所述多播封包的相同单元数据通过多个端口被广播至一个多播目标,其中每一端口 都是从端口群PG1?PGn中选出的一个,多播控制器112会分别针对存储模块212_1?212_ η执行出列操作DG1、DG2、如上所述,针对存储模块所执行的出列操作包括 从存储位置读取第一计数值、调整从所述存储位置所读取的所述第一计数值、以及将所述 调整后第一计数值写入至相同存储位置。以针对存储装置212 j所执行的出列操作DG1为 例,会读取第一计数值R1,将其值减去1(即R1 = R1-1),然后将新的值写回。
[0025] 为了增进对第一阶存储装置202的原理的了解,管理存储在存储模块中的第一计 数值的范例被提出如下,假设端口群PG1包括图1所示的出端口 P21、P22以及P23,当多播封 包的单元数据(例如PKT_CELL0)被存储至封包缓冲器118,会针对存储模块212_1执行出 列操作,第一计数值R1便会被设定为3 (即R1 = 3)并存储在存储模块212_1的存储空间 中。当所述单元数据(例如PKT_CELL0)的第一副本通过端口群PG1的出端口被传送至个 人电脑1〇2_1?102_3的其中之一时,会针对存储模块212_1执行出列操作来更新第一计 数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例如PKT_CELL0)的 多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_CELL0)至个人电脑 102_1?102_3的其中之一时,第一计数值R1便会被减去1。因此,现在存储模块212_1中 第一计数值R1被更新至2。
[0026] 当所述单元数据(例如PKT_CELL0)的第二副本通过端口群PG1的另一出端口被 传送至个人电脑1〇2_1?102_3的其中之一时,会针对存储模块212_1再次执行出列操 作来更新第一计数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例 如PKT_CELL0)的多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_ CELLO)至个人电脑102_1?102_3的其中之一时,第一计数值R1便会被减去1。因此,现 在存储模块212_1中第一计数值R1被更新至1。
[0027] 当所述单元数据(例如PKT_CELL0)的第三副本通过端口群PG1的又一出端口被 传送至个人电脑1〇2_1?102_3的其中之一时,会针对存储模块212_1再次执行出列操 作来更新第一计数值R1。由于第一计数值R1用来指示尚未被广播到所述单元数据(例 如PKT_CELL0)的多播目标的数目,每当从网络交换机104传送所述单元数据(例如PKT_ CELLO)至个人电脑102_1?102_3的其中之一时,第一计数值R1便会被减去1。因此,现 在存储模块212_1中第一计数值R1被更新至0。在第一计数值R1不再是非零值时,表示针 对耦接至属于端口群PG1的相同出端口的个人电脑102_1?102_3的此部份多播操作已经 完成。
[0028] 本领域的技术人员在阅读过上述段落后,应能立即明白对存储在其他存储模块 212_2?212_n的其他第一计数值R2?Rn的管理与操作,故在此便不多做赘述。不言而喻 的是,在每一第一计数值R1?Rn都等于预定值(即0)时,所述多播封包的所述相同单元 数据(例如PKT_CELL0)的多播操作便宣告完成。
[0029] 如上所述,原始的复制计数值RC被分割为第一计数值R1?Rn,并分别被保持在 不同的存储模块212_1?212_n中。因此,需要检查第一计数值R1?Rn来判断所述多播 封包的所述相同单元数据(例如PKT_CELL0)的所述多播操作是否已经完成。在此实施例 中,图1所示的第二阶存储装置204用来快速地处理出列操作。具体来说,第二阶存储装置 204用来存储第二计数值RS,其中第二计数值RS基于第一计数值R1?Rn来调整,进而指 示所述多播封包的相同单元数据的多播操作是否完成。举例来说,当第二计数值RS达到预 定值(例如〇),表示所述多播封包的相同单元数据的多播操作已经完成。
[0030] 当所述多播封包被存储至封包缓冲器118后,多播控制器112会针对第二阶存储 装置204进一步执行入列操作EG'。在此实施例中,使用触发器阵列214来实现第二阶存储 装置204。因此,由入列操作EG'所存储于触发器阵列214中的一组触发器的第二计数值RS 一开始由第一阶存储装置202中的存储模块212_1?212_n的数目来决定。换句话说,由 于在网络交换机104和所述多播目标之间的多播封包传输尚未开始,因此第一计数值R1? Rn -开始为非零值,故第二计数值RS会和不为零的第一计数值R1?Rn的数目相等。
[0031] 每当至少一第一计数值达到预定值时(例如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可以依据以下的虚拟码来设定。
[0032] RS = PR1+PR2+…+PRn,
[0033] if (Rx ! = 0), then PRx = 1,
[0034] else PRx = 0
[0035] where x = 0, 1,2,…,n
[0036] 当第二计数值RS不再是非零值时,代表所有的第一计数值R1?Rn都等于所述预 定值(例如〇)。多播控制器112因此便认可所述多播封包的所述相同单元数据的所述多播 操作的结束。此时,第一计数值R1?Rn以及第二计数值RS所占据的存储空间便可被释放 出来以供重复使用。
[0037] 尽管第一阶存储装置202中的每一存储模块(例如内存库)212_1?212_n须花 费若干时钟周期来完成一个出列操作(其中可包括读出、减值以及写回),存储模块(例如 内存库)212_1?212_n能够同时进行多个出列操作。因此,平行的出列操作等同于在若干 时钟周期内完成若干出列操作。假设存储装置须花费4个时钟周期来完成一个出列操作、 1个时钟周期来完成一个入列操作,且多播目标的个数为4。传统的基于存储装置的计数器 存储设计需要至少17 (即1+4*4)个时钟周期来完成多播封包的所述相同单元数据的多播 操作。而使用所提出的多内存库架构的第一阶存储装置202最少仅需要花费5(即1+4)个 时钟周期来完成多播封包的所述相同单元数据的多播操作。因此,本发明的多内存库架构 由于其具有可对多个出列操作平行处理的基于存储装置的存储模块,可以达到满足高速网 络所需的封包多播频宽要求的高出列率。
[0038] 由于所提出的多内存库架构允许基于存储装置的存储模块的多出列操作的平行 处理,本发明因此提出了使用第二阶存储装置204的多阶架构,例如采用触发器阵列214, 来及时地满足所需支援的多个出列操作,其中所述出列操作由第一阶存储装置202中的存 储模块212_1?212_n的多个出列操作的平行操作结果所同时触发。简单来说,无论多少 个第一计数值同时被减至〇,第二阶存储装置204都能够及时地更新第二计数值RS来立即 反应所述多播操作的即时状态。
[0039] 通过存储装置以及触发器阵列的结合,能够以可接受的成本和芯片尺寸来满足 频宽要求。假设原本的复制计数器需要w*d个比特,其中w代表条目数(即所述复制计 数器的深度),以及d代表每一条目的比特数。若是存储装置相对触发器的面积因数为 1: α (在此经过简化,假设存储装置面积单元为1),当所述复制计数器仅使用触发器来实 现时,所述复制计数器的面积为α ·¥·(1。然而,当所述复制计数器使用所提出的混合存 储架构来实现时,所述一层η内存库二阶(1-layer n-bank2-level)复制计数器的面积为 η · w · (d_log2n) + α · w · l〇g2n。因此,相较于传统的设计,在⑴若η〈 α,则l〇g2n < d和 (2)若n> = α,贝lj l〇g2n > d的情况之下,所提出的混合设计可以更节省成本与芯片尺寸。 然而以上仅供说明用途,本发明并不以此为限。即任何使用所提出的混合式存储架构的复 制计数器存储设计皆落入本发明的权利要求范围之中。
[0040] 在某些应用中,由于存储在封包缓冲器中的多个多播封包在一个时钟周期之内同 时触发多个入列操作,因此入列率会较高。图2所示的一层多内存库复制计数器架构可能 无法达到高入列率的要求。因此,本发明另提出多层多内存库复制计数器架构来满足所需 要的高入列率。具体而言,在每一时钟,每一阶的混合式复制计数器存储器都支援同时的多 重入列操作,换言之,入端口可以被视为分割为多个部份,以使得每一部份被允许具有较低 入列率。举例来说,二层多内存库多阶复制计数器可以被用来处理同时传输存储在封包缓 冲器中的两个多播封包。
[0041] 请参考图3,图3为本发明另一实施例的多阶复制计数器存储装置。多阶复制计数 器存储装置300采用两层多内存库多阶计数器存储架构,可以用来实现图1的网络交换机 104中的多阶复制计数器存储装置114。和多阶复制计数器存储装置200相似,多阶复制计 数器存储装置300也包括第一阶存储装置302以及第二阶存储装置304,其中可以使用具有 多个存储模块(例如多个内存库)311_1?311_n、312_l?312_n的存储装置(例如动态 随机存取存储装置或是静态随机存取存储装置)来实现第一阶存储装置302。此外,可以使 用触发器阵列314来实现第二阶存储装置304。多阶复制计数器存储装置200和多阶复制 计数器存储装置300之间主要的差异在于,第一阶存储装置302具有分别对应于两个不同 的多播封包的两层存储模块。应注意的是,存储模块的层数并非限定为2,可基于实际设计 需求和考量来调整存储模块的层数。
[0042] 在此实施例中,一层存储模块包括分别对应于端口群PG1、PG2、…、PGn-l、PGn的 第一存储模块311_1、311_2、…311_n-l、311_n ;而另一层存储模块包括分别对应于端口群 PG1?PGn(未显示于图中)的第二存储模块312_1、312_2、一312^-1.312^。多播控制 器112会针对第一存储模块311_1?311_n执行多个入列操作EG1UEG12、…EGln-l、EGln 来存储第一计数值R11、R12、…Rln-l、Rln,以反应在一个时钟周期内被存储至封包缓冲器 118的第一多播封包的单元数据。以及也会针对第二存储模块312_1?312_n执行多个入 列操作EG21、EG22、…EG2n-1、EG2n来存储第三计数值R21、R22、…R2n-1、R2n,以反应在 一个时钟周期内被存储至封包缓冲器118的第二多播封包的单元数据。换言之,第一计数 值R11?Rln相关于所述第一多播封包的相同单元数据,而第三计数值R21?R2n相关于 不同于所述第一多播封包的所述第二多播封包的相同单元数据。因此,所存储的第一计数 值R11?Rln的总和反映尚未被广播到所述第一多播封包的相同单元数据的多播目标的数 目;而所存储的第三计数值R21?R2n的总和反映尚未被广播到所述第二多播封包的相同 单元数据的多播目标的数目。
[0043] 除此之外,多播控制器112会执行入列操作EG1'来将一二计数值RS1存储至触发 器阵列314中的一组触发器,并且执行另一入列操作EG2'来将第四计数值RS2存储至触发 器阵列314中的另一组触发器。第二计数值RS1基于第一计数值R11?Rln来调整,进而 指示所述第一多播封包的相同单元数据的多播操作是否完成。第四计数值RS2基于第三计 数值R21?R2n来调整,进而指示所述第二多播封包的相同单元数据的多播操作是否完成。
[0044] 入列操作EG11?EGln以及EG21?EG2n的原理和上述入列操作EG1?EGn的原 理相同,且入列操作EG1'?EG2'的原理和上述入列操作EG'的原理相同。此外,出列操作 DG11?DGln以及DG21?DG2n的原理和上述出列操作DG1?DGn的原理相同,以及出列操 作DG1'以及DG2'的原理和上述出列操作DG'的原理相同。为简洁起见,更进一步的细节 在此便不多做赘述。
[0045] 以上所述仅为本发明的较佳实施方式,凡依本发明权利要求所做的均等变化和修 饰,均应属本发明的涵盖范围。
【权利要求】
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所述的用来管理多播封包处理的方法,其特征在于,所述第一阶存 储装置为存储装置,以及所述第二阶存储装置为触发器阵列。
【文档编号】H03K23/40GK104124962SQ201410169530
【公开日】2014年10月29日 申请日期:2014年4月25日 优先权日:2013年4月25日
【发明者】张建雄 申请人:联发科技股份有限公司
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!