Schlaufuchs Logo

Speicherverwaltung der AVR® Mikrocontroller-Familie

Harvard-Architektur

AVR® Mikrocontroller basieren auf der Harvard-Architektur.
Der Programmspeicher und der Datenspeicher sind voneinander getrennt und verfügen über voneinander unabhängige Busse für den Zugriff.
Dies hat verschiedene Vorteile, wie schnellere Datenverarbeitung, sichere Trennung von Daten und Programm u.a.
Die Speichertechnologien von Daten- und Programmspeicher sind ebenfalls unterschiedlich.

Der Programmspeicher

Der Programmspeicher (auch Befehlsspeicher) ist ein nichtflüchtiger FLASH-Speicher (NVM: non-volatile Memory). Der Inhalt bleibt nach dem Abschalten der Betriebsspannung erhalten. Die meisten AVR® Mikrocontroller können programmiert werden, ohne diese aus der Schaltung ausbauen zu müssen. Dies wird als ISP-Programmierung (In-System-Programmierung) bezeichnet.

Der Datenspeicher

Der Datenspeicher besteht aus Registern und einem SRAM-Bereich.

Register

Register sind besondere Speicherzellen, die direkt mit der CPU/ALU verbunden sind.
So verfügen AVR® Mikrocontroller über 32 Rechenregister (General Purpose Working Register), die direkt mit der ALU verbunden sind. Rechenoperationen mit diesen Registern werden in einem bzw. zwei Arbeitstakten durchgeführt.

SRAM

Das SRAM dient als Zwischenspeicher für variable Daten, wenn die Rechenregister nicht ausreichen. Für Berechnungen müssen Inhalte aus dem SRAM jedoch zunächst in die Rechenregister kopiert und ggf. wieder aus den Registern ins SRAM zurückgeschrieben werden. Dieser Kopiervorgang reduziert die Verarbeitungsgeschwindigkeit.
Am Ende des SRAMs ist außerdem der Stack (Stapelspeicher) positioniert, der bei Aufrufen von Unterprogrammen eine wichtige Rolle spielt. Dies muss bei der Speicherplatz-Zuweisung für Variablen berücksichtigt werden.

Register

Anbindung von Rechenregistern und SRAM an die ALU

I/O-Register

Datenspeicher

Aufbau des Datenspeichers.

Neben den Rechenregistern gibt es noch die I/O-Register oder Special Function Register (SFR), die die Funktion der CPU und der Hardware steuern. Diese werden manchmal auch als Ports bezeichnet.
AVR® Mikrocontroller haben neben den 64 I/O-Registern zusätzlich bis zu 160 weitere I/O-Register (extended I/O-Register).