Virtualizable Hardware-Software Interface for Forward-Compatible Drivers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing technologies lack flexibility in designing virtualizable and forward-compatible device hardware-software interfaces that can function seamlessly with both current and new devices, limiting their ability to adapt to evolving hardware and software environments.

Innovation Solution

A virtualizable and forward-compatible device-driver/function-driver interface is implemented using a combined hardware firmware device, which includes a command queue, actions table, and event queues to dynamically manage permissions and execute commands, allowing for fine-grained virtualization and compatibility with new devices without modifying existing drivers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a device driver interface is designed for current devices, then it works correctly with existing hardware, but it cannot function with newer devices that are not yet designed

Engineering Contradiction:
Improveforward compatibilityVSAvoidinterface stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The interface design incorporates dynamic version detection and adaptive command processing. The device driver automatically detects the device version and adjusts its behavior accordingly, allowing the same interface to work with both current and future device versions without modification. This dynamic adaptation resolves the contradiction between maintaining interface stability and achieving forward compatibility.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The interface uses version parameters and capability flags to differentiate between device generations. By changing interface parameters based on detected device capabilities rather than restructuring the entire interface, the system maintains stability for existing devices while enabling support for new devices through parameter adjustments.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If extensive infrastructures, hypervisors, and emulators are employed for virtualization, then virtualized device drivers can be implemented, but the system complexity and cost increase significantly

Engineering Contradiction:
Improvevirtualization capabilityVSAvoidinfrastructure complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the virtualization management functionality directly into the device driver itself, removing the need for external hypervisors or emulators. The device driver contains built-in logic to handle virtualization scenarios, which simplifies the overall system architecture by eliminating complex infrastructure components while maintaining virtualization capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The device driver is designed with multi-functionality to handle both physical and virtualized device scenarios without requiring separate infrastructure. A single unified driver interface supports multiple operating modes including direct hardware access and virtualized environments, reducing system complexity by consolidating functionality rather than requiring separate specialized components.

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

3Ease of operation

If device drivers are written specifically for each device with fixed interfaces, then they provide precise control for current devices, but they lack flexibility to adapt to evolving hardware and software environments

Engineering Contradiction:
Improvecontrol precisionVSAvoidenvironment adaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The interface incorporates dynamic capability detection and adaptive command selection. Instead of fixed interfaces, the device driver dynamically determines the appropriate interface version and command set based on the actual device capabilities, providing precise control for current devices while automatically adapting to new device types and environments.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The interface is segmented into modular components with version identifiers and capability flags. This segmentation allows the system to select and combine only the necessary interface elements for each specific device, maintaining precise control where needed while providing flexibility to adapt to different hardware and software environments through selective component usage.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9081709B2Virtualizable and forward-compatible hardware-software interface
Publication Date: 2015.07.14 INTEL CORP
  • US9081709B2 patent drawing
  • US9081709B2 patent drawing
  • US9081709B2 patent drawing

AI summary

Methods and apparatus are disclosed for virtualizable, forward-compatible hardware-software interfaces. Embodiments may be used in a driver whether it is a physical driver or a virtual driver. Commands are queued from the driver and fetched to the device. An actions table is accessed to determine if drivers are permitted to perform commands. Events are queued for the drivers responsive to commands. If drivers are not permitted to perform a command, device firmware may forward the command to a privileged driver to perform the required command. If a driver is only permitted to perform a command with assistance the command is forwarded for corrections and execution. If a command is to be dropped, a completion event may be queued as if the command had executed. Drivers may have no indication of which actions were taken. The actions table may be changed for hardware/software modifications or dynamically according to configuration changes.