# US 2018/0324113 A1 · Buffer Sizing of a NoC Through Machine Learning

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

- Number: US 2018/0324113 A1
- Document ID: US20180324113A1
- Status: Published application
- Kind: A1
- Application number: 16/037,924
- Filed: 2018-07-17
- Published: 2018-11-08
- Earliest claimed: 2017-01-10
- Assignees: NetSpeed Systems
- Applicants: NetSpeed Systems, Inc.
- Inventors: Eric NORIGE; Nishant RAO; Sailesh KUMAR
- Web page: https://patentgrep.com/patent/US20180324113A1

## CPC

- H04L 49/9005: using dynamic buffer space allocation
- H04L 41/14: Network analysis or design
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/0864: Round trip delays
- H04L 43/0894: Packet rate
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 49/109: Integrated on microchip, e.g. switch-on-chip
- H04L 49/30: {Peripheral units, e.g. input or output ports}
- H04L 43/16: Threshold monitoring
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present disclosure is directed to buffer sizing of NoC link buffers by utilizing incremental dynamic optimization and machine learning. A method for configuring buffer depths associated with one or more network on chip (NoC) is disclosed. The method includes deriving characteristics of buffers associated with the one or more NoC, determining first buffer depths of the buffers based on the characteristics derived, obtaining traces based on the characteristics derived, measuring trace skews based on the traces obtained, determining second buffer depths based on the trace skews measured, optimizing the buffer depths associated with the network on chip (NoC) based on the second buffer depths, and configuring the buffer depths associated with one or more network on chip (NoC) based on the buffer depths optimized.

## Claims

### Claim 1

A method for generating a Network on Chip (NoC), comprising:
processing traffic flows of the NoC to determine at least one of idle cycles, bubbles and NoC characteristics for a plurality of virtual channels of the NoC;
configuring each of the plurality of virtual channels as one of a cut-through channel and a store-and-forward channel based on the determined at least one of the idle cycles, the bubbles, and the NoC characteristics; and
generating dynamically configurable buffers for the ones of the plurality of virtual channels configured as store-and-forward channels, the dynamically configurable buffers sized according to a machine learning based process configured to determine arrival rate of packets and drain rate of packets based on an arbitration process of the NoC; and
generating the NoC comprising the plurality of virtual channels and the dynamically configurable buffers.

### Claim 2 (depends on 1)

The method of claim 1, further comprising determining ones of the plurality of virtual channels configured as a cut-through channel to be changed to a store-and-forward channel based on a bandwidth requirement.

### Claim 3 (depends on 1)

The method of claim 1, further comprising resizing ones of the plurality of virtual channels configured to be cut-through channels based on the NoC characteristics.

### Claim 4 (depends on 4)

The method of claim 4, wherein the ones of the plurality of virtual channels configured to be cut-through channels are identified for resizing based on a machine learning process.

### Claim 5 (depends on 1)

The method of claim 1, wherein the configuring the each of the plurality of virtual channels comprises configuring ones of the plurality of virtual channels associated with multi-flit packets as store-and-forward channels.

### Claim 6

A non-transitory computer readable medium, storing instructions for generating a Network on Chip (NoC), comprising:
processing traffic flows of the NoC to determine at least one of idle cycles, bubbles and NoC characteristics for a plurality of virtual channels of the NoC;
configuring each of the plurality of virtual channels as one of a cut-through channel and a store-and-forward channel based on the determined at least one of the idle cycles, the bubbles, and the NoC characteristics; and
generating dynamically configurable buffers for the ones of the plurality of virtual channels configured as store-and-forward channels, the dynamically configurable buffers sized according to a machine learning based process configured to determine arrival rate of packets and drain rate of packets based on an arbitration process of the NoC; and
generating the NoC comprising the plurality of virtual channels and the dynamically configurable buffers.

### Claim 7 (depends on 6)

The non-transitory computer readable medium of claim 6, further comprising determining ones of the plurality of virtual channels configured as a cut-through channel to be changed to a store-and-forward channel based on a bandwidth requirement.

### Claim 8 (depends on 6)

The non-transitory computer readable medium of claim 6, further comprising resizing ones of the plurality of virtual channels configured to be cut-through channels based on the NoC characteristics.

### Claim 9 (depends on 8)

The non-transitory computer readable medium of claim 8, wherein the ones of the plurality of virtual channels configured to be cut-through channels are identified for resizing based on a machine learning process.

### Claim 10 (depends on 6)

The non-transitory computer readable medium of claim 6, wherein the configuring the each of the plurality of virtual channels comprises configuring ones of the plurality of virtual channels associated with multi-flit packets as store-and-forward channels.

### Claim 11

A system for generating a Network on Chip (NoC), comprising:
a processor, configured to:
process traffic flows of the NoC to determine at least one of idle cycles, bubbles and NoC characteristics for a plurality of virtual channels of the NoC;
configure each of the plurality of virtual channels as one of a cut-through channel and a store-and-forward channel based on the determined at least one of the idle cycles, the bubbles, and the NoC characteristics; and
generate dynamically configurable buffers for the ones of the plurality of virtual channels configured as store-and-forward channels, the dynamically configurable buffers sized according to a machine learning based process configured to determine arrival rate of packets and drain rate of packets based on an arbitration process of the NoC; and
generate the NoC comprising the plurality of virtual channels and the dynamically configurable buffers.

### Claim 12 (depends on 11)

The system of claim 11, the processor further configured to determine ones of the plurality of virtual channels configured as a cut-through channel to be changed to a store-and-forward channel based on a bandwidth requirement.

### Claim 13 (depends on 11)

The system of claim 11, the processor further configured to resize ones of the plurality of virtual channels configured to be cut-through channels based on the NoC characteristics.

### Claim 14 (depends on 11)

The system of claim 11, wherein the ones of the plurality of virtual channels configured to be cut-through channels are identified for resizing based on a machine learning process.

### Claim 15 (depends on 11)

The system of claim 11, wherein the processor is configured to configure the each of the plurality of virtual channels by configuring ones of the plurality of virtual channels associated with multi-flit packets as store-and-forward channels.
