Vector Bitwise Rotations Using Byte-Wise Muxes and Shifters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current vector bitwise rotation instructions require additional dedicated logic for each supported element size, which is costly in terms of area and power consumption.
Innovation Solution
Utilizing a combination of a byte-wise anything-to-anything multiplexer (mux) and bitwise shifts to perform vector bitwise rotations, leveraging existing byte-wise muxes in CPUs and reducing the need for dedicated rotate logic.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If dedicated bitwise reverse logic is added for each supported element size, then vector bitwise rotation functionality is achieved, but area cost increases
Solution Approach 1:
The byte-wise mux is designed to perform multiple functions: it serves as a general-purpose multiplexer for byte selection and simultaneously enables bitwise rotation operations when combined with shift operations. This eliminates the need for separate dedicated rotation logic for different element sizes, as the same mux infrastructure handles all rotation operations across various data widths (8-bit, 16-bit, 32-bit, 64-bit elements).
Solution Approach 2:
The invention merges the byte-wise mux functionality with bitwise shift operations to create a unified mechanism for performing rotations. Instead of implementing separate rotation logic, the solution combines existing mux infrastructure with shift operations, allowing the same hardware resources to perform both byte selection and bit rotation functions efficiently.
2Adaptability or versatility
If dedicated bitwise reverse logic is added for each supported element size, then vector bitwise rotation functionality is achieved, but power consumption increases
Solution Approach 1:
The byte-wise mux serves as a multi-functional component that handles both general byte selection tasks and specific bitwise rotation operations. By reusing the same mux infrastructure for rotation operations rather than adding dedicated rotation logic, power consumption is reduced while maintaining full rotation functionality across all supported element sizes.
Solution Approach 2:
The existing byte-wise mux infrastructure is leveraged to perform rotation operations without requiring additional dedicated logic. The system uses its own existing resources (the mux and shift operations) to accomplish the rotation function, eliminating the need for separate power-consuming rotation circuits.
3Area of stationary object
If byte-wise mux and bitwise shifts are used instead of dedicated rotate logic, then area cost is reduced, but implementation complexity increases
Solution Approach 1:
The rotation operation is segmented into two distinct phases: byte-wise selection through the mux and bitwise shifting. This segmentation allows each component to perform its specialized function efficiently, with the mux handling byte-level repositioning and the shift operations handling bit-level adjustments within each byte.
Solution Approach 2:
The implementation uses dynamic control signals to configure the byte-wise mux for different rotation scenarios. By dynamically adjusting the mux configuration and shift amounts based on the rotation requirements, the system adapts to various element sizes and rotation distances without requiring separate dedicated logic for each case.
Data Source
AI summary
A computer-implemented method for performing a vector bitwise rotation, wherein a processing system comprises a byte-wise anything-to-anything mux and one or more bitwise right shifters, wherein the byte-wise anything-to-anything mux includes a plurality of byte-sized inputs and a plurality of byte-sized outputs, each input being associated with a respective input position and each output being associated with a respective output position. A combination of a byte-wise anything-to-anything mux and one or more bitwise shifts is used to perform vector bitwise rotations, with even and odd elements of the vector operated on separately.


