RISC-V Floating-Point Exponential Hardware Without Lookup Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional processors, particularly those compliant with the RISC-V instruction set architecture, lack specific hardware support for efficiently computing transcendental functions such as the exponential function (e^x), leading to inefficiencies in non-linear arithmetic operations due to the use of memory-inefficient lookup tables and significant error in computation.

Innovation Solution

Implementing hardware support for a custom floating-point exponent function instruction in a RISC-V processor, utilizing a floating-point unit (FPU) with additional control logic to execute the exponential function efficiently, combining RISC-V 'F' extension instructions with custom instructions to perform the computation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional processors use memory lookup tables to compute transcendental functions, then the computation can be performed, but the memory efficiency is poor and computation speed is slow

Engineering Contradiction:
Improvecomputation speedVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the conventional software-based lookup table approach with a dedicated hardware circuit (exponential function computing circuit) that directly computes e^x using mathematical decomposition and parallel computation, eliminating the need for large memory tables and significantly improving computation speed

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Solution Approach 2:

The exponential function computation is segmented into multiple parallel computational paths: integer part handling, fractional part handling, and exponentiation operations, allowing simultaneous computation of different components to improve overall processing efficiency

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If conventional processors lack specific hardware support for exponential functions, then the processor design remains simple, but the computation accuracy is poor due to significant error

Engineering Contradiction:
Improvecomputation accuracyVSAvoidhardware support
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary control unit that coordinates between the instruction decoder, operational register, and exponential function computing circuit, ensuring precise control of the computation process and accurate result generation while maintaining modular hardware architecture

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent performs preliminary decomposition of the input value into integer and fractional parts before computation, and pre-configures the hardware circuit with necessary computational components (such as shift registers and adders) to ensure accurate exponential function calculation

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20250291546A1Efficient implementation of a floating-point exponential function in a processor
Publication Date: 2025.09.18 NXP BV
  • US20250291546A1 patent drawing
  • US20250291546A1 patent drawing
  • US20250291546A1 patent drawing

AI summary

A processor including an instruction decoder configured to provide at least floating-point instruction control signals, a floating-point computational data path, a floating-point custom instruction control logic block coupled to the floating-point computational data path, a control and status register coupled to the floating-point computational data path, and the floating-point custom instruction control logic block, a first multiplexor configured to provide either floating-point instruction control signals or custom instruction control signals to the floating-point computational data path based on the state of a select control signal, and a second multiplexor configured to provide either floating-point operands or custom operands to the floating-point computational data path based on the state of the select control signal. The floating-point custom instruction control logic block asserts the select signal while directing the floating-point computational data path to assist it with the execution of a custom instruction. The custom instruction may be a floating-point exponential function.