Tile-Based Graphics Primitive Data Caching for Power Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In tile-based graphics processing systems, primitives are recalculated for each tile they fall within, leading to redundant calculations and increased power consumption, as previously calculated data is not stored for reuse across different tiles.
Innovation Solution
Implement a method where primitive-specific data is calculated once and stored for reuse when the same primitive is processed across multiple tiles, reducing the need for repeated calculations and enhancing energy efficiency by utilizing a memory system that checks for and retrieves stored data based on unique identifiers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If primitive-specific data is recalculated for each tile, then processing accuracy is maintained, but power consumption increases and processing efficiency decreases
Solution Approach 1:
The patent applies preliminary action by calculating and storing primitive-specific data before the primitive is actually processed for rendering. The data is pre-calculated when the primitive is first encountered and stored in a cache, so that when the same primitive appears in subsequent tiles, the pre-calculated data can be retrieved instead of recalculating, thereby reducing power consumption while maintaining processing accuracy.
Solution Approach 2:
The patent uses copying by creating a copy of the primitive-specific data (such as vertex data, transformation matrices, and rendering parameters) and storing it in a cache memory. This copied data can then be reused across multiple tiles without requiring recalculation, effectively reducing the computational energy required while preserving the accuracy of the original calculations.
2Reliability
If primitive-specific data is recalculated for each tile, then data freshness is ensured, but processing time increases
Solution Approach 1:
The system performs preliminary calculation of primitive-specific data when the primitive is first encountered, stores this data in a cache with associated metadata including a timestamp or validity flag. When processing subsequent tiles, the system checks the cached data's validity rather than recalculating, thereby reducing processing time while ensuring data freshness through validity verification.
Solution Approach 2:
The patent implements a dynamic caching system where the validity of stored primitive-specific data is tracked using metadata such as timestamps, version counters, or dependency flags. This dynamic tracking allows the system to determine whether cached data is still fresh and valid for reuse, balancing between retrieving stored data for speed and recalculating when necessary to maintain data freshness.
3Productivity
If primitive-specific data is stored in memory for reuse, then processing efficiency improves, but memory complexity increases
Solution Approach 1:
The patent segments the memory structure into distinct components: a primitive cache for storing primitive-specific data, a separate tile list structure for organizing tile information, and metadata storage for tracking data validity. This segmentation allows efficient access to cached data while maintaining clear organizational boundaries, improving processing efficiency without overwhelming memory complexity.
Solution Approach 2:
The patent adds a temporal dimension to the memory system by incorporating validity metadata (timestamps, version counters) alongside the primitive-specific data. This transforms the memory structure from a simple storage array to a time-aware cache system that can automatically determine data freshness, thereby enabling efficient reuse of stored data while managing complexity through structured metadata.
4Measurement precision
If primitive data is stored with unique identifiers, then data retrieval accuracy improves, but storage requirements increase
Solution Approach 1:
The patent extracts only the essential unique identifier (such as a primitive ID or hash) from the complete primitive data and stores this compact key in the cache alongside the full primitive-specific data. This extracted identifier serves as a precise lookup key for retrieving the correct cached data, improving retrieval accuracy while minimizing the additional storage requirements compared to storing redundant copies of the entire primitive data.
Data Source
AI summary
A graphics processing core of a tile-based graphics processing system when processing a tile of a graphics output reads a primitive to be processed off a tile list for the tile being processed, along with an identifier for that primitive. The graphics processing core then checks whether or not the identifier matches the identifier stored for any entry stored in a primitive data cache. A match indicates that primitive-specific data (including line equations, depth equations and barycentric equations) for the primitive to be processed is stored in the cache. If a match is found then the stored primitive-specific data is retrieved and used to process (rasterise and render) the primitive. If no match is found, primitive-specific data is calculated from scratch, stored in the primitive data cache, and used to process the primitive.


