Processor Immediate Operand Lookup Table

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processor-based systems face performance overhead when handling instructions with wide immediate operands, as existing methods require software intervention, increased execution time, and resource consumption due to the need to load wide immediate values from memory or use inefficient instruction sequences.

Innovation Solution

Implementing a processor-based system with a common immediate lookup table (CILT) and hardware CILT (HCILT) to store and retrieve wide immediate operands, allowing instructions to reference these values directly, thereby reducing the need for memory loads and improving instruction fetch bandwidth.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If wide immediate operands are stored in the program binary and replaced with load instructions, then the immediate values can be accessed, but the execution time increases due to memory loading delays

Engineering Contradiction:
Improveimmediate value storage capacityVSAvoidexecution time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent extracts the wide immediate values from the instruction stream and places them in a dedicated immediate value cache structure. This separation allows the cache to pre-load and store wide immediate values, so they can be quickly retrieved during instruction execution without causing memory loading delays. The cache acts as an intermediate storage that bridges the gap between limited instruction encoding space and the need for wide immediate values.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The immediate value cache pre-loads and stores wide immediate values before they are needed for instruction execution. By preparing these values in advance and making them readily available in the cache, the system eliminates the time penalty that would otherwise occur when loading immediate values from memory during execution.

Inventive Principle:
Principle #10Preliminary action

2Quantity of substance

If instructions are replaced with sequences of shift and add instructions, then wide immediate values can be generated, but the instruction count and processing overhead increase

Engineering Contradiction:
Improveimmediate value representation capabilityVSAvoidinstruction processing throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Instead of generating wide immediate values through instruction sequences, the patent extracts and stores them directly in the immediate value cache. This eliminates the need for multiple shift and add instructions, reducing the instruction count and allowing the processor to retrieve pre-computed wide immediate values in a single operation.

Inventive Principle:
Principle #2Taking out (Extraction)

3Length of moving object

If multiple branch instructions are chained to achieve wide immediate offsets, then the target can be reached, but the control flow complexity and resource consumption increase

Engineering Contradiction:
Improvebranch offset rangeVSAvoidcontrol flow structure
Core Design Contradiction:
Length of moving objectVSDevice complexity

Solution Approach 1:

The patent introduces an immediate value cache as an intermediary structure that stores wide immediate offset values. This cache acts as a mediator between the branch instruction and the target address calculation, allowing single branch instructions to access wide offsets without chaining multiple branches. The cache simplifies the control flow by providing direct access to wide immediate values that would otherwise require complex multi-instruction sequences.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Length of moving object

If indirect branches are used for wide immediate offsets, then the offset can be achieved, but branch prediction circuitry resources are wasted

Engineering Contradiction:
Improvebranch offset capabilityVSAvoidbranch prediction resource usage
Core Design Contradiction:
Length of moving objectVSLoss of energy

Solution Approach 1:

The patent extracts wide immediate offset values and stores them in a dedicated immediate value cache, allowing direct branch instructions to access these values without using indirect branching. This eliminates the need to occupy branch prediction circuitry resources for predictable wide offset branches, as the cache provides the offset values directly to the branch logic.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP4034990B1Systems and methods for processing instructions having wide immediate operands
Publication Date: 2024.10.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP4034990B1 patent drawingFigure 1
  • EP4034990B1 patent drawingFigure 2
  • EP4034990B1 patent drawingFigure 3

AI summary

A processor element in a processor-based system is configured to fetch one or more instructions associated with a program binary, where the one or more instructions include an instruction having an immediate operand. The processor element is configured to determine if the immediate operand is a reference to a wide immediate operand. In response to determining that the immediate operand is a reference to a wide immediate operand, the processor element is configured to retrieve the wide immediate operand from a common intermediate lookup table (CILT) in the program binary, where the immediate operand indexes the wide immediate operand in the CILT. The processor element is then configured to process the instruction having the immediate operand such that the immediate operand is replaced with the wide immediate operand from the CILT.