Prozessoren, E/A-Kanäle und Bus-Systeme: Grundlagen und Architekturen

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 14,38 KB

Prozessoren und E/A-Kanäle

Selektives Leeren des Caches vor einem Schreibvorgang (Cache-Flushing) ist notwendig, um die Konsistenz des Inhalts sicherzustellen.

Prozessoren und E/A: Kanäle (I/O Channels)

Der Prozessor E/A oder Kanal ist eine Erweiterung des DMA-Begriffs, um Störungen der CPU durch E/A-Operationen zu reduzieren. Ursprünglich in großen Mainframe-Systemen verwendet, findet er Anwendung in Servern und verteilten Dateisystemen. Diese spezialisierten Prozessoren führen E/A-Operationen aus, die im Hauptspeicher (RAM) abgelegt sind.

Arten von Kanälen

  1. Selektor-Kanal: Kontrolliert mehrere Geräte schnell. Er kann Daten nur von einem Gerät zur Zeit zum Kanal übertragen oder von ihm empfangen.
  2. Multiplexer-Kanal: Kann E/A-Operationen von mehreren langsamen Geräten gleichzeitig verwalten. Bei sehr langsamen Geräten akzeptiert oder überträgt der Multiplexer Bytes oder Zeichen so schnell wie möglich von verschiedenen Geräten, um diese zu beschleunigen. Er bündelt Daten von verschiedenen Geräten.

Bus-Systeme und Interkonnektivität

Einleitung: Die Notwendigkeit der Bus-Struktur

Die verschiedenen funktionellen Einheiten eines Computers (Prozessor, Speicher, E/A) müssen kommunizieren können. Ein Bus ist ein gemeinsamer Kommunikationskanal, der mehrere Subsysteme über eine Reihe von Leitungen verbindet. Jede Leitung überträgt ein einzelnes Bit an Informationen gleichzeitig.

  • Vorteil: Flexibilität und geringe Kosten.
  • Nachteil: Stellt einen Flaschenhals dar und begrenzt die maximale Systemproduktivität.

Die Herausforderung beim Entwurf eines Bussystems besteht darin, den Kommunikationsbedarf zu decken und eine große Anzahl von E/A-Geräten anzuschließen.

Wünschenswerte Eigenschaften von Bussen

  • Heterogenität
  • Skalierbarkeit
  • Geringe Latenz
  • Hohe Bandbreite

Hauptproblem beim Bus-Design: Geschwindigkeit

Die maximale Leistung wird stark durch physikalische Faktoren (Länge der Leitungen und Anzahl der angeschlossenen Geräte) sowie durch die Notwendigkeit, eine Vielzahl von Geräten mit sehr unterschiedlichen Latenzzeiten und Bandbreiten zu unterstützen, begrenzt. Zunehmend hohe Übertragungsgeschwindigkeiten führen zu einer Verschiebung hin zu parallelen Interconnects und High-Speed-Switches.

Struktur eines Busses

Die Leitungen eines Busses können in drei funktionelle Gruppen unterteilt werden:

  1. Datenleitungen (D): Bilden den Datenpfad zwischen den Systemmodulen. Die Anzahl der Datenleitungen bestimmt die maximale Anzahl von Bits, die gleichzeitig übertragen werden können.
  2. Adressleitungen (A): Dienen zur Benennung der Quelle oder des Ziels der Datenübertragung. Die Breite des Adressbusses bestimmt den maximal adressierbaren Speicher (und E/A-Geräte).
  3. Steuerleitungen (Control): Dienen zur Verwaltung des Zugriffs und der Nutzung der Leitungen, zur Richtungsangabe, zur Signalisierung von Anfragen und Bestätigungen sowie zur Angabe des Typs der durch die Datenleitungen geführten Informationen.

Typische Steuerleitungen

  • Speicher lesen (Memory Read)
  • Speicher schreiben (Memory Write)
  • E/A schreiben (I/O Write)
  • E/A lesen (I/O Read)
  • Übertragungsbestätigung (ACK Transfer)
  • Busanforderung (Bus Request)
  • Buszuteilung (Bus Grant)
  • Interrupt-Anforderung (Interrupt Request)
  • Fehler erkannt (Error Detected)
  • Takt (Clock)
  • Reset (Start)

Einstufung nach elektrischen Eigenschaften

Busse können einseitig (ein Sender, mehrere Empfänger), unidirektional mit einem einzigen Empfänger oder bidirektional sein.

Grundlegende Verwendung des Busses

Wenn ein Modul Daten an ein anderes senden muss:

  1. Anforderung und Erlangung der Busnutzung.
  2. Datenübertragung über den Bus.

Wenn ein Modul Daten von einem anderen Modul anfordern muss:

  1. Anforderung und Erlangung der Busnutzung.
  2. Übermittlung der Anforderung an das Zielmodul über die Steuerleitungen.
  3. Warten auf die Datenübertragung durch das Zielmodul.

Bus-Hierarchien

Typische Busse sind: Prozessor-Speicher-Bus, E/A-Bus oder Backplane/Mezzanine-Bus (z. B. PCI). Die Vorteile nehmen mit der Anzahl der angeschlossenen Geräte ab (Flaschenhals). Die Lösung sind hierarchische Konfigurationen mit mehreren Bussen.

Design eines Busses

Bus-Design-Parameter

  • Bustyp: Dediziert oder multiplexiert.
  • Busbreite: Adress- und Datenbreite.
  • Timing: Synchron oder asynchron.
  • Anzahl der Bus-Master: Einer oder mehrere (Option: Arbitrationspaket).
  • Arbitrierungsverfahren: Zentralisiert oder verteilt.
  • Datentransferart: Lesen, Schreiben, Read-Modify-Write, Read-After-Write, Blocktransfer (Bus-Transaktionen sind in Anfragen und Antworten unterteilt).

Bus-Timing

1. Synchroner Bus

Verwendet Taktsignale in den Steuerleitungen. Das Kommunikationsprotokoll ist fix und wird durch das Taktsignal bestimmt.

  • Vorteile: Kann bei hohen Geschwindigkeiten arbeiten und mit einem sequenziellen System umgesetzt werden.
  • Nachteile: Weniger geeignet für Geräte mit großen Geschwindigkeitsunterschieden. Das Design erfordert Sorgfalt (Clock-Bias-Problem). Speicherbusse sind typischerweise synchron.
2. Asynchroner Bus

Kein Taktgeber. Die Datenübertragung wird durch ein Handshake-Protokoll zwischen Sender und Empfänger abgestimmt (ein Ereignis löst das nächste aus).

  • Vorteile: Ermöglicht den Anschluss von Geräten mit unterschiedlichen Geschwindigkeiten. Skaliert besser mit der Anzahl der Geräte und technologischen Änderungen. Keine Probleme mit dem Clock Bias. Ermöglicht längere Distanzen.
  • Nachteile: Langsamer aufgrund des Overheads für die Synchronisierung. Erfordert zusätzliche Steuerleitungen für das Protokoll. Es ist schwierig vorherzusagen, wann ein Übergang stattfindet. E/A-Busse sind typischerweise asynchron.

Arbitrierungsregelung

Die Verwaltung der Nutzung durch mehrere Bus-Master berücksichtigt zwei Faktoren: Priorität und Fairness.

Arbitrierungstechniken

  1. Seriell: Die Bus-Zuteilungslinie umfasst Geräte von höchster zu niedrigster Priorität. Die Prioritäten sind durch die Position des Geräts am Bus festgelegt.
  2. Zentralisiert Parallel: Mehrere Leitungen werden für Anfragen von verschiedenen Geräten verwendet. Ein zentraler Arbitrator wählt aus, welches angefragte Gerät den Bus erhält, und informiert dieses.
  3. Verteilt Selbstauswahl: Mehrere Leitungen werden für Busanfragen verwendet, aber jedes Gerät bestimmt selbstständig, ob es die höchste Priorität hat, ohne einen zentralen Arbitrator.
  4. Verteilt mit Kollisionserkennung: Jedes Gerät fordert unabhängig den Bus an. Bei gleichzeitigen Zugriffen kommt es zur Kollision. Ein Muster erkennt die Kollision und bestimmt den Bus-Master.

Arten der Datenübertragung

  • Schreiben (Multiplexing): Gleiche Anzahl von Leitungen für Adresse und Daten. Zyklus 1: Adressierung, Zyklus 2: Datenübertragung.
  • Lesen (Multiplexing): Zyklus 1: Adressierung, Wartezeit, Zyklus 2: Datenübertragung.
  • Read-Modify-Write: Adressierung, Warten, Daten lesen, Daten schreiben.
  • Read-After-Write: Adressierung, Daten schreiben, Warten, Daten lesen.
  • Blockdatentransfer: Adressierung, Daten, Daten, Daten...
  • Schreiben (ohne Multiplexing): Adresse und Daten werden im gleichen Zyklus, aber auf verschiedenen Busleitungen gesendet.
  • Lesen (ohne Multiplexing): Ähnlich dem Schreiben, dauert aber länger als die Schreibgeschwindigkeit.

Design-Entscheidungen (Option - Hohe Leistung - Niedrige Kosten)

ParameterHohe LeistungNiedrige Kosten
BusbreiteUnabhängige Adress- und DatenleitungenMultiplexierter Bus
TransfergrößeBlocktransfer mehrerer WörterTransfer eines einzelnen Wortes
Bus-MasterMehrere Master (erfordert Arbitrierung)Einziger Master
TransaktionsstartErhöhte Bandbreite (Multi-Master-Bedarf)Kontinuierliche Verbindung (weniger Latenz)
TimingSynchronAsynchron

Beispiele von Standard-Bussen

ISA-Bus (Veraltet)

Entwickelt von IBM für den PC-XT (XT-Bus) und später für den PC-AT (AT-Bus). Er wurde zum De-facto-Standard.

  • Spezifikation: 8 Bit bei 4,77 MHz (XT-Bus) / 16 Bit bei 8 MHz (AT-Bus, 5 bis 8 MB/s).

IBM versuchte, den ISA-Bus mit dem MCA-Bus (32 Bit, 10 MHz, bis zu 40 MB/s) zu ersetzen, scheiterte jedoch an der Abwärtskompatibilität. Eine erfolgreichere Alternative war der EISA-Bus (32 Bit, schnell, 33 MB/s), der ISA unterstützte und von Wettbewerbern entwickelt wurde, um mit MCA zu konkurrieren.

Der Flaschenhals des Systembusses führte zur Entwicklung neuer Bus-Architekturen, die eine direkte Schnittstelle zum Prozessor ermöglichen:

  • a) VESA Local Bus: Bietet direkten Zugriff auf den Speicher mit Prozessorgeschwindigkeit. Starke Abhängigkeit von der physikalischen Ebene des Prozessors.
  • b) PCI (Peripheral Component Interconnect): Entwickelt von Intel. Entkoppelt die CPU und ermöglicht gleichzeitig den Speicherzugriff.

PCI-Bus

Ein 64-Bit-Bus (oft als 32-Bit-Bus implementiert) mit Taktraten von 33 oder 66 MHz. Er ist unabhängig von der Prozessorarchitektur, hat ein einfaches und kostengünstiges Design und ermöglicht die Verbindung weiterer Busse (wie ISA). Er bietet Verbesserungen gegenüber dem traditionellen ISA-Bus, wie die gemeinsame Nutzung von Interrupt-Anforderungsleitungen (IRQ) und erhebliche Verbesserungen beim Bus-Mastering (ermöglicht DMA-Einfügungen in E/A-Modulen).

Nach PCI folgten PCI-X, AGP und PCI Express.

PCI-X

Entwickelt, um die Leistung auf bis zu 1 GB/s zu steigern, um den Anforderungen von Geräten mit hohem Bandbreitenbedarf (Gigabit Ethernet, Glasfaser, Cluster-Mikroprozessoren) gerecht zu werden. Er ist mit PCI kompatibel.

Externe Schnittstellen

Schnittstellen für Peripheriegeräte

Die externe Schnittstelle dient der Kommunikation von E/A-Modulen mit externen Peripheriegeräten.

  • Parallele vs. Serielle Schnittstelle
  • Punkt-zu-Punkt vs. Mehrpunktverbindung (Externe Links sind typischerweise Punkt-zu-Punkt wie Tastatur, oder Mehrpunkt wie SCSI, USB, FireWire).

SCSI-Schnittstelle

Ursprünglich für PCs entwickelt, wird SCSI heute häufig in Servern eingesetzt. Es begann als parallele Schnittstelle mit 8 Leitungen und einer Datenrate von 5 MB/s. Spätere Versionen erlaubten Breiten von 8, 16 und bis zu 32 Leitungen und erhöhten die Anzahl der adressierbaren Geräte (Fast Wide SCSI, Ultra-SCSI). Es unterstützt synchrone und asynchrone Übertragungsmodi. Obwohl es eine Busstruktur verwendet, wird es oft als Verbindung für gebundene Geräte betrachtet.

Neue Standards für externe Schnittstellen

Die traditionelle serielle Schnittstelle wurde für langsame Peripheriegeräte verwendet. Der Parallelport diente schnelleren Geräten, war aber komplexer. Die Industrie hat neue, schnelle serielle Schnittstellen entwickelt, die Vorteile in Geschwindigkeit und Kosten gegenüber älteren parallelen und seriellen Schnittstellen bieten. Diese neuen Standards zeichnen sich durch einfache Anschlussmöglichkeiten, automatische Geräteerkennung (Plug and Play), Hot-Plug-Fähigkeit und robuste Verbindungen aus.

A) USB (Universal Serial Bus)

  • Verbindet sich über einen Root-Hub mit dem Hauptbus.
  • Ermöglicht eine sternförmige Verzweigung über Hubs für bis zu 127 Geräte.
  • Maximale Kabellänge von 5 Metern pro Segment.
  • Geschwindigkeiten: 1,5 Mb/s, 12 Mbit/s, 480 Mbit/s (USB 2.0).

B) FireWire (IEEE 1394)

  • Übertragungsraten bis zu 400 MB/s, später bis zu 800 MB/s.
  • Bis zu 63 Geräte an einem einzigen Bus.
  • Höhere Brutto-Datenrate als USB (besonders für Speicher- und Videogeräte).
  • Ermöglicht Peer-to-Peer-Kommunikation ohne Host-Beteiligung.
  • Bis zu 100 Meter pro Segment.

AGP (Accelerated Graphics Port)

Schnittstelle, die 1996 von Intel entwickelt wurde, basierend auf PCI, um den hohen Bandbreitenbedarf von Grafikprozessoren zu decken. Sie bietet einen dedizierten 32-Bit-Kanal mit 66 MHz für den direkten Zugriff des Grafikprozessors auf den Hauptspeicher (nicht als geteiltes Medium). Das Design ist Teil der PCI 2.1-Spezifikation und konzentriert sich auf Grafikhardware. Frühere Architekturen erlaubten nur eine Verbindung (AGP 1.0 und 2.0), spätere Versionen hoben diese Einschränkung auf (AGP 3.0).

PCI Express (PCIe)

Konzipiert als Ersatz für PCI und AGP. Basiert auf seriellen Punkt-zu-Punkt-Kanälen (anstelle eines geteilten Mediums) und ermöglicht Full Duplex. PCIe bietet eine schnelle Schnittstelle für E/A-Geräte. Die Konstruktion basiert auf einem System serieller Kommunikation mit verschiedenen Links, die als Kanäle bezeichnet werden. Dieses Netzwerk serieller Kanäle ermöglicht dynamisch geschaltete Kommunikation in mehreren Richtungen und nähert sich der Umgebung eines traditionellen Busses an.

  • Man kann Kanäle bündeln, um die Bandbreite zu erhöhen.
  • Kapazität: Ein Kanal bietet fast die doppelte Leistung eines PCI-Kanals; eine 4-Kanal-Konfiguration entspricht PCI-X, und 8 Kanäle entsprechen AGP.
  • Bisher ersetzen seine Funktionen und Geschwindigkeit nicht den Speicherbus oder die Kommunikation zwischen Prozessoren.

Verwandte Einträge: