Busarchitekturen im PC



Ähnliche Dokumente
5. PC-Architekturen und Bussysteme

Schnittstellen des Computers

Netzwerk einrichten unter Windows

Busarchitekturen im PC. Roland Zenner, 03INF

5. Digitale Schnittstellen und Vernetzung im Überblick

Staatlich geprüfter EDV-Führerschein

Anleitung zur Nutzung des SharePort Utility

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Manchester Codierung sowie Differenzielle Manchester Codierung

1 Aufgaben zu Wie funktioniert ein Computer?

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

USB. Autor Valentin Lätt Datum Thema USB Version V 1.0

EasyWk DAS Schwimmwettkampfprogramm

Konfiguration VLAN's. Konfiguration VLAN's IACBOX.COM. Version Deutsch

Die Komponenten in Ihrem Computer

Fragen und Antworten. Kabel Internet

USB 2.0 PCI-Karte mit NEC CHIPSATZ

FrontDoor/Monitor mehr sehen von FrontDoor

Installation eines BM-33k6/ISDN pro USB an einem Windows XP-Rechner

Facharbeit Informatik. Thema:

USB 10/100 FAST ETHERNET. Benutzerhandbuch

IRF2000 Application Note Lösung von IP-Adresskonflikten bei zwei identischen Netzwerken

WLAN Konfiguration. Michael Bukreus Seite 1

BNC-, RJ45-, und Glasfaser- Netzwerkkarten

Fachbereich Medienproduktion

Kommunikation mehrerer PCs über Hubs

EchoLink und Windows XP SP2

DRF-A3 IEEE 1394 FireWire Adapter Schnellinstallationsleitfaden

Anleitung zur Installation des Printservers

Firewalls für Lexware Info Service konfigurieren

USB 2.0 ZU IDE/SATA ADAPTER-KABEL

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Rechner Architektur. Martin Gülck

Handbuch PCI Treiber-Installation

Computergruppe Heimerdingen Basiskurs. Karlheinz Wanja & Richard Zeitler

Handbuch B4000+ Preset Manager

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

T est of 1GBit/s Fiber optical communication interfaces based on FlexRIO R Series

Mit lebenslanger StarTech.com-Garantie sowie lebenslanger kostenloser technischer Unterstützung.

Firewalls für Lexware Info Service konfigurieren

Aufrufen des Konfigurators über eine ISDN- Verbindung zur T-Eumex 628. Eine neue ISDN-Verbindung unter Windows XP einrichten

serielle Schnittstelle/USB-Schnittstelle für das Velbus-System

Nutzung von GiS BasePac 8 im Netzwerk

Tutorial -

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

Klicken Sie mit einem Doppelklick auf das Symbol Arbeitsplatz auf Ihrem Desktop. Es öffnet sich das folgende Fenster.

QUICK INSTALLATION GUIDE

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Man unterscheidet zwischen LAN (Local Area Network) und WAN (Wide Area Network), auch Internet genannt.

ANYWHERE Zugriff von externen Arbeitsplätzen

1 Registrieren Sie sich als Benutzer auf dem Televes. 2 Sobald ein Konto erstellt ist, können Sie auf das Portal

M a i l C r e d i t. \\Burt\user\Soutschek\FP\Technik\Frankiermaschinen\00_PC Software\MailCredit\Anleitung MailCredit Installation.

8. Bintec Router Redundancy Protocol (BRRP) 8.1 Einleitung

LPT1 Anschluss mit PCMCIA Karte

Enigmail Konfiguration

Rechnernetzwerke. Rechnernetze sind Verbünde von einzelnen Computern, die Daten auf elektronischem Weg miteinander austauschen können.

VIA USB 2.0. Version 1.0

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

Printserver und die Einrichtung von TCP/IP oder LPR Ports

Multicast Security Group Key Management Architecture (MSEC GKMArch)

HYPERCOM MEDHYBRID EINRICHTUNG UNTER CHREMASOFT

DC-FW400 SE. 3+1 Port IEEE 1394 FireWire TM PCI-Controller

Windows 10 > Fragen über Fragen

Übersicht. Was ist FTP? Übertragungsmodi. Sicherheit. Öffentliche FTP-Server. FTP-Software

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Guide DynDNS und Portforwarding

Installation der SAS Foundation Software auf Windows

In 15 einfachen Schritten zum mobilen PC mit Paragon Drive Copy 10 und Microsoft Windows Virtual PC

HYPERCOM MEDHYBRID EINRICHTUNG UNTER DAMPSOFT

Kameras. und ihre Schnittstellen im. Vergleich! Dipl.-Inf. Michael Beising Kameras und ihre Schnittstellen 1

NEC USB 2.0. Version 1.0

easyident Türöffner easyident Türöffner Art. Nr. FS-0007 FS Fertigungsservice

Datenübertragung per Direct Memory Access (DMA)

Microcontroller Kurs Microcontroller Kurs/Johannes Fuchs 1

Abgesetzte Nebenstelle TECHNIK-TIPPS VON per VPN

HTBVIEWER INBETRIEBNAHME

Elektrische Logigsystem mit Rückführung

Telefonmodem ISDN DSL VDSL. Telekom 1&1 Telefónica/O2. Vodafone Unitymedia HSE Medianet

Anleitung zur Inbetriebnahme einer FHZ2000 mit der homeputer CL-Software

Powermanager Server- Client- Installation

Wichtiger Hinweis im Bezug auf Ihre Blu- ray- Laufwerke

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

Switching. Übung 7 Spanning Tree. 7.1 Szenario


Handbuch USB-Isolator

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Computeria Urdorf. Treff vom 16. Januar Was ist ein Computer?

Switch 1 intern verbunden mit onboard NICs, Switch 2 mit Erweiterungs-NICs der Server 1..6

Workshop: Eigenes Image ohne VMware-Programme erstellen

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Multimedia und Datenkommunikation

Gruppenrichtlinien und Softwareverteilung

16/24 Port Desktop & Rack-mountable Gigabit Ethernet Switch

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Anleitung zur Nutzung des SharePort Plus

Lizenzierung von System Center 2012

Transkript:

Hochschule Merseburg (FH) Fachbereich Informatik und Kommunikationssysteme (IKS) Hausarbeit im Fach Anwendungen Rechnernetze (WS 2006) Prof. Dr.-Ing. Karsten Hartmann Prof. Dr. rer. nat. Uwe Heuert Busarchitekturen im PC Abgegeben: 10.01.2007 Roland Zenner 03INF21 roland.zenner@stud.hs-merseburg.de

Inhaltsverzeichnis 1 Einführung...3 2 Begriffsklärung...3 2.1 Bus...3 2.2 Feldbus...3 2.3 Busmastering...3 2.4 Multi Master...4 2.5 Direct Memory Access DMA...4 2.6 Interrupt Request IRQ...4 2.7 Plug & Play...5 2.8 Bussystem...5 2.8.1 Datenbus...5 2.8.2 Adressbus...5 2.8.3 Steuerbus...6 2.9 Kategorien von Bussystemen...6 2.9.1 CPU-interner Bus...6 2.9.2 CPU-externer Bus...6 2.9.3 Rechner-interne Busse...6 2.9.4 Rechner-externe Busse...7 3 Geschichtliches zu Busarchitekturen...7 4 Näheres zu einigen Bussystemen...9 4.1 ISA/EISA-Bus...9 4.2 Local Bus Systeme, VESA Local Bus und PCI-Bus...11 4.3 Accelerated Graphics Port AGP...13 4.4 PCI-Express PCIe...14 4.5 AT Attachment ATA (IDE)...17 4.6 Small Computer System Interface SCSI...19 4.7 Universal Serial Bus USB...21 4.8 IEEE-1394 Firewire...25 5 Ausblick...27 6 Anhang...28 6.1 Abbildungsverzeichnis...28 6.2 Literaturverzeichnis...28 Roland Zenner (03INF21) Seite 2 von 28

1 Einführung Diese Arbeit hat zum Ziel, eine Übersicht zum Thema Busarchitekturen im PC zu geben. Hierzu werde ich zunächst versuchen, die Begriffe Bus und Busarchitektur zu klären. Dann werde ich einen geschichtlichen Abriss über die Entwicklungen im Bereich der Bussysteme geben, wobei in der Folge genauer auf aktuell verbreitete Systeme eingehen werde. Abschließend werde ich einen Ausblick auf die Zukunft der Busarchitekturen wagen. 2 Begriffsklärung Zuallererst will ich kurz einige Begriffe klären, die in dieser Arbeit vorkommen. 2.1 Bus Einen Bus in der EDV kann man sich vorstellen wie das Personennahverkehrstransportmittel, als eine Einrichtung zum Transport von Informationen von einem Anschlusspunkt zum Nächsten. Es ist eine Art Leitungssystem aus zusammengehörigen Signalleitungen zum Austausch von Daten und/oder Energie zwischen zwei oder mehr Teilnehmern. Ein Bus kann in seine Teilbereiche Adressbus, Datenbus und Steuerbus aufgeteilt sein. Darauf wird später noch genauer eingegangen. Die Teilnehmer können mehr oder weniger weit auseinander liegen, innerhalb eines PC liegen oder auch externe Peripheriegeräte sein. Busse ermöglichen z.b. die Kommunikation zwischen den Prozessoren, dem Hauptspeicher, den Schnittstellen und den Erweiterungskarten. Busse werden auch zur Ansteuerung von Maschinen (Feldbusse) und immer häufiger in Automobilen zur Verbindung der einzelnen elektronischen Systemkomponenten eines Fahrzeugs eingesetzt. Es besteht eine Verwandtschaft mit einem Rechnernetz. 2.2 Feldbus Als Feldbus bezeichnet man ein industrielles Kommunikationssystem, mit welchem man eine Vielzahl von Feldgeräten wie Messfühler, Stellglieder und Antriebe mit einem Steuerungsgerät verbinden kann. Feldbusse wurden in den 80er Jahren entwickelt. Sie sollten die bis dahin übliche Parallelverdrahtung binärer Signale sowie die analoge Signalübertragung durch digitale Übertragungstechnik ersetzen. 2.3 Busmastering Busmastering ist eine Funktion, die es einem Teilnehmer ermöglicht, die Kontrolle über den Bus zu übernehmen und eigenständig Transfers auszuführen. Teilnehmer, die diese Funktion unterstützen, können die Kontrolle über den Bus beantragen, nach der Zuweisung diese quittieren und kann dann Roland Zenner (03INF21) Seite 3 von 28

ohne weiteres Zutun des Host mit dem Transfer beginnen. Der Busmaster adressiert dazu selbständig Speicher und I/O-Bereiche zum Zweck des Datentransfers. Das hat den Vorteil, dass in der Zeit, in der solch ein sekundärer Prozessor den peripheren Bus beherrscht, die CPU meist in der Lage ist, andere Arbeiten im System auszuführen, sofern die dafür nötigen Ressourcen im Zugriff sind. Meist ist der Bus zum Speicher hin noch teilweise nutzbar, es herrscht also Time-Sharing. Dies macht sich insbesondere bei modernen Multitasking-Betriebssystemen durchaus positiv in der Reaktionsfähigkeit bemerkbar, wobei die Busmaster-Aktivität oftmals über ein Interrupt -Signal mit dem Betriebssystem verkoppelt ist. 2.4 Multi Master Multi Master ist eine Bezeichnung für eine Architektur, bei der mehrere Master Zugriff auf gemeinsame Ressourcen haben und dir Zugriffsreihenfolge über eine so genannte Schlichtungseinheit (Arbitration Unit) vergeben wird. Alle Master müssen über die Fähigkeit verfügen, die im Zugriff befindliche Einheit gegen Zugriffe anderer Einheiten zu schützen (Bus Locking) und mit einen solchen Schutz umzugehen. 2.5 Direct Memory Access DMA Der Speicherdirektzugriff bezeichnet eine Möglichkeit Der Begriff Speicherdirektzugriff oder englisch Direct Memory Access (DMA) bezeichnet in der Computertechnik eine Zugriffsart, die über ein Bussystem direkt auf den Speicher zugreift. Die DMA-Technik erlaubt angeschlossenen Peripheriegeräten, wie Netzwerkkarten oder Soundkarten, ohne Umweg über die CPU direkt mit dem Arbeitsspeicher zu kommunizieren. Der Vorteil von DMA ist die schnellere Datenübertragung bei gleichzeitiger Entlastung des Prozessors. Abbildung 2.1 Direkter Speicherzugriff /BKO06/ 2.6 Interrupt Request IRQ Geräte, die an einen Bus angeschlossen sind, können eine Meldung an einen Interrupt-Controller senden, falls die Aufmerksamkeit des Prozessors benötigt wird, z.b. falls Daten in einem Puffer bereit stehen oder Daten zur Verarbeitung benötigt werden. Dieser unterbricht dann sobald möglich Roland Zenner (03INF21) Seite 4 von 28

seine aktuelle Aufgabe und wendet sich einer Interrupt Dienstroutine zu, welche dafür sorgt, die Anforderung des Gerätes bearbeitet wird. 2.7 Plug & Play Plug & Play (Einstecken und Spielen) ist eine Funktion des PCI-Bus, durch welche sich Erweiterungskarten automatisch mit dem BIOS auf eine Konfiguration einigen, wodurch eine manuelle Einstellung, wie es bei ISA Karten notwendig war, überflüssig wird. Das hat leider anfangs eher schlecht als recht geklappt, da sich viele Hersteller nicht an den Standard hielten. Daher wurde der Begriff oft auch als Plug & Pray (Einstecken und Beten) missbraucht. 2.8 Bussystem Zuallererst sollte man sich über die allgemeine, zugegeben sehr vereinfachte, Struktur eines PC klar werden. Prozessor CPU Bus Erweiterungen Externer Bus Chipsatz Speicher Bus Speicher Abbildung 2.2 Blockschaltbild eines PC Alle diese Busse bestehen aus einem Datenbus, einem Adressbus und einem Steuerbus, welche zusammengenommen das Bussystem bilden. Die einzelnen Komponenten sollen zunächst näher beleuchtet werden, bevor ich einen Überblick über verschiedene Kategorien von Bussystemen gebe. 2.8.1 Datenbus Bezeichnet die Menge an Daten-Signalleitungen. Der Datentransfer auf dem Datenbus wird von den Leitungen des Steuer- oder Kontrollbus geregelt. Die Signalleitungen des Datenbusses können getrennt vom Adressbus oder mit diesem auf denselben Leitungen im Zeitmultiplexverfahren implementiert sein. 2.8.2 Adressbus Ein Adressbus ist in der Computertechnologie - im Gegensatz zum Datenbus - ein Bus, der nur Speicheradressen überträgt. Die Busbreite, also die Anzahl der Verbindungsleitungen, bestimmt Roland Zenner (03INF21) Seite 5 von 28

dabei, wie viel Speicher direkt adressiert werden kann. Wenn ein Adressbus n Adressleitungen hat, können 2n Speicherstellen adressiert werden. Adressbusse sind unidirektional und werden vom jeweiligen Busmaster angesteuert. Letzterer ist meistens die CPU, aber vor allem DMA-fähige Bausteine können diesen Bus auch übernehmen, wenn sie aktiv werden. 2.8.3 Steuerbus Der Steuerbus oder Kontrollbus überwacht und initiiert den Datentransfer auf dem Datenbus. Hierzu zählen unter anderem die Interrupt-Steuerung, Buszugriffssteuerung, die Taktung (falls ein Bustakt erforderlich ist). Des Weiteren wird die Auswahl der Transferrichtung, die Art des Transfers sowie die Signalisierung von Beginn und Ende eines Transfers gesteuert. In Multi- Master-Systemen, in denen mehr als ein Subsystem die Buskontrolle übernehmen kann, ist ein Arbiter als Entscheidungsinstanz erforderlich. 2.9 Kategorien von Bussystemen 2.9.1 CPU-interner Bus Der interne CPU-Bus dient zur Kommunikation der internen Einheiten des Prozessors (zwischen Leitwerk, Rechenwerk und deren Registern), gegebenenfalls auch mit dem L1-Cache. 2.9.2 CPU-externer Bus Der externe CPU-Bus verbindet Prozessor(en), (L2-)Cache, Arbeitsspeicher und Peripheriebus- Schnittstelle, auch Front Side Bus (FSB) genannt, oder alternativ nur mit dem Chipsatz (oder dessen Northbridge), an dem jene externen Elemente angeschlossen sind. 2.9.3 Rechner-interne Busse Diese Busse verbinden Komponenten innerhalb eines Rechners, also zum Beispiel die CPU mit der Grafikkarte und mit diversen Ein-/Ausgabe-Komponenten. Beispiele für parallele, Rechner-interne Busse Extended ISA (EISA), Industry Standard Architecture (ISA), MBus, Micro Channel Architecture (MCA), Multibus II, NuBus oder IEEE 1196, Peripheral Component Interconnect (PCI), SBus oder IEEE 1496, S-100, VESA Local Bus (VLB oder VL-Bus), VMEbus, XT-Bus-Architektur, Zorro- Bus, ATA/ATAPI-Bus (auch IDE) Roland Zenner (03INF21) Seite 6 von 28

Entgegen vieler Meinungen gehört der Accelerated Graphics Port (AGP) nicht zu den Bussystemen, da man nur genau ein Gerät an den Port anschließen kann. Noch dazu ist er ausschließlich für Grafikkarten bestimmt und nicht universell einsetzbar. Beispiele für serielle, Rechner-interne Busse I2C, I2S, HyperTransport, PCI-Express, SPI 2.9.4 Rechner-externe Busse Diese Busse verbinden den Rechner mit externen Peripheriegeräten. Es sind hier nur solche Schnittstellen aufgeführt, die wirklich Buscharakter aufweisen, also den Anschluss von mehreren externen Geräten gleichzeitig erlauben. Beispiele für parallele, externe Busse Advanced Technology Attachment (ATA), IEC-625-Bus, IEEE-488 oder General Purpose Interface Bus (GPIB), High Performance Parallel Interface (HIPPI), Personal Computer Memory Card International Association (PCMCIA), Small Computer System Interface (SCSI) Beispiele für serielle, externe Busse ACCESS.bus (A.b), Apple Desktop Bus (ADB), ASI Bus, ByteFlight BMW 7er, Bus-Topologie, Token Bus, Controller Area Network (CAN), Europäischer Installationsbus (EIB), ISYGLT (Innovativ SYstem für die GebäudeLeitTechnik, K-Leitung, KNX (Weiterentwicklung zu EIB), Local Control Network (LCN) Universelles Gebäudeleitsystem 3 Geschichtliches zu Busarchitekturen Speicher und andere Geräte wurden an den Bus an den gleichen Adressen und Datenstiften angebracht, die die CPU selbst benutzt, und zwar durch parallelen Anschluss. Die Kommunikation wurde durch die CPU gesteuert, die die Daten von den Geräten gelesen und sie die Blöcke aus dem Speicher liest. Alles wurde dabei durch einen zentralen Zeitgeber getaktet, der die Arbeitsgeschwindigkeit der CPU steuerte. Angeschlossene Geräte zeigten der CPU, dass sie Daten senden oder empfangen wollen, indem sie auf anderen CPU-Stiften ein Signal sendeten, was gewöhnlich durch eine Form von Interrupt geschah. Zum Beispiel hat ein Laufwerkscontroller der CPU signalisiert, dass neue Daten bereit waren gelesen zu werden, worauf die CPU die Daten verschob, indem sie den Speicher an dem Anschluss las, der dem Laufwerk entsprach. Fast alle frühen Computer wurden auf diese Weise zusammengesetzt, beginnend mit dem S-100 Bus im Altair und bis hin zum IBM PC in den 1980ern. Roland Zenner (03INF21) Seite 7 von 28

Diese erste Generation von Bussystemen litt jedoch unter dem gravierenden Nachteil, dass alles auf dem Bus mit der gleichen Geschwindigkeit arbeitet und alle Geräte sich einen einzelnen Taktgeber teilen mussten. Die Arbeitsgeschwindigkeit der CPU zu erhöhen war nicht einfach, weil man die Geschwindigkeit aller angeschlossenen Geräte ebenfalls steigern musste. Dies führte zu der seltsamen Situation, dass sehr schnelle CPUs gedrosselt werden mussten, um mit anderen Geräten im Computer kommunizieren zu können. Ein anderes Problem war, dass die CPU für alle Operationen benötigt wurde, und so, wenn sie mit anderen Aufgaben beschäftigt war, der reale Datendurchsatz des Busses drastisch darunter zu leiden hatte. Ein anderes praktisches Problem war, dass diese frühen Bussysteme schwierig zusammenzustellen waren, da sie viele Jumper erforderten, um die verschiedenen Betriebsparameter einzustellen. Bussysteme der zweiten Generation wie NuBus waren auf die Lösung einiger dieser Probleme gerichtet. Sie teilten den Computer gewöhnlich in zwei Welten, die CPU und den Speicher auf der einen Seite und die anzuschließenden Geräte auf der anderen, mit einem Buscontroller dazwischen. Dies erlaubte es, die Geschwindigkeit der CPU zu erhöhen, ohne den Bus zu beeinflussen. Dadurch wurde auch viel von der Belastung für das Verschieben der Daten aus CPU heraus und in die Karten und den Controller verringert, weil Geräte über den Bus ohne Einschaltung der CPU miteinander sprechen konnten. Dieses führte zu viel besserer tatsächlicher Leistung in der Praxis, erforderte aber auch eine viel höhere Komplexität der im Computer installierten Geräte. Weiter gingen diese Bussysteme das Geschwindigkeitsproblem an, indem sie einfach einen größeren Datentransportweg wählten, und so von den 8-Bit parallelen Bussen der ersten Generation zu 16 oder 32-bit in der zweiten übergingen. Eine weitere Verbesserung bestand darin, dass Softwareeinstellungen hinzugefügt wurden, die die Zahl der Jumper reduzierten oder diese ersetzten. Gleichwohl hatten die neueren Systeme eine negative Eigenschaft, die sie mit ihren früheren Vettern teilten: alles, was am Bus hing (außer der CPU), musste mit der gleichen Geschwindigkeit arbeiten. Da die CPU jetzt isoliert war und man ihre Geschwindigkeit ohne Probleme erhöhen könnte, stieg die Arbeitsgeschwindigkeit der CPUs und des Speichers fortlaufend viel schneller an, als die der Bussysteme, mit denen sie zusammenarbeiteten. Das Resultat war, dass die Busgeschwindigkeiten jetzt sehr viel langsamer waren, als für ein modernes System nötig, und die Maschinen hungerten nach Daten, weil sie viel schneller arbeiteten, als Daten hin und her transportiert werden konnten. Ein besonders typisches Beispiel für dieses Problem war, dass Videokarten sogar den neueren Bussystemen wie PCI schnell davonliefen. So wich man für Grafikkarten vom Bus-Konzept ab und führte einen exklusiven, deutlich schnelleren Anschluss (Port) für die Grafikkarte ein, den Accelerated Graphics Port (AGP). Der nächste Schritt und Stand der Technik Ende 2005 in dieser Entwicklung ist PEG, PCI Express for Graphics mit 16 Lanes. Roland Zenner (03INF21) Seite 8 von 28

Während dieser Periode fing auch eine zunehmende Anzahl von externen Geräten an, ihre eigenen Bussysteme einzusetzen. Als die Laufwerke zuerst eingeführt wurden, hat man sie mit einer Einsteckkarte an den Bus angeschlossen. Das ist der Grund, warum Computer so viele mit dem Bus verbundene Steckplätze (Slots) haben. In den 1980er und 1990er wurden deswegen neue Systeme wie SCSI und ATA eingeführt, und so blieben die meisten Slots in den modernen Systemen leer. Heute gibt es in einem typischen PC an die fünf unterschiedlichen Bussysteme, um die verschiedenen Geräte zu betreiben. Später ging man dazu über, das Konzept des lokalen Busses im Vergleich zum externen Bus zu bevorzugen. Ersteres bezieht sich auf Bussysteme, die entworfen wurden, um mit internen Geräten, wie Grafikkarten zu arbeiten, letzteres um externe Geräte wie Scanner anzuschließen. Diese Definition war immer ungenau: IDE ist der Verwendungsart nach ein externer Bus; er wird aber fast immer innerhalb des Computers zu finden sein. Busse der dritten Generation sind jetzt im Kommen, einschließlich HyperTransport und InfiniBand. Sie haben gewöhnlich die Eigenschaft, dass sie mit sehr hohen Geschwindigkeiten laufen, die benötigt werden, um Speicher und Videokarten zu unterstützen, während auch niedrigere Geschwindigkeiten möglich sind, um die Kommunikation mit langsameren Geräten, wie Laufwerken zu unterstützen. Sie sind auch sehr flexibel, was ihre physikalischen Anschlüsse betrifft und lassen sich sowohl als interne Busse verwenden, als auch, um verschiedene Rechner miteinander zu verbinden. Dieses kann zu komplizierten Problemen führen, wenn es darum geht, unterschiedliche Anfragen zu bedienen, was dazu führt, dass die Software im Vergleich zum eigentlichen Hardwaredesign in den Vordergrund rückt. Im Allgemeinen neigen die Busse der dritten Generation dazu, mehr wie ein Netzwerk als wie ein Bus (im traditionellen Verständnis) auszusehen, mit mehr Bedarf an Protokollinformationen als bei früheren Systemen, und der Möglichkeit, dass verschiedene Geräte den Bus gleichzeitig benutzen. 4 Näheres zu einigen Bussystemen Hier will ich auf einige ausgewählte Bussysteme eingehen, die meiner Meinung nach wichtig für die Entwicklung des PC waren. 4.1 ISA/EISA-Bus Der ISA (Industry Standard Architecture) Bus war ursprünglich eine nach außen geführte Fortsetzung der lokalen 8088-Signale auf ein Bussystem, an das Peripherie angeschlossen werden kann. Im Anfang ein einfacher synchroner 8-Bit breiter Datenbus mit einem Adressraum von 2 20 Byte, also einem Megabyte. Synchron heißt hierbei, dass der Bus mit der gleichen Taktfrequenz Roland Zenner (03INF21) Seite 9 von 28

lief, wie der Prozessor, der den Bus kontrollierte. Zu der Zeit war er im IBM PC XT von 1983 sehr verbreitet, was ihm den Namen XT-Bus eintrug. Abbildung 4.1 8-Bit ISA Steckplatz /ELE06/. Später wurde er aufgrund der 16 nach außen geführten Datenleitungen des 80286 auf 16-Bit Datenbusbreite erweitert, besaß einen Adressraum von 2 24 Byte, also 16 Megabyte, und konnte synchron oder asynchron betrieben werden, war aber immer noch pinkompatibel zu 8-Bit Peripheriekarten. Asynchron deshalb, weil der 80286 schon eine Taktfrequenz von 16 MHz erreichen konnte, die meisten Erweiterungskarten allerdings auf eine Frequenz von 8 MHz ausgelegt waren. Seine größte Verbreitung fand er im IBM PC AT, welcher 1984 vorgestellt wurde, weshalb er auch AT-Bus genannt wird. Abbildung 4.2 16-Bit ISA Steckplatz /ELE06/. Zur Konfiguration von Erweiterungskarten mussten hier zumeist Steckbrücken oder DIP-Schalter auf den Karten selbst eingestellt werden, um eine Mehrfachbelegung von IRQ, DMA oder Speicheradressen zu vermeiden. Diesem Problem versucht der EISA-Bus zu begegnen. Zum EISA Bus waren allerdings noch Zwischenschritte nötig. Als der i386 vorgestellt wurde, als echter 32 Bit Prozessor, könnte man meinen, dass der Bus einfach auf 32 Bit Datenbreite erweitert würde. Dies war nicht der Fall, IBM entschied sich für eine zum ISA-Bus inkompatible Lösung namens Micro Channel Architecture MCA. Die meisten Hersteller PC-Kompatibler Rechner blieben jedoch weiterhin beim 16-Bit ISA-Bus, weswegen MAC eine untergeordnete Rolle spielt und ich darauf auch nicht weiter eingehen will. Das hatte gravierende Nachteile, z.b. die geringe Busbreite, die eine Aufteilung von Datenpaketen in 16 Bit Fragmente erforderlich machte. Weiterhin die niedrige Taktfrequenz von 8 MHz, die bei den schnellen 33 MHz des i386 die Einführung von Waitstates, also Wartezyklen notwendig machte. Trotz dieser Nachteile kamen die meisten Anwender mit dem ISA-Bus zurecht, da der Hauptteil der Kommunikation zwischen CPU und Speicher stattfindet, welche über einen speziellen Bus mit 32 Bit angebunden sind. Der EISA-Bus wurde von einer Gruppe ("Gang of Nine ) von Herstellern IBM.kompatibler Rechner (z.b. Epson, Compaq, Hewlett-Packard, NEC, Zenith) entwickelt, mit der Maßgabe, kein Nadelöhr darzustellen für moderne 32-Bit Prozessoren und dennoch die Verwendung vorhandener ISA Karten zu ermöglichen. Das Resultat waren zweistöckige Steckleisten, in gleicher Form und Länge wie ISA Slots, aber doppelt so hoch. Die unteren Kontaktzungen bieten die erweiterten Funktionalitäten des EISA-Busses wie z.b. 32 Bit Daten- und Adressbus, Multi Bus Mastering, die Roland Zenner (03INF21) Seite 10 von 28

Fähigkeit der automatischen Konfiguration von Steckkarten mittels Treibersoftware, normale ISA Karten gelangen nur an ihre obere Kontaktreihe. Der EISA Bus läuft mit einer typischen Taktfrequenz von 8,25 oder 8,33 MHz, der EISA-Buscontroller unterscheidet ISA- und EISA- Bussignale und zerlegt die 32-Bit-Dateneinheiten in 8 Bit und 16 Bit für die XT- und AT- Peripherie. 4.2 Local Bus Systeme, VESA Local Bus und PCI-Bus Neben MCA haben einige Hersteller einen eigenen Bus entwickelt, um den Flaschenhals ISA-Bus für Geräte mit hohem Datenaufkommen zu umgehen, sondern um mit den vollen 32 Bit Datenbreite und der vollen Prozessortaktfrequenz arbeiten zu können. Diese Systeme werden Local Bus genannt. Leider sind diese Systeme nicht standardisiert, wodurch es viele Inkompatibilitäten zwischen Produkten verschiedener Hersteller gab. Abhilfe schafften da die Versuche der VESA (Video Engineering Standards Association) Gruppe und von Intel, einen Standard zu schaffen. Die VESA Gruppe schlug den VESA Local Bus (VLB) vor, welcher immer mit der externen Taktfrequenz des Prozessors arbeitet. Er kann wie EISA mit 32-Bit Adress- und Datenbusbreite aufwarten. Busmasterfähigkeit ist zwar vorgesehen, wird aber von den Herstellern von Erweiterungskarten wegen des Kostenfaktors kaum genutzt, die meisten VLB-Karten sind Local Bus Targets ohne Busmaster Funktionen. Bei Systemen mit bis zu 33 MHz Taktfrequenz konnten bis zu 3 Steckplätze verbaut werden, ab 40 MHz war nur noch ein Slot erlaubt. Erst die Version 2.0 der Spezifikation sah bis zu 66 MHz Taktfrequenz vor. Der Steckplatz ist aus einem 16-Bit ISA Slot und einem dahinter geschalteten MCA Steckplatz zusammengesetzt. Abbildung 4.3 VESA Local Bus Steckplatz /ELE06/ Der ISA-Slot wird für Steuersignale und IRQ-Kanäle genutzt, der MCA Steckplatz im Wesentlichen für Adressen und Daten. Der VLB hat kurzzeitig eine große Verbreitung erreicht bis der Prozessor der 5. Generation, der Pentium von Intel eingeführt wurde. Der VLB konnte dessen erhöhte Leistungsfähigkeit nicht mehr voll ausnutzen. Er wurde daraufhin sehr schnell ersetzt. Der PCI-Bus ist Industriestandard und fester Bestandteil von IBM-kompatiblen PCs, Apple Macintoshs und Alpha-Workstations von Digital. Das von Intel im Jahr 1993 entwickelte Bus- System ist bis ins Detail normiert, so dass andere Computerhersteller den PCI-Bus nachbauen können. Die Kontrolle über den PCI Standard hat die PCI Special Interest Group. Im Gegensatz zu anderen Bus-Systemen ist der PCI-Bus anpassungsfähig bei steigenden Anforderungen. Das PCI- BIOS erkennt jede Erweiterungskarte und konfiguriert sie selbständig (Plug & Play). Roland Zenner (03INF21) Seite 11 von 28

Die Erkennung erfolgt über den Configuration Space, einen 256 Bit großen Speicherbereich im Geräte-BIOS, welcher Grundfunktionen und Einstellungen für das Gerät bereithält. Abbildung 4.4 PCI Configuration Space /TUC06/ Die ersten 64 Bit müssen vom Hersteller des Gerätes implementiert werden, da sie für die Funktion unabdingbar sind. Die Vendor ID wird von der PCISIG an die Hersteller verteilt, die Device ID und Revision ID können vom Hersteller benannt werden. Der ClassCode spielt bei Plug & Play eine große Rolle, da hier die Funktionsklassen des Gerätes festgelegt werden. So können im Fall, dass das Betriebssystem keinen Treiber für die Device ID findet, Standardtreiber verwendet werden, z.b. VGA-kompatible Grafikkarte oder Simple Communications Controller. In den Base Address Registern stehen die Angaben über die Speichereigenschaften und benötigte Adressräume. Andere Register beinhalten Informationen über die Busmasterfähigkeit oder wie viel Zeit das Gerät für Burst Transfers nutzen kann. Roland Zenner (03INF21) Seite 12 von 28

Abbildung 4.5 PCI-Bus Steckplatz /ELE06/. Theoretisch hat der PCI-Bus 64 Leitungen. Jeweils 32 für die Daten- und Adressleitungen. Durch einen Multiplex-Betrieb werden 32 Leitungen eingespart, da mit einem Takt zuerst die Adresse und in einem zweiten Takt das Datenwort gesendet wird. Der PCI-Bus erlaubt es, dass mehrere Erweiterungskarten sich einen Interrupt teilen. Laut der PCI-Spezifikation stehen jedem PCI-Slot vier virtuelle Interrupts zur Verfügung. Davon wird in der Regel nur einer genutzt, dem ein tatsächlicher Interrupt zugewiesen ist. Die anderen Interrupts werden dann verwendet, wenn eine Erweiterungskarte mehr als einen Interrupt benötigt. Die meisten Motherboard Hersteller halten sich jedoch nicht an diese Spezifikation. Zwischen CPU und den Erweiterungssteckplätzen befindet sich die PCI-Bridge, die mit Puffer-Schaltkreisen stabile elektrische Signale garantiert. Die PCI- Bridge (Host) macht die PCI-Erweiterungskarten weitestgehend unabhängig vom verwendeten Prozessor. Lediglich das karteninterne BIOS muss die Prozessoren unterstützen. Damit der Prozessor entlastet wird, können PCI-Komponenten untereinander Daten über den PCI-Bus austauschen. Die PCI-Karte, die Daten sendet ist der Master, die Karte die Daten empfängt, ist der Slave. Für den Datenaustausch zwischen den PCI-Komponenten werden Steuerbefehle(Messages) verwendet. Laut der PCI-Spezifikation gibt es 256 Steuerbefehle. Die wichtigsten Steuerbefehle sind für den Zugriff auf Register der Erweiterungskarten und den Hauptspeicher. Im Burst-Modus kann ein zusammenhängender Speicherblock übertragen werden. Ab einer Startadresse kann ein beliebig großer Speicherblock, ohne weitere Adressierung, übertragen werden. Ein Latenz-Timer sorgt dafür, dass ein langer Burst unterbrochen werden kann, wenn eine andere Komponente den PCI-Bus benötigt. 4.3 Accelerated Graphics Port AGP Mit der Zeit hat sich der PCI-Bus als Engpass für die Grafikausgabe herausgestellt. Vor allem deshalb, weil der PCI ein Bus ist, den sich mehrere Erweiterungskarten und eventuell der Chipsatz mit seinen vielen Schnittstellen teilen muss. Mitte des Jahres 1996 begann ein Konsortium von Mainboard- und Grafikchipherstellern unter der Führerschaft von Intel mit der Entwicklung des Roland Zenner (03INF21) Seite 13 von 28

AGP. Der Accelerated Graphics Port ist weder ein Ersatz für den PCI-Bus noch eine Erweiterung. Er ist nur ein zusätzlicher, unabhängiger Steckplatz für eine einzelne Punkt-zu-Punkt-Verbindung zwischen Grafikkarte und Chipsatz (North-Bridge). Deshalb ist er eigentlich auch kein Bus, aber ich habe ihn wegen seiner Bedeutung hier mit aufgeführt. Der AGP ist ein spezielles Interface für die Kopplung von Prozessor, Hauptspeicher und der Grafikkarte. Merkmal des AGP ist ein schneller Datenaustausch zwischen AGP-Port und Hauptspeicher. Er hat eine Busbreite von 32 Bit und einen Bustakt von 66 MHz und somit eine Bandbreite von 266 MByte/s. Im 2x-Modus(Nutzung beider Flanken des Taktsignals) werden 533 MByte/s ereicht. Im 4x-Modus und 8x-Modus wurden die Übertragungsraten nochmals gesteigert. So wie die Bezeichnung suggeriert hat sich die maximale Übertragungsrate jedes Mal verdoppelt. 4.4 PCI-Express PCIe PCI-Express wurde von Intel 2001 entwickelt unter dem Namen 3GIO (Third Generation IO, um AGP als separate Grafikkarten-Schnittstelle und Steckplatz sowie dem weit verbreiteten PCI Bus ein Ende zu bereiten. Denn moderne Erweiterungskarten und Peripherie benötigen eine schnelle Schnittstelle zum Chipsatz und dem Prozessor. Dazu gehören vor allem Grafikkarten und Gigabit- Netzwerkkarten. Im Gegensatz zu PCI, mit der Busstruktur, wird bei PCI Express eine serielle Verbindung von einem Switch geschaltet. Die Taktfrequenz der seriellen Verbindung ist immer gleich. Soll die Datentransferrate erhöht werden, wird die Anzahl der Verbindungen erhöht. Die Stern-Topologie erlaubt langsame und schnelle Erweiterungskarten, je nach Anwendung, ganz ohne gegenseitige Beeinträchtigung zu nutzen. Abbildung 4.6 Chipsatzmodelle in modernen PCs /ELE06/. Der Umstieg von der bewährten Busstruktur zu seriellen Punkt-zu-Punkt-Verbindungen liegt in der riesigen Anzahl von Adress- und Signalleitungen, die z. B. die 64-Bit-Prozessorgeneration benötigt. Die steigende Anzahl an Signalleitungen auf dem Motherboard benötigt sehr viel Platz, verbunden mit einem hohen Stromverbrauch. Klassisches Bridge-Modell (Bus-Topologie) Modernes Switch-Modell (Stern-Topologie) Roland Zenner (03INF21) Seite 14 von 28

PCI Express ist eine der neuen Techniken, die Transferraten durch geschaltete Punkt-zu-Punkt- Verbindungen steigern. Statt über eine Busstruktur, bei der sich alle angeschlossenen Endgeräte die verfügbare Bandbreite teilen müssen, verbindet ein Switch jeweils zwei PCIe-Komponenten mit der vollen Bandbreite und Geschwindigkeit. PCIe arbeitet mit Vollduplex-fähigen Kanälen, die auch Lanes genannte werden. Pro Lane stehen bis zu 250 MByte/s pro Richtung zu Verfügung. Architekturbedingt wird pro Lane nur ein Gerät gehängt. Zur Steigerung der Geschwindigkeit darf ein Gerät auch mehrere Lanes benutzen. Die Aufteilung der Lanes des Controllers auf die Hardware-Slots und Onboard-Komponenten werden beim Design des Mainboards festgelegt. Man unterscheidet zwischen x1-, x4-, x8- und x16-slots. Letzter ist ein Grafikkarten-Slot, der als PEG (PCI Express for Graphics) bezeichnet wird. Ihm stehen laut x16 also 16 Lanes zu Verfügung. Die Leistungsfähigkeit eines Motherboards mit PCI Express wird in Zukunft auch über die Anzahl der Lanes entschieden. Je mehr Lanes, desto mehr leistungsfähige Schnittstellen- und Erweiterungskarten können in einen Computer eingebaut werden. Die Standard-Anzahl dürfte 20 Lanes sein. Jeweils 1 Lane für 4 x1-slots und 16 Lanes für 1 PEG-Slot. Abbildung 4.7 Schichtenmodell von PCIe /TEC06/ Der Bus (physikalischer Layer) ist in seiner maximalen Leitungslänge begrenzt. Bei PCI E x16 darf die Kupferleitung zwischen Sender und Empfänger maximal eine Länge von 50,8 cm aufweisen. Wählt man eine längere Leitung, kann es zu unterschiedlichen Signallaufzeiten zwischen den einzelnen Lanes kommen, was bei der Synchronisation fatale Folgen hätte, da der Empfänger nicht mehr gleichzeitig die Daten und Taktinformationen erhalten kann und demzufolge Datenmüll entsteht. Die Leitungen selbst müssen mit einem 100 Ohm starken Terminationswiderstand bestückt sein und die Differenzspannung zwischen zwei Signalleitungen darf maximal 1,2 Volt betragen. Roland Zenner (03INF21) Seite 15 von 28

Zudem dürfen die Transmitterspannung von 0,8 Volt und die ankommende Spannung am Receiver von 0,175 Volt nicht unterschritten werden. Das Transaction Layer verarbeitet in seiner Hauptaufgabe sämtliche Lese- und Schreibvorgänge sowie bestimmte Ereignisprozeduren und bildet die Verbindung zwischen dem physikalischen und dem Data Link Layer. Der Sinn dabei liegt in der Einsparung von unnötigen und mehrfachen Übertragungsvorgänge, indem über das Credit-Base-System zuerst geprüft wird, ob beim Empfänger genügend freie Puffer vorhanden sind. Bei Anforderung einer Empfangsbestätigung schaltet der Layer automatisch in den Split-Transfer-Mode, wo bis zum Erhalt der Bestätigung zusätzliche Übertragungen zu anderen Adressaten möglich sind. Bestehend aus einem Header und einem Datenstrang kann bei Bedarf auch eine 32 Bit lange Prüfsumme nachgesendet werden. Nach dem Transaction-Layer-Verfahren erhofft man sich eine effiziente Bandbreitennutzung, welche zudem in der Lage ist, über einen internen Switch die einzelnen Daten nach Traffic-Klassen zu sortieren. Dazu dienen im Transaction-Header die Bits 4-6 im ersten Byte, welche insgesamt acht verschiedene Service-Klassen kodieren können. Der Header selbst kann bis zu vier Doppelwörter (4 Bytes / 32 Bit) lang sein, wobei die Bits fünf und sechs des ersten Bytes (Byte 0) die länge des Headers angeben. Die Bits 0 bis 4 dienen zur Angabe des Transfermodus, z.b. 32/64 Bit I/O- oder Memory-Schreibvorgänge (Writes). Bit Nummer sieben legt fest, ob dem Header noch ein optionaler Anhang von einem Doppelwort folgt oder nicht. Der Anhang enthält eine CRC-Summe für die Fehlererkennung und kann somit für sehr hohe Datenintegrität sorgen. Über das 6. Bit im zweiten Byte kann dann ggf. eine Rückmeldung gegeben werden, bei einem Fehler die Daten erneut zu senden. Anschließend übernimmt der Data-Link-Layer die Aufgabe, Daten vom Transaction-Layer für den physikalischen Layer aufzubereiten. Der Link erfolgt über eine Punkt-zu-Punkt-Verbindung zwischen den einzelnen Komponenten. Am Anfang der Datenpakete für den Transaction-Layer wird eine Identifikationsnummer oder auch Paketidentifikationummer zugefügt. Wird bei der Übertragung ein Fehler gemeldet, werden die Daten anschließend umgehend ein weiteres Mal versendet. Unabhängig von allen Kontrollleitungen bietet der PCI Express-Bus optional die Möglichkeit eines integrierten SM-Bus, welcher in der Lage ist, System- und Power-Management-Aufgaben eigenständig zu steuern. Nebenher überträgt er auch Herstellerinformationen wie Gerätetyp und Seriennummern sowie bei Bedarf Suspend-Zustände und Protokolle von Gerätefehlern. Nicht zu vergessen ist die maximale Leistungsübertragung der Stromversorgung, die von 25 Watt bei AGP 8x um das dreifache auf 75 Watt erhöht wurde. Leider kann PCI Express nicht oder zumindest nur mit Performanceeinbussen, als Ablösung der bisherigen Southbridge-Anbindungen wie Hypertransport, MultiTIOL und V-Link eingesetzt Roland Zenner (03INF21) Seite 16 von 28

werden, denn aufgrund des 8B/10B Kodierverfahrens hat die PCI Express Schnittstelle deutlich höhere Latenzzeiten. Um diese zu senken nutzt PCI Express so genannte "Split Transactions". In dem Transaction Layer sind vier Adress-Bereiche festgelegt, von denen drei Bereiche identisch mit denen der alten PCI-Systeme sind. Diese Adress-Bereiche sind der Speicher-, der I/O- und der Konfigurations-Bereich. Der vierte Adress-Bereich, der so genannte "Message Space" emuliert im "Message Passing"-Verfahren alle Interruptleitungen und Steuersignale eines PCI-Busses als virtuelle Signalleitungen. Für das Betriebssystem sieht PCI Express aus wie ein herkömmliches PCI-Bus-System. Somit lässt es sich problemlos auf jeder Plattform betreiben, ohne dass Software bzw. Treiberupdates erforderlich sind. Laut Spezifikation soll das bisherige "Plug & Pray" durch Plug & Play ersetzt werden. 4.5 AT Attachment ATA (IDE) IDE bedeutet Integrated Device Elektronics, Intelligent Drive Elektronics oder auch Integrated Drive Electronics. Es handelt sich dabei um eine Festplattenschnittstelle, bei der die Steuerungselektronik bzw. der Controller in das Festplattengehäuse integriert ist. Die ISA-Steckkarte, die als AT-Bus- oder IDE-Controller bezeichnet wird und später fest auf dem Motherboard integriert wurde, ist eher ein sogenannter Host-Adapter, der nur die notwendigen Systembussignale mit Pufferung zur Festplattenelektronik weiterleitet. Das 40adrige IDE- Flachbandkabel stellt praktisch die Verlängerung des Systembusses dar. Es hat drei Steckerleisten. Die eine ist für den Hostanschluß auf dem IDE-Controller. Die anderen beiden Steckerleisten sind für das Master- und Slave-Endgerät. Pro IDE-Controller lassen sich zwei Festplatten betreiben. Weil die eigentliche Steuerung auf den Festplatten sitzt, muss die eine Festplatte, am besten die schnellste, als Master und die andere als Slave konfiguriert werden. Dazu müssen Jumper oder Dip-Schalter gesetzt werden. Die Master-Slave-Konfiguration sorgt dafür, daß beim Systemstart der Master die höhere Priorität hat. Bevor er Funktionsbereitschaft an das Bios meldet, wartet er auf die Bestätigung der Slave- Festplatte. Beide Festplatten (Laufwerke) arbeiten unabhängig voneinander. Sie belegen aber die gleichen Adressen im Computersystem. Zur Beschleunigung werden IDE-Festplatten mit Cache ausgestattet. Sie erreichen dabei eine Übertragungsgeschwindigkeit von 3,33 MByte pro Sekunde. Ohne Cache jedoch nur 2 MByte pro Sekunden. Nachfolger der IDE-Schnittstelle ist die EIDE-Schnittstelle, die deutlich höhere Übertragungsgeschwindigkeiten zuläßt. Roland Zenner (03INF21) Seite 17 von 28

Die EIDE-Schnittstelle (Enhanced IDE) ist eine Weiterentwicklung des IDE-Standards. Die EIDE- Schnittstelle bezeichnet man auch als ATA-Schnittstelle (ATA steht für Advanced Technology (AT) Attachment). Allerdings ist IDE und ATA nicht dasselbe. IDE definiert den Anschluss der Laufwerke, wie Pinbelegung, Stecker, Kabel und elektrische Signale. ATA definiert das Protokoll, mit dem die Daten über die Leitungen (IDE) transportiert werden. EIDE unterstützt bis zu 4 Laufwerke und ermöglicht den Anschluss von Festplatten, CD-ROM, CD-Brenner, DVD, Streamer und andere Wechselspeicherträger (ATAPI). Im Laufe der Zeit, seit es EIDE/ATA gibt, haben sich die Festplatten-Hersteller auf verschiedene Betriebsarten geeinigt. Dadurch wurde es möglich, ältere Festplatten parallel zu neueren zu betreiben. Das hatte jedoch den Nachteil, dass die schnellere Festplatte sich der langsameren in ihrer Geschwindigkeit anpassen musste. Für den den Datentransfer gibt es zwei Protokolle. Den älteren PIO-Modus (Programmed Input/Output) und den neueren UDMA-Modus (Ultra Direct Memory Access). Beim PIO-Modus ist der Prozessor für jeden Lese- und Schreibvorgang verantwortlich. Der UDMA-Modus kann über den DMA-Controller direkt auf den Arbeitsspeicher zugreifen. So kann der Prozessor sich um andere Aufgaben kümmern. Das gesamte System läuft schneller. Der Ultra-DMA-Modus (Ultra-ATA) unterstützt höhere Datenübertragungsraten und besitzt eingebaute Sicherheitsmechanismen. Zusätzlich wird die Belastung des Prozessors bei der Datenübertragung durch einen Bus-Master-Treiber reduziert. Dieser Treiber muss aktiviert werden. Bei Geräten, die damit nicht umgehen können muss er deaktiviert werden. Das Bus-Mastering ist ein Datentransfer-Verfahren für die Übertragung von Daten und Befehlen, bei dem der Host- Controller direkt auf dem Arbeitsspeicher zugreift, ohne den Prozessor zu belasten. Für alle Ultra-ATA-Festplatten (133/100/66) wird ein UDMA-Kabel benötigt. Dieses Flachbandkabel hat 80 Leitungen. 40 für den Datenverkehr und 40 für die Erdung. An einen (E)IDE-Strang können maximal 2 Geräte angeschlossen werden. Das Master-Gerät wird am Kabelende angesteckt. Der Jumper sollte hinten am Gerät auf Master (M) gesteckt sein. Ein zweites Gerät kommt an den zweiten Stecker, in der Mitte des Kabels. Dies wird als Slave betrieben. Entsprechend sollte der Jumper (S) gesteckt sein. Bei der Verwendung von Cable Select (CS) muss bei beiden Geräten entsprechend der Jumper gesteckt sein. Die Position bzw. die Betriebsart wird über eine (nicht) durchverbundene Ader im Flachbandkabel eingestellt. In manchen Gerätekonstellationen funktioniert diese Automatik nicht. Deshalb ist angeraten in jedem Fall die manuelle Einstellung vorzunehmen. Bei nur zwei Geräten ist das auch kein Problem. Die Software-Konfiguration von Festplatten und Laufwerken wird im BIOS vorgenommen. Dort stellt man den EIDE-Anchluß auf Auto-Detect (Autoerkennung) ein. Roland Zenner (03INF21) Seite 18 von 28

4.6 Small Computer System Interface SCSI SCSI ist ein Bus-System, das eine Schnittstelle für Peripherie zum Anschluß an ein Computersystem zu Verfügung stellt. Als Peripherie können Festplatten, CD-/DVD-Laufwerke, Brenner, Streamer und Scanner verwendet werden. Gerätspezifische Eigenschaften verbleiben in den Geräten. Das Betriebssystem selber fragt nur die technischen Daten und veränderbare Parameter ab. Für die physikalische Datenübertragung gibt es mehrere parallele und serielle Übertragungsmedien. Das Protokoll, das SCSI zugrunde legt, wird auch für Fibre Channel, Firewire und ATAPI verwendet. Aufgrund des Bussystems müssen beide Enden der Kabelstrecke mit einem Abschluß terminiert werden. Es gibt zwei verschiedene Arten der Terminierung. Die passive und die aktive Terminierung. Der passive Terminator besteht aus zwei Widerständen pro Signalleitung. Er ist an seiner länglichen Bauform zu erkennen. Im Gehäuse befindet sich ein Widerstandsnetzwerk. Sie tragen die Beschriftung 33x, 22x oder 331/332. Aktive Terminatoren arbeiten mit einer internen Spannungsquelle mit nachgeschaltetem Strombegrenzungswiderstand. Die Speisung der Spannungsquelle übernimmt die TermPower-Leitung. Der Vorteil der aktiven Terminierung liegt in der besseren Kompensierung von Lastschwankungen, die bei Signaländerungen auftreten. Grundsätzlich gilt: Je schneller ein Bus, je länger das Kabel und je mehr Geräte angeschlossen sind, desto nötiger ist ein aktive Terminierung. Bei Ultra-Hostadaptern ist eine aktive Terminierung zwingend vorgeschrieben. Geräte mit passiver Terminierung dürfen nur mit ausgeschalteter Terminierung daran betrieben werden. An das Kabelende wird ein Gerät mit eingeschalteter aktiver Terminierung gesteckt. Eine verteilte Logik regelt den Zugriff auf den Bus. Alle angeschlossenen Geräte müssen an diesem Zugriffsauswahlverfahren teilnehmen. Das SCSI-Protokoll teilt alle Geräte in Geräteklassen ein. Für die unterschiedlichen Geräteklassen gibt es unterschiedliche Befehlsgruppen. Einen Adreßbus bzw. eine Adreßkodierung gibt es nicht. Stattdessen wird jeder Busteilnehmer über seine eigene Datenbusleitung angesprochen. Dadurch muss jedes Gerät bei der Installation hardwaremäßig auf die richtige ID eingestellt werden. Insgesamt können 8, bei späteren Entwicklungen 15, Geräte am Bus angeschlossen werden. Eine ID ist bereits durch den Hostadapter fest installiert (als Karte oder onboard). Er hat die ID 7. die niedrigste ID ist 0. Einen Bustakt gibt es im SCSI nicht. Jeder Busteilnehmer darf so schnell Daten übertragen, wie er kann. Der Bustakt und die Datentransferleistung in MByte/s sind Maximalwerte. Sie können nur erreicht werden, wenn die folgenden Parameter auf dem Bus optimal eingestellt sind: Roland Zenner (03INF21) Seite 19 von 28

Busbreite Übertragungsart Zeitparameter Kabellänge Treiberart Terminierung SCSI ist im Prinzip ein einfaches logisches Bussystem (Software-Bus), für das in der ersten Version (SCSI-1) ein paralleler Bus für den Transport von Daten, Befehlen und Statusmeldungen spezifiziert wurde. In SCSI-2 wurden mehrere Arten von paralleler Übertragung spezifiziert. SCSI-3 kennt zusätzlich serielle Übertragungsarten, wie Fibre Channel, Firewire, InfiniBand und SAS. SCSI besteht grundsätzlich immer aus zwei Teilen: dem Kabelbus, der das Kabel, die Stecker und die elektrischen Signale festlegt. und das Software-Protokoll, das die Übertragung von Daten und den Zugriff auf den Bus regelt. Grundsätzlich sind alle SCSI-Geräte und SCSI-Hostadapter zueinander kompatibel. Z. B. kann an einem Ultra-SCSI-Hostadapter durchaus ein Fast-SCSI-Gerät betrieben werden. Allerdings kann das Fast-SCSI-Gerät trotzdem nur 10 MByte/s übertragen. Alle anderen Geräte spricht der Ultra- SCSI-Hostadapter auf ihre bestimmte maximale Datenrate an. Mit Ultra2-SCSI hat die Abwärtskompatibilität ein Ende. Generell lassen sich Ultra2-Geräte an jedem anderen SCSI-Hostadapter betreiben. Aber nur mit der Maximalgeschwindigkeit des Hostadapters. Ältere SCSI-Geräte lassen sich auch am Ultra2-Hostadapter betreiben. Dieser schaltet dann aber den Ultra2-Modus komplett ab, wenn ein nicht Ultra2-Gerät am Bus hängt. Das Ultra2-Gerät wird dann im Ultra-Wide-Modus betrieben. Ultra2-SCSI ist ein Differential-SCSI mit je zwei Leitungen (D+ und D-) pro Signal. Der Signalpegel ist zum klassischen Differntial-SCSI von ±1,5V (HVD, High Voltage Differntial) auf ±60mV (LVD, Low Voltage Differential) abgesenkt worden. Dadurch können die differentiellen Leitungstreiber in den SCSI-Steuerchip integriert werden. Mit der differentiellen Signalübertragung ist es mit Ultra2-SCSI möglich Daten mit bis zu 80 MByte/s zu übertragen, und einen SCSI-Strang (Bus) mit bis zu 12 Meter zu verwenden. Ein Mischbetrieb von Ultra2- und anderen SCSI-Geräten empfiehlt sich nicht. Wer die Geschwindigkeit von Ultra2 nutzen will, sollte für andere SCSI-Geräte einen separaten Hostadapter verwenden. Roland Zenner (03INF21) Seite 20 von 28

4.7 Universal Serial Bus USB Der Universal Serial Bus wurde 1995 von Firmen wie Intel, Compaq, NEC und Microsoft entwickelt, um die Zahl der in der Zwischenzeit aufgekommenen Steckverbindungen zu reduzieren und diese zu vereinheitlichen. Die Idee dafür stammt aus den 80er Jahren als Apple den Apple Desktop Bus ADB mit demselben Ziel entwickelte. An sich stellt USB eine kombinierte Strang- Struktur dar, lediglich auf logischer Ebene ist er ein Bus. Physikalisch wird immer eine Punkt-zu- Punkt-Verbindung hergestellt, die Terminatorwiderstände sind bereits in den Geräten eingebaut. Ein Hostgerät wirkt als Verteiler für den Anschluss mehrerer USB Geräte (Nodes). Jedes Gerät kann wieder als Verteiler agieren (Hub). Maximal können bis zu 127 Geräte an einen USB Host angeschlossen werden. Im PC befindet sich meist ein USB Root Hub als Host, von dem alle Aktivität ausgeht. Kein Gerät kann also einen Transfer von sich aus initiieren. Für den störungsfreien Betrieb sorgen FIFO Puffer in den Geräten. Abbildung 4.8 USB Topologie /USB06/ Da USB nicht nur vom Namen her ein serieller Bus ist, benötigt er wenige Anschlüsse. Ein Anschlusskabel zwischen Geräten besteht aus 4 Leitungen, Versorgungsspannung 5V (500mA) und Masse, dazu 2 Datenleitungen. Die Versorgungsspannung wird benötigt, um Geräte wie Eingabegeräte, Scanner, Massenspeicher und Kommunikationsgeräte mit Energie zu versorgen. Die Datenübertragung erfolgt bitseriell und differentiell über beide Datenleitungen. D.h. auf einer Leitung wird das Signal normal übertragen, auf der anderen das invertierte Signal. Dadurch Roland Zenner (03INF21) Seite 21 von 28

verdoppelt sich der Pegelabstand und die Übertragungssicherheit wird erhöht. Als Taktsignal wird die Non Return to Zero Inverted (NRZI) Kodierung des Bitstroms genutzt. Abbildung 4.9 Kabel des USB Bus /USB06/ USB erlaubt so genanntes Hot Plugging, d.h. das Anschließen und Abziehen eines Gerätes im laufenden Betrieb. Dazu sind die Kontakte für die Stromversorgung an den Steckern etwas länger ausgeführt, wie in Abbildung 4.10 gut zu sehen ist. Abbildung 4.10 Steckerformen beim USB, Typ A, B, Mini-B 5-polig (Standard) /WIK06/ Für eine quasi parallele Datenübertragung werden mehrere virtuelle Kanäle (Pipes) verwendet, welche jede einen Teil der verfügbaren Bandbreite beansprucht. Sie werden vom Host gebildet, jedes Gerät kann mehrere Pipes unterstützen. Die zu übertragenden Daten werden in Pakete von maximal 1500 Byte Länge aufgeteilt (Stream Pipes) und über CRC32 gegen Fehler abgesichert. Statusmeldungen dagegen haben eine festgelegte Struktur (Message Pipes) und werden mit CRC5 kontrolliert und korrigiert. Die USB Spezifikation sieht bisher 3 Geschwindigkeitsmodi vor, Low Speed mit 1,5MBit/s, dazu gehören Eingabegeräte wie Mäuse und Tastaturen. Die maximale Kabellänge zwischen Geräten ist hier auf 3m festgelegt, da keine Abschirmung zwischen den Leitungen vorgesehen ist. Bei den schnelleren Modi kann die maximale Kabellänge 5m zwischen Geräten betragen, da sowohl Abschirmung als auch Verdrillung der Datenleitung die Übertragungsqualität erhöht. Medium oder Full Speed mit 12 MBit/s, dort sind Scanner, ISDN- und Audioeinheiten verbreitet. Mit USB 2.0 werden maximal 480MBit/s im High Speed Modus unterstützt, was vor allem Roland Zenner (03INF21) Seite 22 von 28

Massenspeichermedien zugute kommt. Alle Modi sind abwärtskompatibel, eine Umschaltung der Geschwindigkeit erfolgt automatisch nach dem Anmelden der Geräte am Host. Die Kommunikation in USB findet unter Verwendung einer Reihe von Schichten statt. Die physikalische Schicht bildet die Basis der USB-Kommunikation. Sie besteht aus der Hardware, die die digitalen Signale überträgt. Die physikalische Schicht des Hosts besteht aus zwei Teilen, der "Serial Interface Engine" (SIE) und dem Hostcontroller (HC). Die SIE, die auch zur physikalischen Schicht des angeschlossenen Geräts gehört, besitzt zahlreiche Funktionen, darunter Serialisierung und Deserialisierung von Übertragungen, Kodierung und Dekodierung der Signale, Generierung und Verifizierung von zyklischen Redundanzprüfungen (cyclic redundancy checks, CRCs) sowie die Erkennung von PIDs (packet IDs) und speziellen Signalen. Der Hostcontroller, der nur einen Teil der physikalischen Schicht des USB-Hosts ausmacht, leitet Datenübertragungen ein und steuert den Zugriff auf den USB-Bus. Er teilt die Zeit in "Frames" ein und erstellt ein "Start-of-Frame- Paket" (SOF-Paket) zu jedem Frame-Intervall. Darüber hinaus verarbeitet der Hostcontroller Datenanfragen an den bzw. vom USB-Host und wickelt die Fehlerkorrektur ab. Die mittlere Schicht ist die Protokollschicht, sie wird am USB-Host als "USB- Systemsoftwareschicht" und am angebundenen Gerät als "Geräteschicht" bezeichnet. Die USB- Systemsoftware allokiert die Busbandbreite und regelt die Leistung des Busses. Sie bildet die Schnittstelle zum Hostcontroller, identifiziert und nummeriert Datenanfragen und führt solche Anfragen von am Bus angeschlossenen Geräten aus. Ein USB-Gerät besitzt einen oder mehrere unidirektionale Endpunkte, die Daten übertragen können. Ein USB-Datenerfasssungsgerät beispielsweise kann mehrere Endpunkte besitzen, die jeweils für Dateneingang, -ausgang und Einstellungen genutzt werden. Für jeden Endpunkt kann das Gerät eine bestimmte Übertragungsart festlegen. Auf der Hostseite stellt die Client-Software, über die der Anwender mit dem Gerät interagiert, die Applikationsschicht dar. Auf der Geräteseite wird die Applikationsschicht durch die Funktionen, die das Gerät ausführt, gebildet. Die Datenübertragung via USB erfolgt Paketweise. USB erschafft dazu eine Zeitbasis von Rahmen (Frames), die 1 ms lang sind. In einem Rahmen können mehrere Transaktionen stattfinden. Drei Paketarten bilden zusammen eine komplette "Transaktion", das Token-, Daten- und Handshakepaket. Wenn der USB-Host Daten senden oder empfangen möchte, sendet er ein Tokenpaket an das entsprechende Gerät. Die ADDR-Felder (ADDR = Geräteadresse) und die ENDP-Felder (ENDP = Endpunkt) legen genau fest, welcher Endpunkt an welchem Gerät Daten empfangen oder senden wird. Das CRC-Feld dient zur Fehlerkontrolle. Sobald der USB-Host ein Token an ein Gerät sendet, beginnt dieses damit, Datenpakete zu senden oder zu empfangen. Handshake-Pakete sind optional Roland Zenner (03INF21) Seite 23 von 28