Transient Load Instruction for VLIW Register Pressure

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional systems face register pressure and latency issues due to the need for dedicated load instructions and memory access in Very Long Instruction Word (VLIW) based systems, which limits the efficient execution of memory load operations and increases execution time.

Innovation Solution

The introduction of a transient load instruction that allows immediate use of load data within a packet without consuming a write port, enabling any instruction to act as a load-op and reducing register pressure by avoiding the need for dedicated load-op instructions and memory access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional load instructions are used in VLIW systems, then memory data can be loaded into registers, but register pressure increases and execution time increases due to dedicated load-op instructions and memory access latency

Engineering Contradiction:
Improveexecution efficiencyVSAvoidload latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the load operation from traditional memory access instructions and implements it directly within the VLIW packet structure. The load data is fetched and made available within the same instruction packet, separating the load function from conventional memory access operations and eliminating the need for dedicated load-op instructions.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent merges the load operation with the VLIW instruction execution by allowing load data to be fetched and used within the same packet. This combines previously separate operations (memory access and data usage) into a unified process, reducing the number of instructions needed and hiding latency.

Inventive Principle:
Principle #5Merging (Combining)

2Ease of operation

If dedicated load-op instructions are used, then memory data can be loaded, but the device complexity increases and register pressure increases

Engineering Contradiction:
Improveinstruction simplicityVSAvoidinstruction set complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent makes the VLIW instruction packet itself capable of performing load operations, rather than requiring separate dedicated load instructions. The same instruction structure handles both traditional operations and load operations, reducing instruction set complexity and eliminating the need for special load-op instructions.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Productivity

If data is loaded into registers for immediate use, then computation can proceed, but register pressure increases when variables cannot be assigned to registers

Engineering Contradiction:
Improvecomputation speedVSAvoidregister usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent creates temporary load data structures that exist only within the current packet execution. These transient data structures serve as disposable containers for load data that is immediately used and then discarded, avoiding the need to allocate permanent registers for temporary values and reducing register pressure.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

Data Source

PatentUS11561792B2System, apparatus, and method for a transient load instruction within a VLIW operation
Publication Date: 2023.01.24 QUALCOMM INC
  • US11561792B2 patent drawing
  • US11561792B2 patent drawing
  • US11561792B2 patent drawing

AI summary

A transient load instruction for a processor may include a transient or temporary load instruction that is executed in parallel with a plurality of input operands. The temporary load instruction loads a memory value into a temporary location for use within the instruction packet. According to some examples, a VLIW based microprocessor architecture may include a temporary cache for use in writing/reading a temporary memory value during a single VLIW packet cycle. The temporary cache is different from the normal register bank that does not allow writing and then reading the value just written during the same VLIW packet cycle.