Hardware Sequencer DMA for VPU Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional vector processing units (VPUs) face inefficiencies in detecting and analyzing minimum and maximum values, leading to increased processing cycles and latency due to the need for additional memory operations and software pipelining. Additionally, existing SIMD architectures restrict operand sharing among data lanes, leading to inefficient data manipulation and memory access patterns.

Innovation Solution

The proposed solution enhances VPUs with a min/max hardware collector that stores minimum and maximum values in the data path to memory, reducing latency. It also introduces automatic predication to optimize iteration execution, allows operand sharing among data lanes through a SIMD architecture with defined slices, and uses transposed load and store operations with a stride parameter to improve memory access efficiency. Furthermore, a decoupled lookup table accelerator and a hardware sequencer are used to optimize table lookups and DMA operations, respectively.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional VPUs write all values to memory for min/max detection, then completeness of data analysis is improved, but processing cycles and latency increase

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

Solution Approach 1:

The patent extracts only the necessary min/max values from the complete data stream using hardware collectors (min/max collectors) that operate in parallel with the VPU. This extraction occurs during the data movement phase without requiring complete data to be written to memory first, thereby reducing latency while maintaining detection accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The min/max collectors perform preliminary detection of minimum and maximum values during the data transfer process itself, before the data needs to be fully processed or stored. This preliminary action eliminates the need for separate post-processing steps to find min/max values, reducing overall processing time.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If SIMD units operate independently in separate data lanes, then processing parallelism is improved, but data sharing capability deteriorates

Engineering Contradiction:
Improveprocessing throughputVSAvoidoperand sharing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the SIMD data lanes into adjacent groups (e.g., lanes 0-3, 4-7, 8-11, 12-15) where sharing is enabled within each segment. This segmentation allows independent operation across segments while enabling coordinated data sharing within segments, resolving the contradiction between parallelism and sharing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different operational characteristics to different parts of the SIMD unit: adjacent lanes within segments can share operands locally, while segments operate independently from each other. This local quality approach enables selective sharing where needed while maintaining overall parallel processing efficiency.

Inventive Principle:
Principle #3Local quality

3Speed

If loop unrolling is used to achieve high throughput, then processing speed is improved, but code size and latency increase due to remainder loops

Engineering Contradiction:
Improveprocessing throughputVSAvoidcode size
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent implements dynamic loop unrolling where the VPU automatically determines the appropriate unrolling factor based on the iteration count. When the iteration count is not evenly divisible by the unrolling factor, the system dynamically adjusts the number of unrolled iterations, eliminating the need for separate remainder loops and reducing code complexity.

Inventive Principle:
Principle #15Dynamics

4Stability of the object's composition

If memory reads use standard unit width, then memory access consistency is improved, but data access efficiency deteriorates

Engineering Contradiction:
Improvememory access consistencyVSAvoiddata access efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The patent enables partial memory reads where the VPU can read only the specific number of elements needed from memory, rather than always reading full standard-width units. This partial action approach improves data access efficiency by avoiding unnecessary reads while maintaining memory access consistency through controlled read operations.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20250103529A1Using a hardware sequencer in a direct memory access system of a system on a chip
Publication Date: 2025.03.27 NVIDIA CORP
  • US20250103529A1 patent drawing
  • US20250103529A1 patent drawing
  • US20250103529A1 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.