CPU Queue-Based Cloud I/O Offload to Prevent Data Overflow
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current I/O processing in cloud environments, where work is completely unloaded to an I/O unloading card, suffers from data overflow and poor processing efficiency due to the separation of CPU data links.
Innovation Solution
Incorporating a queue component into the CPU of a host machine to provide a virtual I/O device and device queue, allowing for scheduling of I/O requests and data transfer between instances and physical devices, with the I/O unloading card only responsible for listening to and transferring data from the device queue.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If I/O processing work is completely unloaded to the I/O unloading card, then the CPU is relieved of I/O processing burden, but data overflow occurs and processing efficiency deteriorates due to separation from CPU data link
Solution Approach 1:
The patent merges the I/O unloading card with the CPU data link by establishing a direct integration between the queue component in the CPU and the I/O unloading card. This allows the I/O unloading card to access the device queue directly through the CPU's memory management unit, eliminating the separation that caused data overflow issues while maintaining the unloaded processing architecture.
Solution Approach 2:
The patent introduces a queue component as an intermediary structure between the CPU and the I/O unloading card. This queue component includes a device queue that buffers I/O requests, allowing the CPU to schedule requests before they reach the I/O unloading card, thereby preventing data overflow while maintaining efficient processing.
2Productivity
If I/O processing is separated from CPU data link, then I/O work can be fully offloaded, but processing efficiency deteriorates due to lack of real-time scheduling
Solution Approach 1:
The patent implements preliminary scheduling action by introducing a queue component in the CPU that pre-processes and schedules I/O requests before they are transferred to the I/O unloading card. The CPU schedules I/O requests in advance based on system state, ensuring optimal processing order and reducing latency when the I/O unloading card executes the requests.
3Ease of operation
If device queue is moved to CPU, then real-time scheduling based on CPU core loads is enabled, but device complexity increases
Solution Approach 1:
The patent implements a queue component that leverages the CPU's existing memory management unit and address translation capabilities, making the CPU's universal memory management infrastructure serve the additional function of I/O request scheduling. This approach enables real-time scheduling based on CPU core loads without requiring entirely new hardware structures, thus limiting the increase in device complexity.
Data Source
AI summary
Embodiments of the present application provide an I/O unloading method and system in a cloud environment, a device, and a storage medium. In the present application, a CPU of a host machine is additionally equipped with a queue component, and it is innovatively proposed to use the queue component in an I/O processing process. Based on this, a virtual I/O device and a device queue corresponding to the virtual I/O device can be provided for an instance on the host machine through the queue component; in the CPU, scheduling is performed on an I/O request occurring between the instance and the virtual I/O device by using the device queue; and an original I/O unloading card only needs to be responsible for listening to the I/O request in the device queue and transferring data related to the I/O request which effectively improves the I/O processing efficiency.


