Non-Looping String Processing via Terminator Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional string operations in computing environments, such as C string operations, are not well-suited for variable length strings due to their fixed length termination semantics, leading to inefficiencies in processing.

Innovation Solution

Implementing instructions like Move String (MVST) and Compare Logical String (CLST) using a non-looping sequence of operations that process up to a defined number of characters concurrently, eliminating the need for microcode entry and exit processing and reducing the cost associated with double loops.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If traditional string operations with fixed length termination semantics are used, then implementation simplicity is maintained, but processing efficiency deteriorates for variable length strings

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidoperation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the termination parameter from fixed length to variable length by introducing a terminator character (e.g., null character) that dynamically marks the end of strings. This allows the string operation to adapt to variable lengths while maintaining efficient processing through hardware-supported terminator detection.

Inventive Principle:
Principle #35Parameter changes

2Speed

If looping instructions are used to process strings, then flexibility in handling variable length strings is improved, but processing speed deteriorates due to loop overhead

Engineering Contradiction:
Improveprocessing speedVSAvoidhandling flexibility
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent extracts the loop control logic from the string processing operation by using a dedicated looping instruction that automatically handles repetition based on string length. This separates the core string operation from the looping mechanism, enabling faster execution while maintaining flexibility for variable length strings.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces dynamic string length detection through terminator character scanning, allowing the processing to adapt to actual string lengths rather than using fixed loops. The looping instruction dynamically adjusts the number of iterations based on the detected terminator position, optimizing both speed and flexibility.

Inventive Principle:
Principle #15Dynamics

3Productivity

If microcode entry and exit processing is used for string instructions, then instruction implementation is simplified, but processing overhead increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmicrocode overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent replaces microcode-based string instruction implementation with hardware-supported looping instructions that natively handle string operations. This substitution eliminates the overhead of microcode entry and exit processing by using dedicated hardware circuits for string manipulation, significantly reducing processing time.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10747533B2Selecting processing based on expected value of selected character
Publication Date: 2020.08.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10747533B2 patent drawing
  • US10747533B2 patent drawing
  • US10747533B2 patent drawing

AI summary

An instruction defined to be a looping instruction is obtained and processed. A determination is made as to whether an obtained selected character is an expected selected character. Based on the obtained selected character being the expected selected character, an execution process is used that includes a sequence of operations to perform an operation, the sequence of operations replacing a loop and providing a non-looping sequence to perform the operation on up to a defined number of units of data. The sequence of operations is configured to repeat one or more times and to terminate based on the obtained selected character. Based on the obtained selected character being different than the expected selected character, an alternate execution process is chosen.