Betriebssysteme (BS) Überblick: Einordnung dieser VL Anwendung(en) VL PC Bussysteme Daniel Lohmann Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme Gerätezugriff (Treiber) Kontrollflussabstraktion Unterbrechungssynchronisation Prozessverwaltung Unterbrechungsbehandlung Interprozesskommunikation Betriebssystementwicklung Friedrich-Alexander-Universität Erlangen Nürnberg PC-Bussysteme Hardware WS 0 9. Januar 0 dl Betriebssysteme (VL WS 0) PC-Bussysteme Agenda Agenda Bussysteme im PC Bussysteme im PC Bus Bus aus Sicht des Betriebssystems Initialisierung, BIOS,... aus Sicht des Betriebssystems Initialisierung, BIOS,... AGP AGP -X -X Express Express Hypertransport Hypertransport dl Betriebssysteme (VL WS 0) PC-Bussysteme 3 dl Betriebssysteme (VL WS 0) PC-Bussysteme 4
Bussysteme im PC Bussysteme im PC seit es PCs gibt wurden die Anforderungen an den Systembus kontinuierlich größer: seit es PCs gibt wurden die Anforderungen an den Systembus kontinuierlich größer: Bussystem PC ISA VLB MCA EISA... CPUs ab 8088 ab 86 ab 386 ab 386 ab 386 typischer Takt 4,7 MHz 8 MHz 5-50 MHz 0-5 Mhz 8,33 MHz Multi-Master nein nein ja (Version ) ja ja Bussystem... AGP -X Express Hypertransport CPUs ab 486 ab 486 ab P6 ab PIV (Xeon) ab Hammer (AMD) typischer Takt 33/66 MHz 66 MHz bis 33 MHz (variabel) (variabel) nein Multi-Master ja ja Punkt zu Punkt (max Gerät) ja, verschiedene Topologien möglich Busbreite 8 Bit 6 Bit 3/64 Bit 3 Bit 3 Bit Busbreite 3/64 Bit 3 Bit 3/64 bis zu 3 lanes bis zu 3 links Adressraum MB 6 MB 4 GB 4 GB 4 GB Adressraum 4 GB/6 EB 4 GB 4 GB/6 EB 4 GB/6 EB 4 GB/6 EB Transferrate MB/s 4-5 MB/s 40/64 MB/s 40 MB/s 33 MB/s Transferrate 3/58 MB/s n 66 MB/s (x, x,...8x) 064 MB/s,5 GBit/s,6 GBit/s (Burst, pro lane) (Burst, pro link) dl Betriebssysteme (VL WS 0) PC-Bussysteme 5 dl Betriebssysteme (VL WS 0) PC-Bussysteme 6 Agenda -basierte PC Systeme typische Architektur der ersten Systeme: Bussysteme im PC Bus aus Sicht des Betriebssystems Initialisierung, BIOS,... AGP -X Express Hypertransport Die North entkoppelt und Bus. Einheiten und CPU können so parallel arbeiten. Die Verbindung zwischen North und South wurde später durch etwas schnelleres ersetzt. Durch die s werden ISA und transparent in einem System integriert. Data CPU Bus (Control, Address, Data) Addr nd nd level Ctrl Cache Tag Ctrl North Bus (Control, Address/Data) Audio IDE South ISA Bus Addr Ctrl ISA s Data s dl Betriebssysteme (VL WS 0) PC-Bussysteme 7 dl Betriebssysteme (VL WS 0) PC-Bussysteme 8
die wichtigsten Daten Interaktion mit Geräten Version.0 der Spezifikation von Intel (99) seit 993 kommen die Spezifikationen von der SIG Speicheradressraum 0xFFFFFFFF Geräte 3/64 Bit, gemultiplexter Adress-/Datenbus... im Burst Modus max. 3 MB/s bzw. 64 MB/s CPU-Typ unabhängig gibt es auch in Sparc, Alpha, ARM und PowerPC Systemen Gerätetreiber 0x00000000 I/O-Adressraum 0xFFFFFFFF (0xFFFF beim PC) 4 Interruptleitungen (INTA-D) Skalierbarkeit durch s und Multifunktionseinheiten Multi-Master Fähigkeit (besser als der klassische DMA) Schema zur Erkennung und Konfigurierung von Geräten (Ressourcenzuweisung) Initialisierung BIOS 0x00000000... Konfigurationsadressraum 0:.0 0:. 0:.0 dl Betriebssysteme (VL WS 0) PC-Bussysteme 9 Der Konfigurationsadressraum () dl Betriebssysteme (VL WS 0) PC-Bussysteme 0 Der Konfigurationsadressraum () beim PC wird der Konfigurationsadressraum indirekt über I/O-Ports angesprochen: ECD reserviert 0xcf8 0xcfc Bus CONFIG_ADDRESS 3 Bit CONFIG_DATA 3 Bit E inheit Fkt. Einblendung des Konfigurationsregisters im I/O Adressraum Register Index Typ Geräteauswahl 64 Byte Header 9 Bytes frei verfügbar für Einheit 56 Byte Konfigurationsraum Format des 64 Byte Headers: Die Einheiten-ID 0xffff bedeutet 'nicht vorhanden' Am Header Bit 7= kann man Multifunktionseinheiten erkennen BIST erlaubt einen Selbsttest des Geräts 3 6 5 0 0x00 Einheiten-ID Hersteller-ID 0x04 Status Befehl 0x08 Klassencode Revision 0x0c BIST Header Latenz CLG 0x0 0x4 0x8 0xc 0x0 Basisadressregister 0x4 0x8 reserviert oder Card Bus CIS Pointer 0xc reserviert oder Subsystem Ids 0x30 Erweiterungs-ROM Basisadresse 0x34 reserviert oder Capabilities Pointer 0x38 reserviert 0x3c MaxLat MinGNT INT-Pin INT-Leit. Die Einheiten-ID und Revision identifizieren das Gerät eindeutig. Hersteller-ID und Klassencode sind Zusatzinformationen. Mit dem Befehl lässt sich das Gerät aktivieren und deaktivieren. Hier wird festgelegt, welche Adressbereiche die Einheit belegt. Gleichzeitig erfährt das System, wie groß der benötigte Adressraum ist. dl Betriebssysteme (VL WS 0) PC-Bussysteme dl Betriebssysteme (VL WS 0) PC-Bussysteme
Initialisierung Bevor Geräte durch ihre Gerätetreiber angesprochen werden können, muss folgendes erfolgt sein: Konfigurierung der Basisadressregister der Geräte nach Bussen zunächst ist nur bekannt, dass es eine - und gibt. Konfigurierung der -s Speicherfensterregister hängt von den Geräten unterhalb ab! Busnummern (Primary, Secondary, Subordinate) Subordinate ist die Nummer des letzten Busses unterhalb (downstream) der Das BIOS bzw. Betriebssystem muss die Busstruktur schrittweise erforschen und initialisieren bereits belegte Busnummern und Adressbereiche dürfen auf keinen Fall doppelt vergeben werden! dl Betriebssysteme (VL WS 0) PC-Bussysteme 3 dl Betriebssysteme (VL WS 0) PC-Bussysteme 4 nach Bussen Die Geräte an werden gefunden. Die wird initialisiert. Temporär wird die Subordinate Nummer auf 0xff gesetzt. nach Bussen Die Geräte an werden gefunden. Die wird initialisiert. Temporär wird die Subordinate Nummer auf 0xff gesetzt. Secondary Bus = dl Betriebssysteme (VL WS 0) PC-Bussysteme 5 dl Betriebssysteme (VL WS 0) PC-Bussysteme 6
nach Bussen Die Geräte an Bus werden gefunden. Da es keine weitere gibt, kann die Subordinate Nummer entgültig auf gesetzt werden. nach Bussen Es wird an mit 3 weiter gemacht. Der neue Bus bekommt die nächste Nummer (3). Die Subordinate Nummer wird temporär auf 0xff gesetzt. Secondary Bus = Subordinate = 3 Secondary Bus = 3 Secondary Bus = Subordinate = Bus Bus 3 Bus dl Betriebssysteme (VL WS 0) PC-Bussysteme 7 dl Betriebssysteme (VL WS 0) PC-Bussysteme 8 nach Bussen An Bus 3 gibt es eine weitere (4). Sie wird initialisiert und Bus 4 wird untersucht. nach Bussen Abgeschlossen! Ab jetzt kann der komplette Konfigurations- Adressraum angesprochen werden. Subordinate = 4 Da keine weiteren Busse exisitieren, können die Subordinate Nummern jetzt endgültig gesetzt werden. 3 Secondary Bus = 3 Secondary Bus = Subordinate = 3 Secondary Bus = 3 Subordinate = 4 Secondary Bus = Subordinate = Bus 3 Bus Bus 3 Bus 4 Primary Bus = 3 Secondary Bus = 4 Bus 4 4 Primary Bus = 3 Secondary Bus = 4 Subordinate = 4 Bus 4 dl Betriebssysteme (VL WS 0) PC-Bussysteme 9 dl Betriebssysteme (VL WS 0) PC-Bussysteme 0
Algorithmus:. Schritt: Ausrichtung der aktuellen I/O und Zuweisung der Speicheradressen auf die nächste Adressen 4K bzw. M Grenze für jedes Gerät des akt. Busses (in aufsteigender Reihenfolge der I/O Speicher-Anforderungen): Reservierung der I/O und Speicheradressen Aktualisierung der globalen I/O und Speicherzeiger Initialisierung und Aktivierung des Geräts rekursive Anwendung des Algorithmus für alle angeschlossenen s Ausrichtung der resultierenden Adressen (wie oben) Programmierung und Aktivierung der Das BIOS Überblick Festlegung durch SIG (993, Vorlage von Intel 99) auf PCs normalerweise vorhanden, bei anderen Rechnertypen eher selten anzutreffen konfiguriert die s und Geräte beim Systemstart minimal, falls ein "Plug&Play Betriebssystem" installiert ist sonst komplett nach dem Booten erlaubt das BIOS... die Suche von Geräten nach Geräteklasse oder Typ den Zugriff auf den Konfigurationsadressraum der Zugriff erfolgt über... den BIOS Interrupt 0xa (Real Mode) das "BIOS3 Service Directory" (Protected Mode) dl Betriebssysteme (VL WS 0) PC-Bussysteme Das BIOS im Protected Mode dl Betriebssysteme (VL WS 0) PC-Bussysteme Das BIOS Funktionsumfang das BIOS3 Service Directory erlaubt (im Prinzip) den Zugriff auf beliebige BIOS Komponenten es liegt irgendwo im Bereich von 0xE0000-0xFFFFF Offset Größe Beschreibung 0x00 4 Bytes Signatur "_3_" 0x04 4 Bytes physikalische Einstiegsadresse (für call) 0x08 Byte BIOS3 Version (0) 0x09 Byte Länge der Datenstruktur / 6 () 0x0a Byte Prüfsumme 0x0b 5 Byte reserviert (0) mit dem BIOS3 Service kann man testen, ob ein BIOS vorhanden ist. folgende Funktionen umfasst das -BIOS laut Spezifikation: Funktionsname Argumente Resultate BIOS Present - ja/nein, letzte Busnr., Init.-Mechanismus Find ID, Vendor ID, Index Bus/Dev./Func. Nr. Find Class Code Class Code, Index Bus/Dev./Func. Nr. Generate Special Cycle Bus Nr. - Get Interrupt Routing Opt. Pufferspeicher Routing Möglichkeiten Set Hardware Interrupt Bus Nr., Nr., Int.-Pin, Int.-Nr. - Read Configuration gelesenes Bus/Dev./Func./Reg. Nr. Byte/Word/DWord Byte/Word/DWord Write Configuration Byte/Word/DWord Bus/Dev./Func./Reg. Nr., zu schreibendes Byte/Word/DWord - dl Betriebssysteme (VL WS 0) PC-Bussysteme 3 dl Betriebssysteme (VL WS 0) PC-Bussysteme 4
Agenda Bussysteme im PC Bus aus Sicht des Betriebssystems Initialisierung, BIOS,... AGP -X Express Hypertransport dl Betriebssysteme (VL WS 0) PC-Bussysteme 5 AGP Initialisierung AGP Hardware Accellerated Graphics Port (997) schnelle : Anbindung einer (3D) Graphikkarte (theoretische) N x 66 MB/s Transferrate für AGP x, x, 4x,... AGP-Karte Texturdaten Graphik- Chip Z-Buffer Frame-B. Textur-B. CPU Chipset AGP - Bus (Control, Address/Data) Audio IDE -ISA ISA Bus ISA s s dl Betriebssysteme (VL WS 0) PC-Bussysteme 6 -X (extended) AGP Karte und präsentieren sich im System wie eine -to- und ein normales Gerät volle Software-Kompatibilität spezielle AGP Register lassen sich über die Capability Liste im Konfigurationsraum ansprechen: Neben den AGP Erweiterungen werden wird die Capability Liste z.b. auch für Power Management verwendet. Status Bit 4 Capability Pointer Befehl Major Minor next ID=0x0 AGP Status Register AGP Command Register... optionale AGP Register weitere Capability Register NULL dl Betriebssysteme (VL WS 0) PC-Bussysteme 7 ID 0x04 0x34 Über die AGP Status und Befehlsregister kann man hauptsächlich die AGP Version und Zeitparameter abfragen und setzen. Die optionalen AGP Register sind leider je je nach Kartentyp unterschiedlich belegt. Erweiterung des Busses (999) von der Special Interest Group (SIG) im 3.0 Standard festgeschrieben erlaubt eine größere Bandbreite bei voller Kompatibilität der -X Bus benutzt den Arbeitsmodus des langsamsten Geräts -Kartentyp Bus-Frequenz Spannung (konventionell) -X 33 MHz 33 MHz 66 MHz 66 MHz 33 MHz 5 V 3,3 V/univ. 3,3 V/univ. 3,3 V/univ. 3,3 V/univ. Mainboard 33 MHz 33 MHz 33 MHz 33 MHz 33 MHz 33 MHz 66 MHz - 33 MHz 66 MHz 33/66 MHz 33/66 MHz -X 66 MHz - 33 MHz 33/66 MHz 66 MHz 66 MHz -X 00 MHz - 33 MHz 33/66 MHz 66 MHz 00 MHz -X 33 MHz - 33 MHz 33/66 MHz 66 MHz 33 MHz neben der Takterhöhung gibt es auch Split Transactions zugänglich wiederum über die Capabilities Liste dl Betriebssysteme (VL WS 0) PC-Bussysteme 8
Express HyperTransport... hat technisch wenig mit dem Bus zu tun bidirektionale, serielle Punkt-zu-Punkt Verbindungen Bandbreite pro Lane je Richtung: 5 MB/s, 8GB/s bei x6! ein typisches PC System mit Express Geräten (i95) (AMD-)CPU integriert Speichercontroller und L-Cache standardisierte Kommunikation mit North : HyperTransport CPU HyperTransport Chipset AGP - Bus (Control, Address/Data) www.intel.com dl Betriebssysteme (VL WS 0) PC-Bussysteme 9 HyperTransport Versionen.0 (00),.,.0 und 3.0 (006) Konsortium: u.a. AMD, Apple, Cisco, NVIDIA, Sun bidirektional, Punkt-zu-Punkt, Links mit -3 Bit, Taktung bis zu,6ghz (DDR) je nach Version und Konfiguration bis zu 0,8 GB/s bei aktuellen AMD Sockel-939-Prozessoren: HT.0 mit 4GB/s Gerätekonfiguration wie bei weitere Anwendungen neben FSB-Ersatz CPU-Kommunikation in AMD-Multiprozessor-Systemen Chipsatz-Kommunikation (Northbridge Southbridge) Kommunikation mit Coprozessoren: HTX Inzwischen: Konkurrenz von Intel verfügbar Intel QuickPath Interconnect (QPI, seit Ende 008 (i7), 4-3 GB/s) Audio IDE -ISA ISA s s dl Betriebssysteme (VL WS 0) PC-Bussysteme 30 HyperTransport in MP-Systemen NUMA (Non-Uniform Memory Architecture) Die CPUs (u.u. mit mehreren Cores) kommunizieren untereinander via HyperTransport. Globaler Adressraum: An andere CPUs angebundener kann adressiert werden, die Latenz ist jedoch höher. Das Betriebssystem muss Tasks geeignet verteilen. CPU 3 CPU 4 Hyper- Transport CPU CPU Chipset AGP - e- Graphik Hyper- Transport e- Graphik dl Betriebssysteme (VL WS 0) PC-Bussysteme 3 dl Betriebssysteme (VL WS 0) PC-Bussysteme 3
Agenda im Bereich der PC Bussysteme dominiert seit Jahren Bussysteme im PC Bus aus Sicht des Betriebssystems Initialisierung, BIOS,... AGP -X Express Hypertransport die neuesten Entwicklungen ( Express) haben kaum noch Ähnlichkeit mit dem Bus von 99 serielle Punkt-zu-Punkt Verbindungen und Switches neben den physikalischen Eigenschaften definiert auch ein Programmiermodell I/O- und Speicheradressräume Konfigurierung und Initialisierung über Konfigurationsadressraum Bus-Hierarchien auch die neuesten Entwicklungen sind auf der Ebene des Programmiermodells zu kompatibel dl Betriebssysteme (VL WS 0) PC-Bussysteme 33 dl Betriebssysteme (VL WS 0) PC-Bussysteme 34