Tile-Based Graphics Primitive Data Caching for Power Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing accuracyVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #26Copying

2Reliability

If primitive-specific data is recalculated for each tile, then data freshness is ensured, but processing time increases

Engineering Contradiction:
Improvedata freshnessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #15Dynamics

3Productivity

If primitive-specific data is stored in memory for reuse, then processing efficiency improves, but memory complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

4Measurement precision

If primitive data is stored with unique identifiers, then data retrieval accuracy improves, but storage requirements increase

Engineering Contradiction:
Improvedata retrieval accuracyVSAvoidstorage requirements
Core Design Contradiction:
Measurement precisionVSQuantity of substance

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.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10163238B2Processing graphics primitives in a tile-based graphics processing system
Publication Date: 2018.12.25 ARM LTD
  • US10163238B2 patent drawing
  • US10163238B2 patent drawing
  • US10163238B2 patent drawing

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.