AVR32

From Wikipedia, the free encyclopedia
Jump to: navigation, search
AVR32
Designer Atmel
Bits 32-bit
Version Rev 2
Design RISC
Encoding Variable
Endianness Big
Extensions Java Virtual Machine
Registers
15

The AVR32 is a 32-bit RISC microprocessor architecture produced by Atmel. The microprocessor architecture was designed by a handful of people educated at the Norwegian University of Science and Technology, including lead designer Øyvind Strøm, PhD and CPU architect Erik Renno, M.Sc in Atmel's Norwegian design center.

Most instructions are executed in a single-cycle. The multiply–accumulate unit can perform a 32-bit * 16-bit + 48-bit arithmetic operation in two cycles (result latency), issued once per cycle.

It does not resemble the 8-bit AVR, except that they were both designed at Atmel Norway, in Trondheim. Some of the debug-tools are similar.

Architecture[edit]

The AVR32 has at least two micro-architectures, the AVR32A and AVR32B. These differ in the instruction set architecture, register configurations and the use of caches for instructions and data.[1]

The AVR32A CPU cores are for inexpensive applications. They do not provide dedicated hardware registers for shadowing the register file, status and return address in interrupts. This saves chip area at the expense of slower interrupt-handling.

The AVR32B CPU cores are designed for fast interrupts. They have dedicated registers to hold these values for interrupts, exceptions and supervisor calls. The AVR32B cores also support a Java virtual machine in hardware.[2]

The AVR32 instruction set has 16-bit (compact) and 32-bit (extended) instructions, with several specialized instructions not found in the MIPS32, ARMv5 or ARMv6. Several U.S. patents are filed for the AVR32 ISA and design platform.

Just like the AVR 8-bit microcontroller architecture, the AVR32 was designed for high code density (packing much function in few instructions) and fast instructions with few clock cycles. Atmel used the independent benchmark consortium EEMBC to benchmark the architecture with various compilers and consistently outperformed both ARMv5 16-bit (THUMB) code and ARMv5 32-bit (ARM) code by as much as 50% on code-size and 3X on performance.[citation needed]

Atmel says the "picoPower" AVR32 AT32UC3L consumes less than 0.48 mW/MHz in active mode, which it claims is less power than any other 32-bit CPU.[3]

Implementations[edit]

The AVR32 architecture is used only in Atmel's own products. In 2006, Atmel launched the AVR32A: The AVR32 AP7 core, a 7-stage pipelined, cache-based design platform.[2] This "AP7000" implements the AVR32B architecture, and supports SIMD (single instruction multiple data) DSP (digital signal processing) instructions to the RISC instruction-set, in addition to Java hardware acceleration. It includes a Memory Management Unit (MMU) and supports operating systems like Linux. In early 2009, the rumored AP7200 follow-on processor was held back, with resources going into other chips.

In 2007, Atmel launched the second AVR32: The AVR32 UC3 core. This is designed for microcontrollers, using on-chip flash memory for program storage and running without an MMU. The AVR32 UC3 core uses a three-stage pipelined Harvard architecture specially designed to optimize instruction fetches from on-chip flash memory.[4] The AVR32 UC3 core implements the AVR32A architecture. It shares the same instruction set architecture (ISA) as its AP7 sibling, but differs by not including the optional SIMD instructions or Java support. It shares more than 220 instructions with the AVR32B. The ISA features atomic bit manipulation to control on-chip peripherals and general purpose I/Os and fixed point DSP arithmetic.

Both implementations can be combined with a compatible set of peripheral controllers and buses first seen in the AT91SAM ARM-based platforms. Some peripherals first seen in the AP7000, such as the high speed USB peripheral controller, and standalone DMA controller, appeared later in updated ARM9 platforms and then in the ARM Cortex-M3 based products.

Both AVR32 cores include a Nexus class 2+ based On-Chip Debug framework build with JTAG.

The UC3 core, announced at the Electronica 2010 in Munich Germany on November 10, 2010, is the first 32-bit AVR microcontroller with a floating-point unit.[5]

Devices[edit]

AP7 Core[edit]

On April 10, 2012 Atmel announced the End of Life of AP7 Core devices on 4/4/2013.[6]

UC3 Core[edit]

Boards[edit]

See also[edit]

References[edit]

  1. ^ "AVR32 Architecture Document". Atmel. Retrieved 2008-06-15. 
  2. ^ a b "AVR32 AP Technical Reference Manual". Atmel. Archived from the original on 3 December 2008. Retrieved 2008-12-12. 
  3. ^ Atmel press release: "Atmel Introduces AVR32 Microcontroller which Lowers Industry's Best Power Consumption by 63%; picoPower AVR32 AT32UC3L Microcontroller offers less than 0.48 mW/MHz Active and below 100 nA Sleep Mode"
  4. ^ "AVR32UC Technical Reference Manual". Atmel. Retrieved 2008-06-15. 
  5. ^ "Atmel Introduces First 32-bit AVR Microcontroller Featuring Floating Point Unit". Atmel. Retrieved 2011-03-26. 
  6. ^ http://www.atmel.com/About/Quality/obsolescence/obsolete_items.aspx?searchText=ap7

External links[edit]