# US 8,787,379 B2 · Destination-based virtual channel assignment in on-chip ring networks

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

- Number: US 8,787,379 B2
- Document ID: US8787379B2
- Status: Granted
- Kind: B2
- Application number: 13/342,683
- Filed: 2012-01-03
- Published: 2012-08-02
- Granted: 2014-07-22
- Earliest claimed: 2011-02-02
- Assignees: Futurewei Technologies, Inc.
- Applicants: Rohit Sunkam Ramanujam; Sailesh Kumar; William Lynch
- Inventors: Rohit Sunkam Ramanujam; Sailesh Kumar; William Lynch
- Web page: https://patentgrep.com/patent/US8787379B2

## CPC

- G06F 15/7825: {Globally asynchronous, locally synchronous, e.g. network on chip}
- H04L 12/42: Loop networks
- H04L 12/4633: {Interconnection of networks using encapsulation techniques, e.g. tunneling}
- H04L 45/122: by minimising distances, e.g. by selecting a route with minimum of number of hops
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An apparatus comprising a plurality of nodes and a plurality of links connecting the nodes in a ring topology, wherein a first node from among the plurality of nodes is coupled to a first link from among the plurality of links, wherein the first link comprises a plurality of virtual channels, and wherein each of the plurality of virtual channels is assigned to provide service to a unique one of the plurality of nodes.

## Claims

### Claim 1

An apparatus comprising: a plurality of nodes; and a plurality of links connecting the nodes in a ring topology, wherein a first node from among the plurality of nodes is coupled to a first link from among the plurality of links, wherein a second link from among the plurality of links couples the first node from amongst the plurality of nodes to a second node from amongst the plurality of nodes, wherein the first link comprises a plurality of virtual channels, wherein each of the plurality of virtual channels is assigned to provide service to a destination node from among a plurality of destination nodes, wherein a first identifier is assigned to a first virtual channel from among the plurality of virtual channels, wherein the first identifier assigned to the first virtual channel indicates the number of hops from the first node to an assigned serviced destination node from among the plurality of destination nodes, wherein the second link comprises a second virtual channel that is identified using a second identifier that represents a second number of hops from the second node to the assigned service destination node, and wherein the first node is configured to: decrement the second identifier by one; assign a flit to the first virtual channel from among the plurality of virtual channels using the first identifier that equals the second identifier decremented by one; and transmit the flit via the first virtual channel toward the assigned service destination node.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the plurality of nodes includes the plurality of destination nodes, and wherein each virtual channel is assigned to provide service to one of the destination nodes such that there is a one-to-one correspondence between the virtual channels and the destination nodes.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the first node is configured to:
assign a flit to the first virtual channel based upon a determination that the flit's destination is the assigned serviced destination node using the first identifier; and
transmit the flit via the first virtual channel toward the assigned serviced destination node.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the first node is configured to allocate a separate buffer for each of the virtual channels within the first link.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the plurality of nodes and the plurality of links are located on a network-on-chip, and wherein a flit that enters the network-on-chip is a segment of a network-level packet.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the number of virtual channels located within the first link is equal to a maximum path length for the ring topology.

### Claim 7

A method implemented on a single chip, the method comprising: receiving a flit, at a first node located on a single chip, via a first virtual channel from a second node located on the single chip, wherein the first virtual channel is labeled with a first identifier; determining a k value using the first identifier; decrementing k value by one; assigning, at the first node, the flit to a virtual channel that is assigned to provide service to a destination node located on the single chip; and transmitting, at the first node, the flit via the virtual channel towards the destination node, wherein the k value equals the number of node hops from the second node to the destination node, and wherein the virtual channel is assigned a label that is based on the decremented k value that represents a number of node hops within the single chip between the first node and the destination node.

### Claim 8 (depends on 7)

The method of claim 7, further comprising assigning a plurality of second virtual channels associated with the first node to a plurality of second destination nodes within the single chip such that each of the second virtual channels is configured to transport traffic to a separate second destination node.

### Claim 9 (depends on 8)

The method of claim 8, wherein each of the second virtual channels and the virtual channel is configured to carry traffic destined only for its corresponding destination node.

### Claim 10 (depends on 8)

The method of claim 8, wherein the single chip is configured to form a ring topology amongst the first node, the destination node, and the second destination nodes, and wherein the first node, the destination node, and the second destination nodes are interconnected with bidirectional links.

### Claim 11 (depends on 8)

The method of claim 8, wherein an oversubscription of a buffer for the virtual channel does not reduce the service rate of the second virtual channels used to transport traffic to the second destination nodes.

### Claim 12 (depends on 7)

The method of claim 7, wherein a number of virtual channels associated with a first link used to transport the flit from the first node to the destination node is equal to a maximum number of node hops used to reach a farthest destination node located on the single chip from the first node.

### Claim 13

An apparatus comprising: a plurality of clusters; and a plurality of links connecting the clusters in a ring topology, wherein a first node, within a first cluster from among the plurality of clusters, is connected to a first link from among the plurality of links, wherein a second link from among the plurality of links couples the first node within the cluster to a second cluster, wherein the first link comprises a plurality of virtual channels, wherein a first virtual channel from among the plurality of virtual channels is assigned to provide service to a first destination cluster, wherein a first identifier is assigned to the first virtual channel such that the first identifier represents the number of hops from the first cluster to the first destination cluster, wherein the second link is associated with a second virtual channel that is identified using a second identifier that represents a second number of hops from the second cluster to the first destination cluster, wherein the first node is configured to: decrement the second identifier by one; assign a flit to the first virtual channel from among the plurality of virtual channels based on the determination that the first identifier equals the second identifier decremented by one; and transmit the flit via the first virtual channel toward the first destination cluster, and wherein the first destination cluster and the first cluster each comprise at least two nodes.

### Claim 14 (depends on 13)

The apparatus of claim 13, wherein a plurality of nodes within an on-chip network is divided amongst the clusters, wherein each of the clusters comprise at least two nodes from the plurality of nodes, and wherein each virtual channel is assigned to provide service to a different cluster from among the plurality of clusters such that there is a one-to-one correspondence between virtual channels and clusters.

### Claim 15 (depends on 13)

The apparatus of claim 13, wherein the first node comprises a plurality of buffers, wherein each of the buffers are assigned to different virtual channels, and wherein the virtual channels are not labeled to uniquely identify a plurality of destination nodes within one or more clusters.

### Claim 16 (depends on 13)

The apparatus of claim 13, wherein the clusters and links are located within, and wherein a flit that enters the chip is formed by segmenting data packets.

### Claim 17 (depends on 13)

The apparatus of claim 13, wherein the number of virtual channels dedicated for the first link is equal to a maximum path length amongst the clusters for the ring topology plus one.
