• Keine Ergebnisse gefunden

• Zugriff auf IO‐Geräte

N/A
N/A
Protected

Academic year: 2022

Aktie "• Zugriff auf IO‐Geräte"

Copied!
26
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

(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 

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

• Clocking

• Arbitrierung

• Operation

(9)

Designmerkmal Breite

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: 81632)

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)

(10)

Designmerkmal Clocking

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

(11)

Designmerkmal Arbitrierung

Zugriff mehrerer Master (CPU, Coprozessor, IO) auf den Bus erfordert Bus‐Arbitrierung Zwei Arten möglich:

Gezeigtes Beispiel (a): Daisy‐Chaining

Problem: 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 beobachten

Skalierbare Lösung (siehe (c))

Zentral Dezentral

(a)

(b)

(c)

(12)

Designmerkmal Operations

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

(13)

Beispiele (1)

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

(14)

Beispiele (2)

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

(15)

Beispiele (3)

Problem paralleler Busse: konkurrierende  Master/Slaves beeinflussen die Performance Für mehr Performance Wechsel auf Switching mit 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, 2006 Tabelle: https://de.wikipedia.org/wiki/PCI_Express

(16)

Wichtige IO‐Standards

(17)

x86‐Beipiel: Intel 5000P Chip‐Set

(18)

Zugriff auf IO‐Geräte

(19)

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 

geschrieben werden kann.

(20)

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.

(21)

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

(22)

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

(23)

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 

zusammenhängende Folge von Speicherblöcken gemappt

(24)

Zusammenfassung und Literatur

(25)

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

(26)

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

Referenzen

ÄHNLICHE DOKUMENTE

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,

> 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

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