Vector Register Parallel Processing for Character Data Length Determination
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Loss of time
If parallel processing is used to determine character data length, then the execution time is reduced, but the device complexity increases
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.
3Speed
If data loading crosses memory boundaries, then the loading speed is faster, but spurious exceptions occur
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.
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.
Data Source
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.


