Contiguous Register Element Counting for SIMD Condition Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing hardware implementations are inefficient and complex when determining the first or last occurrence of a condition, such as a miscompare, within wide layout registers, particularly in Single Instruction, Multiple Data (SIMD) processing of vector registers, due to the need to count all bits.

Innovation Solution

A computer-implemented method that executes a machine instruction to count contiguous elements with a specific value in a register, allowing for efficient determination of the location of a condition by examining only one bit per element, supporting both leading and trailing zero counts and adaptable to different register sizes and architectures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a hardware implementation counts all bits in wide layout registers to determine the location of a condition, then the location can be accurately determined, but the device complexity and processing time increase significantly

Engineering Contradiction:
Improvelocation determination accuracyVSAvoidhardware implementation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the wide register into multiple smaller fields or segments, each processed independently to determine the location of the first or last condition occurrence. This segmentation allows the complex problem of counting through entire wide registers to be broken into manageable chunks, reducing hardware complexity while maintaining accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts and processes only the relevant bits or fields necessary to determine condition locations, rather than examining every bit in the wide register. By taking out only the essential information (condition bits and their positions), the implementation achieves accurate location determination without the overhead of processing the entire register width.

Inventive Principle:
Principle #2Taking out (Extraction)

2Loss of information

If a hardware implementation counts all bits in wide layout registers, then complete information is obtained, but the processing speed decreases

Engineering Contradiction:
Improveinformation completenessVSAvoidprocessing speed
Core Design Contradiction:
Loss of informationVSSpeed

Solution Approach 1:

The patent performs preliminary processing by identifying and marking condition occurrences within fields before performing the final count. By preparing the data structure in advance (setting condition bits, organizing field information), the actual location determination proceeds more quickly without sacrificing information completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a counting mechanism that processes only up to the first or last condition occurrence rather than counting all bits in the register. This partial action approach maintains information completeness for the required location determination while significantly reducing processing time by stopping once the target condition is found.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If wide layout registers are split into halves for processing, then microarchitectural constraints are satisfied, but the difficulty of detecting and measuring condition locations increases

Engineering Contradiction:
Improvemicroarchitectural efficiencyVSAvoidcondition location detection difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent employs a nested structure where location determination logic is embedded within the split register halves, and field-level processing is nested within register-level processing. This nested approach allows the system to satisfy microarchitectural constraints by processing halves separately while maintaining the capability to determine absolute locations within the original wide register context.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent introduces intermediary data structures or temporary registers that bridge the split halves, storing intermediate results and position information. These intermediaries facilitate the detection and measurement of condition locations by maintaining the relationship between halves while satisfying microarchitectural processing requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11972260B2Instructions to count a number of contiguous register elements having specific values in a selected location
Publication Date: 2024.04.30 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11972260B2 patent drawing
  • US11972260B2 patent drawing
  • US11972260B2 patent drawing

AI summary

A machine instruction to find a condition location within registers, such as vector registers. The machine instruction has associated therewith a register to be examined and a result location. The register includes a plurality of elements. In execution, the machine instruction counts a number of contiguous elements of the plurality of elements of the register having a particular value in a selected location within the contiguous elements. Other locations within the contiguous elements are ignored for the counting. The counting provides a count placed in the result location.