IP Library Granted Patent US 12,481,444
Granted Patent B2
US 12,481,444 · App. 17/845,766 · Granted Nov 25, 2025

Smart NIC responding to requests from client device

Inventors: Alex Markuze (Rosh HaAyin, IL); Shay Vargaftik (Herzliya, IL); Igor Golikov (Kfar Saba, IL); Yaniv Ben-Itzhak (Afek, IL); Avishay Yanai (Petach-Tikva, IL)
Assignee: VMware LLC
G06F3/0647G06F3/0604G06F3/067
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 12,481,444
App. No.
17/845,766
Granted
Nov 25, 2025
Kind
B2
Abstract

Some embodiments provide a method for transmitting data at a network interface controller (NIC) of a computer that operates as a server. The computer includes multiple storage devices. The method receives a request from a client device for a particular file. The method translates the particular file into a memory location corresponding to a particular one of the storage devices at the computer. The method transmits the requested file from the particular storage location to the client device.

Claims (56)

1 . A method for transmitting data, the method comprising:

at a network interface controller (NIC) of a computer that operates as a server, the computer comprising a plurality of storage devices:

receiving a request from a client device for a particular file;

directly accessing without involvement of a CPU, by the NIC using a translation table stored in a memory of the NIC, a particulate one of the storage devices at the computer, the translating table mapping each file identifier to a device identifier and a memory address of the corresponding device;

translating the particular file into a memory location corresponding to the particular one of the storage devices at the computer; and

transmitting the requested file from the particular storage location to the client device.

2 . The method of claim 1 , wherein the request comprises a data message storing an identifier for the particular file.

3 . The method of claim 2 , wherein translating the particular file comprises mapping the identifier to the particular device and memory location.

4 . The method of claim 2 , wherein the request further comprises an offset indicating a specific portion of the particular file.

5 . The method of claim 4 , wherein the memory location is a first memory location, wherein translating the particular file comprises:

mapping the identifier to the particular device and a second memory location; and

using the offset to identify the first memory location.

6 . The method of claim 1 , wherein the plurality of storage devices of the computer comprises a plurality of non-volatile memory express (NVMe) devices.

7 . The method of claim 1 , wherein the translation of the particular file into a memory location and the transmission of the requested file do not require use of any CPU of the computer.

8 . The method of claim 1 , wherein:

the translation of the particular file into a memory location is performed by the smart NIC without a CPU of the computer; and

the CPU manages a network connection with the client device.

9 . The method of claim 1 , wherein:

the computer is a server for a streaming service; and

the request specifies a particular piece of media content and a time offset within the particular piece of media content.

10 . The method of claim 1 , wherein transmitting the requested file comprises:

reading data from the memory location of the particular storage device; and

sending a set of data messages comprising the data.

11 . The method of claim 1 , wherein:

the computer operates in a datacenter at which a plurality of files are stored across a plurality of computers operating as servers;

the request is received at a load balancer of the datacenter as a data message from the client device; and

the load balancer selects the computer from the plurality of computers and forwards the data message to the computer.

12 . The method of claim 11 , wherein the load balancer comprises a NIC of a load balancer computer, wherein the NIC identifies the particular file requested in the data message and selects the computer based on the identification of the particular file.

13 . A non-transitory machine-readable medium storing a program for execution by at least one processing unit of a network interface controller (NIC) of a computer that operates as a server and comprises a plurality of storage devices, the program for transmitting data, the program comprising sets of instructions for:

receiving a request from a client device for a particular file;

directly accessing without involvement of a CPU, by the NIC using a translation table stored in a memory of the NIC, a particulate one of the storage devices at the computer, the translating table mapping each file identifier to a device identifier and a memory address of the corresponding device;

translating the particular file into a memory location corresponding to the particular one of the storage devices at the computer; and

transmitting the requested file from the particular storage location to the client device.

14 . The non-transitory machine-readable medium of claim 13 , wherein the request comprises a data message storing an identifier for the particular file.

15 . The non-transitory machine-readable medium of claim 14 , wherein the set of instructions for translating the particular file comprises a set of instructions for mapping the identifier to the particular device and memory location.

16 . The non-transitory machine-readable medium of claim 14 , wherein:

the memory location is a first memory location;

the request further comprises an offset indicating a specific portion of the particular file; and

the set of instructions for translating the particular file comprises sets of instructions for:

mapping the identifier to the particular device and a second memory location; and

using the offset to identify the first memory location.

17 . The non-transitory machine-readable medium of claim 13 , wherein the translation of the particular file into a memory location and the transmission of the requested file do not require use of any CPU of the computer.

18 . The non-transitory machine-readable medium of claim 13 , wherein:

the translation of the particular file into a memory location is performed by the smart NIC without a CPU of the computer; and

the CPU manages a network connection with the client device.

19 . The non-transitory machine-readable medium of claim 13 , wherein:

the computer is a server for a streaming service; and

the request specifies a particular piece of media content and a time offset within the particular piece of media content.

20 . The non-transitory machine-readable medium of claim 13 , wherein the set of instructions for transmitting the requested file comprises sets of instructions for:

reading data from the memory location of the particular storage device; and

sending a set of data messages comprising the data.

21 . The non-transitory machine-readable medium of claim 13 , wherein:

the computer operates in a datacenter at which a plurality of files are stored across a plurality of computers operating as servers;

the request is received at a load balancer of the datacenter as a data message from the client device; and

the load balancer selects the computer from the plurality of computers and forwards the data message to the computer.

22 . The non-transitory machine-readable medium of claim 21 , wherein the load balancer comprises a NIC of a load balancer computer, wherein the NIC identifies the particular file requested in the data message and selects the computer based on the identification of the particular file.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 21, 2022
From: MARKUZE, ALEX; VARGAFTIK, SHAY; GOLIKOV, IGOR; BEN-ITZHAK, YANIV; YANAI, AVISHAY
To: VMWARE, INC.
Reel/Frame 060267/0361 →