Atmel Develops Floating Point Unit for 32-bit AVR UC3 Microcontrollers

Atmel AVR UC3

Atmel Corporation announced a new technology, a Floating Point Unit, that is being designed for Atmel’s 32-bit AVR UC3 product family. This new technology will enable designers to replace a two chip microcontroller and digital signal processing (DSP) solution with just one Atmel microcontroller (MCU) for applications in the automotive and industrial control markets.

Atmel AVR UC3 FPU

A feature of Atmel’s 32-bit AVR UC3 microcontrollers is the architecture’s very high digital signal processing performance. Offering fixed point and integer arithmetic support which are usually found only in high end DSPs, the UC3 MCUs outperform most microcontrollers. The addition of a single precision Floating Point Unit will allow customers to replace their current solution with just one Atmel chip.

About a Floating Point Unit
A Floating Point Unit improves processing performance by allowing the MCU to perform arithmetic calculations on decimal numbers in fewer clock cycles with higher precision. This will benefit a wide range of applications; motor control algorithms can be improved to allow the motor to run more silently or consuming less energy, sensor data can be filtered or analyzed to suppress noise and capture more useful information, and audio data can be processed without loss of fidelity. The 32-bit AVR UC3 Floating Point Unit is compliant with the widely accepted IEEE 754 standard. This ensures compatibility with a wide range of existing math libraries and application code.

The Floating Point Unit will be introduced in selected AVR UC3 family members targeting the automotive and industrial control. The first devices are being prototyped by industry leaders today, and will be made available for general sampling in the second half of 2010. The first devices to arrive will include advanced analog modules, such as dual high-speed 12-bit ADCs, dual high-speed 12-bit DACs and intelligent motor control. The new devices will also include features such as peripheral intelligence, memory-to-memory DMA controller and peripheral event system introduced to the UC3 microcontrollers in 2009.

Selected Atmel AVR 32-bit UC3 microcontrollers feature 32-bit single precision IEEE754 compliant Floating Point Unit (FPU). These devices meet the demand for faster digital signal processing in applications such as high end motor control, industrial automation and automotive control.

A Floating Point Unit improves processing performance by allowing the MCU to perform arithmetic calculations on decimal numbers in fewer clock cycles with higher precision. This will benefit a wide range of applications; motor control algorithms can be improved to allow the motor to run more silently or consuming less energy, sensor data can be filtered or analyzed to suppress noise and capture more useful information, and audio data can be processed without loss of fidelity.

Floating Point Numbers
A 32-bit floating point number is defined as shown in this figure:

Atmel FPU

Wider Dynamic Range
The Floating Point format allows the CPU to work on numbers much smaller and larger than what is possible to represent with integers and fixed point format. As can be seen from the table below, the floating point number format is several magnitudes

Number Format

Range

Smallest Step Size

Biggest Number

32-bit Floating Point

[-1038, 1038]

Approx. 1*10-37

Approx. 1*1038

32-bit Integer

[0, 109]

1

Approx. 2*109

32-bit Fixed Point

[-1, 1]

Approx. 1*10-37

1

Greater Precision
The Floating Point Unit will automatically scale the resulting fraction f to preserve 23-bits of precision in the result. This ensures that the precision of data is preserved through any arithmetic function, and thus eliminates the time-consuming scaling of small numbers, a problem often encountered in integer and fixed foint arithmetic.

Increased Througput
The Floating Point Unit can perform most 32-bit Floating Point instructions in a single cycle, and a 32-bit Multiply Accumulate is completed in clock 2 cycles. This is significantly faster than the 30-50 cycles required to complete the same arithmetic operation if the CPU does not contain an FPU.

Compatible with IEEE754
The Floating Point Unit is compliant with the widely accepted IEEE754 standard. This ensures compatibility with a wide range of existing math libraries and application code, including MatLab, IAR Embedded Workbench, and GCC.

In some applications, the Floating Point Unit can replace an external low end or mid-range DSP.