Partitioned I/O OS Offloading Network Protocol Stack Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The processing of network protocol stacks by the CPU in computer systems consumes significant processing power, especially in server systems handling numerous network transactions concurrently, which reduces overall CPU performance.
Innovation Solution
Designating a processing unit to handle network protocol processing, partitioning the system to separate General Purpose OS and I/O OS, with the I/O OS processing the network protocol stack and interacting with the Network Interface Card, freeing the General Purpose OS to handle other activities without the need for specialized TCP/IP Offload Engines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the CPU processes the network protocol stack, then network communication functionality is achieved, but CPU processing power is consumed and overall system performance decreases
Solution Approach 1:
The system is divided into two distinct operating systems: a General Purpose OS for application processing and an I/O OS for network protocol processing. This segmentation allows network protocol processing to be separated from general CPU tasks, enabling concurrent execution on different processors without interfering with each other's performance.
Solution Approach 2:
The network protocol processing function is extracted from the General Purpose OS and assigned to a dedicated processing unit running the I/O OS. This extraction removes the network processing burden from the general-purpose CPU, allowing it to focus on application-level tasks while network transactions are handled independently.
2Productivity
If specialized TCP/IP Offload Engines are used to process network protocols, then network processing efficiency is improved, but system cost increases
Solution Approach 1:
The I/O processing unit runs a full operating system (I/O OS) that can handle multiple I/O operations including network protocols, storage, and other device operations. This multi-functional approach eliminates the need for specialized hardware offload engines for each protocol, as a single I/O processing unit can handle various protocols through software implementation.
Solution Approach 2:
Instead of using expensive specialized hardware offload engines, the patent uses software-based protocol processing in the I/O OS that replicates the functionality of hardware offload engines. This software copying approach achieves similar performance benefits without the high hardware cost.
3Productivity
If the system is partitioned to separate General Purpose OS and I/O OS, then processing bottlenecks are reduced and performance improves, but system complexity increases
Solution Approach 1:
A shared memory space acts as an intermediary communication channel between the General Purpose OS and the I/O OS. This shared memory allows the two operating systems to exchange data and coordinates their operations without requiring complex inter-process communication mechanisms, simplifying the overall system architecture despite the dual-OS design.
Data Source
AI summary
A computer system is partitioned during a pre-boot phase of the computer system between a first partition and a second partition, wherein the first partition to include a first processing unit and the second partition to include a second processing unit. An Input/Output (I/O) operating system is booted on the first partition. A general purpose operating system is booted on the second partition. Network transactions are issued by the general purpose operating system to be performed by the I/O operating system. The network transactions are performed by the I/O operating system.


