AT90S4414/8515
6
The AVR uses a Harvard architecture concept - with separate memories and buses for program and data. The program
memory is executed with a two stage pipeline. While one instruction is being executed, the next instruction is pre-fetched
from the program memory. This concept enables instructions to be executed in every clock cycle. The program memory is
in-system programmable Flash memory.
With the relative jump and call instructions, the whole 2K/4K address space is directly accessed. Most AVR instructions
have a single 16-bit word format. Every program memory address contains a 16- or 32-bit instruction.
During interrupts and subroutine calls, the return address program counter (PC) is stored on the stack. The stack is
effectively allocated in the general data SRAM, and consequently the stack size is only limited by the total SRAM size and
the usage of the SRAM. All user programs must initialize the SP in the reset routine (before subroutines or interrupts are
executed). The 16-bit stack pointer SP is read/write accessible in the I/O space.
The 256/512 bytes data SRAM can be easily accessed through the five different addressing modes supported in the AVR
architecture.
The memory spaces in the AVR
architecture are all linear and regular memory maps.
Figure 4. The AT90S4414/8515 AVR RISC Architecture
Data Bus 8-bit
2K/4K X 16
Program
Memory
Instruction
Register
Instruction
Decoder
Control Lines
Program
Counter
Status
and Test
32 x 8
General
Purpose
Registers
ALU
256/512 x 8
Data
SRAM
Direct Addressing
Indirect Addressing
Control
Registers
Interrupt
Unit
SPI
Unit
Serial
Uart
8-bit
Timer/Counter
16-bit
Timer/Counter
with PWM
Watchdog
Timer
Analog
Comparator
32
I/O Lines
256/512 x 8
EEPROM