Einleitung Bus-Konfiguration Bus-Arbitrierung Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2005/2006
Einleitung Bus-Konfiguration Bus-Arbitrierung Übersicht 1 Einleitung 2 Bus-Konfiguration Einleitung Hersteller-Konfiguration Manuelle Konfiguration Programmierbare Konfiguration 3 Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Übersicht 1 Einleitung 2 Bus-Konfiguration Einleitung Hersteller-Konfiguration Manuelle Konfiguration Programmierbare Konfiguration 3 Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus, Bridge, I/O-Controller
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus, Bridge, I/O-Controller
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus, Bridge, I/O-Controller Viele verschiedene Aufgaben im Rechner. Z.B.: Verbindungen zwischen den Core-Komponenten (CPU, Speicher) Verbindungen zu den Peripherie-Bausteinen Verbindungen zu System-Health-Check-Komponenten Verbindungen von I/O-Controllern zu I/O-Geräten...
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus, Bridge, I/O-Controller Bridge leitet Daten von einem internen Bus zum nächsten internen Bus I/O-Controller leitet Daten von einem internen Bus zu einem I/O-Bus oder I/O-Gerät
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus-Typen Verschiedene Aufgaben bedeutet auch verschiedene Typen von n: High-Performance-Bus (teuer) Processor-Side-Bus DRAM Bus AGP Bus I/O-Bus (häufig gemäß Standard) PCI (viele verschiedene Steckkarten) ISA (viele verschiedene Steckkarten) USB (viele verschiedene externe I/O-Geräte) IDE (Festplatten, CDROM, CD-Brenner) SCSI (Festplatten, CDROM, CD-Brenner, Scanner) PS/2 (Mouse, Keyboard) Shugart-Bus (Floppy) einfacher Bus (billig) SMBus/I 2 C (System Management Bus)...
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus-Eigenschaften mögliche Anforderungen an einen Bus: High-Performance wenige Leitungen Zweidraht-Bus (z.b. I 2 C, System-Management-Bus) ein Medium (z.b. WLAN, Bluetooth) einfaches Bus-Protokoll (=> billige Komponenten) lange Leitungen RS232 Ethernet Multi-Master-Fähigkeit zentrale Arbitrierung (z.b. ISA-Bus) dezentrale Arbitrierung (z.b. Ethernet, I 2 C-Bus, CAN-Bus)
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus-Eigenschaften Entscheidend sind i.a. folgende Punkte: Einhalten von Standards Kosten, Platzbedarf benötigte Bandbreite
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus-Bandbreite Definition Bus-Bandbreite : Die Bandbreite eines s ist die Anzahl der Nutzdaten-Bits (oder -Bytes), die pro Zeiteinheit (maximal) von einer Komponente über den Bus zu einer anderen Komponente am Bus übertragen werden können.
Einleitung Bus-Konfiguration Bus-Arbitrierung Bus-Bandbreite Beispiele für Bus-Bandbreiten: RS232: 300 Bit/sec bis 110 KBits/sec (je nach Einstellung) I 2 C: 100 KBit/sec (Standard) bzw. 400 KBit/sec (Fast Mode) USB: 1,5 MBit/sec bzw. 12 MBit/sec (USB 1.*), 480 MBit/sec (USB 2.*) ISA: 16 MByte/sec PCI: 128 MByte pro Sekunde AGP 1x: 256 MByte/sec AGP 2x: 512 MByte/sec AGP 4x: 1 GByte/sec HyperTransport: 6,4 GByte/sec
Einleitung Bus-Konfiguration Bus-Arbitrierung Die Anforderungen High-Performance und wenige Leitungen schließen sich i.a. aus. Aber: bei höheren Taktfrequenzen, breiten Daten- und Adress- n und längeren Leitungen wird das synchrone Empfangen der Daten immer schwieriger; bei einzelnen Leitungen ist das kein Problem (Beispiel: SATA, PCI-Express) Adressen und Daten müssen i.a. nacheinander übertragen werden => sie können die gleichen Leitungen verwenden (z.b. PCI-Bus)
Einleitung Bus-Konfiguration Bus-Arbitrierung Burst-Mode Werden Adressen und Daten nacheinander über die gleichen Bus-Leitungen geschickt, ist eine weitere Verbesserung denkbar: Soll auf mehrere aufeinander folgende Datenwörter im Speicher bzw. I/O-Controller zugegriffen werden, braucht die (Start-) Adresse nur einmal übertragen zu werden (z.b. bei Cache-Memory-Zugriffen). Der Speicher bzw. der I/O-Controller liefert/empfängt dann solange mit jedem Bus-Takt das jeweils nächste Daten-Wort, bis eine neue Adresse signalisiert wird. Burst-Mode: vom Burst-Mode spricht man, wenn pro übertragener Adresse mehrere Datenwörter übertragen werden
Einleitung Bus-Konfiguration Bus-Arbitrierung Die Anforderungen High-Performance und lange Leitungen schließen sich i.a. aus.
Einleitung Bus-Konfiguration Bus-Arbitrierung Die Anforderungen High-Performance und lange Leitungen schließen sich i.a. aus. Aber: Differential-Leitungen sind sehr störsicher Übertragung durch Lichtleiter (kapazitätsarm)
Einleitung Bus-Konfiguration Bus-Arbitrierung Differential-Übertragung
Einleitung Bus-Konfiguration Bus-Arbitrierung Differential-Übertragung mit Fehlern
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Übersicht 1 Einleitung 2 Bus-Konfiguration Einleitung Hersteller-Konfiguration Manuelle Konfiguration Programmierbare Konfiguration 3 Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Bus-Konfiguration wenn es mehrere Komponenten an einem Bus gibt, muss jede eine eindeutige Adresse besitzen
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Bus-Konfiguration Hersteller-Konfiguration: Hersteller von Komponenten geben ihren Produkten eindeutige Nummern bestehend aus Hersteller-Nummer (vergeben von einem zentralen Komitee) fortlaufenden Nummer (vergeben vom Hersteller) manuelle Konfiguration: Käufer von Komponenten müssen den Komponenten Adressen geben automatische Konfiguration: Komponenten am Bus sind nach dem Einschalten/Reset zunächst in einem Disabled -Zustand; Komponente kann über spezielle Select -Signale konfiguriert werden
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Hersteller-Konfiguration Hersteller von Komponenten geben ihren Produkten eindeutige Nummern bestehend aus Hersteller-Nummer (vergeben von einem zentralen Komitee) fortlaufenden Nummer (vergeben vom Hersteller)
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Hersteller-Konfiguration Beispiel: Ethernet-Karten besitzen MAC -Adresse: 16 Bit Hersteller-Kennung 32 Bit fortlaufende Nummer
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Hersteller-Konfiguration alle Komponenten müssen speziell behandelt werden viele Bits als Adresse notwendig
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Manuelle Konfiguration jede an den Bus angeschlossene Komponente wird über Schalter manuell konfiguriert
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Manuelle Konfiguration Komponente benötigt Schalter ( Jumper oder Mäuseklavier ) und Widerstände
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Manuelle Konfiguration teuere Schalter notwendig störanfällige Mechanik großer Platzbedarf für Schalter oder nur wenige Adressen möglich gefährliche Fehlkonfigurationen möglich
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Programmierbare Konfiguration Jede Komponente hat extra Select -Signal zum Beschreiben des Adressregisters zum Lesen des Komponenten-Codes
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Programmierbare Konfiguration Select-Signale werden von zentraler Stelle aus generiert
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Programmierbare Konfiguration Extra-Hardware auf Komponenten notwendig Extra-Hardware z.b. auf Motherboard notwendig jeder Komponenten-Steckplatz benötigt zusätzliche Select-Leitung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Hersteller-Konfiguration Manuelle Konfiguration P Programmierbare Konfiguration Methode kann erweitert werden um mehrere per Select-Signal beschreibbare Register zum weiteren Konfigurieren der Komponente mehrere per Select-Signal lesbare Konstanten/Register zur genaueren Beschreibung der Komponente zum Zurücklesen eingestellter Konfigurationswerte entspricht im wesentlichen dem PCI-Config-Space
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Übersicht 1 Einleitung 2 Bus-Konfiguration Einleitung Hersteller-Konfiguration Manuelle Konfiguration Programmierbare Konfiguration 3 Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Bus-Arbitrierung es existieren u.u. mehrere Komponenten an einem Bus, die Datenübertragungen initiieren können ( Bus Master ) Bus-Master können z.b. sein: CPUs DMA-fähige Komponenten; z.b.: Platten-Controller Ethernet-Controller
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Bus-Arbitrierung wollen mehrere Komponenten an einem Bus gleichzeitig Daten übertragen, oder müssen mehrere existieren (teuer) der Zugriff muss serialisiert werden => Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Bus-Arbitrierung zwei Möglichkeiten für Arbitrierung: zentrale Arbitrierung dezentrale Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Zentrale Bus-Arbitrierung Bei der zentralen Bus-Arbitrierung existiert eine Komponente, die von anderen Komponenten Bus Requests entgegennimmt und maximal ein Bus Grant an eine Komponente meldet. Komponenten benutzen Bus nur, wenn Arbiter ihnen Bus Grant signalisiert hat.
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Zentrale Bus-Arbitrierung
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Zentrale Bus-Arbitrierung Bei zwei oder mehr gleichzeitigen Bus-Requests oder wird die Komponente mit höchster Priorität bevorzugt CPUs haben gewöhnlich geringste Priorität langsame I/O-Geräte haben gewöhnlich mittlere Priorität schnelle I/O-Geräte haben gewöhnlich höchste Priorität wird die Bus-Zuteilung Round-Robin durchgeführt keine Komponente muss unendlich lang warten
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Dezentrale Bus-Arbitrierung Bei der dezentralen Bus-Arbitrierung versucht jede Komponente zunächst am Bus zu horchen, ob er gerade in Benutzung ist. Wenn ja, wartet die Komponente, bis der Bus unbenutzt erscheint. Dann versucht die Komponente den Bus zu nutzen. Gesendete Daten werden gleichzeitig zurückgelesen. Beim ersten empfangenen Datum, dass nicht dem gesendeten entspricht, wird die Übertragung abgebrochen und Kollision gemeldet. Im Falle der Kollision, wird die Übertragung automatisch neu gestartet.
Einleitung Bus-Konfiguration Bus-Arbitrierung Einleitung Zentrale Bus-Arbitrierung Dezentrale Bus-Arbitrier Dezentrale Bus-Arbitrierung Beispiele: CAN-Bus Ethernet