Floating Point Encoding Using NaN Space for Typed Data

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

A floating point encoding scheme is introduced where a single NaN representation is used to free up space, allowing small denormal numbers to be shifted into the NaN space, enabling the encoding of typed data and values within the vacant space, thereby partitioning the 64-bit floating point representation into a 32-bit type and value representation, facilitating efficient data type testing and operations.

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 segments the 64-bit floating point representation into distinct functional portions: a type field (bits 63-52) for encoding data type information and a value field (bits 51-0) for storing the actual value. This segmentation allows the system to encode multiple data types (integers, strings, booleans, etc.) within the floating point format, enabling type-specific optimizations without requiring full floating point emulation for all operations

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal data representation format that can handle multiple data types (integers, strings, booleans, null, undefined, etc.) using a single encoded structure. The type field indicates the data type, while the value field stores the corresponding value, allowing the same memory structure to serve multiple purposes and enabling type-aware optimizations in processing

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

2Quantity of substance

If a single NaN representation is used to free up space in the floating point format, then more space becomes available for encoding typed data, but the traditional NaN representation capability is reduced

Engineering Contradiction:
Improveavailable encoding spaceVSAvoidNaN representation capability
Core Design Contradiction:
Quantity of substanceVSLoss of information

Solution Approach 1:

The patent extracts the type information from the traditional floating point format by utilizing the NaN space. By defining specific bit patterns in the type field as NaN representations, the patent frees up the value field for general data storage while preserving NaN functionality through the type field encoding. This extraction allows the value field to be fully utilized for storing actual data values

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a type field as an intermediary layer between the floating point format and the actual data values. This type field acts as a mediator that encodes both the data type information and NaN representations, allowing the value field to be used efficiently for storing values while NaN functionality is preserved through type field bit patterns

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8694571B2Floating point encoding systems and methods
Publication Date: 2014.04.08 MALIKIE INNOVATIONS LTD
  • US8694571B2 patent drawing
  • US8694571B2 patent drawing
  • US8694571B2 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.