Deferred Page Faulting for Sparse Texture Memory Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In 3D graphics applications, the large texture data required for realistic rendering often exceeds local graphics memory capacity, leading to slow or impossible rendering due to the need for remote memory access, especially with mip-mapping techniques that increase memory requirements and waste memory by storing entire mip-maps, while clip-maps are limited in representing only a single rectangular region.

Innovation Solution

A virtually-addressed local texture store is used in graphics processors to store selected regions of textures, allowing efficient access by mapping texture coordinates to virtual addresses, retrieving texels from local memory if resident, and deferring page faults by using alternative texels or default data, with actual data retrieved from primary storage during convenient intervals.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If entire mip-map is stored in local memory, then texture access speed is improved, but memory capacity is exceeded and memory waste increases

Engineering Contradiction:
Improvetexture access speedVSAvoidmemory capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The mip-map texture is divided into multiple page-sized regions, each independently manageable. Only the currently needed region is loaded into local graphics memory, while other regions remain in remote storage. This segmentation allows the system to maintain fast texture access for the active region while avoiding the memory capacity constraints of storing the entire mip-map locally.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of loading the complete mip-map into local memory, the system loads only the partial region currently needed for rendering. This partial action approach reduces memory usage while maintaining sufficient functionality, as the texture sampling operation can proceed with the loaded region and fetch additional data on demand through deferred page faulting.

Inventive Principle:
Principle #16Partial or excessive action

2Quantity of substance

If clip-map is used to store only single rectangular region, then memory requirement is reduced, but texture representation capability is limited

Engineering Contradiction:
Improvememory requirementVSAvoidtexture representation capability
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The system dynamically determines which mip-map region to load based on the current rendering context and texture sampling requirements. Rather than being fixed to a single rectangular region like clip-maps, the virtual memory system can load any required page-sized region from remote storage into local memory on demand, providing flexible adaptability to various texture access patterns.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The virtual memory subsystem acts as an intermediary between the graphics processor and remote storage. It manages the mapping between virtual texture addresses and physical memory locations, allowing the graphics processor to access texture data as if it were entirely local while actually fetching data from remote storage only when needed through deferred page faulting.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Quantity of substance

If remote memory access is used for texture data, then memory capacity is sufficient, but rendering speed is reduced due to access latency

Engineering Contradiction:
Improvememory capacityVSAvoidrendering speed
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system preliminarily loads the required mip-map region into local graphics memory before texture sampling operations begin. By pre-loading the necessary data, the system eliminates the need for slow remote memory accesses during the critical rendering path, thereby improving rendering speed while maintaining sufficient memory capacity through selective loading.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The graphics processor continuously operates with texture data available in local memory, maintaining continuous rendering operations without interruption for remote data fetching. The virtual memory system ensures that texture access remains fast and continuous by keeping the currently needed region in local memory, while background processes handle data fetching operations that do not block the rendering pipeline.

Inventive Principle:
Principle #20Continuity of useful action

4Reliability

If page fault occurs immediately on texel access, then memory consistency is maintained, but rendering operation is interrupted and slowed

Engineering Contradiction:
Improvememory consistencyVSAvoidrendering interruption time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by loading the required mip-map region into local memory before the graphics processor needs to access individual texels. This pre-loading prevents page faults from interrupting rendering operations, as the data is already available in local memory when texture sampling occurs. Memory consistency is maintained through proper memory management of the loaded region.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The rendering operation proceeds continuously without interruption by keeping texture data in local memory. The virtual memory system manages data fetching in a way that does not block the rendering pipeline, allowing the graphics processor to continuously access texture data from local memory while background processes handle data loading from remote storage, thus eliminating rendering interruptions.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS7746352B2Deferred page faulting in virtual memory based sparse texture representations
Publication Date: 2010.06.29 NVIDIA CORP
  • US7746352B2 patent drawing
  • US7746352B2 patent drawing
  • US7746352B2 patent drawing

AI summary

A virtually-addressed local texture memory stores selected regions (a sparse representation) of a texture for use by a graphics processor. The graphics processor requests a texel of the texture by referencing a virtual address of the texel. A memory interface references an address map to determine whether the requested texel is in one of the regions of the texture that is resident in the local texture memory. If so, the texel is retrieved from the local memory and used in the rendering operation; if not, an alternative texel that is resident in the local memory is retrieved and used in the rendering operation. Non-resident regions that include requested texels are retrieved from a primary texture data store at regular intervals (e.g., once per frame) and stored in local texture memory for use in a subsequent rendering operation.