Vector Register Parallel Processing for Character Data Length Determination

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current text processing techniques for determining the length of character data strings, especially those with termination characters, are inefficient and prone to causing unwarranted exceptions due to sequential processing and alignment issues.

Innovation Solution

A computer program product that uses parallel processing by loading data into vector registers and employing instructions like Vector Load to Block Boundary and Vector Find Element Not Equal to determine the length of character data strings without crossing memory boundaries, thereby preventing exceptions and optimizing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential processing is used to determine character data length, then the processing logic is simple, but the execution time is long and efficiency is low

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidexecution time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent divides the character data into multiple blocks that can be processed in parallel. Each block is loaded into separate vector registers and processed simultaneously using parallel instructions, transforming the sequential processing approach into a parallel one to improve execution efficiency and reduce processing time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from scalar sequential processing to vector parallel processing by utilizing vector registers and parallel instruction sets. This dimensional change from single-threaded sequential execution to multi-element parallel execution significantly improves processing throughput and reduces execution time for determining character data length.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Loss of time

If parallel processing is used to determine character data length, then the execution time is reduced, but the device complexity increases

Engineering Contradiction:
Improveexecution timeVSAvoidprocessing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent employs self-service mechanisms where the parallel processing instructions automatically handle block boundary detection, termination character searching, and length calculation without requiring complex external control logic. The vector processing unit autonomously manages the parallel operations, reducing the need for additional control circuitry and maintaining relative simplicity despite the parallel architecture.

Inventive Principle:
Principle #25Self-service

3Speed

If data loading crosses memory boundaries, then the loading speed is faster, but spurious exceptions occur

Engineering Contradiction:
Improvedata loading speedVSAvoidexception occurrence
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent performs preliminary alignment of data blocks to memory boundaries before loading. By ensuring that each vector register loads complete blocks without crossing memory boundaries, the system prevents spurious exceptions while maintaining efficient parallel processing. This preliminary boundary alignment ensures reliable memory access patterns.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies different handling strategies to different regions of data based on their alignment properties. Blocks that are properly aligned are loaded in parallel without restriction, while boundary regions are handled with special care to prevent crossing into adjacent memory regions. This localized quality control ensures both speed and reliability.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9454367B2Finding the length of a set of character data having a termination character
Publication Date: 2016.09.27 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9454367B2 patent drawing
  • US9454367B2 patent drawing
  • US9454367B2 patent drawing

AI summary

The length of character data having a termination character is determined. The character data for which the length is to be determined is loaded, in parallel, within one or more vector registers. An instruction is used that loads data in a vector register to a specified boundary, and provides a way to determine the number of characters loaded, using, for instance, another instruction. Further, an instruction is used to find the index of the first termination character, e.g., the first zero or null character. This instruction searches the data in parallel for the termination character. By using these instructions, the length of the character data is determined using only one branch instruction.