grundlagen der rechnerarchitektur - userpages.uni-koblenz.deunikorn/lehre/gdra/ss19/06 ein-...
TRANSCRIPT
Grundlagen der Rechnerarchitektur
Ein‐ und Ausgabe
Übersicht• Parallele und Serielle Busse• Zugriff auf IO‐Geräte• Parallelität und IO: Raid‐Systeme
2Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe
Parallele und Serielle Busse
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 3
Interaktion zwischen Chips über deren Pins
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 4
Verbindung der zusammenpassenden Pins von CPU, Speicher und I/O über parallel laufende Leitungen: BusAdress‐Pins (übliche Werte 16, 20, 32) und Daten‐Pins (übliche Werte 8, 16, 32, 64) für SpeicherzugriffDes Weiteren Control‐Pins:• Bus‐Control: Zur Steuerung von
Speicher und IO durch die CPU• Interrupts: Zur Unterbrechung
der CPU durch I/O• Bus‐Arbitration: zur Regelung des
Bus‐Zugriffs durch mehrereTeilnehmer (CPU ist gewöhnlicherBus‐Teilnehmer)
• Coprocessor‐Signaling: Kommu‐nikation zwischen CPU undCoprozessor (Beispiel: Coprocessor0und Coprocessor1 unserer MIPS‐Architektur)
• Status: ermöglicht Abfrage des der Status der CPU• Miscellaneous: Reset, Kompatibilität mit älteren CPUs,…
Pins für Clock, Stromversorgung, MasseBildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Interaktion zwischen Chips über deren Pins
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 5
Typischerweise spezieller Bus zwischen CPU und Speicher und mindestens einen weiteren Bus für I/O.Orchestrierung des Bus über Bus‐Controller; erfordert Bus‐ProtokollDes Weiteren, Elektrische und Mechanische Spezifikation(Austauschbarkeit von Komponenten; Dritthersteller)Beispiele für Bus‐Standards:• Omnibus (PDP‐8), Unibus (PDP‐11), Multibus (8086), VME, IBM PC (PC/XT)• ISA (PC/AT), EISA (80386), Microchannel (PS/2), Nubus (Mac), PCI (PC), SCSI, USB,
Firewire,…
Bemerkung: Kommunikation zwischen Register und ALUs über On‐Chip BusBildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Master/Slave
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 6
Master: Gerät welches Aktion über den Bus imitiertSlave: Gerät welches auf Request wartetGeräte können auch beides sein
Beispiele:
Master Slave Beispiel‐Aktion
CPU Speicher Fetch von Instruktionen und Daten
CPU IO‐Gerät Datentransfer initiieren
CPU Coprocessor Instruktion an Coprozessor weiter geben
IO‐Gerät Speicher DMA (siehe später)
Coprocessor CPU Coprozessor liest Operanden aus der CPU
Bus Driver, Reciever, Transceiver, Decoder
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 7
Bus‐Driver: verstärkt Signale eines Masters für den BusBus‐Receiver: dasselbe für SlavesTransceiver: Baustein für Chips die Master und Slave sindAbbindung mehrerer auf zwei Arten:• Tri‐State – Gerät wird vom Bus getrennt• Wired‐Or – In Leitung können mehrere mehrere Signale
gleichzeitig sein
Adress‐, Daten‐ und Control‐Pins eines Gerätes müssen nicht 1‐zu1 mit dem Bus übereinstimmen; in diesem Fall benötigt man einen Decoder‐ChipBeispiel: Drei CPU Pins zum encoden von Memory‐Read, Memory‐Write, IO‐Read, IO‐Write auf einzelne Control‐Leitungen des Busses für diese Funktionen abbilden
Generelle Bus‐Designmerkmale
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 8
• Breite (d.h. Anzahl Adress‐ und Datenleitungen)
• Clocking
• Arbitrierung
• Operation
Designmerkmal Breite
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 9
Tradeoff zwischen Systemkosten (Anzahl Leitungen und Platz auf dem Mother‐Board, Konnektor‐Breite) und maximal adressierbare Speichergröße bzw. Bus‐Performance (durch mehr parallele Datenleitungen)Manche Bussysteme sind über die Jahre „gewachsen“. Beispiel: IBM‐PC EISA
(Ebenso für Datenleitungen: 81632)Solche Backward‐Kompatibilität zu älteren Systemen macht den Bus nicht gerade überschaubar…
Reduktion von Busleitungen auch mittels Multiplexed‐Bussen möglich (erst Adresse senden dann Daten über dieselben Adressleitungen schreiben/lesen)
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Designmerkmal Clocking
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 10
Offensichtlich: Höhere Bustaktung = höhere Performance; aber höhere Taktung irgendwann problematisch aufgrund von Bus‐Skew (Signalleitungen unterschiedlicher Länge führt zu unterschiedlichen Signalempfangszeiten)
Generelle Unterscheidung bzgl. Taktung• Synchron – eine Clock; Busoperationen benötigen immer ein ganzzahliges Vielfaches
der Bus‐Cycle‐Time (Typische Bus‐Taktfrequenzen zwischen 5 bis 100MHz)• Asynchron – jedes Paar von Geräten kann mit „individuellem Takt“ über die
Busleitungen kommunizieren
Asynchron erfordert Handshaking zwischen Master und SlaveSynchron ist einfacher. Aber: besonders Schnelle Komponenten werden durch den vorgegebenen Takt ausgebremst; Taktung muss langsamste Komponente beachten
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Designmerkmal Arbitrierung
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 11
Zugriff mehrerer Master (CPU, Coprozessor, IO) auf den Bus erfordert Bus‐ArbitrierungZwei Arten möglich:
Gezeigtes Beispiel (a): Daisy‐ChainingProblem: Priorität implizit durch Position in der Kette; Lösung: mehrere Ketten mit Prioritäts‐Level (siehe (b) für 2 Level; häufig 4, 8 oder 16 Leitungen)
Dezentrale Arbitrierung: einfache aber unflezible nicht platzsparende Lösung: für jeden eine separate Request‐Leitung, die auch die übrigen beobachtenSkalierbare Lösung (siehe (c))
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Zentral Dezentral
(a)
(b)
(c)
Designmerkmal Operations
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 12
Neben den Bus‐Zyklen zum Schreiben und Lesen gibt es Zyklen auf denen auch weitere Bus‐Funktionen stattfinden
Beispiel 1: Block‐Transfer
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Beispiel 2: Read‐Modify‐Write‐Buszyklus Verhindert dass mehrere CPUS gleichzeitig auf eine Speicherstelle zugreifen können (Erinnerung: Synchronisierung)
Beispiel 3: Interrupt‐Handling
Beispiele (1)
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 13
Entwicklung paralleler PC‐Bussysteme• IBM PC – Standard auf 8088‐basierten
Systemen (Geschichte)• PC/AT – Weiterentwicklung des PC‐Bus für
80286 (Weiterer Connector für mehr Adress‐ und Datenleitungen)
• ISA – Im wesentlichen PC/AT mit 8.33MHz Bus‐Takt und 16‐Bit Breite, d.h. 16.7 MB/sec
• EISA – im Wesentlichen Erweiterung von ISA auf 32‐Bit, d.h. 33.3 MB/sec
Diese Busse wurden wachenden Bedarf an Video‐Performance nicht gerecht (z.B. 1024x768 3‐Byte‐Farbe benötigt 135 MB/sec)• PCI (Peripheral Component Interconnect)
• Original 32‐Bit bei 33MHz, d.h. 133MB/sec. Erweitert auf 64‐Bit bei 66MHz, d.h. 528 MB/sec
• Aber: nicht schnell genug für Speicher und nicht kompatibel mit alten Karten
• Damit: PCI‐BridgeBildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Beispiele (2)
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 14
Mit wachsendem Bedarf an Video‐Performance (z.B. wachsende Auflösung) Bedarf für speziellen Grafik‐Bus• AGP (Accelerated Graphics Port) – initial „nur“ 264 MB/sec aber dediziert für
Grafikkarte. Neuere Versionen: z.B. AGP3.0 8x mit 2.1 GB/sec
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006
Paralleler Bus für Sekundäre Speichermedien: ATAPI (IDE, ATA)
Beispiele (3)
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 15
Problem paralleler Busse: konkurrierende Master/Slaves beeinflussen die PerformanceFür mehr Performance Wechsel auf Switchingmit Point2Point seriellen Verbindungen: PCIe(PCI Express)• Analogon zu geswitchtem LAN• Protocol‐Layering
• Physical – Lanes, Encoding• Link – CRC, ACK, Flow‐Control• Transaction – Virtual Circuits• Software – Inteface zwischen PCIe‐
System und OS (Emulation von PCI über PCIe für OS welches noch auf PCI basiert)
Analoge Entwicklungen• ATA: SATA (Serial ATA)• SCSI: Serial Attached SCSI (SAS), Fibre
Channel und iSCSI.
Weitere übliche Serielle Bus‐Systeme (extern): USB, FireWire
Bildquelle: Andrew S. Tanenbaum, „Structured Computer Organization“, Fifth Edition, 2006Tabelle: https://de.wikipedia.org/wiki/PCI_Express
Wichtige IO‐Standards
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 16Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
x86‐Beipiel: Intel 5000P Chip‐Set
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 17Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Zugriff auf IO‐Geräte
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 18
Mitteilen von Kommandos an IO‐Geräte
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 19
Memory‐Mapped‐IO• In einen kleinen Teil des regulären Speichers werden Register
des IO‐Gerätes „gemapped“.• Schreiben und Lesen auf diese Speicherbereiche werden von
dem Speicher‐Controller direkt an bzw. von dem IO‐Gerät weiter gereicht.
• Betriebssystem kann den direkten Zugriff von gewöhnlichen User‐Programmen auf den Speicher verhindern, indem virtuelle Adressen nicht auf den physikalischen Speicher mit dem Memory‐Mapped‐IO gemapped werden.
• Simples Beispiel: Printer mit zwei IO‐Register• Status‐Register: z.B. Done‐Bit, Error‐Bit• Daten‐Register: z.B. das aktuell zu druckende Zeichen• Prozessor muss das Done‐Bit testen, bevor das nächste Byte
geschrieben werden kann.
Mitteilen von Kommandos an IO‐Geräte
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 20
Separate IO‐Instruktionen:• Maschinen‐Instruktion, welche die Geräte‐Adresse und das zu
übermittelnde Kommando angibt• Beispiele: Intel x86 und IBM 370• Diese speziellen Instruktionen können nur im Supervisor‐Modus
ausgeführt werden. Betriebssystem kann damit den Zugriff auf IO durch User‐Programm unterbinden.
Kommunikation mit dem Prozessor
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 21
Polling:• Prozessor muss aktiv ein Statusregister solange abfragen, bis der
Status die nächste Operation erlaubt• Problem: CPU‐Zeit wird unnötig verbraucht
Interrupts:• IO‐Gerät meldet sich bei der CPU durch einen Interrupt, wenn
eine Operation beendet wurde• Alternativen, wie Interrupt‐Behandlung organisiert sein kann:
• Ein Interrupt‐Handler pro Interrupt‐Typ• Ein einziger Interrupt‐Handler und ein Cause‐Register
Datentransfer zwischen Gerät und Speicher
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 22
Für besprochenes Polling und Interrupts: Prozessor ist dafür zuständig die Daten in oder aus den gemappten Speicherstellen zu übertragen.• Sinnvoll für IO mit geringen Datenraten• Bei hohen Datenraten wäre (auch mit Interrupts) der Prozessor
nur mit dem übertragen von Daten beschäftigt• Hier ist der sogenannte Direct‐Memory‐Access (DMA) sinnvoller
Ablauf des DMA• Prozessor bestimmt (über Memory‐Mapped‐IO) das DMA‐Gerät,
die Operation (schreiben oder lesen), die Start‐Speicherstelle und die Anzahl zu übertragen Bytes
• Gerät greift selbstständig schreibend/lesend auf den Speicher zu• Bei Ende informiert das Gerät den Prozessor über einen
Interrupt
Datentransfer zwischen Gerät und Speicher
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 23
DMA ermöglicht der CPU während der Datenübertragung parallel weiter zu rechnen; allerdings nur solange die CPU nicht auf den Hauptspeicher zugreift.
Moderne zusätzliche IO‐Prozessoren können die CPU‐Last weiterreduzieren. IO‐Prozessoren führen ganze im Speicher befindlicheIO‐Programme aus.
Mögliche Inkonsistenzen zwischen Cache der CPU und Speicher müssen bei DMA beachtet werden• CPU liest aus Cache• DMA schreibt direkt in den Speicher
Virtuelle Adressen erfordern ebenso Vorsicht• DMA schreibt in den physischen Adressraum• Virtueller Adressraum wird aber möglicherweise nicht auf
zusammenhängende Folge von Speicherblöcken gemappt
Parallelität und IO: Raid‐Systeme
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 24
Motivation
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 25
Nach Amdahls Gesetz: Beschleunigung durch Parallelität nur sinnvoll, wenn sowohl CPU als auch IO durch Parallelität beschleunigt werden.
In den späten 80ern war dies die Motivation, um von teuren großen High‐End‐Festplatten auf parallel arbeitende gewöhnliche Festplatten umzusteigen.
Problem MTTF (mean time to failure) wird signifikant erhöht• Die Fehlerrate von gewöhnlichen Platten ist schon höher• Wird Beispielsweise eine einzelne Platte durch 50 parallel arbeitende Platten
ausgetauscht, steigt die Fehlerrate um mindestens Faktor 50!
Es wurde notwendig Redundanz zur Fehlerkorrektur einzubauen. Damit wurde das Konzept Redundant‐Arrays‐of‐Inexpensive‐Disks (RAID) eingeführt.
Wie viel Redundanz man hinzufügt wird durch den sogenannten RAID‐Level ausgedrückt.
RAID‐Level am Beispiel mit vier Platten
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 26Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
RAID 4
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 27
Naive Vorgehensweise Shortcut
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
RAID 5
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 28Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
Zwei Möglichkeiten Striping und Mirroring zu kombinierenBeispiel mit 8 Disks:• Striped Mirrors (RAID 1+0 bzw. RAID 10)
• Mirrored Stripes (RAID 0+1 bzw. RAID 01)
RAID 1
RAID 10 und RAID 01
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 29
RAID 1 RAID 1 RAID 1
RAID 0 RAID 0
RAID 1
RAID 0
Zusammenfassung zu RAID
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 30
RAID 1 bis RAID 5 finden sich häufig in Server‐Systemen.
Wie werden Fehler Repariert?• Hot‐Swapping: erlaubt Hardware‐Tausch im laufenden Betrieb• Problematisch, wenn während des Tauschens ein weiterer
Fehler auftritt• Besser: Stand‐By‐Spares: Redundante zusätzliche Platte die für
Fehler‐Recovery automatisch angefahren wird.
Größer werdende Platten bedeutet auch längere Zeit, einen Fehler zu restaurieren. (Plattenkapazität wächst schneller als die Transferrate). Systeme wie RAID 6 relevant.
Zusammenfassung und Literatur
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 31
Zusammenfassung• Charakteristiken von IO‐Systemen: Zuverlässigkeit, die Vielzahl
an unterstützten Geräten, maximale Anzahl unterstützter Geräte, Kosten, undPerformance: d.h. Latenz und/oder Durchsatz
• Wichtige Art des IO‐Interfacings Im Low‐ bis Mid‐Range‐Bereich: (Buffered‐)DMA
• Im High‐End‐Bereich– Viele Pfade, um Latenz und Durchsatz zu verbessern– Redundanz und Fehlerkorrektur, um die Verfügbarkeit zu verbessern
• Wichtigster Faktor für zukünftige IO‐Systeme: Speicher‐ und Vernetzungsbedarf wächst.
• Genereller Trend: Software‐as‐a‐Service• Zukünftige Entwicklung
– Jedes Gerät ist drahtlos/drahtgebunden vernetzt– Flash‐Speicher spielt eine immer größere Rolle; insbesondere mit der
Durchdringung des Alltags mit mobilen Geräten
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 32
LiteraturPattersonHennessy2012] David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 20126.1 Introduction6.5 Connecting Processors, Memory, and I/O Devices6.6 Interfacing I/O Devices to the Processor, Memory, andOperating System
6.9 Parallelism and I/O: Redundant Arrays of InexpensiveDisks
6.13 Concluding RemarksAndrew S. Tananbaum, „Structured Computer Organization“, Fifth Edition, 20063.4.2 Computer Buses3.6 Example Buses
Grundlagen der Rechnerarchitektur ‐ Ein‐ und Ausgabe 33