Programmable Vision Accelerator Self-Test for VPU Fault Isolation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional vector processing units (VPUs) face inefficiencies in detecting min/max values, operand sharing among data lanes, memory access, table lookups, and fault detection, leading to increased latency and processing complexity in applications like computer vision and deep learning.

Innovation Solution

The proposed solution includes a min/max hardware collector, automatic predication, enhanced SIMD architecture with lane communication, transposed load/store operations, load with permute instructions, and a decoupled lookup table accelerator, along with a hardware sequencer for DMA systems to improve data movement and processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional solutions write all values to memory and perform analysis in memory, then complete value analysis is achieved, but additional processing cycles are required

Engineering Contradiction:
Improvemin/max value detection accuracyVSAvoidprocessing cycles
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent extracts the min/max detection function from general-purpose memory operations by implementing dedicated hardware circuits (min/max detectors) that operate independently within the VPU data path, allowing simultaneous value computation and extremum detection without requiring complete memory writes

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary min/max detection during the data processing pipeline by inserting detection circuits that continuously monitor intermediate values as they flow through computation stages, enabling early identification of extremum values before final memory storage is required

Inventive Principle:
Principle #10Preliminary action

2Productivity

If high clock rate processors perform software pipelining and loop unrolling to achieve high throughput, then processing speed increases, but code size and latency increase due to remainder loops

Engineering Contradiction:
ImprovethroughputVSAvoidcode size
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements self-service mechanisms where the VPU automatically handles iteration counting and remainder loop management through dedicated control logic that monitors execution progress and dynamically adjusts unrolling factors, eliminating the need for manual compiler intervention and reducing code complexity

Inventive Principle:
Principle #25Self-service

3Productivity

If SIMD units operate independently in parallel data lanes with limited sharing, then processing parallelism is achieved, but operand copying increases processing complexity

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidoperand copying operations
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges previously separate operand storage locations by implementing a shared operand buffer that all SIMD data lanes can access simultaneously, allowing multiple lanes to operate in parallel without requiring independent copies of common operands, thereby reducing memory bandwidth requirements and simplifying data management

Inventive Principle:
Principle #5Merging (Combining)

4Stability of the object's composition

If memory reads use standard units equal to vector processing width, then memory access consistency is maintained, but unnecessary values are read when memory bank is wide

Engineering Contradiction:
Improvememory access consistencyVSAvoidunnecessary data reads
Core Design Contradiction:
Stability of the object's compositionVSLoss of substance

Solution Approach 1:

The patent segments the wide memory bank into multiple narrower sub-banks, each capable of independent access with finer granularity control. This allows the system to read only the specific number of values needed (e.g., 60 values) by accessing appropriate subsets of sub-banks, rather than reading complete wide memory words that include unnecessary data

Inventive Principle:
Principle #1Segmentation

5Speed

If tables are replicated for each value or additional read ports are added to memory banks, then table lookup speed increases, but additional memory and chip space are required

Engineering Contradiction:
Improvetable lookup speedVSAvoidmemory and chip space
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent implements continuous table lookup capability by adding multiple read ports to existing memory banks, allowing multiple values to be retrieved simultaneously from the same table without requiring separate replicated tables. This maintains high lookup speed while avoiding the exponential growth of memory requirements that would result from full replication

Inventive Principle:
Principle #20Continuity of useful action

6Productivity

If VPU is programmed to execute on smaller set of highly optimized code without data caches, then code efficiency improves, but each memory access requires reading from memory bank even with overlapping data

Engineering Contradiction:
Improvecode execution efficiencyVSAvoidmemory access time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements preliminary data preparation by implementing data caches that pre-load and store frequently accessed data elements. When the VPU executes optimized code sequences with overlapping data access patterns, the cache system proactively retrieves and buffers required data in advance, eliminating repeated memory bank accesses and reducing latency

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12050548B2Built-in self-test for a programmable vision accelerator of a system on a chip
Publication Date: 2024.07.30 NVIDIA CORP
  • US12050548B2 patent drawing
  • US12050548B2 patent drawing
  • US12050548B2 patent drawing

AI summary

In various examples, a VPU and associated components may be optimized to improve VPU performance and throughput. For example, the VPU may include a min/max collector, automatic store predication functionality, a SIMD data path organization that allows for inter-lane sharing, a transposed load/store with stride parameter functionality, a load with permute and zero insertion functionality, hardware, logic, and memory layout functionality to allow for two point and two by two point lookups, and per memory bank load caching capabilities. In addition, decoupled accelerators may be used to offload VPU processing tasks to increase throughput and performance, and a hardware sequencer may be included in a DMA system to reduce programming complexity of the VPU and the DMA system. The DMA and VPU may execute a VPU configuration mode that allows the VPU and DMA to operate without a processing controller for performing dynamic region based data movement operations.