Hardware Range Coding With Speculative Probability Fetch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Context-based range coders in data processing units face inefficiencies due to repeated memory access operations for retrieving probability values, leading to slowed throughput and increased memory bandwidth usage, especially when switching between applications and storing/retrieving state information.

Innovation Solution

Implementing a method where speculative probability values are retrieved in response to a single read instruction, reducing memory access frequency and using compression techniques to minimize latency associated with state information storage and retrieval.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If context-based range coder retrieves probability values through repeated memory access operations on a bit-by-bit basis, then coding accuracy is maintained, but processing throughput decreases and memory bandwidth efficiency worsens

Engineering Contradiction:
Improveprocessing throughputVSAvoidmemory access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-fetching and storing multiple probability values into a local register file before they are actually needed for coding. When the range coder needs probability values for multiple bits, they are already available in the register file from a previous pre-fetch operation, eliminating the need for repeated memory access during the actual coding process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent transitions from a one-dimensional sequential memory access model (one probability value at a time) to a multi-dimensional batch access model. By organizing probability values in a register file with multiple entries and using batch pre-fetch operations, the system accesses probability values in parallel groups rather than sequentially, effectively adding a temporal batching dimension to the access pattern.

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

2Measurement precision

If context-based range coder performs frequent memory read operations to retrieve probability values, then coding precision is maintained, but memory bandwidth consumption increases

Engineering Contradiction:
Improvecoding precisionVSAvoidmemory bandwidth efficiency
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The system performs preliminary pre-fetching of probability values into a local register file, so that when coding operations need these values, they are already available locally. This eliminates the need for frequent memory read operations while maintaining access to the precise probability values needed for accurate context-based coding.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The register file acts as an intermediary between the memory system and the range coder. Instead of the range coder directly accessing memory frequently, it accesses the local register file which holds pre-fetched probability values. This intermediary layer provides the precise values needed while decoupling the coding operation from frequent memory access.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If state information is stored and retrieved when switching between applications, then coding continuity is maintained, but latency increases

Engineering Contradiction:
Improvecoding continuityVSAvoidswitching latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system maintains state information in a persistent storage structure that can be quickly restored. When switching between applications, the previously saved state is already available in storage, allowing for rapid restoration without recomputing. The state includes context values and probability tables that are preserved and quickly reloaded into the register file.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system discards the current state when switching applications and recovers the previously saved state from storage. Instead of maintaining all possible states in memory simultaneously or recomputing states, the system efficiently discards the current context and recovers the appropriate previous state, minimizing the time spent on state management during application switches.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS10922026B2Data processing unit having hardware-based range encoding and decoding
Publication Date: 2021.02.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10922026B2 patent drawing
  • US10922026B2 patent drawing
  • US10922026B2 patent drawing

AI summary

A highly programmable device, referred to generally as a data processing unit, having multiple processing units for processing streams of information, such as network packets or storage packets, is described. The data processing unit includes one or more specialized hardware accelerators configured to perform acceleration for various data-processing functions. This disclosure describes examples of retrieving speculative probability values for range coding a plurality of bits with a single read instruction to a on-chip memory that stores a table of probability values. This disclosure also describes examples of storing state information used for context-coding packets of a data stream so that the state information is available after switching between data streams.