Adaptive Device Driver Framework for Parallel Hardware Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The development of device drivers for hardware is time-consuming and costly due to the need for custom programming and lack of parallel development with hardware design, leading to delays and increased costs from improper documentation and serialization of driver development.

Innovation Solution

A method for specifying device driver parameters on-board hardware, allowing for the customization of adaptive device drivers that interface with board devices and their functional elements, enabling parallel development and reuse of driver components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a customized device driver is developed from scratch to fit the specific hardware design, then the device driver can be tailored precisely to hardware requirements, but the development time and cost increase significantly

Engineering Contradiction:
Improvedevice driver compatibilityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The device driver is segmented into a framework portion (common functionality) and a customized portion (hardware-specific functionality). The framework can be reused across multiple hardware devices, while only the hardware-specific portion needs to be customized. This segmentation allows parallel development of the framework and hardware design, reducing overall development time while maintaining precise hardware compatibility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The device driver framework is developed and prepared in advance, before the specific hardware design is finalized. This preliminary action allows the framework to be ready for customization when hardware development is complete, enabling parallel development processes and reducing the serialization delay between hardware and software development.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If device driver development is serialized after hardware design completion, then hardware can be fully developed and tested first, but software developers lose influence over hardware designs and development time increases

Engineering Contradiction:
Improvehardware functionalityVSAvoiddevelopment efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

By segmenting the device driver into framework and hardware-specific portions, hardware designers can provide early specifications for the hardware-specific interface while software developers work on the framework. This enables overlapping development activities and maintains hardware design reliability while improving overall productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The device driver framework is designed with universal functionality that can accommodate multiple hardware designs. This universality allows hardware designers to iterate on hardware designs while the framework remains applicable, maintaining hardware functionality requirements while enabling parallel development and improving productivity.

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

3Adaptability or versatility

If a monolithic device driver solution is used to control many different hardware functions, then comprehensive hardware control is achieved, but development and testing become extremely time-consuming

Engineering Contradiction:
Improvehardware function coverageVSAvoiddriver complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The monolithic device driver is segmented into a framework portion handling common functions and hardware-specific portions handling device-specific functions. This reduces the complexity of the main framework that needs to be developed and tested, while maintaining comprehensive hardware function coverage through modular additions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework is designed with universal multi-functionality to handle common hardware operations across different devices. This reduces the overall complexity by eliminating redundant code for common functions, while hardware-specific portions add only the necessary specialized functionality.

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

4Reliability

If software is written specifically for each hardware device and function combination, then precise hardware control is achieved, but development cost and time increase

Engineering Contradiction:
Improvehardware control precisionVSAvoiddevelopment cost
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The device driver is segmented into a reusable framework and hardware-specific modules. The framework can be manufactured and distributed once, while only the relatively small hardware-specific portions need to be customized for each device. This significantly reduces development cost while maintaining precise hardware control through the hardware-specific modules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework portion of the device driver is copied and reused across multiple hardware devices. This copying approach eliminates the need to rewrite common functionality for each device, reducing development cost while the hardware-specific portions ensure precise control for each device type.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9886287B2Adaptive device driver method and system
Publication Date: 2018.02.06 NETAPP INC
  • US9886287B2 patent drawing
  • US9886287B2 patent drawing
  • US9886287B2 patent drawing

AI summary

Aspects of the present invention provide a method of specifying a device driver design for a board device. The method includes receiving a board device with various functional elements and on-board storage to be operatively coupled to a computing device through an interconnect. The device driver design is specified through the identification of one or more device driver parameters. The device driver parameters are to be used subsequently to customize an adaptive device driver that interfaces with the board device and each of the one or more functional elements. Device driver parameters are stored in a predetermined storage construct allocated from the board device. These device driver parameters remain stored in the storage construct until there is a need for the board device and corresponding device driver. Customizing the adaptive device driver is done after the device driver parameters have been stored and typically when a computer device starts or ‘boots”. Initially, aspects of the present invention may receive an indication that a board device and one or more functional elements associated with the board device have been attached to an interconnect and requires a device driver. Next, aspect of the present invention retrieve device driver parameters from the storage constructs and customizes the adaptable device driver into a device driver for the board device in accordance with the device driver parameters.