Proxy Driver Architecture for Multi-Graphics Power Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computing devices with multiple graphics subsystems face challenges in managing power consumption, as existing software architectures often require a single graphics driver to control multiple subsystems, which can be impractical, especially when subsystems are from different manufacturers, leading to inefficiencies in power management and performance.

Innovation Solution

Implementing a proxy driver component that routes API/DDI calls from application software to either the high or low power graphics subsystem, allowing for dynamic switching between them without rebooting the device, thereby enabling the use of multiple graphics drivers and optimizing power consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single graphics driver is used to control multiple graphics subsystems, then device complexity is reduced, but adaptability and ease of operation deteriorate because the driver must support multiple different subsystems from different manufacturers

Engineering Contradiction:
Improvedriver architecture complexityVSAvoidmulti-subsystem compatibility
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The driver architecture is segmented into multiple independent driver components, each dedicated to controlling a specific graphics subsystem. This segmentation allows each driver to be optimized for its specific subsystem while maintaining overall system manageability through the proxy driver's coordination.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A proxy driver component is introduced as an intermediary layer between the application software and the multiple graphics subsystems. The proxy driver receives rendering requests and intelligently routes them to the appropriate driver component based on the target subsystem, enabling multi-subsystem support without requiring a single complex driver.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the high power consuming graphics subsystem is used, then system performance is improved, but power consumption increases

Engineering Contradiction:
Improvegraphics rendering performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system dynamically selects between high-performance and low-power graphics subsystems based on real-time rendering requirements. The proxy driver component evaluates the complexity and type of rendering tasks, routing simple tasks to the integrated graphics subsystem for power efficiency and complex tasks to the discrete graphics subsystem for performance.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes operational parameters by switching between different graphics subsystems with different power consumption characteristics. The proxy driver can adjust the active subsystem based on workload parameters, effectively changing the system's power-performance profile to match current demands.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If multiple graphics drivers are implemented, then adaptability and ease of operation improve, but device complexity increases due to the need for driver routing and coordination

Engineering Contradiction:
Improvemulti-driver supportVSAvoiddriver coordination complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The proxy driver component serves multiple functions: it acts as a universal interface for all graphics subsystems, a router for directing requests to appropriate drivers, and a coordinator for managing resource allocation. This multi-functionality consolidates complexity into a single component rather than distributing it across multiple drivers.

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

4Use of energy by moving object

If dynamic switching between graphics subsystems is enabled, then power consumption is optimized, but device complexity increases due to the proxy driver component

Engineering Contradiction:
Improveaverage power consumptionVSAvoidsoftware architecture complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

The proxy driver acts as an intermediary that manages the complexity of dynamic switching between graphics subsystems. It handles the decision-making logic for selecting which subsystem to use based on rendering requirements, isolating this complexity from both the application software and the individual driver components.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2243080B1Driver architecture for computing device having multiple graphics subsystems, reduced power consumption modes, software and methods
Publication Date: 2016.09.21 ADVANCED MICRO DEVICES INC
  • EP2243080B1 patent drawingFigure 1
  • EP2243080B1 patent drawingFigure 2
  • EP2243080B1 patent drawingFigure 3

AI summary

Many computing devices may now include two or more graphics subsystems. The multiple graphics subsystems may have different abilities and may, for example, consume differing amounts of electrical power, with one subsystem consuming more average power than the others. The higher power consuming graphics subsystem may be coupled to the device and used instead of, or in addition to, the lower power consuming graphics subsystem, resulting in higher performance or additional capabilities, but increased overall power consumption. By transitioning from the use of the higher power consuming graphics subsystem to the lower power consuming graphics subsystem, while placing the higher power consuming graphics subsystem in a lower power consumption mode, overall power consumption is reduced. A processor executes application software and driver software. The driver software includes first and second driver components for respectively controlling operation of the first and second graphics subsystems. A further proxy driver component routes calls (e.g. API/DDI calls) to one of said first and second driver components, in dependence on which of the first and second graphics system is in use.