Next-Instruction-Type Field for GPU Pipeline Selection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face inefficiencies in instruction prefetching and branch prediction, especially in systems with multiple parallel threads, leading to significant overhead and latency issues as they do not scale well with increasing numbers of threads.

Innovation Solution

Incorporating a next-instruction-type field within the current program instruction to enable early processing operations, such as pipeline selection, pre-decoding, and state variable routing, which reduces latency and improves throughput by allowing partial processing before the next instruction is fetched.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If instruction prefetching and branch prediction mechanisms are implemented, then processing pipeline efficiency is improved, but circuit area, complexity and power consumption increase significantly

Engineering Contradiction:
Improveprocessing pipeline efficiencyVSAvoidcircuit complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts only the essential next-instruction-type information from the full next instruction, storing it in a compact field within the current instruction. This selective extraction reduces the overhead compared to full instruction prefetching while maintaining the ability to perform early processing operations.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary actions by encoding the next-instruction-type field in the current instruction, enabling early preparation of processing operations (such as pipeline selection and pre-decoding) before the full next instruction is fetched, thereby reducing latency without requiring complex prefetching mechanisms.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If multiple program threads are executed concurrently, then overall processing throughput is improved, but prefetch latency becomes more apparent and significant

Engineering Contradiction:
Improveprocessing throughputVSAvoidprefetch latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By incorporating the next-instruction-type field in the current instruction, the system performs preliminary actions for the next instruction earlier in the execution pipeline. This reduces prefetch latency for each thread, and when multiple threads are concurrently executed, the accumulated latency reduction significantly improves overall throughput.

Inventive Principle:
Principle #10Preliminary action

3Loss of time

If the next program instruction is fetched and decoded before execution, then processing latency is reduced, but additional program size overhead is required

Engineering Contradiction:
Improveprocessing latencyVSAvoidprogram size
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The patent extracts only the critical next-instruction-type information rather than the full next instruction, storing it in a compact field within the current instruction. This selective extraction reduces program size overhead while still enabling early processing operations to begin before the full next instruction is fetched.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs partial processing actions using only the next-instruction-type field information, which is sufficient for early operations like pipeline selection and pre-decoding. This partial action approach reduces the program size overhead compared to fetching and decoding the full next instruction in advance.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2585906B1Next-instruction-type field
Publication Date: 2018.09.19 ARM LTD
  • EP2585906B1 patent drawingFigure 1
  • EP2585906B1 patent drawingFigure 2~3
  • EP2585906B1 patent drawingFigure 4

AI summary

A graphics processing unit core (26) includes a plurality of processing pipelines (38, 40, 42, 44). A program instruction of a thread of program instructions being executed by a processing pipeline includes a next-instruction-type field (36) indicating an instruction type of a next program instruction following the current program instruction within the processing thread concerned. This next-instruction-type field is used to control selection of to which processing pipeline the next instruction is issued before that next instruction has been fetched and decoded. The next-instruction-type field may be passed along the processing pipeline as the least significant four bits within a program counter value associated with a current program instruction (32). The next-instruction-type field may also be used to control the forwarding of thread state variables between processing pipelines when a thread migrates between processing pipelines prior to the next program instruction being fetched or decoded.