Vector Compare Instructions for LZ77 Sliding Window Encoding

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems face inefficiencies in executing sliding window encoding algorithms, particularly in the LZ77 compression method, due to the lack of optimized vector instructions that can efficiently compare and process large data sets within the sliding window context.

Innovation Solution

The introduction of vector compare instructions, such as VCOMPCPM and VPHMAXPOSUD, which allow for parallel processing of data elements within a sliding window, enabling efficient bit-match identification and matching byte comparison across multiple data sequences, with features like masking logic to control operation scope and immediate operands specifying window sizes and match lengths.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If scalar processing is used for LZ77 encoding, then the implementation is simple, but the processing speed is slow

Engineering Contradiction:
Improveprocessing speedVSAvoidinstruction complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the sliding window comparison task into multiple independent vector operations. Each vector compare instruction handles a specific portion of the comparison (e.g., distance calculation, match detection, position tracking), allowing parallel processing of multiple data elements simultaneously while maintaining clear functional separation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from scalar (1D) processing to vector (N-dimensional) processing by introducing vector compare instructions that operate on multiple data elements in parallel. This dimensional change enables simultaneous comparison of multiple bytes across the sliding window, dramatically increasing throughput.

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

2Productivity

If multiple separate instructions are used for comparison operations, then each operation is precise, but the number of instructions increases

Engineering Contradiction:
Improvecompression efficiencyVSAvoidcomputational overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple comparison operations into unified vector instructions. For example, VCOMPCPM combines distance calculation, match detection, and position tracking into a single instruction that operates on multiple data elements simultaneously, reducing the total instruction count and computational overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The vector compare instructions are designed to perform multiple functions within a single operation. The instructions can simultaneously calculate distances, detect matches, track positions, and update registers, making them multi-functional and reducing the need for separate specialized instructions.

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

3Productivity

If vector instructions process all data elements, then parallelism is maximized, but control over operation scope is reduced

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidmasking control
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent introduces masking capabilities that allow different portions of vector registers to be selectively enabled or disabled. This enables local control over which data elements undergo comparison operations, allowing precise control over operation scope while maintaining parallel processing of enabled elements.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The masking mechanism provides dynamic control over the scope of vector operations. Users can adjust which elements are processed based on specific needs (e.g., processing only certain ranges of the sliding window), making the parallel processing adaptable to different operational requirements.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10379853B2Sliding window encoding methods for executing vector compare instructions to write distance and match information to different sections of the same register
Publication Date: 2019.08.13 INTEL CORP
  • US10379853B2 patent drawing
  • US10379853B2 patent drawing
  • US10379853B2 patent drawing

AI summary

A processor is described having an instruction execution pipeline having a functional unit to execute an instruction that compares vector elements against an input value. Each of the vector elements and the input value have a first respective section identifying a location within data and a second respective section having a byte sequence of the data. The functional unit has comparison circuitry to compare respective byte sequences of the input vector elements against the input value's byte sequence to identify a number of matching bytes for each comparison. The functional unit also has difference circuitry to determine respective distances between the input vector's elements' byte sequences and the input value's byte sequence within the data.