# US 6,721,312 B2 · Method and apparatus for improving data transmission in router fabric cards through pseudo-synchronous data switching

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

- Number: US 6,721,312 B2
- Document ID: US6721312B2
- Status: Granted
- Kind: B2
- Application number: 09/872,080
- Filed: 2001-06-01
- Published: 2002-12-05
- Granted: 2004-04-13
- Earliest claimed: 2001-06-01
- Assignees: Pluris, Inc.
- Inventors: I-Sing Roger Niu; Ying Wang; Russell R. Tuck, III
- Web page: https://patentgrep.com/patent/US6721312B2

## CPC

- H04L 45/60: Router architectures
- H04L 49/254: {Centralised controller, i.e. arbitration or scheduling}
- H04L 49/101: using crossbar or matrix
- H04L 49/25: Routing or path finding in a switch fabric
- H04L 49/3027: {Output queuing}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In a data packet router, a router fabric card for routing data packets is provided. The router fabric card comprises a plurality of ingress/egress ports, the ports connected through a switching facility for switching connection states of the port paths between individual ingress paths and individual egress paths on the fabric card, and a scheduling component for scheduling communication between ports on the fabric card. Data coming into ingress on the card is organized into individual data-packet trains, each individual train comprising data packets and inserted data denoting a starting point and an ending point of a train. The switching facility recognizes the start data and the end data of a train and switches port paths to a next-assigned connection state accordingly.

## Claims

### Claim 1

A fabric card for routing data packets comprising:
a plurality of ingress/egress ports;
a switching component through which the ports connect; and
a scheduling component for scheduling communication between the plurality of ports through the switching component;
characterized in that data coming into one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein further characterized in that the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs), wherein individual ones of the CPAs further comprise a queue for listing assignments for transmission, and further characterized in that the switching component recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly.

### Claim 2

A fabric card for routing data packets comprising:
a plurality of ingress/egress ports:
a switching component through which the ports connect; and
a scheduling component for scheduling communication between the plurality of ports through the switching component;
characterized in that data coming into one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, wherein the switching component recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs) and each CPA is capable of switching to a next port assignment of its own accord.

### Claim 3 (depends on 1)

The fabric card of claim 1 further comprising data queues (D-FIFOs) following individual ones of the CPAs for buffering data flow to an egress port.

### Claim 4

A fabric card for routing data packets comprising:
a plurality of ingress/egress ports:
a switching component through which the ports connect; and
a scheduling component for scheduling communication between the plurality of ports through the switching component:
characterized in that data coming into one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching facility recognizes the SOT and the EOT identifiers switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from the scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT.

### Claim 5

A fabric card for routing data packets comprising:
a plurality of ingress/egress ports;
a switching component through which the ports connect; and
a scheduling component for scheduling communication between the plurality of ports through the switching component;
characterized in that data coming into one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching facility recognizes the SOT and the EOT identifiers switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from the scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT, and further characterized in that the scheduling component uses the ADF to trigger scheduling the sending port for a new transmission.

### Claim 6

A method for high-speed transmission of packet data from ingress to egress ports connected across a fabric card through a switching component, comprising the steps of:
(a) organizing incoming data into a packet train and inserting therein additional data comprising a start of train (SOT) and an end of train (EOT) identifier;
(b) requesting permission from a scheduling component to transmit the assembled packet train from ingress to egress on the card through the switching component;
(c) upon receiving authorization to transmit by an ingress port, transmitting the assembled packet train through the switching component; and
(d) upon recognizing the EOT of a packet train, switching transmission to a different packet train;
wherein the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs), and individual ones of the CPAs further comprise a queue for listing assignments for transmission.

### Claim 7

A method for high-speed transmission of packet data from ingress to egress ports connected across a fabric card through a switching component, comprising the steps of:
(a) organizing incoming data into a racket train and inserting therein additional data comprising a start of train (SOT) and an end of train (EOT) identifier;
(b) requesting permission from a scheduling component to transmit the assembled packet train from ingress to egress on the card through the switching component:
(c) upon receiving authorization to transmit by an ingress port, transmitting the assembled packet train through the switching component: and
(d) upon recognizing the EOT of a packet train, switching transmission to a different packet train;
wherein the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs) and each CPA is capable of switching to a next port assignment of its own accord.

### Claim 8 (depends on 7)

The method of claim 7 further comprising data queues (D-FIFOs) following individual ones of the CPAs, the queues buffering data flow to an egress port.

### Claim 9

A method for high-speed transmission of packet data from ingress to egress Ports connected across a fabric card through a switching component, comprising the steps of:
(a) organizing incoming data into a packet train and inserting therein additional data comprising a start of train (SOT) and an end of train (EOT) identifier;
(b) requesting permission from a scheduling component to transmit the assembled packet train from ingress to egress on the card through the switching component;
(c) upon receiving authorization to transmit by an ingress port, transmitting the assembled packet train through the switching component: and
(d) upon recognizing the EOT of a racket train, switching transmission to a different packet train;
wherein each port receiving data requests authorization to transmit from the scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT.

### Claim 10

A method for high-speed transmission of packet data from ingress to egress Ports connected across a fabric card through a switching component, comprising the steps of:
(a) organizing incoming data into a packet train and inserting therein additional data comprising a start of train (SOT) and an end of train (EOT) identifier;
(b) requesting permission from a scheduling component to transmit the assembled packet train from ingress to egress on the card through the switching component;
(c) upon receiving authorization to transmit by an ingress port, transmitting the assembled packet train through the switching component; and
(d) upon recognizing the EOT of a packet train, switching transmission to a different packet train:
wherein each port receiving data requests authorization to transmit from the scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT and the scheduling component uses the ADF to trigger scheduling the sending port for a new transmission.

### Claim 11

A packet switching element comprising:
a plurality of ingress/egress ports; and
data switching components between ports;
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and further characterized in that the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs), wherein individual ones of the CPAs further comprise a queue for listing assignments for transmission, and further characterized in that the switching component recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly.

### Claim 12

A packet switching element comprising:
a plurality of ingress/egress ports; and
data switching components between ports;
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that the switching components comprise a plurality of individual cross-point application-specific integrated circuits (CPAs), and each CPA is capable of switching to a next port assignment of its own accord.

### Claim 13 (depends on 12)

The packet switching element of claim 12 further comprising data queues (D-FIFOs) following individual ones of the CPAs for buffering data flow to an egress port.

### Claim 14

A packet switching element comprising:
a plurality of ingress/egress ports; and
data switching components between ports;
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from a scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT.

### Claim 15

A packet switching element comprising:
a plurality of ingress/egress ports; and
data switching components between ports;
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from a scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT, and further characterized in that the scheduling component uses the ADF to trigger scheduling the sending port for a new transmission.

### Claim 16

A data packet router, comprising:
external ingress/egress ports for receiving and sending data packets to and from neighboring routers or hosts; and
one or more packet switching elements, each having a plurality of local ingress/egress ports and data switching components between the local ports;
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and further characterized in that the data switching components comprise a plurality of individual cross-point application-specific integrated circuits (CPAs), wherein individual ones of the CPAs further comprise a queue for listing assignments for transmission, and further characterized in that the switching components recognize the SOT and the EOT identifiers and switches transmission to a next port and train accordingly.

### Claim 17

A data packet router, comprising:
external ingress/egress ports for receiving and sending data packets to and from neighboring routers or hosts; and one or more packet switching elements, each having a plurality of local ingress/egress ports and data switching components between the local ports:
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that the switching component comprises a plurality of individual cross-point application-specific integrated circuits (CPAs), wherein each CPA is capable of switching to a next port assignment of its own accord.

### Claim 18 (depends on 17)

The data packet router of claim 17 further comprising data queues (D-FIFOs) following individual ones of the CPAs for buffering data flow to an egress port.

### Claim 19

A data packet router, comprising:
external ingress/egress ports for receiving and sending data packets to and from neighboring routers or hosts: and
one or more packet switching elements, each having a plurality of local ingress/egress ports and data switching components between the local ports:
characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from a scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT.

### Claim 20

A data packet router, comprising:
external ingress/egress ports for receiving and sending data packets to and from neighboring routers or hosts; and
one or more packet switching elements, each having a plurality of local ingress/egress ports and data switching components between the local ports: characterized in that data coming into a first one of the plurality of ports is organized into specific data-packet trains each having a start-of-train (SOT) identifier and an end-of-train (EOT) identifier, and wherein the switching element recognizes the SOT and the EOT identifiers and switches transmission to a next port and train accordingly, and further characterized in that each port receiving data requests authorization to transmit from a scheduling component, and also sends an almost done flag (ADF) to the scheduling component prior to the EOT, and further characterized in that the scheduling component uses the ADF to trigger scheduling the sending port for a new transmission.
