Wikipedia · einfach zusammengefasst · Stand
Harvard-Architektur
Die Harvard-Architektur bezeichnet in der Informatik ein Schaltungskonzept, bei dem der Befehlsspeicher logisch und physisch vom Datenspeicher getrennt ist.
Inhalt4 Abschnitte
Grundprinzip und Aufbau
Die Harvard-Architektur ist ein Schaltungskonzept für Computer, bei dem Befehlsspeicher und Datenspeicher logisch und physisch voneinander getrennt sind. Im Befehlsspeicher liegen die auszuführenden Programme, im Datenspeicher die zu verarbeitenden Daten.
Die logische Trennung besteht darin, dass Befehle und Daten verschiedene Adressräume besitzen und durch unterschiedliche Maschinenbefehle angesprochen werden. Die physische Trennung wird durch zwei eigenständige Speicher verwirklicht. Jeder Speicher ist über einen eigenen Bus – eine Verbindung zur Übertragung von Informationen – mit dem Rechenwerk verbunden.
Dadurch kann der Prozessor beispielsweise gleichzeitig einen Befehl lesen und Daten schreiben. Befehle und Daten behindern sich beim Speicherzugriff nicht gegenseitig. Sind beide Speicher weniger streng getrennt, spricht man von einer modifizierten Harvard-Architektur.
Vorteile und technische Möglichkeiten
Der wichtigste Vorteil besteht darin, dass Befehle und Daten gleichzeitig geladen oder geschrieben werden können. Eine klassische Von-Neumann-Architektur benötigt dafür mindestens zwei aufeinanderfolgende Buszyklen. Die Harvard-Architektur kann Speicherzugriffe daher stärker parallelisieren.
Die physische Trennung erleichtert außerdem die Trennung von Zugriffsrechten und den Speicherschutz. Programmcode kann in einem Speicher liegen, der während des Betriebs nur gelesen werden darf, etwa in einem ROM oder auf Lochkarten. Veränderliche Daten werden dagegen in einem beschreibbaren Speicher wie RAM oder Ringkernspeicher abgelegt. So lässt sich beispielsweise verhindern, dass ein Softwarefehler den Programmcode überschreibt.
Ein weiterer Vorteil ist, dass Datenwortbreite und Befehlswortbreite unabhängig voneinander gewählt werden können. Die Wortbreite bezeichnet dabei die kleinste adressierbare Einheit. Der Speicherbedarf eines Programms kann dadurch passend zum Befehlssatz gestaltet werden und ist nicht unmittelbar von der Breite des Datenbusses abhängig. Das ist besonders für eingebettete Systeme und kleine Mikrocontroller-Systeme interessant.
Entwicklung und moderne Mischformen
Die Bezeichnung geht auf den elektromechanischen Computer Mark I zurück, der gemeinsam von IBM und der Harvard-Universität entwickelt und 1944 in Betrieb genommen wurde. Bei ihm waren Programme und Daten schon aufgrund der verwendeten Speichermedien getrennt: Befehle befanden sich auf papiernen Lochstreifen, Daten auf Magnettrommeln.
1945 formulierte John von Neumann die Idee, auch Programme im Speicher des Computers abzulegen. Die daraus hervorgegangene Von-Neumann-Architektur setzte sich nach und nach durch. Später wurde die Harvard-Architektur zunächst vor allem bei RISC-Prozessoren wieder eingeführt.
Moderne Harvard-Prozessoren können mehrere Rechenwerke parallel mit Befehlen und Daten versorgen. Bei Signalprozessoren der C6x-Familie von Texas Instruments ist dies beispielsweise für bis zu acht Rechenwerke möglich.
Anfang der 1990er Jahre führte Analog Devices die Super-Harvard-Architektur ein. Bei dieser Erweiterung liegen die Speichersegmente in Dual-Port-RAMs, also Speichern mit zwei Zugriffswegen, die kreuzweise zwischen Programm- und Datenbussen angeordnet sind.
Viele moderne Prozessoren kombinieren Harvard- und Von-Neumann-Architektur. Innerhalb des Prozessorchips werden Programme und Daten getrennt verwaltet und besitzen eigene Caches, MMUs und interne Busse. Ein Cache ist ein schneller Zwischenspeicher; eine MMU verwaltet Speicheradressen und Zugriffsrechte. Außerhalb des Chips befinden sich Programme und Daten jedoch in einem gemeinsamen Speicher. Bei einer Pipeline-Architektur können dadurch die einzelnen Verarbeitungsstufen hinsichtlich ihrer Speicherzugriffe getrennt werden. Ein typisches Beispiel ist der in den 1980er Jahren entwickelte Motorola 68030.
Typische Einsatzgebiete und Beispiele
Die Harvard-Architektur wird vor allem dort verwendet, wo hohe Leistung, effiziente Speicherzugriffe oder eine zuverlässige Trennung von Programm und Daten benötigt werden.
Digitale Signalprozessoren verarbeiten kontinuierlich große Datenmengen, beispielsweise Audio- oder Videosignale. Durch parallele Befehls- und Datenzugriffe unterstützt die Harvard-Architektur eine Verarbeitung in Echtzeit.
Auch Single-Chip-Mikrocontroller mit festen Programmen besitzen häufig eine Harvard-Architektur. Sie kommen in eingebetteten Systemen wie Sensoren, Aktoren und Steuergeräten zum Einsatz. Dort sind geringer Stromverbrauch, hohe Zuverlässigkeit sowie die anpassbare Wortbreite und Speicheraufteilung von Bedeutung. Genannte Vertreter sind PICmicro von Microchip Technology, die Intel-Familien 8048 und 8051, der STM8 von STMicroelectronics sowie die AVR-Reihe von Microchip Technology.
Nach Darstellung des Artikels wird die Architektur außerdem in spezialisierten Rechnern für künstliche Intelligenz eingesetzt, die etwa neuronale Netze oder Verfahren des maschinellen Lernens ausführen. Die getrennte Verwaltung von Befehls- und Datenspeicher ermöglicht dabei hohe Rechenleistung und starke Parallelisierung. Der Wikipedia-Artikel weist allerdings allgemein darauf hin, dass seine Angaben nicht hinreichend mit Belegen abgesichert sind.
Lernvideos zu Harvard-Architektur
7:14
Von Neumann vs Harvard Architectures | Computer Architectures Course
OPIT - Open Institute of Technology · 993 Aufrufe
5:18
Harvard Architecture versus Von Neumann Architecture
Computer Science Lessons · 115.167 Aufrufe
5:24
Von Neumann and Harvard CPU Architectures
MrBrownCS · 3.900 Aufrufe
6:44
Harvard-Architektur: Überlappende Befehlsausführung
Frank Slomka · 1.277 Aufrufe