Processor Shuffle Unit Shift Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing processor architectures face challenges in efficiently supporting 128-bit shift operations, which can introduce additional latencies due to the need to logically concatenate 64-bit registers, complicating the implementation and performance of shift instructions.

Innovation Solution

A processor with a shuffle unit that can perform both shuffle and shift operations by using arithmetic operations on operands to generate byte selects for relocating bytes, allowing for efficient execution of shift instructions similar to shuffle operations, and forcing output to zero for cleared destination byte positions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If 128-bit shift operations are implemented using logical concatenation of 64-bit registers, then 128-bit operand support is achieved, but additional latencies are introduced into the critical path

Engineering Contradiction:
Improve128-bit operand supportVSAvoidcritical path latency
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The shuffle unit is designed to perform multiple functions: it can execute both shuffle instructions (using byte selects from immediate values) and shift instructions (using arithmetic operations on operands to generate byte selects). This multi-functionality allows the same hardware circuitry to handle 128-bit operations without requiring separate dedicated shift circuitry, thereby avoiding additional latency in the critical path while maintaining full 128-bit operand support

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

2Adaptability or versatility

If a dedicated shift unit is added to support 128-bit shift operations, then shift instruction functionality is improved, but device complexity increases

Engineering Contradiction:
Improveshift instruction supportVSAvoidprocessor circuitry
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Instead of adding a separate dedicated shift unit, the patent makes the existing shuffle unit universal by enabling it to perform both shuffle and shift operations. The shuffle unit generates byte selects differently based on the instruction type: for shuffle instructions it uses selected bits of the immediate value directly, while for shift instructions it performs arithmetic operations on operands to generate the byte selects. This approach provides full shift instruction support without increasing device complexity

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

Solution Approach 2:

The patent merges the functionality of the shuffle unit and what would traditionally be a separate shift unit into a single unified circuit. By combining these functions, the processor avoids the complexity of maintaining separate hardware paths for shuffle and shift operations, while still supporting both instruction types efficiently

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS7464255B1Using a shuffle unit to implement shift operations in a processor
Publication Date: 2008.12.09 MEDIATEK INC
  • US7464255B1 patent drawing
  • US7464255B1 patent drawing
  • US7464255B1 patent drawing

AI summary

A method and mechanism for performing shift operations using a shuffle unit. A processor includes a shuffle unit configured to perform shuffle operations responsive to shuffle instructions. The shuffle unit is adapted to support shift operations as well. In response to determining a shuffle instruction is received, selected bits of an immediate value of the shuffle instruction are used to generate byte selects for relocating bytes of a source operand. In response to determining the instruction is a shift instruction, the shuffle unit performs an arithmetic operation on a first and second value, where the first value corresponds to a particular destination byte position, and the second value corresponds to the immediate value. The result of the arithmetic operation comprises a byte select which selects one of the bytes of a source operand for conveyance to the particular destination byte position. In the event a destination byte position should be cleared by the shift operation, the output for the particular destination byte position is forced to zero.