• Keine Ergebnisse gefunden

• Zugriff auf IO‐Geräte

N/A
N/A
Protected

Academic year: 2022

Aktie "• Zugriff auf IO‐Geräte"

Copied!
28
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Grundlagen der Rechnerarchitektur

Ein‐ und Ausgabe

(2)

Übersicht

• Parallele und Serielle Busse

• Zugriff auf IO‐Geräte

• Parallelität und IO: Raid‐Systeme

(3)

Parallele und Serielle Busse

(4)

Interaktion zwischen Chips über deren Pins

Verbindung der zusammenpassenden Pins von CPU, Speicher und I/O über parallel  laufende Leitungen: Bus

Adress‐Pins (übliche Werte 16, 20, 32) und Daten‐Pins (übliche Werte 8, 16, 32, 64) für  Speicherzugriff

Des 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 mehrere

Teilnehmer (CPU ist gewöhnlicher Bus‐Teilnehmer)

Coprocessor‐Signaling: Kommu‐

nikation zwischen CPU und

Coprozessor (Beispiel: Coprocessor0

und Coprocessor1 unserer MIPS‐Architektur)

Status: ermöglicht Abfrage des der Status der CPU

(5)

Interaktion zwischen Chips über deren Pins

Typischerweise spezieller Bus zwischen CPU und Speicher und mindestens einen weiteren  Bus für I/O.

Orchestrierung des Bus über Bus‐Controller; erfordert Bus‐Protokoll Des 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 Bus

(6)

Master/Slave

Master: Gerät welches Aktion über den Bus imitiert Slave: Gerät welches auf Request wartet

Gerä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

(7)

Bus Driver, Reciever, Transceiver, Decoder

Bus‐Driver: verstärkt Signale eines Masters für den Bus Bus‐Receiver: dasselbe für Slaves

Transceiver: Baustein für Chips die Master und Slave sind Abbindung 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‐Chip

Beispiel: 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

(8)

Generelle Bus‐Designmerkmale

• Breite (d.h. Anzahl Adress‐ und Datenleitungen)

Tradeoff zwischen Systemkosten (Anzahl Leitungen und Platz auf  dem Mother‐Board, Konnektor‐Breite) und maximal 

adressierbare Speichergröße bzw. Bus‐Performance

Reduktion von Busleitungen auch mittels Multiplexed‐Bussen  möglich (erst Adresse senden dann Daten über dieselben 

Adressleitungen schreiben/lesen)

(9)

Generelle Bus‐Designmerkmale

Clocking

Offensichtlich: Höhere Bustaktung = höhere Performance;

Aber technische Grenzen (verfügbare Bandbreite)

Insbesondere bei parallelen Leitungen höhere Taktung irgendwann 

problematisch aufgrund von Timing‐Skew (Signalleitungen unterschiedlicher  Länge bzw. generell Signallaufunterschiede führt zu unterschiedlichen 

Signalempfangszeiten)

Generelle Unterscheidung bzgl. Taktung

Synchron – eine Clock; Busoperationen benötigen immer ein ganzzahliges  Vielfaches der Bus‐Cycle‐Time

Asynchron – jedes Paar von Geräten kann mit „individuellem Takt“ über  die Busleitungen kommunizieren

Asynchron erfordert Handshaking zwischen Master und Slave

Synchron ist einfacher. Aber: besonders schnelle Komponenten werden  durch den vorgegebenen Takt ausgebremst; Taktung muss langsamste  Komponente beachten

(10)

Generelle Bus‐Designmerkmale

Arbitrierung

Zugriff mehrerer Master (CPU, Coprozessor, IO) auf den Bus erfordert Bus‐

Arbitrierung

Zwei Arten möglich: zentral über Arbiter, und dezentral

Operation

Neben den Bus‐Zyklen zum Schreiben und Lesen gibt es Zyklen auf denen  auch weitere Bus‐Funktionen stattfinden

Beispiel 1: Block‐Transfer

Beispiel 2: Read‐Modify‐Write‐Buszyklus 

Verhindert dass mehrere CPUs gleichzeitig auf eine Speicherstelle zugreifen  können (Erinnerung: Synchronisierung)

Beispiel 3: Interrupt‐Handling

(11)

Parallele Busse

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‐Bridge

Mit wachsendem Bedarf an Video‐Performance (z.B. 

wachsende Auflösung) Bedarf für speziellen Grafik‐Bus: 

AGP (Accelerated Graphics Port)

Jedoch mittlerweile ersetzt durch PCI Express…

(12)

Serielle Busse

Parallel versus Seriell

Problem paralleler Busse: konkurrierende  Master/Slaves beeinflussen die Performance.

Für mehr Performance Wechsel auf Switching mit  Point2Point seriellen Verbindungen

Serieller Bitstrom unproblematisch bzgl. Clock‐Skew 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)

Erlaubt mehrere Bitströme über Lanes Analoge Entwicklungen

ATA: SATA (Serial ATA)

SCSI: Serial Attached SCSI (SAS), Fibre Channel und  iSCSI.

Weitere übliche Serielle Bus‐Systeme (extern): USB, 

(13)

Zugriff auf IO‐Geräte

(14)

Mitteilen von Kommandos an IO‐Geräte

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 

(15)

Mitteilen von Kommandos an IO‐Geräte

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.

(16)

Kommunikation mit dem Prozessor

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

(17)

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

(18)

Datentransfer zwischen Gerät und Speicher

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 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 

(19)

Parallelität und IO: Raid‐Systeme

(20)

Motivation

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.

(21)

RAID‐Level am Beispiel mit vier Platten

(22)

RAID 4

Naive Vorgehensweise Shortcut

(23)

RAID 5

(24)

Zwei Möglichkeiten Striping und Mirroring zu kombinieren Beispiel 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

RAID 1 RAID 1 RAID 1

RAID 0 RAID 0

RAID 1 RAID 0

(25)

Zusammenfassung und Literatur

(26)

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: (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: 

wachsender Speicher‐ und Vernetzungsbedarf

(27)

Literatur

PattersonHennessy2012] David A. Patterson und John L. 

Hennessy, „Computer Organization and Design“,  Fourth Edition, 2012

6.1 Introduction

6.5 Connecting Processors, Memory, and I/O Devices

6.6 Interfacing I/O Devices to the Processor, Memory, and Operating System

6.9 Parallelism and I/O: Redundant Arrays of Inexpensive Disks

6.13 Concluding Remarks

Andrew S. Tananbaum, „Structured Computer  Organization“, Fifth Edition, 2006

3.4.2 Computer Buses

3.6 Example Buses

(28)

Vielen Dank

Referenzen

ÄHNLICHE DOKUMENTE

> Fileserver: Hier werden alle Dateien der ALFONS Lernwelt zentral in einem Ordner installiert.. Alle Arbeitsplätze benötigen Leserechte für

> Fileserver: Hier werden alle Dateien der ALFONS Lernwelt zentral in einem Ordner installiert.. Alle Arbeitsplätze benötigen Leserechte für

interface: PCIe 52pin, WLAN rransfer: 54 Mbit/s, standards: A/B/G, antennas: none, extern / in NB, encryption: 64/128 bit WEP/WPA/WPA2, card design: mini Card, dim: 5,95 x 3,0 cm,

URW++ Convertex is able to convert an RTF file or a TXT file which has been produced on one platform with an arbitrary codepage (for example West European character set, East

Follow the installation procedures in this chapter if you use a VAXIVMS system for your server. Follow the installation procedures in this chapter if you use a VAXmate

• IBM Cabling System using the token-ring protocol. • IBM Industrial local area network using the token-bus protocol. Finally, IBM stated his intent to provide

The response file enabled products such as OS/2 V2.0, Extended Services, LAN Services, Network Transport Services/2, Remote Multiple Printer Installation application,

Um zu erfahren, wo Sie Ihre Altgeräte zum Recycling abgeben können, wenden Sie sich bitte an Ihren örtlichen Abfallentsorgungsdienst oder an den Ort, an dem Sie das Produkt