Unified Device Driver Framework for Cross-Platform Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems face challenges in developing software components due to distinct operational constraints, leading to static and non-expandable programming environments, which hinder the integration of software components and require custom solutions for each platform, resulting in inefficiencies and increased development costs.

Innovation Solution

A common software environment with a scalable, unified architecture that uses APIs to facilitate communication between device drivers, allowing them to execute in both user and kernel modes, and supports various data storage system environments, enabling platform independence and flexibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If device drivers are developed separately for each platform with custom solutions, then platform-specific reliability is improved, but device complexity and development costs increase

Engineering Contradiction:
Improveplatform-specific reliabilityVSAvoiddevice complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent implements a universal device driver framework that can operate across multiple storage platforms (Linux, AIX, Solaris, Windows) using a common architecture. The driver supports both user mode and kernel mode execution, allowing a single driver implementation to serve multiple platforms without requiring custom solutions for each, thereby reducing overall system complexity while maintaining platform-specific reliability through mode-appropriate optimizations

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

2Adaptability or versatility

If a unified device driver framework is implemented across multiple platforms, then adaptability and code reuse are improved, but execution efficiency and platform optimization may worsen

Engineering Contradiction:
Improveplatform independenceVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent employs dynamic execution mode selection where the device driver can operate in user mode or kernel mode depending on the platform and operational requirements. This dynamic approach allows the same driver framework to be adapted to different execution environments, optimizing performance for each platform while maintaining code reuse through the unified framework architecture

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the execution mode parameter (user mode vs. kernel mode) to optimize driver behavior for different platforms. By adjusting this fundamental parameter, the unified driver framework achieves platform-specific optimization without requiring separate driver implementations, thereby maintaining both adaptability and execution efficiency

Inventive Principle:
Principle #35Parameter changes

3Reliability

If separate code modules are developed for different operating systems and hardware platforms, then compatibility with specific environments is improved, but loss of time and development effort increase

Engineering Contradiction:
Improveenvironment compatibilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent creates a universal device driver framework that maintains environment compatibility through support for multiple operating systems (Linux, AIX, Solaris, Windows) and hardware platforms within a single codebase. This eliminates the need to develop separate code modules for each environment, significantly reducing development time while preserving compatibility through platform-aware execution modes

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

Data Source

PatentUS7950022B1Techniques for use with device drivers in a common software environment
Publication Date: 2011.05.24 EMC IP HLDG CO LLC
  • US7950022B1 patent drawing
  • US7950022B1 patent drawing
  • US7950022B1 patent drawing

AI summary

Described are techniques for facilitating communication between device drivers. A device driver is provided that makes at least one call using an application programming interface. The application programming interface facilitates communication between the device driver module and a target code module. The application programming interface provides support for performing the at least one call from a first execution mode associated with the device driver module and a second execution mode associated with the target code module. The application programming interface provides support for user space to user space communication, user space to kernel space communication, kernel space to kernel space communication, and kernel to user space communication. The first execution mode of the device driver module and said second execution mode of the target code module are determined. A communication path between the modules is established in accordance with said first execution mode and said second execution mode.