# US 8,571,062 B1 · Multichannel data conversion into packets

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

- Number: US 8,571,062 B1
- Document ID: US8571062B1
- Status: Granted
- Kind: B1
- Application number: 12/900,943
- Filed: 2010-10-08
- Granted: 2013-10-29
- Earliest claimed: 2008-01-16
- Assignees: Applied Micro Circuits Corporation
- Applicants: Xingen (James) Ren; Ravi Subrahmanyan
- Inventors: Xingen (James) Ren; Ravi Subrahmanyan
- Web page: https://patentgrep.com/patent/US8571062B1

## CPC

- H04L 49/901: using storage descriptor, e.g. read or write pointers
- H04J 2203/0025: Peripheral units
- H04J 2203/0098: Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04J: MULTIPLEX COMMUNICATION (transmission in general H04B; peculiar to transmission of digital information H04L5/00; systems for the simultaneous or sequential transmission of more than one television signal H04N7/08; in exchanges H04Q11/00; stereophonic systems H04S)

## Abstract

A system and method are provided for converting multichannel serial data streams into packets. The method accepts a plurality of serial data streams in a corresponding plurality of channels. In a time domain multiplexed (TDM) fashion, groups with an undetermined number of data bits are packed from each data stream, into an associated channel segment queue, where each segment includes a predetermined number of bits. In a TDM fashion, segments are loaded into an associated channel payload queue, where each payload includes a predetermined number of segments. Once a payload is filled, an associated pointer is created in a pointer queue. The method selects a pointer from the pointer queue, creates a packet from the payload associated with the selected pointer, and transmits the packet via a packet interface. The packet overhead may include information stored in the pointer, a packet header, or a cyclic redundancy check (CRC) checksum.

## Claims

### Claim 1

In a data communication interface, a method for converting multichannel serial data streams into packets, the method comprising:
accepting a plurality of serial data streams in a corresponding plurality of channels;
in a time domain multiplexed (TDM) fashion, packing groups with an undetermined number of data bits, from each data stream, into an associated channel segment queue, where each segment includes a predetermined number of bits;
in a TDM fashion, loading segments into an associated channel payload queue, where each payload includes a predetermined number of segments;
in response to filling a payload, creating an associated pointer in a pointer queue;
selecting a pointer from the pointer queue;
using the payload associated with the selected pointer, creating a packet; and,
transmitting the packet via a packet interface.

### Claim 2 (depends on 1)

The method of claim 1 wherein creating the packet includes creating packet overhead with information selected from a group consisting of information stored in the pointer, a packet header, and a cyclic redundancy check (CRC) checksum.

### Claim 3 (depends on 1)

The method of claim 1 wherein accepting the plurality of serial data streams includes:
accepting a Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) frame; and,
demapping the frame into a plurality of TDM data steams.

### Claim 4 (depends on 3)

The method of claim 3 wherein demapping the frame into the plurality of TDM data streams includes forming a plurality of TDM data streams with an associated plurality of TDM channel clocks;
wherein loading segments into the associated channel payload queue includes writing segments in accordance with the corresponding TDM channel clocks; and,
wherein creating the packet using the payload associated with the selected pointer includes reading the payload in accordance with a packet interface clock.

### Claim 5 (depends on 1)

The method of claim 1 wherein accepting the plurality of serial data streams includes accepting the plurality of serial data streams on channels having a corresponding plurality of data rates; and,
wherein creating the packet includes creating packets for each channel at a rate responsive to the corresponding channel data rate, and greater than the combined plurality of channel data rates.

### Claim 6 (depends on 1)

The method of claim 1 wherein packing groups from each data stream into the associated channel segment queue includes forming channel segment queues, each having a width of greater than 1 segment; and,
wherein loading segments into the associated channel payload queue includes forming channel payload queues, each having a width of greater than 1 payload.

### Claim 7 (depends on 1)

The method of claim 1 wherein loading segments into the associated channel payload queue includes loading segments into a first-in first-out (FIFO) memory; and,
wherein creating the associated pointer in the pointer queue includes storing information in the pointer selected from a group consisting of a FIFO address of the associated payload, the channel of the payload, and channel alarms.

### Claim 8 (depends on 1)

The method of claim 1 wherein selecting the pointer from the pointer queue includes using criteria chosen from a group consisting of:
pointer position in the pointer queue;
channel payload queues having a threshold number of payloads;
random selection;
the channel payload queue having the largest number of payloads; and,
pre-defined channel numbers.

### Claim 9 (depends on 1)

The method of claim 1 wherein loading segments into the associated channel payload queue includes loading segments using a round robin polling process.

### Claim 10

A data communication system for converting multichannel serial data streams into packets, the system comprising:
a data packer module with channel segment queues, having an input to accept a plurality of serial data streams in a corresponding plurality of channels, the data packer module packing groups with an undetermined number of data bits in a time domain multiplexed (TDM) fashion from each data stream into an associated channel segment queue, and supplying segments from each channel segment queue at an output, where each segment includes a predetermined number of bits;
a multichannel first-in first-out (FIFO) with channel payload queues, having an input to accept segments from the data packer module in a TDM fashion and loading segments into associated channel payload queues, and having an output to supply payloads from each channel payload queue, where each payload includes a predetermined number of segments;
a pointer queue having an input to accept pointers with payload information in response to filling an associated payload in the multichannel FIFO, and having an output to supply pointers;
a pointer selector having an output to select a pointer from the pointer queue; and,
a packet interface module having an input to accept the payload from the multichannel FIFO associated with the selected pointer, creating a packet from the accepted payload, and transmitting the packet via a packet interface.

### Claim 11 (depends on 10)

The system of claim 10 wherein the packet interface module has a pointer input connected to output of the pointer queue, the packet interface module creating the packet with packet overhead from information stored in a pointer associated with the packet payload.

### Claim 12 (depends on 10)

The system of claim 10 wherein the packet interface module has a packet header input, the packet interface module creating the packet with packet overhead information selected from a group consisting of a packet header and a cyclic redundancy check (CRC) checksum.

### Claim 13 (depends on 10)

The system of claim 10 wherein the data packer module includes a demapper having an input to accept a Synchronous Optical Network/Synchronous Digital Hierarchy (SONET/SDH) frame and an output to supply the plurality of serial data streams as a plurality of TDM data streams demapped from the frame.

### Claim 14 (depends on 13)

The system of claim 13 wherein the demapper forms a plurality of TDM data streams with an associated plurality of TDM channel clocks;
wherein the multichannel FIFO writes segments into the channel segments queues in accordance with the corresponding TDM channel clocks; and,
wherein the packet interface module creates the packet by reading the payload from the multichannel FIFO in accordance with a packet interface clock.

### Claim 15 (depends on 10)

The system of claim 10 accepting the data packer module accepts the plurality of serial data streams on channels having a corresponding plurality of data rates; and,
wherein the packet interface module creates packets for each channel at a rate responsive to the corresponding channel data rate, and greater than the combined plurality of channel data rates.

### Claim 16 (depends on 10)

The system of claim 10 wherein the data packer module channel segment queues each have a width of greater than 1 segment; and,
wherein the multichannel FIFO channel payload queues each having a width of greater than 1 payload.

### Claim 17 (depends on 10)

The system of claim 10 wherein pointer queue accepts pointers with information selected from a group consisting of a FIFO address of the associated payload, the channel of the payload, and channel alarms.

### Claim 18 (depends on 10)

The system of claim 10 wherein the pointer selector selects the pointer from the pointer queue using criteria chosen from a group consisting of random selection, pointer position in the pointer queue, a threshold number of payloads in an associated channel payload queue, the largest number of payloads in an associated channel payload queue, and predefined channel numbers.

### Claim 19 (depends on 10)

The system of claim 10 wherein data packer module supplies segments from the channel segment queues using a round robin polling process.
