Bitfield Manipulation Instruction for Variable Data Sizes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data processing systems lack an efficient method to manipulate bitfields independently within data values, limiting the ability to isolate, extract, or combine specific bitfields from larger data structures such as RGB color values.

Innovation Solution

A data processing apparatus and method that utilizes a bitfield manipulation instruction to extract or insert bitfields from source data elements, with options for prefix and suffix values to control the manipulation, including sign extension, zero padding, and bit values from adjacent elements, allowing for versatile bitfield operations within a single instruction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-format instruction is used for bitfield manipulation, then the instruction decoding is simple, but the instruction cannot accommodate variable data sizes and control parameters

Engineering Contradiction:
Improveinstruction flexibilityVSAvoidinstruction decoder complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The instruction encoding dynamically adapts its structure based on the selected data size. The control value's bit allocation changes depending on whether 8-bit, 16-bit, 32-bit, or 64-bit data elements are being processed, allowing the same instruction format to serve multiple data sizes without requiring separate fixed-format instructions for each case.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The number of bits allocated to different control parameters (data size, bitfield width, source/result positions) changes based on the selected data size. For example, when processing larger data elements, more bits are allocated to specify positions within the larger data range, while fewer bits are needed for the data size indicator itself.

Inventive Principle:
Principle #35Parameter changes

2Reliability

If separate instructions are provided for each bitfield manipulation operation, then each instruction can be optimized for its specific function, but the instruction set becomes large and complex

Engineering Contradiction:
Improveoperation precisionVSAvoidinstruction set size
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

A single bitfield manipulation instruction performs multiple functions by interpreting the control value differently based on operation codes. The same instruction can extract bitfields, insert bitfields, or perform other manipulations depending on the operation code and control parameters, eliminating the need for separate instructions for each operation type.

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

Solution Approach 2:

The instruction's functionality dynamically changes based on the operation code and control value interpretation. The decoding logic adapts to perform different bitfield operations (extract, insert, manipulate) using the same instruction framework, with the specific operation determined by bits in the control value rather than requiring different instruction formats.

Inventive Principle:
Principle #15Dynamics

3Productivity

If variable number of bits are used for control parameters, then the instruction can be more compact, but the instruction decoder must determine bit boundaries dynamically

Engineering Contradiction:
Improveinstruction encoding efficiencyVSAvoidbit boundary identification
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The instruction decoder first determines the data size by examining the designated bits in the control value before proceeding to interpret the remaining control parameters. This preliminary identification of data size establishes the bit boundaries for subsequent parameter extraction, ensuring correct interpretation of variable-length control fields.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The control value is segmented into different functional portions based on the selected data size. The decoder divides the control value into segments for data size identification, bitfield width specification, source position, and result position, with the segmentation boundaries determined dynamically based on the data size field.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10521232B2Data processing apparatus and method for processing a SIMD instruction specifying a control value having a first portion identifying a selected data size and a second portion identifying at least one control parameter having a number of bits that varies in dependence on a number of bits comprised by the first portion
Publication Date: 2019.12.31 ARM LTD
  • US10521232B2 patent drawing
  • US10521232B2 patent drawing
  • US10521232B2 patent drawing

AI summary

A data processing apparatus comprises a processing circuit and instruction decoder. A bitfield manipulation instruction controls the processing apparatus to generate at least one result data element from corresponding first and second source data elements. Each result data element includes a portion corresponding to a bitfield of the corresponding first source data element. Bits of the result data element that are more significant than the inserted bitfield have a prefix value that is selected, based on a control value specified by the instruction, as one of a first prefix value having a zero value, a second prefix value having the value of a portion of the corresponding second source data element, and a third prefix value corresponding to a sign extension of the bitfield of the first source data element.