Portable Device IO Processor Channel Architecture
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing Android system architecture for portable devices requires separate hardware drivers for each I/O component, leading to different software errors that need distinct resolutions, making it time and manpower-intensive to manage and control various I/O components during the product development stage.
Innovation Solution
A portable device architecture featuring a main processor, an IO processor, and a channel port with multiple channels, where the main processor transmits commands to the IO processor and releases the channel after processing, allowing for efficient management and control of I/O components, thereby reducing the load on the main processor and decreasing power consumption.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If separate hardware drivers are used for each I/O component in the Android system, then each I/O component can be controlled independently, but the system complexity increases and requires different software error resolutions for each driver
Solution Approach 1:
The system is segmented into three distinct layers: application layer, channel layer, and device driver layer. Each I/O component has its own channel object that acts as an intermediary, separating the complexity of individual driver management from the application layer. This segmentation allows independent control of each I/O component while centralizing error handling at the channel layer.
Solution Approach 2:
The channel object serves as an intermediary between the application layer and device driver layer. It abstracts the complexity of hardware-specific drivers, providing a unified interface for I/O operations. The channel layer handles software error resolution centrally, eliminating the need for applications to manage multiple different driver error protocols.
2Ease of operation
If the main processor handles all I/O operations directly, then control is centralized, but the main processor load increases and power consumption rises
Solution Approach 1:
The processing responsibilities are segmented between the main processor and IO processor. The main processor handles high-level application logic, while the IO processor manages I/O operations and channel management. This segmentation allows the main processor to enter idle or sleep modes during I/O operations, reducing power consumption while maintaining centralized control through the channel layer.
Solution Approach 2:
The IO processor acts as an intermediary that handles I/O operations on behalf of the main processor. It manages the channel port and coordinates with device drivers, allowing the main processor to remain idle during I/O transactions. The channel layer provides the control interface, enabling centralized management without continuous main processor involvement.
3Productivity
If a unified control method is used for all I/O components, then development time and manpower are reduced, but the ability to handle hardware-specific variations may be compromised
Solution Approach 1:
The channel layer provides a universal control interface that works across all I/O components regardless of their specific hardware. The standard channel operations (open, close, read, write, etc.) can be used uniformly for different device types. This universality streamlines development while the underlying channel objects maintain hardware-specific implementations for compatibility.
Solution Approach 2:
While the channel layer provides uniform control, each channel object is customized for its specific I/O component with hardware-appropriate parameters and error handling. The device driver layer maintains hardware-specific optimizations and compatibility, allowing the system to use a unified control method while preserving hardware-specific capabilities through localized adaptations in the channel implementations.
Data Source
Figure 1
Figure 2A
Figure 2B
AI summary
A portable device provided includes a main processor, an IO processor, a channel port coupled between the main processor and the IO processor, and at least one I/O component coupled to the IO processor. The channel port includes a plurality of channels. The main processor and the IO processor are configured to occupy one of the channels for transmitting a first command therebetween and release the occupied channel after a process is performed according to the first command.