Dynamic Memory Boundary Selection for Variable Length String Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional string operations, 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 within computing environments.

Innovation Solution

Implementing string operations like Move String (MVST), Compare Logical String (CLST), and Search String (SRST) instructions using inline straight-line code with instruction cracking, which decodes instructions into sequences of internal operations to perform operations concurrently without loops, optimizing performance by eliminating microcode entry and exit costs and boundary checks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

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

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

Solution Approach 1:

The patent segments the string processing operation into multiple independent parallel operations. Each character position in the string is processed simultaneously through separate load, compare, and store operations, eliminating sequential processing bottlenecks while maintaining variable length string handling capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts the number of parallel operations based on the actual string length. The processing pipeline adapts its execution depth to match the variable length of input strings, optimizing resource utilization and avoiding unnecessary operations on fixed-length boundaries

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If microcode is used to implement string operations, then flexibility is improved, but processing speed deteriorates due to entry and exit costs

Engineering Contradiction:
Improveoperation flexibilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent extracts the string processing logic from microcode and implements it directly in hardware logic circuits. This removes the microcode entry and exit overhead while preserving the flexible handling of variable length strings through configurable logic paths and conditional execution units

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the sequential microcode interpretation mechanism with parallel hardware logic operations. The mechanical process of fetching and executing microcode instructions is substituted with direct combinational logic evaluation and parallel arithmetic operations, dramatically reducing latency

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

3Reliability

If boundary checks are performed in string operations, then memory safety is improved, but processing overhead increases

Engineering Contradiction:
Improvememory safetyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs boundary validation in advance through explicit length parameter specification in the instruction format. The specified length is validated against memory boundaries before the parallel processing begins, and the same boundary constraints are applied to all parallel operations, eliminating repeated checks during execution

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent maintains continuous parallel processing across all character positions within the specified string length. Boundary checks are performed once at the operation level rather than at each character position, allowing the useful processing action to continue uninterrupted through all parallel execution stages

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10255068B2Dynamically selecting a memory boundary to be used in performing operations
Publication Date: 2019.04.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10255068B2 patent drawing
  • US10255068B2 patent drawing
  • US10255068B2 patent drawing

AI summary

A selected boundary of memory to be used in processing an instruction is dynamically selected, based on a predictor. The instruction is decoded, and the decoding provides a sequence of operations to perform a specified operation. The sequence of operations includes a load to boundary operation to load data up to the selected boundary of memory. The data is loaded as part of the specified operation.