IP Library › Granted Patent US 10,642,775
Granted Patent B1
US 10,642,775 · App. 16/458,073 · Granted May 5, 2020

Size reduction of completion notifications

Inventors: Igor Voks (Tel Aviv, IL); Dror Bohrer (Nesher, IL); Lior Narkis (Petah-Tikva, IL); Ariel Shahar (Jerusalem, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F13/423G06F13/1673G06F13/4059G06F2213/0024
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,642,775
App. No.
16/458,073
Granted
May 5, 2020
Kind
B1
Abstract

A computer peripheral device includes a host interface, which is configured to communicate over a bus with a host processor and with a system memory of the host processor. Processing circuitry in the peripheral device is configured to receive and execute work items submitted to the peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to write completion reports to the system memory, including first completion reports of a first data size and second completion reports of a second data size, which is smaller than the first data size.

Claims (40)

1. A computer peripheral device, comprising:

a host interface, which is configured to communicate over a bus with a host processor and with a system memory of the host processor; and

processing circuitry, which is configured to receive and execute work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to generate, to the system memory, completion reports having fields, including:

identifying in a plurality of the completion reports one or more fields whose corresponding values are identical; and

sending to the system memory a full completion report that comprises the identified fields, and, after sending the full completion report, sending to the system, memory reduced completion reports from which the identified fields are omitted.

2. The device according to claim 1 , wherein the processing circuitry is configured to mark the full completion report with an indication that distinguishes between the full completion report and the reduced completion reports.

3. The device according to claim 1 , wherein the processing circuitry is configured to mark the reduced completion reports with indications that distinguish between the full completion report and the reduced completion reports.

4. The device according to claim 1 , wherein the processing circuitry is configured to identify, in the plurality of the completion reports, first and second different sets of the values, to create respective first and second full reports that comprise the first and second sets of the values, and to concurrently accumulate first reduced completion reports for sending with the first full completion report, and second reduced completion reports for sending with the second full completion report.

5. A computer peripheral device, comprising:

a host interface, which is configured to communicate over a bus with a host processor and with a system memory of the host processor; and

processing circuitry, which is configured to receive and execute work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to generate, to the system memory, completion reports having fields, including:

accumulating the completion reports for sending to the system, memory over the bus in a common bus transaction; and

stopping accumulation of the completion reports and initiating the common bus transaction in response to (i) a number of the accumulated completion reports reaching a predefined number, or (ii) a preset elapsed-time timer reaches predefined time-out.

6. The device according to claim 5 , wherein the elapsed-time timer is initiated on accumulation of a completion report into the common bus transaction.

7. The device according to claim 5 , wherein the elapsed-time timer is initiated on sending of a completion report to the system memory.

8. The device according to claim 5 , wherein the elapsed-time timer comprises first and second elapsed-time timers operating concurrently, wherein the first elapsed-time timer is initiated on accumulation of a completion report into the common bus transaction, and wherein the second elapsed-time timer is initiated on sending of a completion report to the system memory.

9. A computer peripheral device, comprising:

a host interface, which is configured to communicate over a bus with a host processor and with the computer system memory of the host processor; and

processing circuitry, which is configured to receive and execute work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, to generate, to the system memory, completion reports having fields, including:

reducing sizes of at least some of the sizes to a reduced sizes, respectively;

writing the completion reports having the reduced sizes to the system memory in a cyclic buffer that is overwritten in successive iterations, but assigning in the cyclic buffer the full sizes to the completion reports, thereby retaining in the cyclic buffer one or more completion reports belonging to a previous iteration; and

marking the written completion reports with marks that distinguish between a present iteration and the previous iteration.

10. The device according to claim 9 , wherein the marks differ in value between the present iteration and the previous iteration.

11. The device according to claim 9 , wherein the marks differ in storage location between the present iteration and the previous iteration.

12. A method, comprising:

in a computer peripheral device, communicating over a bus with a host processor and with a system memory of the host processor; and

receiving and executing work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, generating, to the system memory, completion reports having fields, including:

identifying in a plurality of the completion reports one or more fields ‘whose corresponding-values are identical; and

sending to sending to the system memory a full completion report that comprises the identified fields, and, after sending the full completion report, the system memory reduced completion reports from which the identified fields are omitted.

13. A method, comprising:

in a computer peripheral device, communicating over a bus with a host processor and with a system memory of the host processor; and

receiving and executing work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, generating, to the system memory, completion reports having fields, including:

accumulating the completion reports for sending to the system memory over the bus in a common bus transaction; and

stopping accumulation of the completion reports and initiating the common bus transaction in response to (i) a number of the accumulated completion reports reaching a predefined number, or (ii) a preset elapsed-time timer reaches a predefined time-out.

14. A method, comprising:

in a computer peripheral device, communicating over a bus with a host processor and with a system memory of the host processor; and

receiving and executing work items submitted to the computer peripheral device by client processes running on the host processor, and responsively to completing execution of the work items, generating, to the system memory, completion reports having fields, including:

reducing sizes of at least some of the completion reports from full sizes to a reduced sizes, respectively;

writing the completion reports having the reduced sizes to the system memory in a cyclic buffer that is overwritten in successive iterations, but assigning in the cyclic buffer the full sizes to the completion reports, thereby retaining in the cyclic buffer one or more completion reports belonging to a previous iteration; and

marking the written compilation reports with marks that distinguish between a present iteration and the previous iteration.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 1, 2019
From: VOKS, IGOR; BOHRER, DROR; NARKIS, LIOR; SHAHAR, ARIEL
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 049634/0274 →
Cited By (2)
US 12,218,860 US 12,244,670