Select-and-Insert Instructions for Faster 2D Array Addressing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing data processing systems face challenges in achieving high data throughput with low overhead, particularly in Viterbi decoding, due to the need for multiple instructions to access and manipulate two-dimensional arrays, leading to increased instruction cycles and energy consumption.

Innovation Solution

The introduction of an address calculation instruction that splits an input address value into two portions, adds a non-zero offset, and concatenates them to form an output address value, as well as a select-and-insert instruction for shifting and selecting bits, to reduce the number of instructions required for common processing tasks, enhancing efficiency and throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If two separate instructions are used to access two-dimensional array dimensions, then address manipulation flexibility is improved, but instruction cycle count and energy consumption increase

Engineering Contradiction:
Improveaddress manipulation flexibilityVSAvoiddata throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent combines multiple address manipulation operations into a single instruction. The address calculation unit performs splitting, offset addition, and concatenation operations within one instruction cycle, eliminating the need for multiple separate instructions to access two-dimensional array elements.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent segments the address value into multiple portions (first portion, second portion, third portion) that can be independently manipulated. This segmentation allows selective modification of specific address components while preserving others, enabling efficient two-dimensional array access patterns.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If multiple instructions are used for address calculations, then processing precision is improved, but device complexity increases

Engineering Contradiction:
Improveaddress calculation precisionVSAvoidinstruction cycle count
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent merges multiple address calculation operations (splitting, offset addition, concatenation) into a single integrated instruction executed by the address calculation unit, reducing the number of instruction cycles while maintaining precise address manipulation capabilities.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The address calculation unit is designed as a universal component that can perform multiple operations (splitting at different positions, adding different offsets, concatenating portions) within a single instruction, eliminating the need for multiple specialized instructions.

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

3Productivity

If frequent address calculations are performed, then data access efficiency is improved, but energy consumption increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent combines multiple address calculation operations into a single instruction cycle, reducing the number of execution cycles required for frequent data access operations and thereby lowering energy consumption while maintaining access efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7895417B2Select-and-insert instruction within data processing systems
Publication Date: 2011.02.22 ARM LTD
  • US7895417B2 patent drawing
  • US7895417B2 patent drawing
  • US7895417B2 patent drawing

AI summary

A data processing system 2 is provided including an instruction decoder 34 responsive to program instructions within an instruction register 32 to generate control signals for controlling data processing circuitry 36. The instructions supported include an address calculation instruction which splits an input address value at a position dependent upon a size value into a first portion and second portion, adds a non-zero offset value to the first portion, sets the second portion to a value and then concatenates the result of the processing on the first portion and the second portion to form the output address value. Another type of instruction supported is a select-and-insert instruction. This instruction takes a first input value and shifts it by N bit positions to form a shifted value, selects N bits from within a second input value in dependence upon the first input value and then concatenates the shifted value with the N bits to form an output value. The address calculation instruction and the select-and-insert instruction described above are useful when manipulating two-dimensional data arrays, and particularly so when these are two-dimensional data arrays are formed of Viterbi trellis data through which traceback operations are to be performed.