Packed Fixed-Point Conversion Instructions for Precision-Preserving Floats

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computer processors lack efficient instructions for converting fixed-point numbers to single precision floating-point numbers without precision loss, especially for 32-bit fixed-point numbers, which can result in up to 8 bits of precision loss during the conversion process.

Innovation Solution

The implementation of specific instructions and execution circuitry that convert a single fixed-point value from a packed data operand to a single precision floating-point value, storing the result in a packed data destination operand while zeroing all remaining elements, using zero extension or sign extension techniques to handle unsigned and signed values respectively, and calculating the sign, exponent, and significand for accurate representation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If fixed-point to floating-point conversion is performed using conventional methods, then conversion is achieved, but precision loss occurs (up to 8 bits for 32-bit fixed-point numbers)

Engineering Contradiction:
ImproveprecisionVSAvoidprecision loss
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent changes the conversion parameters by introducing specific instruction formats (e.g., VCTFUD2SS, VCTFSW2SS, VCTFUW2SS) that define different conversion modes for unsigned/doubleword, unsigned/word, and signed/word fixed-point to floating-point conversions. These parameter changes enable precise control over the conversion process to minimize precision loss while maintaining conversion functionality.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The conversion process is segmented into distinct operational modes handled by different instructions. Each instruction type (VCTFUD2SS, VCTFSW2SS, VCTFUW2SS) handles specific cases (unsigned doubleword, signed word, unsigned word respectively), allowing optimized conversion paths for different data types and precision requirements.

Inventive Principle:
Principle #1Segmentation

2Productivity

If conventional conversion instructions are used, then data type conversion is achieved, but conversion efficiency is insufficient

Engineering Contradiction:
Improveconversion efficiencyVSAvoidconversion time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the conversion functionality into dedicated, specialized instructions that are natively supported by the processor. By taking out the conversion operation from general-purpose computation and providing specific hardware-supported instructions (VCTFUD2SS, VCTFSW2SS, VCTFUW2SS), the conversion process is accelerated and executed more efficiently.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If 32-bit fixed-point numbers are converted to floating-point, then conversion is achieved, but up to 8 bits of precision are lost

Engineering Contradiction:
Improvedata type flexibilityVSAvoidprecision
Core Design Contradiction:
Adaptability or versatilityVSMeasurement precision

Solution Approach 1:

The patent introduces dynamic conversion capabilities that can handle different fixed-point formats (32-bit, 16-bit) and data types (signed, unsigned) through a unified instruction set. The dynamic nature of these instructions allows the processor to adaptively convert various data types while preserving maximum precision through optimized conversion algorithms specific to each format.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS10656942B2Fixed point to floating point conversion
Publication Date: 2020.05.19 INTEL CORP
  • US10656942B2 patent drawing
  • US10656942B2 patent drawing
  • US10656942B2 patent drawing

AI summary

Embodiments of instructions and methods of execution of said instructions and resources to execute said instructions are detailed. For example, in an embodiment, a processor comprising: decode circuitry to decode an instruction having fields for an opcode, a packed data source operand identifier, and a packed data destination operand identifier; and execution circuitry to execute the decoded instruction to convert a data element from a least significant packed data element position of the identified packed data source operand from a fixed-point representation to a floating point representation, store the floating point representation into a 32-bit least significant packed data element position of the identified packed data destination operand, and zero all remaining packed data elements of the identified packed data destination operand is described.