Multi-Kernel I/O Offloading via Shared Memory and DMA
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current memory access management in manycore systems, particularly in portable devices, faces challenges in optimizing performance and power usage due to interference from conventional operating systems and the difficulty in applying high-performance file input/output techniques to lightweight kernels, leading to performance degradation.
Innovation Solution
A method and apparatus for processing input/output operations in a multi-kernel system by setting shared memory between a main processor and a parallel processor, using dynamic memory access (DMA) to offload file input/output tasks, minimizing operating system interference and enhancing performance through a lightweight kernel.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional operating systems are used in manycore systems, then system stability and comprehensive functionality are maintained, but performance degradation occurs due to software stack interference and computing overhead
Solution Approach 1:
The system is segmented into multiple independent kernel spaces: a first kernel space running on a main processor and a second lightweight kernel space running on a parallel processor. This segmentation allows the lightweight kernel to operate without the interference of conventional OS software stacks, achieving high performance for specific tasks while the main processor handles general system functions, thus resolving the contradiction between stability and performance.
Solution Approach 2:
A shared memory space is introduced as an intermediary between the first kernel and the second lightweight kernel. This shared memory enables efficient communication and data exchange without requiring complex inter-process communication mechanisms from conventional OS kernels, reducing overhead while maintaining system coherence and stability.
2Productivity
If lightweight kernel is used on parallel processor, then operating system interference is minimized and processing speed is enhanced, but file input/output capability is lost due to absence of software stack
Solution Approach 1:
The first kernel acts as an intermediary that provides file input/output capabilities to the second lightweight kernel. When the lightweight kernel needs to perform file I/O operations, it communicates these requests through the shared memory to the main processor's kernel, which then executes the appropriate file system operations and returns results, thus enabling I/O capability without adding software stack overhead to the lightweight kernel.
Solution Approach 2:
The shared memory space serves multiple functions: it acts as both the execution environment for the lightweight kernel and the communication channel for file I/O operations. This multi-functionality allows the system to maintain processing speed while gaining file I/O capability through a single unified mechanism.
3Speed
If shared memory is set between main processor and parallel processor, then data transmission efficiency is improved, but system complexity increases due to additional memory management requirements
Solution Approach 1:
The shared memory is merged with the existing memory management structures of the first kernel. The first kernel manages the shared memory as part of its address space, using existing page table and memory allocation mechanisms. This approach enables efficient data transmission between processors without requiring a completely separate and complex memory management subsystem.
Data Source
AI summary
Disclosed is an apparatus and method of processing input and output in a multi-kernel system. A method of processing input and output in a multi-kernel system according to the present disclosure includes: setting a shared memory between a first kernel on a main processor and a lightweight kernel on a parallel processor; setting a data transmission and reception channel between the first kernel on the main processor and the lightweight kernel on the parallel processor using the shared memory; providing, on the basis of the data transmission and reception channel, an input/output task that occurs in the lightweight kernel to the first kernel on the main processor; processing, by the first kernel on the main processor, an operation corresponding to the input/output task; and providing a result of the processing to the lightweight kernel.


