Informatik

Harvard-Architektur: Aufbau und Vorteile erklärt

Harvard-Architektur: Aufbau und Vorteile erklärt
Harvard-Architektur: Aufbau und Vorteile erklärt
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

Bei der Harvard-Architektur besitzen Programme und Daten getrennte Speicher und Zugriffswege. Dadurch kann ein Prozessor einen Befehl holen und gleichzeitig auf Daten zugreifen. Das kann die Verarbeitung beschleunigen, erfordert aber mehr beziehungsweise speziellere Hardware als ein gemeinsamer Speicher.

Deine Lernziele

Hake ab, was du schon kannst — und komm am Ende hierher zurück!

Woran erkennst du eine Harvard-Architektur?

Stell dir zwei getrennte Notizbücher vor: In einem stehen Handlungsanweisungen, im anderen die dafür benötigten Werte. Beim Computer entsprechen die Handlungsanweisungen den Programmbefehlen und die Werte den Daten.

Definition

Harvard-Architektur

Bei der klassischen Harvard-Architektur sind Programmspeicher und Datenspeicher getrennt. Beide besitzen eigene Adressräume und eigene Busse, also eigene Übertragungswege zum Prozessor.

Die Trennung hat zwei Seiten:

  • Logische Trennung: Programm und Daten besitzen verschiedene Adressräume. Der Prozessor verwendet unterschiedliche Zugriffe für beide Bereiche.
  • Physische Trennung: Es gibt tatsächlich zwei Speicher und zwei eigene Busse.

Eine Adresse wie 12 kann daher zweimal vorkommen: einmal im Programmspeicher und einmal im Datenspeicher. Trotzdem bezeichnet sie zwei verschiedene Speicherstellen.

Beispiel

Ein Mikrocontroller liest den nächsten Steuerbefehl aus seinem Programmspeicher. Zur selben Zeit liest er einen Messwert aus dem Datenspeicher. Weil beide Übertragungen unterschiedliche Busse verwenden, müssen sie nicht auf denselben Übertragungsweg warten.

Teste dich
Frage 1 von 1LeichtWelches Merkmal kennzeichnet die klassische Harvard-Architektur?
Lösung: Programme und Daten liegen in getrennten Speichern mit eigenen Bussen. — Entscheidend ist die getrennte Speicherung mit getrennten Zugriffswegen für Befehle und Daten.
Warum können getrennte Busse schneller sein?

Ein Bus überträgt unter anderem Adressen, Befehle und Daten zwischen Prozessor und Speicher. Wird nur ein gemeinsamer Bus verwendet, konkurrieren Befehlsabruf und Datenzugriff um denselben Weg.

Bei einer klassischen Von-Neumann-Architektur läuft beispielsweise Folgendes über das gemeinsame Bussystem:

  1. Der Prozessor holt einen Befehl aus dem Speicher.
  2. Er lädt die benötigten Daten.
  3. Er schreibt gegebenenfalls ein Ergebnis zurück.

Der Bus kann dadurch zum Engpass werden. Diese Leistungsgrenze heißt Von-Neumann-Flaschenhals.

In einer Harvard-Architektur können das Holen des nächsten Befehls und ein Datenzugriff gleichzeitig stattfinden. Der mögliche Vorteil entsteht also nicht allein durch zwei Speicher, sondern durch die unabhängigen Datenwege.

Merke

Ein gemeinsamer Bus muss Zugriffe nacheinander transportieren. Getrennte Busse können Befehle und Daten parallel übertragen, sofern der Prozessor diese Zugriffe gleichzeitig ausführt.

Teste dich
Frage 1 von 1MittelEin Prozessor holt einen Befehl und liest gleichzeitig einen Messwert. Warum passt das zur Harvard-Architektur?
Lösung: Für Befehl und Messwert stehen getrennte Speicherwege bereit. — Die parallelen Zugriffe werden durch getrennte Busse für Programm und Daten ermöglicht.
Welche weiteren Vorteile bietet die Trennung?

Getrennte Speicher lassen sich passend zu ihrer Aufgabe gestalten.

Unterschiedliche Speichertechnologien

Ein festes Programm kann in einem Speicher liegen, der während des Betriebs nur gelesen wird. Veränderliche Messwerte oder Zwischenergebnisse liegen dagegen in einem beschreibbaren Datenspeicher.

So kann ein versehentlicher Schreibzugriff den nur lesbaren Programmcode nicht überschreiben. Dieser Schutz hängt jedoch von der konkreten Speichertechnik und den eingerichteten Zugriffsrechten ab.

Unterschiedliche Wortbreiten

Auch die Wortbreite, also die Anzahl der Bits in einem Speicherwort, kann für beide Speicher verschieden sein. Ein System kann beispielsweise 20 Bit breite Befehlswörter und 4 Bit breite Datenwörter verwenden. Beide Bereiche werden damit auf ihre jeweilige Aufgabe zugeschnitten.

Geeignet für regelmäßige Datenströme

Digitale Signalprozessoren verarbeiten etwa Ton-, Bild- oder Funksignale. Bei solchen fortlaufenden Datenströmen sind gleichzeitige Befehls- und Datenzugriffe besonders nützlich.

Lückentext

Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.

Bei der Harvard-Architektur liegen Befehle im und veränderliche Werte im . Eigene ermöglichen unabhängige Zugriffe. Die Wortbreiten beider Speicher können gewählt werden.

Lösungen: Lücke 1: Programmspeicher; Lücke 2: Datenspeicher; Lücke 3: Busse; Lücke 4: unterschiedlich. Ordne zuerst die Aufgaben zu: Befehle gehören zum Programm, bearbeitete Werte zu den Daten. Getrennte Busse und anpassbare Wortbreiten sind mögliche Folgen dieser Trennung.
Welche Grenzen und Missverständnisse gibt es?

Die klassische Harvard-Architektur benötigt getrennte Speicherbereiche und Übertragungswege. Das kann die Hardware aufwendiger machen. Außerdem lässt sich freier Speicher nicht ohne Weiteres beliebig zwischen Programm und Daten aufteilen.

Ein gemeinsamer Speicher ist flexibler: Wird ein Programm größer und benötigt weniger Daten, kann derselbe Speicher entsprechend anders aufgeteilt werden. Bei strikt getrennten Speichern müssen beide Bereiche dagegen getrennt dimensioniert werden; freier Platz in einem Bereich steht dem anderen nicht automatisch zur Verfügung.

Auch der Sicherheitsvorteil darf nicht übertrieben werden. Eine Trennung kann verhindern, dass ein gewöhnlicher Datenzugriff direkt einen geschützten Programmspeicher überschreibt. Sie beseitigt aber nicht automatisch Programmfehler, schädliche Befehle oder sämtliche Angriffe.

Gut zu wissen

Trennung unterstützt Schutz, garantiert aber keine vollständige Sicherheit. Entscheidend sind zusätzlich Zugriffsrechte, Speichertechnik und die konkrete Umsetzung des Systems.

Teste dich
Frage 1 von 1MittelWelche Aussage zum Schutz durch die Harvard-Architektur ist angemessen?
Lösung: Die Trennung kann Programmcode vor bestimmten fehlerhaften Schreibzugriffen schützen. — Die Speichertrennung ist eine mögliche Schutzmaßnahme, aber kein vollständiges Sicherheitskonzept.
Wie verbinden moderne Prozessoren beide Prinzipien?

Viele moderne Prozessoren sind keine vollständig klassischen Harvard- oder Von-Neumann-Systeme. Sie verwenden eine modifizierte Harvard-Architektur.

Definition

Modifizierte Harvard-Architektur

Eine modifizierte Harvard-Architektur trennt Befehle und Daten nur in bestimmten Teilen des Systems. Die Trennung ist weniger strikt als bei der klassischen Harvard-Architektur.

Ein typischer Aufbau sieht so aus:

  • Nahe am Prozessor gibt es einen getrennten Befehlscache und Datencache. Ein Cache ist ein kleiner, schneller Zwischenspeicher.
  • Für beide Caches existieren getrennte interne Datenwege.
  • Nachgelagerte Caches und der Arbeitsspeicher werden gemeinsam genutzt.

Damit verbindet das System zwei Vorteile: Prozessornahe Zugriffe können getrennt und parallel ablaufen, während der gemeinsame Hauptspeicher flexibel für Programme und Daten genutzt wird.

Beispiel

Der Prozessor holt den nächsten Befehl aus dem Befehlscache und liest gleichzeitig einen Wert aus dem Datencache. Fehlt der benötigte Inhalt in einem Cache, wird er aus dem gemeinsam genutzten weiteren Speicher geholt. Intern wirkt das System an dieser Stelle wie Harvard, weiter außen wie Von Neumann.

Teste dich
Frage 1 von 1SchwerEin Rechner besitzt getrennte Befehls- und Datencaches, aber einen gemeinsamen Arbeitsspeicher. Wie ist dieser Aufbau einzuordnen?
Lösung: Als modifizierte Harvard-Architektur — Die Trennung besteht nur prozessornah. Der gemeinsame Arbeitsspeicher lockert das klassische Harvard-Prinzip.
Wie wählst du das passende Architekturprinzip?

Beurteile nicht nur, welche Architektur angeblich schneller ist. Frage, welche Anforderungen das System erfüllen muss.

AnforderungPassende Überlegung
Befehle und Daten sollen gleichzeitig übertragen werdenGetrennte Busse der Harvard-Architektur können helfen.
Speicher soll flexibel zwischen Programm und Daten nutzbar seinEin gemeinsamer Speicher bietet Vorteile.
Programmcode soll während des Betriebs nicht überschrieben werdenEin getrennter, nur lesbarer Programmspeicher kann schützen.
Schnelle prozessornahe Zugriffe und flexibler Hauptspeicher werden benötigtEine modifizierte Harvard-Architektur verbindet beide Ideen.
Beispiel

Ein Steuergerät führt ein festes Programm aus und verarbeitet fortlaufend Sensordaten. Ein getrennter, während des Betriebs nur lesbarer Programmspeicher schützt den festen Code. Gleichzeitig können getrennte Busse den nächsten Befehl und einen Sensorwert parallel liefern. Für diesen Zweck ist das Harvard-Prinzip gut begründbar.

Teste dich
Frage 1 von 1SchwerEin System soll ein festes Steuerprogramm ausführen und kontinuierlich Messwerte verarbeiten. Welches Argument spricht unmittelbar für das Harvard-Prinzip?
Lösung: Befehle und Messwerte können über getrennte Wege gleichzeitig gelesen werden. — Für einen regelmäßigen Datenstrom ist der mögliche parallele Zugriff das entscheidende Argument.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • Harvard-Architektur
    • trennt Programm- und Datenspeicher
    • verwendet eigene Adressräume und Busse
    • ermöglicht parallele Speicherzugriffe
    • erlaubt verschiedene Speicherarten und Wortbreiten
    • benötigt aufwendigere, weniger flexibel aufteilbare Speicherstrukturen
    • erscheint heute oft als modifizierte Mischform
Abschluss-Check
Teste dich
Frage 1 von 3LeichtWas wird in der klassischen Harvard-Architektur getrennt?
Lösung: Programm- und Datenspeicher sowie ihre Zugriffswege — Das Harvard-Prinzip betrifft vor allem die getrennte Speicherung und Übertragung von Befehlen und Daten.
Frage 2 von 3MittelWarum kann die Harvard-Architektur einen Leistungsvorteil besitzen?
Lösung: Befehlsabruf und Datenzugriff können über getrennte Busse gleichzeitig stattfinden. — Nicht die Anzahl der Speicher allein ist entscheidend, sondern die Unabhängigkeit der Zugriffswege.
Frage 3 von 3SchwerEin Prozessor nutzt getrennte L1-Caches für Befehle und Daten, aber einen gemeinsamen Hauptspeicher. Welche Erklärung trifft zu?
Lösung: Er verbindet interne Harvard-Trennung mit äußerer Von-Neumann-Flexibilität. — Dieser Aufbau ist eine modifizierte Harvard-Architektur: getrennt nahe am Prozessor, gemeinsam im weiteren Speicher.

Du hast das Thema verstanden, wenn du bei einem Rechneraufbau zuerst Speicher, Adressräume und Busse untersuchst und daraus begründest, welche Zugriffe parallel möglich sind und welche Grenzen bleiben.

Passend dazu