Collaborative hardware interaction by multiple entities using a shared queue

US2016117277A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016117277-A1
Application numberUS-201514918599-A
CountryUS
Kind codeA1
Filing dateOct 21, 2015
Priority dateOct 23, 2014
Publication dateApr 28, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method for interaction by a central processing unit (CPU) and peripheral devices in a computer includes allocating, in a memory, a work queue for controlling a first peripheral device of the computer. The CPU prepares a work request for insertion in the allocated work queue, the work request specifying an operation for execution by the first peripheral device. A second peripheral device of the computer submits an instruction to the first peripheral device to execute the work request that was prepared by the CPU and thereby to perform the operation specified by the work request.

First claim

Opening claim text (preview).

1 . A method for interaction by a central processing unit (CPU) and peripheral devices in a computer, the method comprising: allocating, in a memory, a work queue for controlling a first peripheral device of the computer; preparing, by the CPU, a work request for insertion in the allocated work queue, the work request specifying an operation for execution by the first peripheral device; and submitting an instruction, from a second peripheral device of the computer to the first peripheral device, to execute the work request that was prepared by the CPU and thereby to perform the operation specified by the work request. 2 . The method according to claim 1 , wherein preparing the work request comprises writing the work request to the work queue by the CPU, and wherein submitting the instruction comprises activating the work request by the second peripheral device. 3 . The method according to claim 2 , wherein the CPU and the first and second peripheral devices are connected to a bus of the computer, and wherein activating the work request comprises writing a doorbell record to an address of the first peripheral device on the bus. 4 . The method according to claim 1 , wherein preparing the work request comprises writing the work request, by the CPU, to a temporary storage area, and wherein submitting the instructions comprises copying the work request, by the second peripheral device, from the temporary storage area to the work queue. 5 . The method according to claim 1 , wherein the first peripheral device comprises an input/output (I/O) device, and the specified operation comprises an I/O operation, and wherein the second peripheral device comprises a co-processor. 6 . The method according to claim 5 , wherein the co-processor comprises a graphics processing unit (GPU), and wherein the I/O operation comprises transferring data processed by the GPU. 7 . The method according to claim 5 , wherein the I/O device comprises a network interface controller (NIC), which couples the computer to a network, and wherein the I/O operation comprises transmitting data packets over the network. 8 . The method according to claim 1 , and comprising: receiving, in a completion queue, a completion report written by the first peripheral device upon completion of the operation; and reading the completion report by the second peripheral device and, in response to the completion report, performing a further operation by the second peripheral device. 9 . A method for interaction by a central processing unit (CPU) and peripheral devices in a computer, the method comprising: submitting to a first peripheral device in the computer a request to perform a first operation with respect to specified data; receiving, in a completion queue in a memory, a completion report written by the first peripheral device upon completion of the first operation; reading the completion report from the memory by a second peripheral device in the computer and, in response to the completion report, performing a second operation by the second peripheral device; and in response to the completion report, recording, by the CPU, that the request to perform the first operation has been completed. 10 . The method according to claim 9 , wherein reading the completion report comprises polling the completion queue for receipt of the completion report. 11 . The method according to claim 10 , wherein polling the completion queue comprises polling the completion queue by the CPU in addition to the polling by the second peripheral device. 12 . The method according to claim 11 , wherein the second peripheral device polls the completion queue at a higher frequency than the CPU. 13 . The method according to claim 9 , and comprising, in response to the completion report, passing a notification from the second peripheral device to the CPU that the completion report was received, wherein the notification causes the CPU to record that the first operation has been completed. 14 . The method according to claim 9 , wherein the first peripheral device comprises an input/output (I/O) device, and the first operation comprises an I/O operation, and wherein the second peripheral device comprises a co-processor. 15 . The method according to claim 14 , wherein the co-processor comprises a graphics processing unit (GPU), and wherein the I/O operation comprises receiving data, and the second operation comprises processing the received data by the GPU. 16 . The method according to claim 14 , wherein the I/O device comprises a network interface controller (NIC), which couples the computer to a network, and wherein the I/O operation comprises receiving data packets over the network. 17 . Computing apparatus, comprising: a memory; a first peripheral device; a second peripheral device; and a central processing unit (CPU), which is configured to allocate, in the memory, a work queue for controlling the first peripheral device and to prepare a work request for insertion in the allocated work queue, the work request specifying an operation for execution by the first peripheral device, wherein the second peripheral device is configured to submit an instruction to the first peripheral device to execute the work request that was prepared by the CPU and thereby to perform the operation specified by the work request. 18 . The apparatus according to claim 15 , wherein the CPU is configured to write the work request to the work queue, and the second peripheral device is configured to activate the work request in the work queue. 19 . The apparatus according to claim 18 , wherein the CPU and the first and second peripheral devices are connected to a bus of the computer, and wherein the second peripheral device is configured to activate the work request by writing a doorbell record to an address of the first peripheral device on the bus. 20 . The apparatus according to claim 17 , wherein the CPU is configured to write the work request to a temporary storage area, and wherein the second peripheral device is configured to copy the work request from the temporary storage area to the work queue. 21 . The apparatus according to claim 17 , wherein the first peripheral device comprises an input/output (I/O) device, and the specified operation comprises an I/O operation, and wherein the second peripheral device comprises a co-processor. 22 . The apparatus according to claim 21 , wherein the co-processor comprises a graphics processing unit (GPU), and wherein the I/O operation comprises transferring data processed by the GPU. 23 . The apparatus according to claim 21 , wherein the I/O device comprises a network interface controller (NIC), which couples the computer to a network, and wherein the I/O operation comprises transmitting data packets over the network. 24 . The apparatus according to claim 17 , wherein the first peripheral device is configured to write a completion report to a completion queue upon completion of the operation, and wherein the second peripheral device is configured to read the completion report and, in response to the completion report, to perform a further operation. 25 . Computing apparatus, comprising: a memory; an first peripheral device, which is configured to receive a request to perform a first operation with respect to specified data and to write to a completion queue in the memory a completion report upon completion of the first operation; a second pe

Assignees

Inventors

Classifications

  • Message passing systems or structures, e.g. queues · CPC title

  • on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247) · CPC title

  • G06F13/385Primary

    for adaptation of a particular data processing system to different peripheral devices · CPC title

  • with address mapping · CPC title

  • Electrical coupling · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016117277A1 cover?
A method for interaction by a central processing unit (CPU) and peripheral devices in a computer includes allocating, in a memory, a work queue for controlling a first peripheral device of the computer. The CPU prepares a work request for insertion in the allocated work queue, the work request specifying an operation for execution by the first peripheral device. A second peripheral device of th…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification G06F13/385. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Apr 28 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).