# US 9,521,007 B2 · Multi-level replication counter storage device for multicast packet processing and related method for managing multicast packet processing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,521,007 B2
- Document ID: US9521007B2
- Status: Granted
- Kind: B2
- Application number: 14/243,888
- Filed: 2014-04-03
- Published: 2014-10-30
- Granted: 2016-12-13
- Earliest claimed: 2013-04-25
- Assignees: Mediatek Inc.
- Applicants: Mediatek Inc.
- Inventors: Chien-Hsiung Chang
- Web page: https://patentgrep.com/patent/US9521007B2

## CPC

- H04L 12/1881: {with schedule organisation, e.g. priority, sequence management}
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/1845: {broadcast or multicast in a specific location, e.g. geocast (protocols for adapting network applications to user terminal location H04L67/52; services specially adapted for wireless communication networks making use of the location of users or terminals H04W4/02)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A multi-level replication counter storage device for multicast packet processing includes a first-level storage device and a second-level storage device. The first-level storage device stores a plurality of first count values associated with a same cell data of a first multicast packet required to be broadcasted to a plurality of multicast targets, wherein a sum of the stored first count values is equal to a number of multicast targets to which the same cell data of the first multicast packet is not broadcasted yet. The second-level storage device stores a second count value which is adjusted based on the first count values to indicate whether a multicast operation of the same cell data of the first multicast packet is accomplished.

## Claims

### Claim 1

A multi-level replication counter storage device for multicast packet processing, comprising:
a first-level storage device, configured to store a plurality of first count values associated with a same cell data of a first multicast packet required to be broadcasted to a plurality of multicast targets, wherein a sum of the stored first count values is equal to a number of multicast targets to which the same cell data of the first multicast packet is not broadcasted yet; and
a second-level storage device, configured to store a second count value which is adjusted based on the first count values to indicate whether a multicast operation of the same cell data of the first multicast packet is accomplished;
wherein the first-level storage device accomplishes one de-queue operation by updating a first count value in K clock cycles, the second-level storage device accomplishes one de-queue operation by updating the second count value in L clock cycles, K and L are positive integers, and K>L.

### Claim 2 (depends on 1)

The multi-level replication counter storage device of claim 1, wherein the first-level storage device comprises:
a plurality of storage modules, wherein the first count values are stored in the storage modules, respectively.

### Claim 3 (depends on 2)

The multi-level replication counter storage device of claim 2, wherein each of the storage modules has a plurality of storage spaces, and the first count values are stored in co-located storage spaces in the storage modules.

### Claim 4 (depends on 2)

The multi-level replication counter storage device of claim 2, wherein the storage modules correspond to a plurality of port groups, respectively; each of the multicast targets is coupled to one port of the port groups; and a first count value stored into a storage module by an en-queue operation is set by a number of multicast targets belonging to a port group associated with the storage module.

### Claim 5 (depends on 2)

The multi-level replication counter storage device of claim 2, wherein the storage modules correspond to a plurality of port groups, respectively; each of the multicast targets is coupled to one port of the port groups; and a first count value stored in a storage module is adjusted by a de-queue operation when the same cell data of the first multicast packet is broadcasted through one port of a port group associated with the storage module.

### Claim 6 (depends on 2)

The multi-level replication counter storage device of claim 2, wherein the second count value stored into the second-level storage device by an en-queue operation is set by a number of the storage modules.

### Claim 7 (depends on 2)

The multi-level replication counter storage device of claim 2, wherein the second count value stored in the second-level storage device is adjusted by at least one de-queue operation triggered due to at least one first count value reaching a predetermined value.

### Claim 8 (depends on 1)

The multi-level replication counter storage device of claim 1, wherein multiple multicast packets, including the first multicast packet and a second multicast packet, are buffered in a single clock cycle; the first-level storage device is further configured to store a plurality of third count values associated with a same cell data of the second multicast packet required to be broadcasted to the multicast targets; a sum of the stored third count values is equal to a number of multicast targets to which the same cell data of the second multicast packet is not broadcasted yet; and the second-level storage device is further configured to store a fourth count value which is adjusted based on the third count values to indicate whether a multicast operation of the same cell data of the second multicast packet is accomplished.

### Claim 9 (depends on 1)

The multi-level replication counter storage device of claim 1, wherein the first-level storage device is a memory device, and the second-level storage device is a flip-flop array.

### Claim 10

A method for managing multicast packet processing, comprising:
storing a plurality of first count values associated with a same cell data of a first multicast packet required to be broadcasted to a plurality of multicast targets in a first-level storage device, wherein a sum of the stored first count values is equal to a number of multicast targets to which the same cell data of the first multicast packet is not broadcasted yet;
storing a second count value in a second-level storage device, wherein the stored second count value is adjusted based on the first count values to indicate whether a multicast operation of the same cell data of the first multicast packet is accomplished;
utilizing the first-level storage device to accomplish one de-queue operation by updating a first count value in K clock cycles; and
utilizing the second-level storage device to accomplish one de-queue operation by updating the second count value in L clock cycles;
wherein K and L are positive integers, and K>L.

### Claim 11 (depends on 10)

The method of claim 10, wherein the first-level storage device comprises a plurality of storage modules; and the step of storing the first count values comprises:
storing the first count values in the storage modules, respectively.

### Claim 12 (depends on 11)

The method of claim 11, wherein each of the storage modules has a plurality of storage spaces, and the step of storing the first count values in the storage modules comprises:
storing the first count values in co-located storage spaces in the storage modules.

### Claim 13 (depends on 11)

The method of claim 11, wherein the storage modules correspond to a plurality of port groups, respectively; each of the multicast targets is coupled to one port of the port groups; and the method further comprising:
when an en-queue operation is performed upon a storage module, setting a first count value stored into the storage module by a number of multicast targets belonging to a port group associated with the storage module.

### Claim 14 (depends on 11)

The method of claim 11, wherein the storage modules correspond to a plurality of port groups, respectively; each of the multicast targets is coupled to one port of the port groups; and the method further comprises:
when the same cell data of the first multicast packet is broadcasted through one port of a port group associated with a storage module, performing a de-queue operation upon the storage module to adjust a first count value stored in the storage module.

### Claim 15 (depends on 11)

The method of claim 11, further comprising:
when an en-queue operation is performed upon the second-level storage device, setting the second count value stored into the second-level storage device by a number of the storage modules.

### Claim 16 (depends on 11)

The method of claim 11, further comprising:
when at least one de-queue operation is triggered due to at least one first count value reaching a predetermined value, adjusting the second count value stored in the second-level storage device.

### Claim 17 (depends on 10)

The method of claim 10, wherein multiple multicast packets, including the first multicast packet and a second multicast packet, are buffered in a single clock cycle; and the method further comprises:
storing a plurality of third count values associated with a same cell data of the second multicast packet required to be broadcasted to the multicast targets in the first-level storage device, wherein a sum of the stored third count values is equal to a number of multicast targets to which the same cell data of the second multicast packet is not broadcasted yet; and
storing a fourth count value in the second-level storage device, wherein the fourth count value is adjusted based on the third count values to indicate whether a multicast operation of the same cell data of the second multicast packet is accomplished.

### Claim 18 (depends on 10)

The method of claim 10, wherein the first-level storage device is a memory device, and the second-level storage device is a flip-flop array.

### Claim 19

A multi-level replication counter storage device for multicast packet processing, comprising:
a first-level storage device, configured to store a plurality of first count values associated with a same cell data of a first multicast packet required to be broadcasted to a plurality of multicast targets, wherein a sum of the stored first count values is equal to a number of multicast targets to which the same cell data of the first multicast packet is not broadcasted yet; and
a second-level storage device, configured to store a second count value which is adjusted based on the first count values to indicate whether a multicast operation of the same cell data of the first multicast packet is accomplished;
wherein multiple multicast packets, including the first multicast packet and a second multicast packet, are buffered in a single clock cycle; the first-level storage device is further configured to store a plurality of third count values associated with a same cell data of the second multicast packet required to be broadcasted to the multicast targets; a sum of the stored third count values is equal to a number of multicast targets to which the same cell data of the second multicast packet is not broadcasted yet; and the second-level storage device is further configured to store a fourth count value which is adjusted based on the third count values to indicate whether a multicast operation of the same cell data of the second multicast packet is accomplished.
