Shared Work Queue for Co-Processor Data Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for data transfer between a host processor and co-processors in computer systems are inefficient, leading to increased latency and reduced throughput, as they require host resources to handle input/output operations and interact with co-processors, thereby burdening host resources.
Innovation Solution
A method where a central processing unit (CPU) allocates work and completion queues in memory to collaborate with co-processors, allowing co-processors to initiate and access data transfers through input/output devices, with the CPU handling complex operations and the co-processor performing limited read and write functions, thereby reducing the burden on host resources.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the host processor handles all input/output operations and interacts directly with co-processors, then data transfer control is centralized and simple to manage, but host resources are burdened and throughput is reduced
Solution Approach 1:
The patent segments the data transfer control function by separating work queue management from completion handling. The host processor prepares and submits work requests to co-processors, while completion reports are handled independently by the co-processors or I/O devices. This segmentation reduces host resource burden and enables parallel processing, thereby increasing data transfer throughput without overly complicating host resources.
2Loss of time
If the host processor manages all work requests and completion reports, then control flow is straightforward, but latency increases due to host involvement in every data transfer operation
Solution Approach 1:
The patent extracts the completion report handling function from the host processor and assigns it to co-processors or I/O devices. Co-processors can directly read completion reports from memory without requiring host processor intervention for each completion event. This extraction reduces data transfer latency significantly while maintaining control flow simplicity through the existing queue-based mechanism.
3Productivity
If co-processors can directly access and initiate data transfers with I/O devices, then throughput increases and host burden decreases, but system complexity increases due to multiple entities accessing shared resources
Solution Approach 1:
The patent introduces work queues and completion queues as intermediary structures in memory that mediate between co-processors and I/O devices. Co-processors submit work requests to queues and read completion reports from queues, while I/O devices read from queues and write completion reports to queues. This intermediary mechanism enables direct co-processor to I/O device data transfer through shared memory queues, increasing throughput while managing system complexity through standardized queue-based interfaces.
Data Source
AI summary
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.

