Proxy Driver Architecture for Multi-Graphics Power Management
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If the high power consuming graphics subsystem is used, then system performance is improved, but power consumption increases
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.
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.
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
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.
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
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.
Data Source
Figure 1
Figure 2
Figure 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.