IP Library Granted Patent US 9,338,219
Granted Patent B2
US 9,338,219 · App. 13/843,288 · Granted May 10, 2016

Direct push operations and gather operations

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 9,338,219
App. No.
13/843,288
Granted
May 10, 2016
Kind
B2
Abstract

When interfacing with a host, a networking device can handle a first data like Bulk Data Send. In response to a first doorbell ring, the networking device can read a first queue entry from a send queue in the host. Based on the first queue entry, the networking device can read the first data from a first memory in the host and then output the read first data. The networking device can also handle a second data like Direct Packet Push. The networking device can store a second data received from the host. In response to a second doorbell ring, the networking device can output the second data. The first data and the second data can be associated with first and second queue entries, both on the same send queue in the host. High-throughput and low-latency can be achieved. Small and large data packets can be accommodated.

Claims (54)

1. A networking device for interfacing with a host, the networking device comprising:

a doorbell register;

a queue reader configured to determine that the host has written a value into the doorbell register, to correlate the value with one of multiple queues maintained at the host, and to select an entry from the queue; and

a tracking circuit configured to determine whether data for the entry was pushed from the host to a buffer at the networking device, and to direct the networking device to:

transmit the data for the entry to another device via Bulk Data Send (BDS) if the data for the entry was not pushed to the buffer, and

transmit the data for the entry to the other device via Direct Packet Push (DPP) if the data for the entry was pushed to the buffer.

2. The networking device of claim 1 , wherein the tracking circuit is configured to determine whether the entry is indicated in a DPP linked list.

3. The networking device of claim 1 , wherein:

the tracking circuit is configured to identify a linked list associated with the queue, and to review the linked list to identify entries in the queue that have been flagged for handling via DPP.

4. The networking device of claim 3 , wherein:

the tracking circuit is further configured to update the linked list in response to transmitting the data for the entry via DPP.

5. The networking device of claim 1 , wherein:

the value includes an identifier that distinguishes the queue from other queues at the host.

6. A networking adapter incorporating the networking device of claim 1 .

7. The networking device of claim 1 , wherein:

the tracking circuit is configured to identify a number of transmission requests from the host by analyzing the value.

8. The networking device of claim 1 , wherein:

the tracking circuit is configured to schedule the data for later transmission.

9. A method for operating a network device interfacing with a host, the method comprising:

determining that the host has written a value into a doorbell register at the network device;

correlating the value with one of multiple queues maintained at the host;

selecting an entry from the queue;

determining whether data for the entry was pushed from the host to a buffer at the networking device;

transmitting the data for the entry to another device via Bulk Data Send (BDS) if the data for the entry was not pushed to the buffer; and

transmitting the data for the entry to the other device via Direct Packet Push (DPP) if the data for the entry was pushed to the buffer.

10. The method of claim 9 , further comprising:

determining whether the entry is indicated in a DPP linked list.

11. The method of claim 9 , further comprising:

identifying a linked list is associated with the queue; and

reviewing the linked list to identify entries in the queue that have been flagged for handling via DPP.

12. The method of claim 11 , further comprising:

updating the linked list in response to transmitting the data for the entry via DPP.

13. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the apparatus to perform a method for operating a network device interfacing with a host, the method comprising:

determining that the host has written a value into a doorbell register at the network device;

correlating the value with one of multiple queues maintained at the host;

selecting an entry from the queue;

determining whether data for the entry was pushed from the host to a buffer at the networking device;

transmitting the data for the entry to another device via Bulk Data Send (BDS) if the data for the entry was not pushed to the buffer; and

transmitting the data for the entry to the other device via Direct Packet Push (DPP) if the data for the entry was pushed to the buffer.

14. The non-transitory machine-readable medium of claim 13 , wherein the method further comprises:

determining whether the entry is indicated in a DPP linked list.

15. The non-transitory machine-readable medium of claim 13 , wherein the method further comprises:

identifying a linked list is associated with the queue; and

reviewing the linked list to identify entries in the queue that have been flagged for handling via DPP.

16. The non-transitory machine-readable medium of claim 15 , wherein the method further comprises:

updating the linked list in response to transmitting the data for the entry via DPP.

17. The non-transitory machine-readable medium of claim 13 , wherein the method further comprises:

identifying a number of transmission requests from the host by analyzing the value.

18. The non-transitory machine-readable medium of claim 13 , wherein the method further comprises:

scheduling the data for later transmission.

19. The method of claim 9 , further comprising:

identifying a number of transmission requests from the host by analyzing the value.

20. The method of claim 9 , further comprising:

scheduling the data for later transmission.

Assignments (7)
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 047422 FRAME: 0464. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 6, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 048883/0702 →
MERGER Recorded Oct 5, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047422/0464 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: EMULEX DESIGN AND MANUFACTURING CORPORATION
To: EMULEX CORPORATION
Reel/Frame 032087/0842 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2013
From: ARRAMREDDY, SUJITH; HURSON, ANTHONY; KAMATH, ASHWIN; BHAT, JAYARAM K.; BUTLER, JAMES D.
To: EMULEX DESIGN & MANUFACTURING CORPORATION
Reel/Frame 030090/0573 →