Dynamic Graphics Surface Memory Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems that utilize both local and non-local memory for graphics processing often face inadequate memory allocation, leading to oversubscription and potential failure of graphics applications, especially during memory-intensive tasks, as they rely on preallocated memory that may not be sufficient.

Innovation Solution

A dynamic surface memory allocation prioritization scheme that dynamically allocates and reallocates memory based on usage statistics and predefined criteria, allowing local memory to be expanded by prioritizing surfaces between local, non-local, and system memory locations, ensuring that frequently used surfaces are stored in preferred locations like local memory.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If preallocated memory is taken from main system memory to be dedicated for 3D graphics usage, then graphics processing performance is improved, but memory availability for other system operations is reduced

Engineering Contradiction:
Improvegraphics processing performanceVSAvoidmemory availability
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system implements dynamic memory allocation where the graphics driver continuously monitors memory usage and application demands, adjusting the allocation between local frame buffer memory and non-local system memory in real-time. This allows the system to optimize graphics performance when needed while preserving system memory availability during normal operations, resolving the contradiction between dedicated graphics memory and general system memory availability.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the allocation parameters dynamically based on system state. When graphics-intensive applications are detected, the system increases the allocation of non-local memory to the graphics driver. When graphics demands are low, the system reduces this allocation and returns memory to the operating system. This parameter adjustment resolves the fixed trade-off between graphics performance and system memory availability.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If local frame buffer memory is increased to accommodate memory-intensive graphics applications, then graphics application performance is improved, but system cost and complexity increase

Engineering Contradiction:
Improvegraphics application performanceVSAvoidsystem cost
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system merges local frame buffer memory with non-local system memory to create a unified graphics memory space. The graphics driver can allocate surfaces in either local or non-local memory based on availability and performance requirements. This combination allows the system to achieve high graphics performance comparable to having large local memory while avoiding the high cost and complexity of physically expanding local frame buffer memory.

Inventive Principle:
Principle #5Merging (Combining)

3Quantity of substance

If non-local system memory is allocated to graphics processing, then available graphics memory is increased, but access speed compared to local memory is reduced

Engineering Contradiction:
Improveavailable graphics memoryVSAvoidmemory access speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The system applies local quality by placing frequently accessed graphics surfaces in local frame buffer memory for high-speed access while storing less frequently accessed surfaces in non-local system memory. The graphics driver makes intelligent placement decisions based on usage patterns, ensuring that the most performance-critical data resides in fast local memory while expanding total available memory through non-local resources.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The graphics driver acts as an intermediary that manages the trade-off between local and non-local memory. It translates graphics application memory requests into appropriate allocation from either local or non-local memory based on current system conditions. This intermediary layer allows the system to use slower non-local memory while maintaining the appearance and performance characteristics of fast local memory for critical operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3171330B1Method and apparatus with dynamic graphics surface memory allocation
Publication Date: 2018.08.01 ADVANCED MICRO DEVICES INC
  • EP3171330B1 patent drawingFigure 1
  • EP3171330B1 patent drawingFigure 2~3
  • EP3171330B1 patent drawingFigure 4

AI summary

An apparatus and method utilizes system memory as backing stores so that local graphics memory may be oversubscribed. Surfaces may be paged in and out of system memory based on the amount of usage of the surfaces. The apparatus and method also prioritizes surfaces among different tiers of local memory (e.g. frame buffer), non-local memory (e.g. page locked system memory), and system memory backing stores (e.g. pageable system memory) locations based on predefined criteria and runtime statistics relating to the surfaces. As such, local memory may be, for example, expanded without extra memory costs such as adding a frame buffer memory to allow graphics applications to effectively use more memory and run faster.