Fixed-Point Code Generation via Partial Evaluation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Fixed-point operations in computer hardware often face challenges with overflow or underflow issues due to the fixed nature of the decimal point, leading to difficulties in determining the data type of results, especially when dealing with different slopes and biases, which complicates efficient code generation for processors.

Innovation Solution

The use of partial evaluation techniques to evaluate fixed-point operations and generate efficient code by determining known portions of the fixed-point rule based on input information, allowing for customization of typing rules to specify the data type of results, including slope, bias, fraction length, and scaling, thereby reducing instructions and optimizing processor performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If fixed-point operations use fixed slope and bias values, then hardware complexity is reduced and processing speed is improved, but the ability to handle different data types and avoid overflow/underflow is worsened

Engineering Contradiction:
Improvehardware complexityVSAvoiddata type handling capability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent applies preliminary action by determining the fixed-point data type characteristics (slope, bias, word length, fraction length) during code generation before execution. The code generator analyzes input operand types and pre-calculates the appropriate output data type parameters, storing them in data type description structures. This preliminary determination eliminates the need for complex runtime type checking while maintaining adaptability to different data types.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamics by making the fixed-point data type parameters configurable and variable based on the specific operation and operands. Instead of using fixed universal parameters, the system dynamically determines slope, bias, word length, and fraction length values based on input types and operation requirements. This allows the hardware to maintain simple fixed-point processing while adapting to different data type scenarios through programmable parameters.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If fixed-point operations use fixed word size, then hardware implementation is simplified and power consumption is reduced, but the range of representable values and precision are limited

Engineering Contradiction:
Improvehardware implementation complexityVSAvoidvalue representation precision
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent applies parameter changes by allowing the word length and fraction length parameters to vary based on the specific fixed-point operation and data type requirements. The code generator determines appropriate word length and fraction length values for each operation based on input operand characteristics and operation type. This enables the hardware to maintain a fixed physical structure while achieving variable precision through programmable parameter configuration.

Inventive Principle:
Principle #35Parameter changes

3Measurement precision

If customizable typing rules are implemented, then precision and overflow prevention are improved, but code generation complexity and difficulty in determining result data types are worsened

Engineering Contradiction:
Improvefixed-point result precisionVSAvoidcode generation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing automatic data type determination through the code generator. The system uses predefined typing rules that automatically analyze input operand data types and operation characteristics to determine the appropriate output data type parameters (slope, bias, word length, fraction length). This eliminates the need for manual configuration and reduces code generation complexity while maintaining high precision through customizable typing rules.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent implements feedback by using the determined output data type information to guide subsequent code generation and optimization decisions. The code generator uses the calculated slope, bias, word length, and fraction length values to generate optimized fixed-point code that is tailored to the specific data type requirements. This feedback loop ensures that precision requirements are met while generating efficient hardware-specific code.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9075630B1Code evaluation of fixed-point math in the presence of customizable fixed-point typing rules
Publication Date: 2015.07.07 MATHWORKS INC
  • US9075630B1 patent drawing
  • US9075630B1 patent drawing
  • US9075630B1 patent drawing

AI summary

Systems and methods are provided for using partial evaluation techniques to efficiently generate code for a fixed-point operation. The present invention uses partial evaluation techniques to evaluate a fixed-point rule of a fixed-point operation. The fixed-point rules, which may be customized by a user, determine the data type of the result or output of the operation. Although the values of all the inputs may not be known at code generation time, the present invention determines via static or known information associated with the input the portion of the fixed-point rule known at code generation time. As such, the present invention can generate more efficient code by generating code representing the static analysis of the inputs and fixed-point typing rules of the fixed-point operation.