SIMD Instructions for Bit Unpacking and RLE Decompression

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current processors are not efficiently capable of handling specific data formats, leading to performance bottlenecks in processing and storage, as they lack direct support for application-specific instructions, relying on increasing instruction execution speed rather than hardware enhancements.

Innovation Solution

The development of SIMD instructions such as fixed-width bit unpack, variable-length byte unpack, burst for RLE decompression, onesidx for finding bit set indices, gatherb for fetching indexed bits, and BitVecCmpRes for comparing value-vectors, which operate on SIMD registers to enhance data processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If scalar processors are used to process specific data formats, then general processing capability is maintained, but processing efficiency and throughput are insufficient

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata format support
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The processor divides data processing into multiple parallel lanes, where each lane can independently process different data elements simultaneously. This segmentation allows the processor to handle multiple data formats through specialized lanes while maintaining overall processing efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The SIMD processor is designed with multi-functional capability to handle various data formats (fixed-width bit values, variable-length byte values, RLE compressed data) through a single instruction stream. This universality allows one processor to perform multiple specialized functions without requiring separate hardware for each data format.

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

2Speed

If processor instruction execution speed is increased to improve performance, then processing speed increases, but hardware complexity and cost increase

Engineering Contradiction:
Improveinstruction execution speedVSAvoidhardware complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent merges multiple processing functions into a single SIMD instruction stream, allowing parallel execution of operations on multiple data elements simultaneously. This combining approach achieves high processing speeds without proportionally increasing hardware complexity, as the same execution units are utilized for multiple data elements in parallel.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The processor transitions from scalar (single-data-stream) processing to vector (multi-data-stream) processing, adding a dimension of parallelism. This dimensional change allows multiple data elements to be processed simultaneously through the same instruction pipeline, increasing throughput without linearly increasing hardware complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Productivity

If SIMD processors are used for parallel processing, then throughput per instruction increases, but difficulty in processing particular data formats arises

Engineering Contradiction:
Improvethroughput per instructionVSAvoiddata format handling capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The SIMD processor implements local quality by providing specialized handling for different data formats within specific processing lanes or through format-specific instruction variants. This allows each lane or instruction type to be optimized for particular data formats (e.g., fixed-width bit unpacking, variable-length byte unpacking, RLE decompression) while maintaining overall parallel processing capability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9342314B2Efficient hardware instructions for single instruction multiple data processors
Publication Date: 2016.05.17 ORACLE INT CORP
  • US9342314B2 patent drawing
  • US9342314B2 patent drawing
  • US9342314B2 patent drawing

AI summary

A method and apparatus for efficiently processing data in various formats in a single instruction multiple data (“SIMD”) architecture is presented. Specifically, a method to unpack a fixed-width bit values in a bit stream to a fixed width byte stream in a SIMD architecture is presented. A method to unpack variable-length byte packed values in a byte stream in a SIMD architecture is presented. A method to decompress a run length encoded compressed bit-vector in a SIMD architecture is presented. A method to return the offset of each bit set to one in a bit-vector in a SIMD architecture is presented. A method to fetch bits from a bit-vector at specified offsets relative to a base in a SIMD architecture is presented. A method to compare values stored in two SIMD registers is presented.