Parallel Driver Loading Controller for Serial Hardware Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing device initialization methods rely on serial loading of device drivers due to static load-time dependencies, which can lead to failures if a dependent driver fails to load correctly, resulting in reduced reliability and increased initialization time.

Innovation Solution

Implementing a controller that loads drivers in parallel and grants access to hardware components serially using events, allowing for parallel driver loading while maintaining serial access control, thus removing static load-time dependencies and enabling continued initialization even if one driver fails.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If static load-time dependency is used to serialize driver loading, then hardware access is controlled serially, but driver loading time increases and reliability decreases when a dependent driver fails

Engineering Contradiction:
Improvedriver initialization reliabilityVSAvoidinitialization time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the driver loading process into two independent phases: parallel loading phase and serial access phase. Drivers are loaded in parallel without dependencies, while hardware access is serialized through a controller that manages access rights. This segmentation resolves the contradiction by allowing faster loading (parallel) while maintaining controlled access (serial).

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic access control where the controller dynamically grants hardware access to drivers based on their initialization status. Instead of static load-time dependencies, the system dynamically manages who can access hardware when, allowing flexible and reliable initialization that adapts to driver failures or delays.

Inventive Principle:
Principle #15Dynamics

2Reliability

If static load-time dependency is used to control driver loading order, then hardware access is serialized, but the system cannot continue initialization if a dependent driver fails

Engineering Contradiction:
Improveinitialization continuityVSAvoiddriver loading mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent separates loading logic from access control logic. The loading mechanism becomes simpler (parallel loading without dependencies) while the access control mechanism handles the complexity of coordination through the controller. This allows initialization to continue even if a driver fails, as other drivers can still load and access hardware independently.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The controller acts as an intermediary between drivers and hardware components. It mediates access rights dynamically, allowing the system to continue initialization even when certain drivers fail, by controlling which drivers can access hardware based on their initialization status rather than enforcing rigid load-time dependencies.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If drivers are loaded serially with static dependencies, then hardware access is controlled simply, but initialization speed decreases

Engineering Contradiction:
Improveinitialization speedVSAvoiddriver loading time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the initialization process into loading (parallel) and access control (serial) segments. Drivers load in parallel to maximize productivity, while the controller manages serial access to hardware to maintain system stability. This resolves the contradiction by optimizing both speed and control.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses dynamic access control where the controller dynamically assigns hardware access rights to drivers as they initialize. This dynamic approach allows parallel loading (high productivity) while maintaining controlled access (system stability), eliminating the need for slow serial loading.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10503518B2Initializing hardware components using parallel driver loading and serial access granting
Publication Date: 2019.12.10 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10503518B2 patent drawing
  • US10503518B2 patent drawing
  • US10503518B2 patent drawing

AI summary

Techniques are described herein that are capable of initializing hardware components by loading drivers in parallel and granting the drivers access to the hardware components serially. For instance, a controller may serve as an intermediary between the drivers and the hardware components to synchronize access of the drivers to the respective hardware components. The controller may include software and hardware. The software may program the hardware to grant the drivers access to the respective hardware components serially based at least in part on an event that is capable of being associated with one driver at a time. Accordingly, access of the drivers to the respective hardware components may be granted serially, even though the drivers have been loaded in parallel.