IP Library › Granted Patent US 11,899,596
Granted Patent B2
US 11,899,596 · App. 17/594,610 · Granted Feb 13, 2024

System and method for facilitating dynamic command management in a network interface controller (NIC)

Inventors: Duncan Roweth (Bristol, GB); Abdulla M. Bataineh (Vista, CA); Edwin L. Froese (Burnaby, CA)
Assignee: Hewlett Packard Enterprise Development LP
G06F13/1642G06F13/1673G06F13/28G06F2213/0026G06F2213/3808
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,899,596
App. No.
17/594,610
Granted
Feb 13, 2024
Kind
B2
Abstract

A network interface controller (NIC) capable of efficient command management is provided. The NIC can be equipped with a host interface, an arbitration logic block, and a command management logic block. During operation, the host interface can couple the NIC to a host device. The arbitration logic block can select a command queue of the host device for obtaining a command. The command management logic block can determine whether an internal buffer associated with the command queue includes a command. If the internal buffer includes the command, the command management logic block can obtain the command from the internal buffer. On the other hand, if the internal buffer is empty, the command management logic block can obtain the command from the command queue via the host interface.

Claims (49)

1. A network interface controller (NIC), comprising:

a host interface coupling a host device;

an arbitration logic block to select a command queue from a plurality of command queues of the host device for processing a command, wherein the command queue of the host device corresponds to an internal buffer of the NIC; and

a command management logic block to:

determine whether the corresponding internal buffer includes a command which was previously transferred to the internal buffer via the host interface;

in response to determining that the internal buffer does not include the command and that the command queue includes the command, obtain the command from the command queue via the host interface;

in response to determining that the internal buffer includes the command, obtain the command from the internal buffer; and

provide the host device with statistics associated with performance of the internal buffer, wherein the statistics are used to determine whether subsequent commands are to be transferred to the internal buffer.

2. The network interface controller of claim 1 , wherein the command management logic block is further to provide the host device one or more of:

processing information associated with the command queue; and

state information comprising a read pointer of the command queue.

3. The network interface controller of claim 1 , wherein the command management logic block is further to determine that the command queue has a new command based on an advancement of a write pointer of the command queue.

4. The network interface controller of claim 1 , wherein the arbitration logic block is further to select the command queue from the plurality of command queues in a memory device of the host device based on an arbitration process among the command queues.

5. The network interface controller of claim 4 , further comprising a corresponding internal buffer for a respective command queue.

6. The network interface controller of claim 1 , wherein the command management logic block is further to drop a new command received from the host interface and destined for the internal buffer in response to determining one or more of:

insufficient capacity in the internal buffer to accommodate the new command; and

the command queue is not empty.

7. The network interface controller of claim 6 , wherein, in response to receiving the new command, the command management logic block is further to advance a write pointer of the command queue, thereby determining a presence of a command in the command queue.

8. The network interface controller of claim 1 , wherein the command management logic block is to:

advance a pre-fetch pointer of the command queue in response to requesting the command; and

advance a read pointer of the command queue in response to receiving data associated with the command.

9. The network interface controller of claim 1 , wherein the host interface is a peripheral component interconnect express (PCIe) interface; and

wherein the command management logic block is to obtain the command from the command queue based on a PCIe read.

10. The network interface controller of claim 1 , wherein the command includes a remote direct memory access (RDMA) command.

11. A computer system for facilitating a command management system, comprising:

a processor;

a memory device storing a plurality of command queues;

a host interface to couple a network interface controller (NIC), which maintains an internal buffer corresponding to a command queue; and

a storage device storing instructions which when executed by the processor cause the processor to perform a method, the method comprising:

writing a command to the command queue;

obtaining statistics associated with one or more of: performance of the internal buffer; whether the command queue is expected to be empty; and current locations of one or more pointers of the command queue;

determining, based on state of the command queue and the obtained statistics, whether the internal buffer accepts the command;

in response to determining that the internal buffer accepts the command, writing, via the host interface, the command into the internal buffer;

in response to determining that the internal buffer does not accept the command, informing the NIC, via the host interface, that the command has been written into the command queue.

12. The computer system of claim 11 , wherein the state of the command queue indicates whether the command queue is empty.

13. The computer system of claim 11 , wherein the method further comprises:

speculatively determining, based on the obtained statistics, whether the command queue is expected to be empty.

14. The computer system of claim 11 , wherein informing the NIC further comprises advancing a write pointer of the command queue.

15. The computer system of claim 11 , wherein the method further comprises:

writing a plurality of commands into the command queue based on a granularity of allowed writes into the command queue; and

advancing a write pointer of the command queue according to the granularity.

16. The computer system of claim 11 , wherein the method further comprises, in response to determining that the internal buffer cannot accept the command, selecting the command in the command queue as a backup command.

17. The computer system of claim 16 ,

wherein the NIC obtains the command from the command queue via the host interface in response to determining that the command has been dropped at the internal buffer.

18. The computer system of claim 11 , wherein the host interface is a peripheral component interconnect express (PCIe) interface; and

wherein the command is written into the internal buffer based on a PCIe write.

19. The computer system of claim 11 , wherein the command includes a remote direct memory access (RDMA) command.

20. The network interface controller of claim 1 ,

wherein the internal buffer is of a fixed size and can store a limited number of commands.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 12, 2021
From: CRAY INC.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 058864/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2021
From: ROWETH, DUNCAN; BATAINEH, ABDULLA M.; FROESE, EDWIN L.
To: CRAY INC.
Reel/Frame 057891/0996 →
Continuity (4)
Provisional Application 62852203 · May 23, 2019
Provisional Application 62852273 · May 23, 2019
Provisional Application 62852289 · May 23, 2019
Related Publication 20220245072A1 · Aug 4, 2022