Unified Floating Point Comparison Instruction for IEEE and C++ Standards

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing computing environments face inefficiencies in performing floating point maximum and minimum operations due to the lack of a unified instruction that can handle various standards and representations, leading to increased instruction counts and complexity.

Innovation Solution

A single architected machine instruction is provided that includes multiple functions to handle various options for floating point maximum and minimum operations, reducing the number of instructions needed to cover different permutations and improving processing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple separate instructions are used to handle different floating point standards and representations, then compatibility with various programming languages and standards is achieved, but the number of instructions increases and processing efficiency decreases

Engineering Contradiction:
Improvecompatibility with various programming languages and standardsVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a universal floating point comparison instruction that can handle multiple programming language standards (IEEE, Java, C, C++) and different floating point representations (including special cases like NaN, infinity, signed zero) through a single unified instruction. This multi-functional instruction eliminates the need for separate instructions for each standard, thereby maintaining broad compatibility while improving processing efficiency by reducing instruction count and eliminating conditional branches.

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

2Adaptability or versatility

If a sequence of many instructions with conditional branches is used to emulate floating point comparisons, then support for different standards is achieved, but the instruction count increases and processing complexity increases

Engineering Contradiction:
Improvesupport for different standardsVSAvoidprocessing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple separate comparison instructions and their associated conditional branch logic into a single unified floating point comparison instruction. This consolidation integrates support for different programming language standards and special floating point cases into one instruction that executes without requiring sequences of conditional branches, thereby reducing both the instruction count and the processing complexity while maintaining full support for various standards.

Inventive Principle:
Principle #5Merging (Combining)

3Ease of operation

If language-specific syntax is used instead of library functions, then programming flexibility is achieved, but hardware acceleration becomes difficult and requires emulating sequences of instructions

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidhardware acceleration capability
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent introduces a unified floating point comparison instruction as an intermediary between high-level language-specific comparison operations and hardware implementation. This single instruction provides a standardized interface that preserves programming flexibility by supporting various language semantics while enabling efficient hardware acceleration, eliminating the need to emulate complex instruction sequences for different language syntaxes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3532921B1Floating point vector comparison instruction with selectable options
Publication Date: 2021.02.24 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • EP3532921B1 patent drawingFigure 1A
  • EP3532921B1 patent drawingFigure 1B
  • EP3532921B1 patent drawingFigure 2A~2B

AI summary

An instruction to perform a comparison of a first value and a second value is executed. Based on a control of the instruction, a compare function to be performed is determined. The compare function is one of a plurality of compare functions configured for the instruction, and the compare function has a plurality of options for comparison.A compare option based on the first value and the second value is selected from the plurality of options defined for the compare function, and used to compare the first value and the second value.A result of the comparison is then placed in a select location, the result to be used in processing within a computing environment.