Computerarchitektur: Steuerung, Speicher & E/A-Systeme

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 8,53 KB

Steuereinheit: Aufbau & Funktionen

Die Steuereinheit (CU) ist verantwortlich für das Lesen, Verarbeiten und Speichern von Daten.

Alternativen umfassen fest verdrahtete und mikroprogrammierte Steuereinheiten.

Steuerleitungen und ihre Implementierung

  • Finite-State-Maschine (FSM): Eine FSM steuert den Datenfluss durch eine Abfolge von Zuständen. Eingänge bestimmen den nächsten Zustand, und die Zustände aktivieren die entsprechenden Steuersignale.
  • Verzögerungszellen: Hier sind die Steuerleitungen mit den Ausgängen verbunden, die den aktuellen Zustand der aktivierten Leitungen repräsentieren.
  • Sequenzer: Sie nutzen Timer und aktivieren die notwendigen Signale basierend auf den Anweisungen.

Mikroprogrammierte Steuereinheit

Anweisungen werden in elementare Operationen zerlegt und in Taktzyklen gruppiert.

Befehlssatz Mikroprogramm, Mikroprogramm-Set: Mikrocode.

Sie verwendet ein Steuer-ROM, wobei jedes Signal einem Bit im ROM-Wort zugeordnet ist. Für jeden Ausführungszyklus gibt es ein Wort im ROM, das die zu aktivierenden Signale als 1-Bit enthält. Ein Mikro-Zähler führt die Sequenzierung durch. Ein Mikrobefehl besteht aus zwei Feldern: einem Steuerfeld und einem Sequenzierungsfeld.

Nanoinstruktionen

nxm >= n log d + dxm

Speicherverwaltung: Virtueller Speicher

Seitenorientierter Virtueller Speicher

XXYY -> Virtuelle Seite XX, Offset YY -> Physikalische Seite & Offset

  1. Die CPU erzeugt einen Speicherzugriff (virtuelle Adresse).
  2. Die Seitentabelle wird abgefragt und der TLB (Translation Lookaside Buffer) aktualisiert.
  3. Ist die Übersetzung nicht in der Seitentabelle oder die Seite nicht im physikalischen Speicher, wird eine Ausnahme generiert, die das Betriebssystem veranlasst, die Seite in den physikalischen Speicher zu laden und die Seitentabelle zu aktualisieren.
  4. Der Zugriff wird wiederholt.

Seitenersetzungsstrategien

Die Seitenverwaltung erfolgt durch Software. Gängige Algorithmen sind LRU (Least Recently Used), FIFO (First-In, First-Out) und WS (Working Set).

Schreibstrategien

Ähnlich wie bei Festplatten, wo nicht jeder Bereich direkt zugänglich ist, ist eine Post-Schreib-Positionierung notwendig.

Seitengröße und Leistung

  • Wenn die Seite größer ist: Die Seitentabelle ist kleiner (weniger Seiten). Dies verbessert die Effizienz des Sekundärspeichers.
  • Wenn die Seite kleiner ist: Es entsteht weniger interne Fragmentierung. Es wird weniger Bandbreite des Sekundärspeichers benötigt.

Vorteile der Paging

Einfachere Verwaltung von Blöcken und deren Platzierung; schnellere Übersetzung.

Segmentierter Virtueller Speicher

WWZZ -> Virtuelles Segment WW, Offset ZZ -> Physikalische Adresse = Segmentbasis + Offset

Hierbei wird der physikalische Speicher nicht in Blöcke fester Größe, sondern in variable Blöcke, sogenannte Segmente, unterteilt.

Platzierung von Segmenten

Platzierung: Segmente passen möglicherweise nicht in jedes freie Loch.

Segmentidentifikation & Übersetzung

Identifikation: Analog zur Seitentabelle gibt es eine Segmenttabelle zur Übersetzung. Auch hier kann ein TLB verwendet werden.

Segmentersetzung

Ersetzung: Nicht jedes Segment kann einfach ersetzt werden (es muss passen).

Schreibstrategien

Schreiben: Post-Schreib-Positionierung ist aus den gleichen Gründen notwendig.

Vorteile der Segmentierung

Logische und keine physische Teilung. Keine interne Fragmentierung (aber externe Fragmentierung kann auftreten).

Eingabe-/Ausgabe-Systeme (I/O)

Das E/A-System ermöglicht der CPU die Kommunikation mit der Außenwelt.

CPU-Kommunikationsport: Definiert die Port-Adresse, Kommunikationsrichtung (Lesen/Schreiben) und Daten.

Peripheriegeräte verfügen über 3 Arten von Ports:

  • Konfigurationsport: Zur Einstellung von Parametern oder Modi.
  • Statusport: Informiert die CPU über den Status des Peripheriegeräts.
  • Datenport: Ermöglicht der CPU das Schreiben oder Lesen von Daten.

Design-Alternativen für E/A

Programmiergesteuerte E/A (Polling)

Die CPU steuert Peripheriegeräte über ein Programm und wartet auf deren Bedienung.

Ablauf:

  1. Die CPU sendet einen Befehl an das Peripheriegerät.
  2. Die CPU tritt in eine Warteschleife ein, um die Verarbeitung des Befehls durch das Peripheriegerät zu überwachen.
  3. Die CPU führt ein Überwachungsprogramm aus. Dies bedeutet, dass die CPU ständig das Peripheriegerät überwacht (Warteschleifen sind langsam). Die Priorität ist fest im Programm verankert.

Interrupt-gesteuerte E/A

1. Die CPU sendet einen Befehl und arbeitet an anderen Aufgaben, bis das Peripheriegerät den Befehl verarbeitet hat und die CPU unterbricht.

Die Interrupt-Leitung verbindet Peripheriegeräte in einer Daisy-Chain, die die Prioritätsreihenfolge festlegt. Bei mehreren Anfragen muss die höchste Priorität akzeptiert werden. Nach Abschluss einer CPU-Anweisung wird geprüft, ob ausstehende Anfragen vorliegen. Der Prozess endet mit:

  1. Beendigung des Geräts
  2. Identifikation des Peripheriegeräts
  3. Speichern des CPU-Status und der Register
  4. Ausführung der Interrupt-Service-Routine (ISR)
  5. Fortsetzung des normalen Betriebs
Identifikation von Peripheriegeräten
  • Polling: Die CPU prüft programmatisch, ob ein Interrupt aufgetreten ist.
  • Vektorisierte Interrupts: Wenn ein Peripheriegerät einen Interrupt auslöst, sendet es Daten, die es der CPU identifizieren. Mit diesen Informationen kann die CPU die zugehörige Interrupt-Routine finden. Die Adresse der Routine wird als Interrupt-Vektor bezeichnet: Vektor = M[Start_Tabelle + Vektor_Nr. * Größe]

Direkter Speicherzugriff (DMA)

Ziel ist es, dass Peripheriegeräte ganze Datenblöcke ohne CPU-Beteiligung übertragen können, indem sie direkten Speicherzugriff erhalten.

Prozess:

  1. Die CPU weist dem Peripheriegerät den Übertragungstyp und die Merkmale zu.
  2. Das Peripheriegerät bereitet sich auf die Übertragung vor.
  3. Das Peripheriegerät führt die Übertragung in den Speicher durch.
  4. Nach Abschluss informiert es die CPU.

DMA-Controller: Verwaltet die Übertragung über den Peripheriebus und priorisiert mehrere Peripheriegeräte.

E/A-Prozessoren

E/A-Prozessoren sind CPUs, die ausschließlich der E/A-Verwaltung gewidmet sind. Die Haupt-CPU gibt lediglich die auszuführende Operation an.

Geräte-Controller: Funktionen

Funktionen eines Geräte-Controllers: Kommunikation mit der CPU, Kommunikation mit der Peripherie, Datenpufferung, Zeitsteuerung und Kontrolle, Fehlererkennung.

Busse: Betriebsmodi

Busse: Betriebsmodus (zwei Phasen):

  • Adressierungsphase: Der Master sendet die Adresse und aktiviert Steuersignale.
  • Datenphase: Schreiben (Master sendet Daten) oder Lesen (Empfangen von Daten); die notwendigen Steuersignale werden aktiviert.
Bus-Arbitrierung

Steuerstrategie: Das Master-Element initiiert eine Übertragung (CPU oder DMA-Controller). Wenn mehrere Bus-Master vorhanden sind, ist eine Arbitrierung erforderlich.

Typen der Bus-Arbitrierung
  • Daisy-Chain: Die Anforderung des Masters und die Bus-Freigabe durchlaufen eine Daisy-Chain-Kette.
  • Separate Leitungen: Jeder Master hat eine eigene Anforderungsleitung zum Arbitrator, der die Prioritäten festlegt.
  • Verteilte Arbitrierung: Jeder Master erhält eine Bus-ID, und das Ergebnis der Arbitrierung ist für alle Teilnehmer sichtbar.
  • Kollisionserkennung: Geräte greifen direkt auf den Bus zu. Bei Erkennung einer Kollision warten sie eine zufällige Zeit und versuchen es erneut.

Aufgaben des Betriebssystems bei E/A

Aufgaben des Betriebssystems: Übersetzung logischer in physikalische Adressen, Geräteverwaltung, E/A-Operationen verwalten, Formate konvertieren und Fehlerbehandlung.

Verwandte Einträge: