NaN-Space Floating Point Encoding for Faster Typed Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In processing environments without a floating point processor, such as mobile devices, emulating floating point numbers is slow and inefficient, as operations like 2+2 can be orders of magnitude slower than with integer-typed variables.

Innovation Solution

The proposed solution involves encoding typed data within the NaN space of the IEEE 754 floating point standard, allowing for efficient representation and processing of typed data by reallocating the NaN space to encode data types and values, thereby enabling faster operations on devices without a floating point processor.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If floating point numbers are emulated in software on devices without a floating point processor, then floating point operations can be performed, but the processing speed becomes orders of magnitude slower compared to integer operations

Engineering Contradiction:
Improvefloating point operation capabilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent encodes typed data (integers, booleans, strings, objects) within the NaN space of floating point representations. This allows the system to use floating point storage and transmission mechanisms while efficiently representing non-floating-point data types, enabling fast integer-like operations without requiring full floating point emulation overhead

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent changes the interpretation of NaN bit patterns from representing invalid floating point values to encoding typed data. By repurposing the NaN space (where exponent and mantissa have specific patterns), the system can store type information and integer values in a format that can be processed efficiently without actual floating point computation

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the NaN space in IEEE 754 floating point standard is reallocated to encode typed data, then data encoding efficiency improves, but the representation of traditional NaN values is affected

Engineering Contradiction:
Improvedata encoding efficiencyVSAvoidNaN value representation
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent extracts the NaN space from its traditional purpose of representing not-a-number values and separates it into a dedicated encoding region for typed data. By identifying and isolating the NaN bit patterns (where exponent is all 1s and mantissa is non-zero), the system can allocate this specific portion of the floating point space for type encoding without affecting the overall floating point number system

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an encoding/decoding layer that acts as an intermediary between the encoded typed data in NaN space and the actual data types needed by the application. The encoder converts typed data into NaN representations, and the decoder translates them back, maintaining compatibility with the rest of the system while enabling efficient storage and transmission

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7877431B2Floating point encoding systems and methods
Publication Date: 2011.01.25 MALIKIE INNOVATIONS LTD
  • US7877431B2 patent drawing
  • US7877431B2 patent drawing
  • US7877431B2 patent drawing

AI summary

Systems and methods for encoding floating point numbers. A system can include encoding logic which encodes invalid floating point representations as valid data. Decoding logic can be used to recognize the invalid floating point representations and map can provide the invalid floating point representations to valid data values. The decoding logic then can provide the valid data values so that operations on the valid data values can be performed in accordance with instructions received from an associated program.