SIMD Shift Merge Instruction for Variable Length Symbol Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processor architectures face inefficiencies in performing complex operations like variable length decoding, particularly due to the lack of support for efficient extraction and manipulation of variable length data symbols, which increases the number of clock cycles required for arithmetic operations and hinders performance in multimedia applications.

Innovation Solution

The implementation of a SIMD shift merge instruction that allows for parallel processing of data operands, enabling efficient extraction and manipulation of variable length symbols by merging and shifting data within SIMD registers, thereby reducing the number of instructions needed and simplifying memory loads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of substance

If variable length codes are used for data compression, then data compression efficiency is improved, but the complexity of decoding and handling the code increases

Engineering Contradiction:
Improvedata sizeVSAvoiddecoding complexity
Core Design Contradiction:
Loss of substanceVSDevice complexity

Solution Approach 1:

The patent segments the bitstream processing into fixed-size buffer blocks with clear boundaries. Each buffer contains a predetermined number of bits that are processed in discrete units, allowing the decoder to handle variable length codes through systematic segmentation rather than continuous bit manipulation. This reduces decoding complexity by breaking down the complex variable length decoding into manageable fixed-size operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-loading data into buffers at byte boundaries before decoding operations. The bitstream is organized into buffers with predetermined bit counts in advance, and alignment operations are performed beforehand to ensure proper positioning. This preliminary organization simplifies the actual decoding process by eliminating the need for complex runtime bit manipulation.

Inventive Principle:
Principle #10Preliminary action

2Loss of substance

If variable length codes are used, then compression ratio is improved, but the number of clock cycles required for decoding increases

Engineering Contradiction:
Improvedata sizeVSAvoiddecoding time
Core Design Contradiction:
Loss of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary alignment operations to position data at optimal boundaries before decoding. By pre-organizing the bitstream into properly aligned buffers and performing necessary shift operations in advance, the actual decoding operations can proceed more quickly without repeated alignment checks and adjustments during execution, thereby reducing total decoding time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic buffer management where the number of bits in each buffer can vary based on the decoding state and requirements. The system adaptively adjusts buffer sizes and performs selective data movement between buffers to optimize the decoding pipeline, allowing flexible handling of variable length codes while maintaining efficient processing throughput.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If data is not aligned with byte boundaries, then variable length symbol representation flexibility is improved, but the efficiency of memory operations decreases

Engineering Contradiction:
Improvesymbol representation flexibilityVSAvoidmemory operation efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the bitstream into fixed-size buffer blocks that are aligned with memory boundaries. Each buffer is treated as an independent segment with a predetermined number of bits, allowing the system to maintain byte-aligned memory operations while representing variable length symbols within these segmented buffers. This segmentation enables efficient memory access patterns while preserving the flexibility needed for variable length encoding.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces buffers as intermediary structures between the variable length symbol representation and the fixed-boundary memory system. These buffers act as mediators that hold bit sequences with flexible internal structures while maintaining alignment with external memory boundaries. The buffers facilitate efficient data movement and manipulation by providing a buffer zone where bit-level operations can be performed without directly impacting memory alignment efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7818356B2Bitstream buffer manipulation with a SIMD merge instruction
Publication Date: 2010.10.19 INTEL CORP
  • US7818356B2 patent drawing
  • US7818356B2 patent drawing
  • US7818356B2 patent drawing

AI summary

Method, apparatus, and program means for performing bitstream buffer manipulation with a SIMD merge instruction. The method of one embodiment comprises determining whether any unprocessed data bits for a partial variable length symbol exist in a first data block is made. A shift merge operation is performed to merge the unprocessed data bits from the first data block with a second data block. A merged data block is formed. A merged variable length symbol comprised of the unprocessed data bits and a plurality of data bits from the second data block is extracted from the merged data block.