Single Instruction Array Index Computation for 64-Bit Servers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The disparity between 32-bit indices and 64-bit array addresses in 64-bit servers requires multiple adjustments, increasing programming overhead and negatively impacting application performance, especially for large data sets.

Innovation Solution

A single instruction that sign extends and adjusts a 32-bit index to match a 64-bit array address, combining both operations to reduce the need for multiple instructions and optimize array index computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple adjustments are used to convert 32-bit indices to 64-bit array addresses, then the array index computation can be performed on a 64-bit server, but the programming overhead increases and application performance deteriorates

Engineering Contradiction:
Improvecompatibility between 32-bit indices and 64-bit addressesVSAvoidnumber of adjustment instructions
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines multiple adjustment operations (sign extension and size adjustment) into a single instruction. The single instruction takes a 32-bit index, performs sign extension to 64 bits, and adjusts for element size in one operation, eliminating the need for multiple separate instructions and reducing programming overhead.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single instruction performs multiple functions: it handles sign extension, size adjustment, and prepares the final 64-bit array address. This multi-functional instruction can handle different data types and array configurations without requiring multiple specialized instructions, thereby simplifying the computation process.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If multiple adjustment instructions are used to handle index conversion, then correct array addressing is achieved, but programming overhead increases

Engineering Contradiction:
Improveaccuracy of array address computationVSAvoidprogramming overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges multiple adjustment steps into a single instruction that performs sign extension and size adjustment simultaneously. This reduces the number of instructions executed, thereby reducing programming overhead while maintaining computational accuracy through the integrated operation.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single instruction performs preliminary adjustments (sign extension and size multiplication) before the final memory access operation. By completing these adjustments in advance within a single instruction cycle, the system avoids subsequent adjustment operations and reduces overall execution time.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If multiple instructions are used for index adjustment, then proper 64-bit address formation is achieved, but application performance is negatively impacted

Engineering Contradiction:
Improvecorrectness of address formationVSAvoidapplication performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent combines multiple adjustment operations into a single instruction that forms the 64-bit address in one operation. This eliminates multiple instruction executions, reducing the total time required for address formation and thereby improving application performance while maintaining correctness.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The single instruction changes the parameter representation of the index from 32-bit to 64-bit through sign extension and size adjustment within a single operation. This parameter transformation is performed efficiently in one instruction cycle, improving execution speed while ensuring correct address formation.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10013258B2Single instruction array index computation
Publication Date: 2018.07.03 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10013258B2 patent drawing
  • US10013258B2 patent drawing
  • US10013258B2 patent drawing

AI summary

Embodiments are directed to a method of adjusting an index, wherein the index identifies a location of an element within an array. The method includes executing, by a computer, a single instruction that adjusts a first parameter of the index to match a parameter of an array address. The single instruction further adjusts a second parameter of the index to match a parameter of the array element. The adjustment of the first parameter includes a sign extension.