IP Library Granted Patent US 10,970,248
Granted Patent B2
US 10,970,248 · App. 16/852,958 · Granted Apr 6, 2021

Processing of ethernet packets at a programmable integrated circuit

Inventors: Kent Orthner (Santa Clara, CA); Travis Johnson (Santa Clara, CA); Quinn Jacobson (Santa Clara, CA); Sarma Jonnavithula (Bangalore, IN)
Assignee: Achronix Semiconductor Corporation
G06F15/7825G06F15/7892H04L47/30H04L47/41H04L47/722H04L49/351H04W88/08
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,970,248
App. No.
16/852,958
Granted
Apr 6, 2021
Kind
B2
Abstract

Methods, systems, and computer programs are presented for processing Ethernet packets at a Field Programmable Gate Array (FPGA). One programmable integrated circuit includes: an internal network on chip (iNOC) comprising rows and columns; clusters, coupled to the iNOC, comprising a network access point (NAP) and programmable logic; and an Ethernet controller coupled to the iNOC. When the controller operates in packet mode, each complete inbound Ethernet packet is sent from the controller to one of the NAPs via the iNOC, where two or more NAPs are configurable to receive the complete inbound Ethernet packets from the controller. The controller is configurable to operate in quad segment interface (QSI) mode where each complete inbound Ethernet packet is broken into segments, which are sent from the controller to different NAPs via the iNOC, where two or more NAPs are configurable to receive the complete inbound Ethernet packets from the controller.

Claims (35)

1. A programmable integrated circuit comprising:

an internal network on chip (iNOC) comprising iNOC rows and iNOC columns;

a plurality of clusters coupled to the iNOC, each cluster comprising a network access point (NAP) and programmable logic; and

an Ethernet controller coupled to the iNOC, the Ethernet controller configurable to operate in packet mode where each complete inbound Ethernet packet is sent from the Ethernet controller to one of the NAPs via the iNOC, wherein two or more NAPs are configurable to receive the complete inbound Ethernet packets from the Ethernet controller.

2. The programmable integrated circuit as recited in claim 1 , the Ethernet controller configured to:

receive the inbound Ethernet packet using a first data path having a width of a first number of bits;

break the received inbound Ethernet packet into segments having a second number of bits; and

send each segment to one of the NAPs via the iNOC.

3. The programmable integrated circuit as recited in claim 1 , wherein the Ethernet controller includes a plurality of buffers for buffering inbound Ethernet packets before sending segments of the inbound Ethernet packets to the NAPs via the iNOC.

4. The programmable integrated circuit as recited in claim 3 , wherein the Ethernet controller comprises a pointer control module with a plurality of pointers to control storage of data into the plurality of buffers.

5. The programmable integrated circuit as recited in claim 3 , wherein each buffer is reserved for communications with one of the NAPs.

6. The programmable integrated circuit as recited in claim 3 , wherein each buffer is divided into two sub-buffers and each sub-buffer is reserved for communications with one of the NAPs.

7. The programmable integrated circuit as recited in claim 1 , wherein the Ethernet controller includes a plurality of outbound buffers for buffering outbound Ethernet packets received from the NAPs via the iNOC.

8. The programmable integrated circuit as recited in claim 7 , wherein the Ethernet controller provides a fill-level signal for each outbound buffer to the plurality of clusters, the fill-level signal being activated when a predetermined amount of the outbound buffer is filled.

9. The programmable integrated circuit as recited in claim 7 , wherein the Ethernet controller provides, to the plurality of clusters, a plurality of buffer-level-reached signals for each outbound buffer, each buffer-level-reached signal being activated when a respective predetermined amount of the outbound buffer is filled.

10. The programmable integrated circuit as recited in claim 7 , wherein the Ethernet controller is configurable to detect an activation of a cut-through threshold level for one of the outbound buffers, wherein the Ethernet controller starts transmitting one outbound Ethernet packet in the outbound buffer when the cut-through threshold level is activated even if the outbound Ethernet packet is not completely available in the outbound buffer.

11. The programmable integrated circuit as recited in claim 1 , wherein the Ethernet controller is a 400 G Ethernet controller.

12. The programmable integrated circuit as recited in claim 1 further comprising:

another Ethernet controller, wherein the Ethernet controller and the other Ethernet controller share buffers for inbound Ethernet packets.

13. The programmable integrated circuit as recited in claim 12 , wherein the Ethernet controller and the other Ethernet controller support 200 G Ethernet.

14. The programmable integrated circuit as recited in claim 12 , wherein the Ethernet controller supports 200 G Ethernet and the other Ethernet controller supports 100 G Ethernet.

15. A method comprising:

receiving, at a programmable integrated circuit, a configuration for the programmable integrated circuit, the programmable integrated circuit comprising:

an internal network on chip (iNOC) comprising iNOC rows and iNOC columns;

a plurality of clusters coupled to the iNOC, each cluster comprising a network access point (NAP) and programmable logic; and

an Ethernet controller coupled to the iNOC, the Ethernet controller configurable to operate in packet mode where each complete inbound Ethernet packet is sent from the Ethernet controller to one of the NAPs via the iNOC, wherein two or more NAPs are configurable to receive the complete inbound Ethernet packets from the Ethernet controller; and

providing Ethernet communications for the plurality of clusters via the Ethernet controller.

16. The method as recited in claim 15 , further comprising:

receiving, by the Ethernet controller, the inbound Ethernet packet using a first data path having a width of a first number of bits;

breaking, by the Ethernet controller, the received inbound Ethernet packet into segments having a second number of bits; and

sending each segment from the Ethernet controller to one of the NAPs via the iNOC.

17. The method as recited in claim 15 , wherein the Ethernet controller includes a plurality of buffers for buffering inbound Ethernet packets before sending segments of the inbound Ethernet packets to the NAPs via the iNOC.

18. The method as recited in claim 17 , wherein the Ethernet controller comprises a pointer control module with a plurality of pointers to control storage of data into the plurality of buffers.

19. The method as recited in claim 15 , wherein the Ethernet controller includes a plurality of outbound buffers for buffering outbound Ethernet packets received from the NAPs via the iNOC.

20. The method as recited in claim 19 , wherein the Ethernet controller provides a fill-level signal for each outbound buffer to the plurality of clusters, the fill-level signal being activated when a predetermined amount of the outbound buffer is filled.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2021
From: ORTHNER, KENT; JOHNSON, TRAVIS; JACOBSON, QUINN; JONNAVITHULA, SARMA
To: ACHRONIX SEMICONDUCTOR CORPORATION
Reel/Frame 054943/0784 →
Continuity (3)
Continuation In Part 16409191 · May 10, 2019
Provisional Application 62982223 · Feb 27, 2020
Related Publication 20200356522A1 · Nov 12, 2020
Cited By (2)
US 50,504 US 12,681,893