Context-Adaptive Binary Arithmetic Decoder Low Latency Prefetch

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional context-adaptive binary arithmetic decoders suffer from two-cycle latency due to memory delays, limiting their speed and preventing them from decoding a new binary value every cycle, which affects timing closure and decode operations.

Innovation Solution

A circuit that generates a select signal to predict next states and prefetches multiple context variables several cycles in advance, allowing for simultaneous buffering and minimizing wait states, enabling decoding of a new binary value in each cycle.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If conventional context memory with single-port access is used, then device complexity is reduced, but two-cycle latency occurs preventing full-speed decoding

Engineering Contradiction:
Improvedecode speedVSAvoidmemory access latency
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent implements a multi-port context memory that prefetches context variables in advance before they are needed for decoding. The memory system proactively loads context variables into buffer registers during cycles when they are not immediately required, so that when the arithmetic decoder needs them, they are already available. This preliminary action eliminates the two-cycle latency by ensuring context data is ready before the decode operation requires it.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces buffer registers as an intermediary between the multi-port context memory and the arithmetic decoder. These buffer registers hold prefetched context variables and provide them to the decoder on demand. The intermediary buffer layer decouples the memory access timing from the decode operation timing, allowing the decoder to operate at full speed without being constrained by memory access latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If context variables are fetched sequentially from single-port memory, then device complexity is minimized, but productivity decreases due to wait states

Engineering Contradiction:
Improvedecode throughputVSAvoidmemory architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the context memory into multiple independent ports, allowing simultaneous access to different context variables. Instead of a single sequential access port, the memory is divided into multiple ports that can be accessed in parallel. This segmentation enables the system to fetch multiple context variables concurrently during the same time period, dramatically improving decode throughput without proportionally increasing overall system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent ensures continuous decoding operation by eliminating wait states through the multi-port memory architecture. While one port is being accessed, other ports can simultaneously prefetch the next required context variables. This continuous operation allows the arithmetic decoder to process binary values at every clock cycle without interruption, maintaining maximum productivity throughout the decoding process.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10134456B1Context-adaptive binary arithmetic decoder with low latency
Publication Date: 2018.11.20 AMBARELLA INT LP
  • US10134456B1 patent drawing
  • US10134456B1 patent drawing
  • US10134456B1 patent drawing

AI summary

An apparatus includes a memory and a circuit. The memory may be configured to store a plurality of context variables. The circuit may be configured to (i) generate a select signal that identifies a prediction of a plurality of next states in each of a plurality of next cycles that follow a current cycle of an arithmetic decode of an input signal, (ii) generate a prefetch signal in the current cycle in response to the select signal, (iii) prefetch in parallel from the memory two or more of the context variables suitable to use in the next states in two or more of the next cycles based on the prefetch signal and (iv) generate an output signal by decoding the input signal based on the two or more of the context variables.