Virtual machine systems
US-9747122-B2 · Aug 29, 2017 · US
US2016117277A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016117277-A1 |
| Application number | US-201514918599-A |
| Country | US |
| Kind code | A1 |
| Filing date | Oct 21, 2015 |
| Priority date | Oct 23, 2014 |
| Publication date | Apr 28, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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
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
for adaptation of a particular data processing system to different peripheral devices · CPC title
with address mapping · CPC title
Electrical coupling · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.