Execution Thread Cache for Reducing Redundant Computations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics data processing systems lack efficiency in executing instructions by execution threads, as they often process identical data independently, leading to redundant computations.

Innovation Solution

The system identifies sequences of instructions that produce the same result for multiple execution threads using the same input data and stores the results of these sequences, allowing subsequent threads to retrieve and use the stored results instead of recalculating them.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If each execution thread independently processes instructions using the same input data, then each thread can execute instructions autonomously, but redundant computations occur leading to reduced processing efficiency

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidredundant computations
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by having execution threads store their computed results in a shared cache memory before other threads need them. When a thread executes a sequence of instructions with specific input data, the result is cached and marked with the input data signature. Subsequent threads can check this cache before execution, avoiding redundant computations of identical instruction sequences on identical data.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If execution threads share a cache memory for storing results, then redundant computations are reduced, but the device complexity increases due to cache management requirements

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcache management structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling execution threads to autonomously manage the cache without requiring a separate cache controller. Each thread independently checks the cache for its needed results using the input data signature, retrieves results if present, or stores new results if computed. This distributed self-management approach reduces overall system complexity compared to centralized cache control.

Inventive Principle:
Principle #25Self-service

3Loss of energy

If the system checks cache memory before executing instruction sequences, then redundant computations are minimized, but the time required for cache checking adds to the instruction execution pipeline

Engineering Contradiction:
Improveredundant computationsVSAvoidcache check overhead
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent merges the cache check operation with the instruction fetch and decode phases of the pipeline. Rather than adding a separate cache checking stage, the system integrates cache validation into the existing instruction preparation workflow, allowing cache hits to be detected and handled within the normal pipeline flow without significant additional latency.

Inventive Principle:
Principle #5Merging (Combining)

4Measurement precision

If results are stored in association with input data signatures, then result retrieval accuracy is improved, but the memory requirements increase due to storing additional signature information

Engineering Contradiction:
Improveresult retrieval accuracyVSAvoidmemory storage capacity
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by making the cache storage structure adaptive to the specific input data being processed. Rather than allocating fixed large memory spaces, the system stores results in association with their specific input data signatures, allowing the cache to dynamically allocate storage only for actually computed results. This on-demand storage approach minimizes memory usage while maintaining precise result retrieval through signature matching.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS10127626B1Method and apparatus improving the execution of instructions by execution threads in data processing systems
Publication Date: 2018.11.13 ARM LTD
  • US10127626B1 patent drawing
  • US10127626B1 patent drawing
  • US10127626B1 patent drawing

AI summary

In a data processing system, a program to be executed by a programmable processing unit of the data processing system is analyzed to identify a sequence of instructions that would produce the same result for plural execution threads were those plural execution threads each to execute the sequence of instructions using the same input data. Then, when the program is being executed, when an execution thread is to execute the identified sequence of instructions, it is determined whether a result produced by an earlier execution thread executing the sequence of instructions, and that used the same input data, is stored in memory or not. The current thread then either executes the sequence of instructions, or retrieves the stored result produced by the earlier execution of the sequence of instructions and skips execution of the sequence of instructions for which the result is stored, accordingly.