Harvard-Architektur

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst entfernt. Bitte hilf der Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Näheres ist eventuell auf der Diskussionsseite oder in der Versionsgeschichte angegeben. Bitte entferne zuletzt diese Warnmarkierung.
Eorhim 15:36, 2. Mai 2010 (CEST)
Schematische Darstellung der Harvard-Architektur. Daten und Befehle liegen in separaten Speichern und können in diesem Beispiel parallel in die Rechenwerke geladen werden.

Die Harvard-Architektur bezeichnet in der Informatik ein Schaltungskonzept, bei dem der Befehlsspeicher logisch und physisch vom Datenspeicher getrennt ist. Die logische Trennung ergibt sich aus verschiedenen Adressräumen und verschiedenen Maschinenbefehlen zum Zugriff auf Befehl- und Datenspeicher. Die physische Trennung ist mit zwei getrennten Speichern realisiert, auf die der Zugriff über je einen eigenen Bus erfolgt. Bei einer weniger strikten Trennung von Befehls- und Datenspeichern spricht man von einer modifizierten Harvard-Architektur.

Motivation[Bearbeiten]

Der Vorteil dieser Architektur besteht darin, dass Befehle und Daten gleichzeitig geladen, bzw. geschrieben werden können. Bei einer klassischen Von-Neumann-Architektur sind hierzu mindestens zwei aufeinander folgende Buszyklen notwendig.

Zudem sorgt die physikalische Trennung von Daten und Programm dafür, dass eine Zugriffsrechtetrennung und Speicherschutz einfach realisierbar sind. Um z. B. zu verhindern, dass bei Softwarefehlern Programmcode überschrieben werden kann, wird für den Programmcode ein im Betrieb nur lesbarer Speicher (z. B. ROM, Lochkarten) verwendet, für die Daten schreib- und lesbarer Speicher (z. B. RAM, Ringkernspeicher). Nachteilig ist allerdings, dass nicht benötigter Datenspeicher nicht als Programmspeicher genutzt werden kann, also eine erhöhte Speicherfragmentierung auftritt.

Geschichte[Bearbeiten]

Der Name „Harvard-Architektur“ hat seinen Ursprung im elektromechanischen Computer Mark I, der in Kooperation zwischen IBM und der Harvard-Universität entwickelt und 1944 in Betrieb genommen wurde.

Die Harvard-Architektur wurde zunächst überwiegend in RISC-Prozessoren konsequent umgesetzt. Moderne Prozessoren in Harvard-Architektur sind in der Lage, parallel mehrere Rechenwerke gleichzeitig mit Daten und Befehlen zu füllen. Bei Signalprozessoren der C6x-Familie von Texas Instruments ist dies beispielsweise für bis zu acht Rechenwerke möglich.

Ein weiterer Vorteil der Trennung ist, dass die Datenwortbreite (die kleinste adressierbare Einheit) und die Befehlswortbreite unabhängig voneinander festgelegt werden können. Damit kann auch, wenn erforderlich, die Effizienz des Programmspeicherbedarfs verbessert werden, da sie nicht direkt von den Datenbusbreiten abhängig ist, sondern ausschließlich vom Befehlssatz. Dies kann z. B. in eingebetteten Systemen oder kleinen Mikrocontroller-Systemen von Interesse sein.

Single-Chip-Mikrocontroller, die mit festen Programmen arbeiten, verwenden meist die Harvard-Architektur. Bekannte Vertreter sind z. B. (PICmicro) von Microchip Technology Inc., die Intel-Familien 8048 und 8051 und die AVR-Reihe von Atmel.

Eine bedeutende Erweiterung der Harvard-Architektur wurde von der amerikanischen Firma Analog Devices Anfang der 1990er Jahre durch die Einführung der Super-Harvard-Architektur-Technologie vorgenommen, bei der die genannten Speichersegmente als Dual-Port-RAMs ausgeführt sind, die kreuzweise zwischen den Programm- und Daten-Bussen liegen.

Viele moderne Prozessoren verwenden eine Mischform aus Harvard- und von-Neumann-Architektur, bei der innerhalb des Prozessorchips Daten und Programm voneinander getrennt verwaltet werden, eigene Caches und MMUs haben und über getrennte interne Busse laufen, extern jedoch in einem gemeinsamen Speicher liegen. Wenn CPU Pipelining implementiert ist, ist der Vorteil dieser Mischform (auf Prozessorebene), dass deren einzelne Pipelinestufen in Bezug auf Speicherzugriffe getrennt werden können. Ein typisches Beispiel für diese Art Prozessoren ist der Motorola 68030, der in den 1980er Jahren entwickelt wurde.

Siehe auch[Bearbeiten]