Betriebssystembau (BSB)

Ähnliche Dokumente
Betriebssysteme (BS) VL 11 PC Bussysteme. Daniel Lohmann. Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme

Betriebssysteme (BS) VL 11 PC Bussysteme. Daniel Lohmann. Lehrstuhl für Informatik 4 Verteilte Systeme und Betriebssysteme

Betriebssysteme (BS) PC-Bussysteme. Überblick: Einordnung dieser VL. Agenda. Agenda. Rückblick. Rückblick. PCI Bus PCI aus Sicht des Betriebssystems

Betriebssysteme (BS) PC Bussysteme. Überblick. und deren Programmierung. PCI-basierte PC Systeme. alias Betriebssystembau (BSB)

Betriebssystembau (BSB)

Betriebssystembau (BSB)

Betriebssysteme (BS) PC-Bussysteme. Überblick: Vorlesungen. Agenda. Agenda. Anwendung(en) Hardware. Rückblick. Rückblick

Betriebssysteme (BS) Überblick: Einordnung dieser VL. Agenda. Agenda. VL 11 PC Bussysteme. Anwendung(en) Hardware. Rückblick. Rückblick.

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Hardware PCI-Bus. Dr.-Ing. Matthias Sand. Lehrstuhl für Informatik 3 (Rechnerarchitektur) Friedrich-Alexander-Universität Erlangen-Nürnberg

Betriebssystembau (BSB) Einführung

Fachbereich Medienproduktion

Aufgabe 1 Entwicklung einer Virtuellen Maschine

Betriebssystembau (BSB)

Busarchitekturen im PC. Roland Zenner, 03INF

Opteron und I/O. Toni Schmidbauer. 11. Mai Zusammenfassung. Eine kurze Beschreibung der AMD Opteron Architektur.

Virtueller Speicher und Memory Management

3. Rechnerarchitektur

Busse. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg WS 2008/2009

Hardware PCI, PCIe und Bus-Bridges

Busse. Dr.-Ing. Volkmar Sieh WS 2005/2006. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg

Institut für Technische Informatik, Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. PCI Express. Dirk Wischeropp. Dresden,

Einführung. Übungen zur Vorlesung Virtuelle Maschinen. Stefan Potyra. SoSe 2009

Ausgewählte Kapitel der praktischen Betriebssystemprogrammierung (AKBPII) PCCard: Architektur und Treiberdesign in JX

A20_PCI. ARCNET Controller Karte für PCI Bus. Gerätebeschreibung TK Systemtechnik GmbH Nr. TK F-1.2

5. PC-Architekturen und Bussysteme

Intel 80x86 symmetrische Multiprozessorsysteme. Eine Präsentation im Rahmen des Seminars Parallele Rechnerarchitekturen von Bernhard Witte

Rechnerstrukturen. 6. System. Systemebene. Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1. Prozessor.

Bootvorgang des DSM-Systems Systems Plurix

Mikroprozessortechnik Grundlagen 1

moderne Prozessoren Jan Krüger

Betriebssystembau. 3. Übung. Michael Engel Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

Rechnerorganisation. 1. Juni 201 KC Posch

Ressourcenübersicht Rack PC 840, Box PC 840

Computer: PC. Informationstechnik für Luft-und Raumfahrt Aerospace Information Technology

DOSEMU. Vortrag im Hauptseminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Matthias Felix FAU. 13.

Hypertransport. Parallele Rechnerarchitekturen. Patrice Weisemann

z/architektur von IBM

Mehrprozessorarchitekturen

PCI Express 3.0 Features and Highspeed Switching / Interconnect

Architektur und Organisation von Rechnersystemen

Embedded Linux für SoC Applikationen

Die Marvel, ein gedrosselter Supercomputer

Rechner Architektur. Martin Gülck

Exklusive Preisliste für Nur für Sie!! Ihr exone Systemhauspartner Friedrich Ritschel GmbH & Co. KG Herr Jacobsen edv@ritschelkg.

1 Architektur von Rechnern und Prozessoren Cache-Speicher (11) Ersetzungsstrategie

Übung zu Betriebssystembau (Ü BS)

Multiprozessoren. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

TecNews: Sandy Bridge

2 Rechnerarchitekturen

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

Arithmetische und Logische Einheit (ALU)

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Echtzeitbetriebssysteme

Kapitel 18. Externe Komponenten

PCI-to-PCI-Bridge mit sicherheitsrelevanten Eigenschaften

MOTHERBOARD INHALTSVERZEICHNIS: Deut. Hauptplatine

Betriebssysteme Vorstellung

Computer-Systeme. Teil 6: Motherboard

ZENTRALEINHEITEN GRUPPE

Konzepte von Betriebssystemkomponenten

SATA 2 und 3. Gruppe 8. Unser Weg ist Ihr Ziel. Der Spezialist für ADD-On Produkte. Tel Fax Fax

Ein- Ausgabeeinheiten

AUGE e.v. - Der Verein der Computeranwender Die i3/5/7-desktop-prozessoren von Intel im Einsatz

Hardware-Komponenten. DI (FH) Levent Öztürk

So funktionieren Computer

Neue Dual-CPU Server mit Intel Xeon Scalable Performance (Codename Purley/Skylake-SP)

4 Port USB 3.0 SuperSpeed PCI Express Schnittstellenkarte mit 4 5Gb/s Kanälen und UASP - SATA/LP4 Strom

i386 Interrupt-Deskriptortabelle (IDT)

Foliensatz. Theorie und Einsatz von Verbindungseinrichtungen in parallelen Rechnersystemen

Betriebssystembau (BSB)

Die Architektur des Sun UltraSPARC T2 Prozessors, Anwendungsszenarien

MAXDATA FAVORIT 1000 I

SENYO MINI PC 940MP. II Intel Core i3/i5/i7 Prozessor. II Intel HD-Grafik II 1 x 2,5" Sata. II 1x msata. II 4 GB DDR3L SO-DIMM, max.

Sonstiges Award Bios POST Codes ab 6.0

Komplettsysteme. Hersteller Art. Nr EAN/UPC

Einführung in die technische Informatik

Ihr exone Systemhauspartner Buxtenet Systemhaus GmbH & Co. KG

11. Die PC-Schnittstelle

CompactPCI Tualatin CPU CC7-JAZZ

Einfu hrende Betrachtung des USB und Mo glichkeiten der Integration in das Rainbow-Betriebssystem. Georg Gottleuber 23. Juni 2010 Verteilte Systeme

RST-Labor WS06/07 GPGPU. General Purpose Computation On Graphics Processing Units. (Grafikkarten-Programmierung) Von: Marc Blunck

Systemvoraussetzungen für Autodesk Revit Produkte (gemäß Angaben von Autodesk)

Übungen zu Grundlagen der Rechnerarchitektur und -organisation: Bonusaufgaben Übung 9 und Präsenzaufgaben Übung 10

Cache II. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

CPU HS-7165 BIOS Versionen V15.x

MAXDATA FORTUNE 1000 I

Produkt Spezifikation. Shuttle X-Series Barebone. Smarter Budget-Einstiegsrechner. Besondere Merkmale.

Staatlich geprüfter EDV-Führerschein

Echtzeit-Multitasking

Systemanforderungen Verlage & Akzidenzdruck

Echtzeit-Multitasking

2.2 Rechnerorganisation: Aufbau und Funktionsweise

5 Direct Memory Access

5 Direct Memory Access (2) 5 Direct Memory Access. 5 Direct Memory Access (3) 5 Direct Memory Access (4)

Systemanforderungen Verlage & Akzidenzdruck

Grundlagen der Spieleprogrammierung

Agenda. Einleitung Produkte vom VMware VMware Player VMware Server VMware ESX VMware Infrastrukture. Virtuelle Netzwerke

Intel x86 Bootstrapping

Transkript:

Betriebssystembau (BSB) PC-Bussysteme und deren Programmierung http://ess.cs.tu-dortmund.de/de/teaching/ws2012/bsb/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware Informatik 12, TU Dortmund

Überblick: Vorlesungen Struktur des OO-StuBS Betriebssystems: Anwendung(en) Gerätezugriff (Treiber) Kontrollflussabstraktion Unterbrechungssynchronisation Hardware Prozessverwaltung Unterbrechungsbehandlung Interprozesskommunikation Betriebssystementwicklung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 2

Überblick: Vorlesungen Struktur des OO-StuBS Betriebssystems: Anwendung(en) Gerätezugriff (Treiber) PC-Bussysteme Hardware Kontrollflussabstraktion Interprozesskommunikation Prozessverwaltung Unterbrechungsbehandlung Unterbrechungssynchronisation Betriebssystementwicklung Thema der heutigen Vorlesung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 3

Agenda Rückblick Bussysteme im PC PCI Bus PCI aus Sicht des Betriebssystems Initialisierung, PCI BIOS,... PCI Erweiterungen und Nachfolger AGP PCI-X PCI Express Hypertransport Zusammenfassung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 4

Agenda Rückblick Bussysteme im PC PCI Bus PCI aus Sicht des Betriebssystems Initialisierung, PCI BIOS,... PCI Erweiterungen und Nachfolger AGP PCI-X PCI Express Hypertransport Zusammenfassung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 5

Rückblick Bussysteme im PC seit es PCs gibt wurden die Anforderungen an den Systembus kontinuierlich größer: Bussystem PC ISA VLB MCA EISA... CPUs ab 8088 ab 286 ab 386 ab 386 ab 386 typischer Takt 4,7 MHz 8 MHz 25-50 MHz 10-25 Mhz 8,33 MHz Multi-Master nein nein ja (Version 2) ja ja Busbreite 8 Bit 16 Bit 32/64 Bit 32 Bit 32 Bit Adressraum 1 MB 16 MB 4 GB 4 GB 4 GB Transferrate 1 MB/s 4-5 MB/s 40/64 MB/s (Burst) 40 MB/s (Burst) 33 MB/s (Burst) 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 6

Rückblick Bussysteme im PC seit es PCs gibt wurden die Anforderungen an den Systembus kontinuierlich größer: Bussystem... PCI AGP PCI-X PCI Express Hypertransport CPUs ab 486 ab 486 ab P6 ab PIV (Xeon) ab Hammer (AMD) typischer Takt 33/66 MHz 66 MHz bis 133 MHz (variabel) (variabel) Multi-Master nein ja ja Punkt zu Punkt (max 1 Gerät) ja, verschiedene Topologien möglich Busbreite 32/64 Bit 32 Bit 32/64 bis zu 32 lanes bis zu 32 links Adressraum 4 GB/16 EB 4 GB 4 GB/16 EB 4 GB/16 EB 4 GB/16 EB Transferrate 132/528 MB/s (Burst) n x 266 MB/s (1x, 2x,...8x) 1064 MB/s (Burst) 2,5 GBit/s (Burst, pro lane) 1,6 GBit/s (Burst, pro link) 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 7

Agenda Rückblick Bussysteme im PC PCI Bus PCI aus Sicht des Betriebssystems Initialisierung, PCI BIOS,... PCI Erweiterungen und Nachfolger AGP PCI-X PCI Express Hypertransport Zusammenfassung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 8

PCI-basierte PC Systeme typische Architektur der ersten PCI Systeme: Die North entkoppelt Host- und PCI-Bus. PCI Einheiten und CPU können so parallel arbeiten. Data CPU Host Bus (Control, Address, Data) Addr Data Die PCI Verbindung zwischen North und South wurde später durch etwas schnelleres ersetzt. 2 nd nd level Cache Ctrl Tag Ctrl North Addr Ctrl PCI Bus (Control, Address/Data) Hauptspeicher Durch die s werden ISA und PCI transparent in einem System Audio IDE South ISA Bus ISA s PCI s 07.01.13 integriert. Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 9

PCI die wichtigsten Daten Version 1.0 der Spezifikation von Intel (1991) seit 1993 kommen die Spezifikationen von der PCI SIG 32/64 Bit, gemultiplexter Adress-/Datenbus im Burst Modus max. 132 MB/s bzw. 264 MB/s CPU-Typ unabhängig PCI gibt es auch in Sparc, Alpha, ARM und PowerPC Systemen 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) 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 10

Interaktion mit PCI Geräten Speicheradressraum 0xFFFFFFFF PCI Geräte... Gerätetreiber 0x00000000 I/O-Adressraum 0xFFFFFFFF (0xFFFF beim PC)... PCI Initialisierung 0x00000000 Konfigurationsadressraum 0:1.0 PCI BIOS 0:1.1 0:2.0 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 11

Der PCI Konfigurationsadressraum (1) beim PC wird der Konfigurationsadressraum indirekt über I/O-Ports angesprochen: ECD reserviert Bus Einheit Fkt. Register Typ Geräteauswahl 0xcf8 CONFIG_ADDRESS Index 64 Byte Header 32 Bit 192 Bytes frei verfügbar für PCI Einheit 0xcfc CONFIG_DATA 32 Bit Einblendung des Konfigurationsregisters im I/O Adressraum 256 Byte Konfigurationsraum 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 12

Der PCI Konfigurationsadressraum (2) Format des 64 Byte Headers: Die Einheiten-ID 0xffff bedeutet 'nicht vorhanden' Am Header Bit 7=1 kann man Multifunktionseinheiten erkennen BIST erlaubt einen Selbsttest des Geräts 31 16 15 0 0x00 Einheiten-ID Hersteller-ID 0x04 Status Befehl 0x08 Klassencode Revision 0x0c BIST Header Latenz CLG 0x10 0x14 0x18 0x1c 0x20 0x24 Basisadressregister 0x28 reserviert oder Card Bus CIS Pointer 0x2c 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. 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 13

PCI Initialisierung Bevor PCI Geräte durch ihre Gerätetreiber angesprochen werden können, muss Folgendes erfolgt sein: Konfigurierung der Basisadressregister der Geräte Konfigurierung der PCI-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 PCI Busstruktur schrittweise erforschen und initialisieren bereits belegte Busnummern und Adressbereiche dürfen auf keinen Fall doppelt vergeben werden! 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 14

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host zunächst ist nur bekannt, dass es eine Host- und Bus 0 gibt. Bus 0 Bus? Bus? Bus? Bus? 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 15

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host Bus 0 Die Geräte an Bus 0 werden gefunden. Die 1 wird initialisiert. Temporär wird die Subordinate Nummer auf 0xff gesetzt. 1 Bus 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 0xff Bus? Bus? Bus? 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 16

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host Bus 0 Die Geräte an Bus 1 werden gefunden. Die 2 wird initialisiert. Temporär wird die Subordinate Nummer auf 0xff gesetzt. 1 Bus 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 0xff 2 Primary Bus = 1 Secondary Bus = 2 Subordinate = 0xff Bus? Bus? Bus? 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 17

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host Bus 0 Die Geräte an Bus 2 werden gefunden. Da es keine weitere gibt, kann die Subordinate Nummer entgültig auf 2 gesetzt werden. 1 Bus 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 0xff 2 Primary Bus = 1 Secondary Bus = 2 Subordinate = 2 Bus? Bus 2 Bus? 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 18

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host Bus 0 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 0xff Es wird an Bus 1 mit 3 weiter gemacht. Der neue Bus bekommt die nächste Nummer (3). Die Subordinate Nummer wird temporär auf 0xff gesetzt. Bus 1 3 Primary Bus = 1 Secondary Bus = 3 Subordinate = 0xff 2 Primary Bus = 1 Secondary Bus = 2 Subordinate = 2 Bus 3 Bus 2 Bus? 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 19

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Host An Bus 3 gibt es eine weitere (4). Sie wird initialisiert und Bus 4 wird untersucht. Bus 0 1 Bus 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 0xff 3 Primary Bus = 1 Secondary Bus = 3 Subordinate = 0xff 2 Primary Bus = 1 Secondary Bus = 2 Subordinate = 2 Bus 3 Bus 2 4 Primary Bus = 3 Secondary Bus = 4 Subordinate = 0xff Bus 4 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 20

PCI Initialisierung unter Linux 1. Schritt: Suche nach Bussen Abgeschlossen! Ab jetzt kann der komplette Konfigurations- Adressraum angesprochen werden. Host Bus 0 1 Bus 1 Primary Bus = 0 Secondary Bus = 1 Subordinate = 4 Da keine weiteren Busse exisitieren, können die Subordinate Nummern jetzt endgültig gesetzt werden. 3 Primary Bus = 1 Secondary Bus = 3 Subordinate = 4 2 Primary Bus = 1 Secondary Bus = 2 Subordinate = 2 Bus 3 Bus 2 4 Primary Bus = 3 Secondary Bus = 4 Subordinate = 4 Bus 4 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 21

PCI Initialisierung unter Linux Algorithmus: Ausrichtung der aktuellen I/O und Speicheradressen auf die nächste 4K bzw. 1M 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 2. Schritt: Zuweisung der Adressen 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 22

Das PCI BIOS Überblick Festlegung durch PCI SIG (1993, Vorlage von Intel 1991) auf PCs normalerweise vorhanden, bei anderen Rechnertypen eher selten anzutreffen konfiguriert die PCI s und Geräte beim Systemstart minimal, falls ein Plug&Play Betriebssystem installiert ist sonst komplett nach dem Booten erlaubt das PCI BIOS... die Suche von PCI Geräten nach Geräteklasse oder Typ den Zugriff auf den Konfigurationsadressraum der Zugriff erfolgt über... den BIOS Interrupt 0x1a (Real Mode) das "BIOS32 Service Directory" (Protected Mode) 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 23

Das PCI BIOS im Protected Mode das BIOS32 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 "_32_" 0x04 4 Bytes physikalische Einstiegsadresse (für call) 0x08 1 Byte BIOS32 Version (0) 0x09 1 Byte Länge der Datenstruktur / 16 (1) 0x0a 1 Byte Prüfsumme 0x0b 5 Byte reserviert (0) mit dem BIOS32 Service kann man testen, ob ein PCI BIOS vorhanden ist. 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 24

Das PCI BIOS Funktionsumfang folgende Funktionen umfasst das PCI-BIOS laut Spezifikation: Funktionsname Argumente Resultate PCI BIOS Present Find PCI - ID, Vendor ID, Index ja/nein, letzte Busnr., Init.-Mechanismus Bus/Dev./Func. Nr. Find PCI Class Code Class Code, Index Bus/Dev./Func. Nr. Generate Special Cycle Bus Nr. - Get Interrupt Routing Opt. Pufferspeicher Routing Möglichkeiten Set PCI 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 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 25 -

Agenda Rückblick Bussysteme im PC PCI Bus PCI aus Sicht des Betriebssystems Initialisierung, PCI BIOS,... PCI Erweiterungen und Nachfolger AGP PCI-X PCI Express Hypertransport Zusammenfassung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 26

Accellerated Graphics Port Hardware AGP, 1997: schnelle 1:1 Anbindung einer (3D) Graphikkarte (theoretische) N x 266 MB/s Transferrate für AGP 1x, 2x, 4x,... AGP-Karte Texturdaten Graphik- Chip Z-Buffer Frame-B. Textur-B. CPU Chipset AGP PCI- Hauptspeicher PCI Bus (Control, Address/Data) Audio IDE PCI-ISA ISA s PCI s ISA Bus 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 27

AGP Initialisierung AGP Karte und präsentieren sich im System wie eine PCI-to-PCI und ein normales PCI Gerät volle Software-Kompatibilität spezielle AGP Register lassen sich über die Capability Liste im Konfigurationsraum ansprechen: Status 1 Befehl 0x04 Über die AGP Status- Bit 4 und Befehlsregister kann Capability Pointer 0x34 man hauptsächlich die AGP Version und Zeitparameter abfragen Major Minor next ID=0x02 und setzen. AGP Status Register Neben den AGP Erweiterungen AGP Command Register werden wird die... Die optionalen AGP Capability Liste z.b. optionale AGP Register Register sind leider auch für PCI Power je nach Kartentyp Management unterschiedlich weitere NULL ID verwendet. belegt. 07.01.13 Betriebssysteme: Capability Register 12 - PC-Bussysteme und deren Programmierung 28

PCI-X (extended) Erweiterung des PCI Busses (1999) von der PCI Special Interest Group (SIG) im PCI 3.0 Standard festgeschrieben erlaubt eine größere Bandbreite bei voller Kompatibilität der PCI-X Bus benutzt den Arbeitsmodus des langsamsten Geräts PCI-Kartentyp PCI (konventionell) PCI-X Bus-Frequenz 33 MHz 33 MHz 66 MHz 66 MHz 133 MHz Spannung 5 V 3,3 V/univ. 3,3 V/univ. 3,3 V/univ. 3,3 V/univ. Mainboard PCI 33 MHz 33 MHz 33 MHz 33 MHz 33 MHz 33 MHz PCI 66 MHz - 33 MHz 66 MHz 33/66 MHz 33/66 MHz PCI-X 66 MHz - 33 MHz 33/66 MHz 66 MHz 66 MHz PCI-X 100 MHz - 33 MHz 33/66 MHz 66 MHz 100 MHz PCI-X 133 MHz - 33 MHz 33/66 MHz 66 MHz 133 MHz neben der Takterhöhung gibt es auch Split Transactions zugänglich wiederum über die Capabilities Liste 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 29

PCI Express... hat technisch wenig mit dem PCI-Bus zu tun bidirektionale, serielle Punkt-zu-Punkt Verbindungen Bandbreite pro Lane je Richtung: 512 MB/s, 8GB/s bei x16! Ein typisches PC- System mit PCI- Express Geräten www.intel.com 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 30

HyperTransport (AMD-)CPU integriert Speichercontroller und L2-Cache standardisierte Kommunikation mit North CPU HyperTransport Hauptspeicher PCIe- Graphik Chipset AGP PCI- PCI Bus (Control, Address/Data) IDE PCI-ISA ISA PCI Audio s s 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 31

HyperTransport Versionen 1.0 (2001), 1.1, 2.0, 3.0 und 3.1 (2008) Konsortium: u.a. AMD, Apple, Cisco, NVIDIA, Sun bidirektional, Punkt-zu-Punkt, Links mit 2-32 Bit, Taktung bis zu 3,2 GHz (DDR) je nach Version und Konfiguration bis zu 25,6 GB/s bei aktuellen AMD-Prozessoren: HT 3.1 mit 6,4 GB/s (16 Bit Links) Gerätekonfiguration wie bei PCI weitere Anwendungen neben FSB-Ersatz CPU-Kommunikation in AMD-Multiprozessor-Systemen Chipsatz-Kommunikation (Northbridge Southbridge) Kommunikation mit Coprozessoren: HTX Konkurrenz schläft nicht Intel QuickPath Interconnect (seit Ende 2008, 24-32 GB/s) 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 32

HyperTransport in MP-Systemen NUMA (Non-Uniform Memory Architecture) Die CPUs (u.u. mit mehreren Cores) kommunizieren untereinander via HyperTransport. CPU 3 Hauptspeicher Hyper- Transport CPU 2 Hauptspeicher Globaler Adressraum: An andere CPUs Haupt- Haupt- angebundener speicher CPU 4 CPU 1 speicher Hauptspeicher kann adressiert werden, die Hyper- Latenz ist jedoch Transport höher. Chipset PCIe- AGP Graphik Das Betriebssystem PCI- muss Tasks geeignet verteilen. 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 33

Agenda Rückblick Bussysteme im PC PCI Bus PCI aus Sicht des Betriebssystems Initialisierung, PCI BIOS,... PCI Erweiterungen und Nachfolger AGP PCI-X PCI Express Hypertransport Zusammenfassung 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 34

Zusammenfassung im Bereich der PC Bussysteme dominiert seit Jahren PCI die neueren Entwicklungen (PCI Express) haben kaum noch Ähnlichkeit mit dem PCI Bus von 1991 serielle Punkt-zu-Punkt Verbindungen und Switches neben den physikalischen Eigenschaften definiert PCI 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 PCI kompatibel 07.01.13 Betriebssysteme: 12 - PC-Bussysteme und deren Programmierung 35