Data Access and Permute Unit for Vector Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Digital signal processing applications face inefficiencies in performing arithmetic operations on long vectors due to the need for explicit permutation instructions, which increases program size and latency, especially when matching short vector widths of machine hardware to longer vector widths in processor memory or registers.

Innovation Solution

A data processing unit with a register access mechanism capable of performing permutation operations in series with data access and execution, utilizing a crossbar multiplexer stage and opcode-based control for various permutation types, such as roll, sort, shuffle, and broadcast, to efficiently handle vector operations within a single instruction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If explicit permutation instructions are used to match short vector widths to long vectors, then vector operations can be performed correctly, but program size increases and latency increases

Engineering Contradiction:
Improvevector operation correctnessVSAvoidprogram size
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent combines permutation operations with data processing operations into a single unified instruction. The execution unit integrates both permutation logic and arithmetic logic, allowing the processor to perform gathering, shuffling, and arithmetic operations in one step rather than requiring separate permutation instructions followed by data processing instructions.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution unit is designed with multi-functional capability to handle both permutation operations and data processing operations. A single execution unit can dynamically switch between performing gathering permutations, shuffling permutations, and various arithmetic operations based on the instruction type, eliminating the need for separate dedicated permutation hardware and arithmetic hardware.

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

2Manufacturing precision

If explicit permutation instructions are used to gather elements from long vectors, then correct data can be supplied to short vector datapaths, but program execution latency increases

Engineering Contradiction:
Improvedata gathering accuracyVSAvoidprogram latency
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent merges the data gathering permutation step and the subsequent arithmetic operation into a single unified instruction execution cycle. The execution unit performs the gathering permutation and the arithmetic computation simultaneously in one pipeline pass, eliminating the sequential delay that would occur if these operations were performed in separate instruction cycles.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution unit performs preliminary permutation setup within the same instruction cycle that triggers the arithmetic operation. Control signals for the permutation logic are generated and executed concurrently with the arithmetic computation, rather than requiring a separate preparatory instruction cycle before the arithmetic operation can begin.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If separate permutation instructions are used, then vector elements can be distributed to different locations, but the number of instructions increases

Engineering Contradiction:
Improvevector distribution capabilityVSAvoidoperations per cycle
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent combines vector distribution (shuffling) operations with arithmetic operations into a single unified instruction. The execution unit performs both the shuffling permutation to distribute elements to different locations and the subsequent arithmetic computation in one operation cycle, effectively doubling the productivity compared to separate instruction execution.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The execution unit is designed with universal capability to handle various types of permutations (gathering, shuffling, broadcasting) and arithmetic operations through a single multi-functional hardware block. This allows the processor to maintain high operations-per-cycle throughput by avoiding the need for separate dedicated hardware units for each operation type.

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

Data Source

PatentUS7933405B2Data access and permute unit
Publication Date: 2011.04.26 ICERA INC
  • US7933405B2 patent drawing
  • US7933405B2 patent drawing
  • US7933405B2 patent drawing

AI summary

According to embodiments of the invention, there is disclosed a data processing unit, a method of operating the same, computer program product and an instruction. In one embodiment according to the invention, there is provided a data processing unit for a computer processor, the data processing unit comprising a deep register access mechanism capable of performing a permutation operation on at least one data operand accessed from a register file of the computer processor, the permutation operation being performed in series with (i) register access for the data operand and (ii) execution of a data processing operation on the operand.