Grundlagen der Rechnerarchitektur
Ein‐ und Ausgabe
Übersicht
• Grundbegriffe
• Hard‐Disks und Flash‐RAM
• Zugriff auf IO‐Geräte
• RAID‐Systeme
2 Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe
SS 2012
Grundbegriffe
Verbindung zwischen IO‐Geräte, Speicher und Prozessor
SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 4
Aktuelle wichtige IO‐Standards
Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012
x86‐Beipiel: Intel 5000P Chip‐Set
SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 6
Flash‐Speicher
Flash‐Speicher: nichtvolatiler Halbleiterspeicher.
Vorteile gegenüber Disks:
• Latenz ist 100 bis 1000 fach schneller
• Kleiner
• Mehr Leistungseffizient
• Mehr Shock‐Resistent Nachteile gegenüber Disks:
• Höherer Preis pro GB (allerdings sind die Preise fallend)
• Flash‐Speicher‐Bits sind nach vielem Überschreiben nicht mehr verwendbar (Wear‐Out).
Flash‐Speicher muss ein entsprechendes Wear‐Leveling durchführen.
NOR‐ und NAND‐Flash‐Speicher
SS 2012 Bildquelle: David A. Patterson und John L. Hennessy, „Computer Organization and Design“, Fourth Edition, 2012Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 12
Zugriff auf IO‐Geräte
Mitteilen von Kommandos an IO‐Geräte
SS 2012 Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 14
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
Separate IO‐Instruktionen:
• Maschinen‐Instruktion, welche die Geräte‐Adresse und das zu übermittelnde Kommando angibt
• Alternative: Anstatt Kommando eine Speicherstelle, die das Kommando speichert
• 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
SS 2012 Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 16
Polling:
• Prozessor muss aktiv ein Statusregister solange abfragen, bis der Status die nächste Operation erlaubt (siehe voriges einfaches Beispiel)
• 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
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
SS 2012 Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 18
DMA ermöglicht der CPU während der Datenübertragung parallel weiter zu rechnen; allerdings nur solange die CPU nicht auf den Hauptspeicher zugreift.
Modernde zusätzliche IO‐Prozessoren können die CPU‐Last weiter reduzieren. IO‐Prozessoren führen ganze im Speicher befindliche IO‐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
Zusammenfassung und Literatur
Zusammenfassung
• Charakteristiken von IO‐Systemen: Zuverlässigkeit, die Vielzahl an unterstützten Geräten, maximale Anzahl unterstützter
Geräte, Kosten, und
Performance: 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 und limitiertes Buffering, 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‐ROM spielt eine immer größere Rolle; insbesondere mit der Durchdringung des Alltags mit mobilen Geräten
Grundlagen der Rechnerarchitektur ‐Ein‐und Ausgabe 26 SS 2012