Layered Device Driver Architecture for System Stability

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Device drivers implemented solely in kernel space are challenging to debug and can cause system crashes, requiring specialized kernel debuggers and resulting in increased development and debugging costs, with unique drivers needed for similar hardware functionalities.

Innovation Solution

A layered device driver architecture that divides the driver into an application component in user space, an interface component, and a physical component in kernel space, allowing high-level functions to be implemented in user space for easier debugging and sharing of hardware functionality across similar hardware devices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If device drivers are implemented solely in kernel space, then system stability is maintained, but debugging becomes difficult and development costs increase

Engineering Contradiction:
Improvedebugging easeVSAvoidsystem stability
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The device driver is divided into two separate components: a kernel space component that handles hardware interaction and a user space application component that provides debugging capabilities. This segmentation allows developers to debug driver issues using standard user space tools while the kernel space component maintains system stability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A communication interface is introduced between the user space application component and the kernel space driver component. This intermediary enables the user space component to act as a debugger for the kernel space driver without directly compromising kernel stability, allowing trace and control operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If device drivers are implemented solely in kernel space, then hardware control is direct, but specialized kernel debuggers are required increasing development costs

Engineering Contradiction:
Improvedevelopment costVSAvoiddriver architecture
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The driver functionality is segmented into kernel space and user space components, allowing the use of standard, widely-available debugging tools in user space rather than requiring specialized kernel debuggers, thereby reducing development costs.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The user space application component serves multiple functions: it acts as a debugger for the kernel driver, provides a development interface, and can be used across different hardware platforms, reducing the need for platform-specific development tools.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If unique drivers are written for each hardware device, then hardware-specific functionality is optimized, but development and maintenance time increases

Engineering Contradiction:
Improvedevelopment timeVSAvoidhardware compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The user space application component is designed to be hardware-agnostic and can be configured to work with different hardware devices through configuration files or parameters, allowing a single driver framework to support multiple hardware platforms without requiring unique drivers for each device.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Instead of writing unique drivers for each hardware device, the system uses configuration copies or templates that can be adapted to different hardware specifications, reducing repetitive development work while maintaining hardware-specific optimization.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9436621B1Layered device driver
Publication Date: 2016.09.06 EMC IP HLDG CO LLC
  • US9436621B1 patent drawing
  • US9436621B1 patent drawing
  • US9436621B1 patent drawing

AI summary

A layered device driver operating on a computer system is discussed. The device driver includes three components: an application component operating in user space, an interface component operating in kernel space, and a physical component operating in kernel space.