IP Library Granted Patent US 11,546,189
Granted Patent B2
US 11,546,189 · App. 16/877,050 · Granted Jan 3, 2023

Access node for data centers

Inventors: Pradeep Sindhu (Los Altos Hills, CA); Jean-Marc Frailong (Rancho Mirage, CA); Bertrand Serlet (Palo Alto, CA); Wael Noureddine (Santa Clara, CA); Felix A. Marti (San Francisco, CA); Deepak Goel (San Jose, CA); Paul Kim (Fremont, CA); Rajan Goyal (Saratoga, CA); Aibing Zhou (San Jose, CA)
Assignee: Fungible, Inc.
H04L12/4633G06F9/546G06F12/0817G06F13/1668G06F13/4282H04L12/56H04L45/02H04L49/10H04L49/253G06F12/0811G06F2212/1024G06F2212/152G06F2213/0026H04L2012/5619H04L2012/5681
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 11,546,189
App. No.
16/877,050
Granted
Jan 3, 2023
Kind
B2
Abstract

An access node that can be configured and optimized to perform input and output (I/O) tasks, such as storage and retrieval of data to and from network devices (such as solid state drives), networking, data processing, and the like. For example, the access node may be configured to receive data to be processed, wherein the access node includes a plurality of processing cores, a data network fabric, and a control network fabric; receive, over the control network fabric, a work unit message indicating a processing task to be performed a processing core; and process the work unit message, wherein processing the work unit message includes retrieving data associated with the work unit message over the data network fabric.

Claims (81)

1. A method comprising:

receiving, by an access node coupled to both a network and a plurality of network devices, data to be processed, wherein the access node includes a plurality of processing cores, a data network fabric, and a control network fabric,

wherein the data network fabric is configured to communicate data between the plurality of processing cores, the network, and the plurality of network devices, and

wherein the control network fabric is configured to communicate control messages between the plurality of processing cores, the network, and the plurality of network devices;

receiving, by the access node and over the control network fabric, a work unit message indicating a processing task to be performed by a processing core; and

processing, by the access node, the work unit message by:

retrieving data associated with the work unit message over the data network fabric,

storing, in non-coherent buffer memory, the data,

caching the data in a cache,

modifying the data in the cache,

writing the data in the cache to the non-coherent buffer memory, and

relinquishing control of the data in the non-coherent buffer memory by passing a work unit message to another processor.

2. The method of claim 1 , wherein the data is stream data comprising packets of network data.

3. The method of claim 2 , wherein caching the data includes:

caching, in a level one data cache, the stream data.

4. The method of claim 3 , wherein processing the work unit message includes:

identifying a work unit processor for processing the work unit message, wherein the work unit processor is one of the plurality of processing cores; and

sending the work unit message to a queue associated with the work unit processor.

5. The method of claim 4 , wherein processing the work unit message includes:

receiving, by the work unit processor, the work unit message from the queue;

fetching, by the work unit processor, the stream data from the level one data cache; and

outputting, by the work unit processor, the results of the processing the work unit message.

6. The method of claim 4 , wherein processing the work unit message includes:

receiving, by the work unit processor, the work unit message from the queue;

fetching, by the work unit processor, the stream data from the non-coherent buffer memory; and

outputting, by the work unit processor, the results of the processing the work unit message.

7. The method of claim 4 , wherein processing the work unit message includes outputting a new work unit message.

8. The method of claim 1 , wherein processing the work unit message includes:

performing, by an accelerator unit included within the access node, an accelerator operation.

9. The method of claim 8 , wherein the accelerator operation includes at least one of:

performing a lookup, performing a matrix multiplication, performing cryptographic operations, performing data compression operations, or performing regular expression operations.

10. An access node comprising:

a network unit coupling the access node to a network;

a host unit coupling the access node to host devices;

processing circuitry for processing data;

non-coherent buffer memory;

a data network fabric configured to communicate data between the processing circuitry, the network, and the plurality of host devices; and

a control network fabric configured to communicate control messages between the processing circuitry, the network, and the plurality of host devices;

wherein the processing circuitry is configured to receive, over the control network fabric, a work unit message identifying a processing task to be performed and process the work unit message by:

retrieving data associated with the work unit message over the data network fabric,

storing, in the non-coherent buffer memory, the data,

caching the data in a cache,

modifying the data in the cache,

writing the data in the cache to the non-coherent buffer memory, and

relinquishing control of the data in the non-coherent buffer memory by passing a work unit message to another processor.

11. The access node of claim 10 , wherein to store the data, the processing circuitry is further configured to:

store, in the non-coherent buffer memory, stream data comprising packets of network data.

12. The access node of claim 11 , wherein the processing circuitry includes a plurality of processing cores, and wherein to process the work unit message, the process circuitry is further configured to:

identify a work unit processor for processing the work unit message, wherein the work unit processor is one of the plurality of processing cores; and

send the work unit message to a queue associated with the work unit processor.

13. The access node of claim 12 , wherein to process the work unit message, the processing circuitry is further configured to:

receive, by the work unit processor, the work unit message from the queue;

fetch, by the work unit processor, the stream data from the level one data cache; and

outputting, by the work unit processor, the results of the processing the work unit message.

14. The access node of claim 12 , wherein to process the work unit message, the processing circuitry is further configured to:

receive, by the work unit processor, the work unit message from the queue;

fetch, by the work unit processor, the stream data from the non-coherent buffer memory; and

outputting, by the work unit processor, the results of the processing the work unit message.

15. The access node of claim 12 , wherein to process the work unit message, the processing circuitry is further configured to:

output a new work unit message.

16. The access node of claim 10 , wherein the processing circuitry further includes an accelerator unit, and wherein to process the work unit message, the processing circuitry is further configured to:

perform, by the accelerator unit, an accelerator operation.

17. The access node of claim 16 , wherein to perform the accelerator operation, the accelerator unit is configured to perform an operation including at least one of:

a lookup, a matrix multiplication, a cryptographic operation, a data compression operation, or a regular expression operation.

18. A system comprising:

a plurality of host devices, including at least one server device and at least one storage device;

a network; and

an access node comprising:

a network unit coupling the access node to the network,

a host unit coupling the access node to the plurality of host devices,

processing circuitry for processing data,

non-coherent buffer memory,

a data network fabric configured to communicate data between the processing circuitry, the network, and the plurality of host devices, and

a control network fabric configured to communicate control messages between the processing circuitry, the network, and the plurality of host devices,

wherein the access node is configured to receive, over the control network fabric, a work unit message identifying a processing task to be performed and process the work unit message by:

retrieving data associated with the work unit message over the data network fabric,

storing, in the non-coherent buffer memory, the data,

caching the data in a cache,

modifying the data in the cache,

writing the data in the cache to the non-coherent buffer memory, and

relinquishing control of the data in the non-coherent buffer memory by passing a work unit message to another processor.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2024
From: SINDHU, PRADEEP; FRAILONG, JEAN-MARC; SERLET, BERTRAND; NOUREDDINE, WAEL; MARTI, FELIX A.; GOEL, DEEPAK; KIM, PAUL; GOYAL, RAJAN; ZHOU, AIBING
To: FUNGIBLE, INC.
Reel/Frame 067009/0097 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2023
From: FUNGIBLE, INC.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 064434/0430 →
RELEASE OF SECURITY INTEREST Recorded Jan 9, 2023
From: HERCULES CAPITAL, INC., AS AGENT
To: FUNGIBLE, INC.
Reel/Frame 062335/0803 →
RELEASE OF SECURITY INTEREST Recorded Jan 5, 2023
From: SILICON VALLEY BANK
To: FUNGIBLE, INC.
Reel/Frame 062308/0191 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: SILICON VALLEY BANK
Reel/Frame 058523/0960 →
SECURITY INTEREST Recorded Dec 16, 2021
From: FUNGIBLE, INC.
To: HERCULES CAPITAL, INC., AS AGENT
Reel/Frame 058533/0429 →
Continuity (4)
Continuation 16031676 · Jul 10, 2018
Provisional Application 62559021 · Sep 15, 2017
Provisional Application 62530691 · Jul 10, 2017
Related Publication 20200280462A1 · Sep 3, 2020
Cited By (1)
US 12,681,892