![]() | ![]() | ![]() |
AVR32 Architecture
AVR32 is a new high-performance 32-bit RISC microprocessor core, designed for cost-sensitive embedded applications, with particular emphasis on low power consumption and high code density. In addition, the instruction set architecture has been tuned to allow for a variety of microarchitectures, enabling the AVR32 to be implemented as low-, mid- or high-performance processors. AVR32 extends the AVR family into the world of 32- and 64-bit applications.
To truly exploit the power of a 32-bit architecture, the new AVR32 architecture is not binary compatible with earlier AVR architectures. In order to achieve high code density, the instruction format is flexible providing both compact instructions with 16 bits length and extended 32-bit instructions. While the instruction length is only 16 bits for most instructions, powerful 32-bit instructions are implemented to further increase performance. Compact and extended instructions can be freely mixed in the instruction stream.
The AVR32 is a new innovative microprocessor architecture. It is a fully synchronous synthesisable RTL design with industry standard interfaces, ensuring easy integration into SoC designs with legacy intellectual property (IP). Through a quantitative approach, a large set of industry recognized benchmarks has been compiled and analyzed to achieve the best code density in its class of microprocessor architectures. In addition to lowering the memory requirements, a compact code size also contributes to the core’s low power characteristics. The processor supports byte and half-word data types without penalty in code size and performance. Memory load and store operations are provided for byte, half-word, word and double word data with automatic sign- or zero extension of half-word and byte data. The C-compiler is closely linked to the architecture and is able to exploit code optimization features, both for size and speed.
In order to reduce code size to a minimum, some instructions have multiple addressing modes. As an example, instructions with immediates often have a compact format with a smaller immediate, and an extended format with a larger immediate. In this way, the compiler is able to use the format giving the smallest code size.
Another feature of the instruction set is that frequently used instructions, like add, have a compact format with two operands as well as an extended format with three operands. The larger format increases performance, allowing an addition and a data move in the same instruction in a single cycle. Load and store instructions have several different formats in order to reduce code size and speed up execution.
The register file is organized as 16 32-bit registers and includes the Program Counter, the Link Register, and the Stack Pointer. In addition, one register is designed to hold return values from function calls and is used implicitly by some instructions.
The AVR32 core defines several micro architectures in order to capture the entire range of applications. The microarchitectures are named AVR32A, AVR32B and so on. Different microarchitectures are suited to different end applications, allowing the designer to select a microarchitecture with the optimum set of parameters for a specific application.
Feature Summary
- 32-bit load/store RISC architecture
- Up to 15 general-purpose 32-bit registers
- 32-bit Stack Pointer, Program Counter, and Link Register reside in register file
- Fully orthogonal instruction set
- Pipelined architecture allows one instruction per clock cycle for most instructions
- Byte, half-word, word and double word memory access
- Fast interrupts and multiple interrupt priority levels
- Optional branch prediction for minimum delay branches
- Privileged and unprivileged modes enabling efficient and secure Operating Systems
- Innovative instruction set together with variable instruction length ensuring industry leading code density
- Optional DSP extention with saturated arithmetic, and a wide variety of multiply instructions
- Optional extensions for Java, SIMD, Read-Modify-Write to memory, and Coprocessors
- Architectural support for efficient On-Chip Debug solutions
- Optional MPU or MMU allows for advanced operating systems
- FlashVault
support through Secure State for executing trusted code alongside nontrusted code on the same CPU
![]() | ![]() | ![]() |