Inline Decode Micro-Operations for String Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional string operations in computing environments, such as those using the z/Architecture, are inefficient due to their reliance on hardware or microcode implementations, which are not well-suited for variable length strings and result in suboptimal performance.

Innovation Solution

Implementing string operations, like Move String (MVST) and Compare Logical String (CLST), as inline straight-line code using instruction cracking, which expands the looping instructions into non-looping sequences of operations to process defined amounts of data concurrently, avoiding microcode entry and exit overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If string operations are implemented using hardware or microcode with looping instructions, then the operations can handle variable length strings, but the processing speed and efficiency deteriorate due to loop overhead and microcode entry/exit costs

Engineering Contradiction:
Improvevariable length string handlingVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the string processing operation into fixed-size chunks (e.g., 16-byte blocks). Instead of processing the entire variable-length string in a single loop, the instruction divides the string into multiple fixed-size segments and processes them sequentially using straight-line code. This segmentation eliminates the need for looping control structures while still handling variable-length data by chaining multiple fixed-size operations together.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adapts the number of straight-line operations based on the actual string length. The system calculates how many fixed-size chunks are needed to cover the variable-length string and generates the appropriate number of operation sequences. This dynamic adjustment allows the system to maintain high performance through unrolled loops while still accommodating variable input sizes.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If looping instructions are used to process defined amounts of data, then the code is more compact and easier to implement, but the execution time increases due to loop overhead

Engineering Contradiction:
Improveinstruction simplicityVSAvoidloop overhead time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent performs preliminary unrolling of the loop iterations into straight-line code sequences. Instead of executing a loop at runtime that iterates through the data, the system pre-expands the loop body into multiple sequential operations during instruction decoding or compilation. This preliminary action eliminates runtime loop overhead while maintaining the same functional behavior, directly addressing the time loss issue.

Inventive Principle:
Principle #10Preliminary action

3Extent of automation

If microcode is used to implement string operations, then the operations can be performed in hardware, but the performance deteriorates due to microcode entry and exit overhead

Engineering Contradiction:
Improvehardware implementationVSAvoidsystem performance
Core Design Contradiction:
Extent of automationVSProductivity

Solution Approach 1:

The patent extracts the string processing logic from microcode and implements it directly in the main instruction execution path using straight-line code. By taking out the problematic microcode entry/exit overhead and replacing it with native processor instructions that execute in the main control flow, the system retains hardware-level performance while eliminating the performance penalty associated with microcode interpretation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10620956B2Search string processing via inline decode-based micro-operations expansion
Publication Date: 2020.04.14 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10620956B2 patent drawing
  • US10620956B2 patent drawing
  • US10620956B2 patent drawing

AI summary

An instruction defined to be a looping instruction that repeats a plurality of times to perform an operation on a defined amount of data is obtained. The looping instruction is expanded into a sequence of operations. The sequence of operations is a non-looping sequence of operations to perform the operation on the defined amount of data.