Präsentation herunterladen
1
IO - Hardwarestruktur, allgemein
Ein IO (Ein-Ausgabe-)- Gerät muss über einen Baustein an das Bussystem des Mainboard angeschlossen werden. Dieser Baustein wird Controller (Gerätesteuerung) genannt. Bus Controller Gerät Bridge IO-Bus Controller Gerät Einf. in die WI 1 - DV-Infrastruktur WS03/04
2
IO - Hardwarestruktur, allgemein
Die Controller befinden sich entweder fest auf dem Mainboard oder sie liegen auf den IO-Erweiterungskarten, die in die entsprechenden „Slots“ auf dem Mainboard gesteckt werden. Vom Controller geht in der Regel ein Kabel zum Gerät, das sich außerhalb oder innerhalb des PC befinden kann. Einf. in die WI 1 - DV-Infrastruktur WS03/04
3
IO - Hardwarestruktur, allgemein
Bus Daten Controller Statusfeld Kommandofeld Datenfeld Adressen Steuerung Einf. in die WI 1 - DV-Infrastruktur WS03/04
4
IO - Hardwarestruktur, allgemein
Wie wird ein Controller von der CPU angesprochen? Jedes Feld im Controller hat eine eindeutige Adresse, genannt IO-Adresse (0..64k, 16 bit). Das Programm muss diese Adressen kennen. Wie kann man wissen, ob die Adresse 333 eine IO-Adresse oder eine Adresse des Arbeitsspeichers ist? Über die Steuerleitung des Bus! Jeder Controller liest die Adresse auf dem Adressbus und die Steuerbusinfo. Liegt eine seiner IO-Adressen auf dem Adressbus, so weiß der Controller, dass er gemeint ist. Einf. in die WI 1 - DV-Infrastruktur WS03/04
5
Beispiel: parallele Schnittstelle, Drucker datenport: byte at 0x03bc
IO-Programme Beispiel: parallele Schnittstelle, Drucker datenport: byte at 0x03bc statusport: byte at 0x03bd steuerport: byte at 0x03be Die IO-Felder bezeichnet man oft als Ports. Einf. in die WI 1 - DV-Infrastruktur WS03/04
6
IO-Programme } Grob: Warte, bis o.k. Zeichen an Daten-port
Diese Funktion gibt das Zeichen in x am Drucker aus. void treiber( char x ) { Warten, bis Statusanzeige der Schnittstelle o.k. anzeigt. while ((inportb(0x0bd) & 0x80) == 0) /*warte*/; Jetzt o.k., Zeichen zum Datenport. outportb(0x0bc, x); /*Zeichen an Datenport*/ „Druckimpuls“ für den Drucker über Steuerport. outportb(0x0be, 0x0d); /*Strobe herunter*/ outportb(0x0be, 0x0c); /*Strobe herauf - ergibt Impuls*/ } Grob: Warte, bis o.k. Zeichen an Daten-port Druckimpuls vom Controller zum Drucker: Drucken! Einf. in die WI 1 - DV-Infrastruktur WS03/04
7
Interrupt Bus Interruptleitung Controller
Der Controller kann ein Signal zur CPU senden, dadurch wird der normale Programmfluss unterbrochen und eine Betriebssystemfunktion aufgerufen, die Daten vom Controller holt oder neue zur Verfügung stellt. Bus Daten Interruptleitung Controller Adressen Steuerung Einf. in die WI 1 - DV-Infrastruktur WS03/04
8
Interrupt Beispiel: Tastatur Wird eine Taste gedrückt, so stellt dies der Tastaturcontroller fest. Er generiert einen Interrupt, die Interruptfunktion holt die Nummer der Taste aus dem Datenport und speichert sie in der Tastaturverwaltung des Betriebssystems ab. Netzwerkadapter Ein Datenpaket wird aus dem Netz empfangen. Der Controller generiert einen Interrupt. Das Datenpaket wird über die Interrupt-funktion vom Betriebssystem übernommen. Einf. in die WI 1 - DV-Infrastruktur WS03/04
9
DMA Direct Memory Access
Direkter Zugriff eines Controllers auf den Arbeitsspeicher. Ohne DMA Mit DMA CPU Speicher CPU Speicher 1 2 Bus 1 Start 2 Datenübertragung 3 Interrupt: Ende 3 Controller Controller Einf. in die WI 1 - DV-Infrastruktur WS03/04
10
DMA Direct Memory Access
Das Programm übergibt dem Controller mit DMA-Fähigkeit eine Arbeitsspeicheradresse, eine Datenadresse (z.B. des Plattenspeichers), die Zahl der Bytes, und das Kommando (z.B. Lesen). Der Controller überträgt die Daten direkt in den Arbeitsspeicher. Der Controller benötigt für DMA den Status eines Busmasters! Wiederholung Busmaster Der Controller kann für sich den exklusiven Zugang zum Bus anfordern. Einf. in die WI 1 - DV-Infrastruktur WS03/04
11
Plug & Play Früher wurden die IO-Adressen der Controllerfelder per Schalter fest eingestellt. Bei den Interrupts gab es 16 Nummern, jeder Controller benötigte eine eindeutige Interrupt-Nummer. Heute: Beim Systemstart werden durch den Plug & Play Dialog zwischen Controller und Betriebssystem die IO-Adressen (& Interruptnr.) eindeutig ausgehandelt. Da die Interruptnummern nicht mehr ausreichten, wurden über den PCI-Bus Sammelinterrupts eingerichtet. Die Identifikation der Interruptquellen geschieht über die Steuerung des Bussystems. Einf. in die WI 1 - DV-Infrastruktur WS03/04
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.