I-O-Ports: Unterschied zwischen den Versionen
| (4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 10: | Zeile 10: | ||
=== Aufgaben von I/O-Ports === | === Aufgaben von I/O-Ports === | ||
* CPU liest Daten von einem Gerät | * [[CPU]] liest Daten von einem Gerät | ||
* CPU schreibt Daten an ein Gerät | * CPU schreibt Daten an ein Gerät | ||
* Konfiguration von Hardware (z. B. Tastaturcontroller, Timer, Festplattencontroller) | * Konfiguration von Hardware (z. B. Tastaturcontroller, Timer, Festplattencontroller) | ||
| Zeile 20: | Zeile 20: | ||
|- | |- | ||
| '''Port-Mapped I/O''' | | '''Port-Mapped I/O''' | ||
| CPU spricht Geräte über eigene Befehle (IN/OUT) an. | | [[CPU]] spricht Geräte über eigene Befehle (IN/OUT) an. | ||
|- | |- | ||
| '''Memory-Mapped I/O''' | | '''Memory-Mapped I/O''' | ||
| Geräte erscheinen im normalen Adressraum des RAM. | | Geräte erscheinen im normalen Adressraum des [[RAM]]. | ||
|} | |} | ||
| Zeile 35: | Zeile 35: | ||
=== Aufgaben von IRQs === | === Aufgaben von IRQs === | ||
* melden Ereignisse (z. B. Tastendruck, Daten angekommen) | * melden Ereignisse (z. B. Tastendruck, Daten angekommen) | ||
* unterbrechen die CPU kurz | * unterbrechen die [[CPU]] kurz | ||
* CPU führt eine passende Interrupt-Routine aus | * CPU führt eine passende Interrupt-Routine aus | ||
| Zeile 43: | Zeile 43: | ||
! Beispiel-IRQ | ! Beispiel-IRQ | ||
|- | |- | ||
| Tastatur | | [[Tastatur]] | ||
| IRQ 1 | | IRQ 1 | ||
|- | |- | ||
| Maus (PS/2) | | [[Maus]] ([[PS/2]]) | ||
| IRQ 12 | | IRQ 12 | ||
|- | |- | ||
| Zeile 60: | Zeile 60: | ||
=== Vorteile von DMA === | === Vorteile von DMA === | ||
* entlastet die CPU | * entlastet die [[CPU]] | ||
* höhere Datenübertragungsraten | * höhere Datenübertragungsraten | ||
* ideal für schnelle Geräte (Netzwerk, Festplatten, | * ideal für schnelle Geräte (Netzwerk, [[HDD|Festplatten]], [[Grafikkarte]]n) | ||
=== Beispiel === | === Beispiel === | ||
| Zeile 83: | Zeile 83: | ||
|- | |- | ||
| '''physische Adressen''' | | '''physische Adressen''' | ||
| tatsächliche Position der Daten im RAM | | tatsächliche Position der Daten im [[RAM]] | ||
|- | |- | ||
| '''logische / virtuelle Adressen''' | | '''logische / virtuelle Adressen''' | ||
| Zeile 102: | Zeile 102: | ||
|- | |- | ||
| I/O-Ports | | I/O-Ports | ||
| direkte Kommunikation zwischen CPU und Geräten | | direkte Kommunikation zwischen [[CPU]] und Geräten | ||
|- | |- | ||
| IRQ | | IRQ | ||
| Zeile 108: | Zeile 108: | ||
|- | |- | ||
| DMA | | DMA | ||
| Geräte übertragen Daten direkt in den RAM | | Geräte übertragen Daten direkt in den [[RAM]] | ||
|- | |- | ||
| Speicheradressen | | Speicheradressen | ||
| Zeile 115: | Zeile 115: | ||
== Kurz gesagt == | == Kurz gesagt == | ||
* '''I/O-Ports''': CPU spricht Geräte über spezielle Adressen an. | * '''I/O-Ports''': [[CPU]] spricht Geräte über spezielle Adressen an. | ||
* '''IRQ''': Geräte melden Ereignisse – CPU wird unterbrochen. | * '''IRQ''': Geräte melden Ereignisse – [[CPU]] wird unterbrochen. | ||
* '''DMA''': Geräte übertragen Daten direkt in den RAM (ohne CPU-Belastung). | * '''DMA''': Geräte übertragen Daten direkt in den [[RAM]] (ohne CPU-Belastung). | ||
* '''Speicheradressen''': jede RAM-Position hat eine Adresse; moderne Geräte erscheinen darin per Memory-Mapped I/O. | * '''Speicheradressen''': jede RAM-Position hat eine Adresse; moderne Geräte erscheinen darin per Memory-Mapped I/O. | ||
Aktuelle Version vom 2. Dezember 2025, 12:07 Uhr
I/O-Ports, DMA, IRQ und Speicheradressen
Diese Konzepte gehören zu den grundlegenden Mechanismen, mit denen ein Computer Hardwaregeräte ansteuert. Sie beschreiben, wie CPU, RAM und Peripheriegeräte miteinander kommunizieren.
I/O-Ports (Input/Output-Ports)
I/O-Ports sind spezielle Adressen, über die die CPU direkt mit Hardware kommuniziert. Jedes Gerät besitzt bestimmte Portadressen, über die Daten gesendet oder empfangen werden.
Aufgaben von I/O-Ports
- CPU liest Daten von einem Gerät
- CPU schreibt Daten an ein Gerät
- Konfiguration von Hardware (z. B. Tastaturcontroller, Timer, Festplattencontroller)
Arten der Adressierung
| Art | Beschreibung |
|---|---|
| Port-Mapped I/O | CPU spricht Geräte über eigene Befehle (IN/OUT) an. |
| Memory-Mapped I/O | Geräte erscheinen im normalen Adressraum des RAM. |
Moderne Systeme nutzen fast ausschließlich Memory-Mapped I/O (MMIO).
IRQ (Interrupt Request)
Ein Interrupt ist ein Signal, das ein Gerät an die CPU sendet, um Aufmerksamkeit zu verlangen. Der zugehörige Kanal wird IRQ genannt.
Aufgaben von IRQs
- melden Ereignisse (z. B. Tastendruck, Daten angekommen)
- unterbrechen die CPU kurz
- CPU führt eine passende Interrupt-Routine aus
Beispiele für IRQs:
| Gerät | Beispiel-IRQ |
|---|---|
| Tastatur | IRQ 1 |
| Maus (PS/2) | IRQ 12 |
| Systemtimer | IRQ 0 |
Moderne Systeme verwenden APIC statt klassischer IRQ-Nummern → flexibler und mehr Interrupts möglich.
DMA (Direct Memory Access)
DMA erlaubt es Geräten, direkt auf den Arbeitsspeicher zuzugreifen, ohne dass die CPU alle Daten übertragen muss.
Vorteile von DMA
- entlastet die CPU
- höhere Datenübertragungsraten
- ideal für schnelle Geräte (Netzwerk, Festplatten, Grafikkarten)
Beispiel
Ohne DMA:
- CPU muss jedes Byte einzeln bewegen → langsam
Mit DMA:
- Gerät → DMA-Controller → RAM
- CPU wird nur informiert, wenn der Transfer fertig ist
Speicheradressen
Jedes Byte im RAM besitzt eine eindeutige Adresse. Die CPU nutzt diese Adressen, um Daten zu lesen oder zu schreiben.
Arten von Speicheradressen
| Art | Beschreibung |
|---|---|
| physische Adressen | tatsächliche Position der Daten im RAM |
| logische / virtuelle Adressen | von Programmen genutzt; werden durch die MMU in physische Adressen übersetzt |
Memory-Mapped I/O (MMIO)
Viele Hardwaregeräte liegen nicht an I/O-Ports, sondern erscheinen an bestimmten Speicheradressen.
Beispiel:
- Grafikkarte belegt oft mehrere MB im Adressraum
- CPU schreibt direkt in diesen Bereich → Gerät reagiert
Zusammenspiel der Konzepte
| Konzept | Aufgabe |
|---|---|
| I/O-Ports | direkte Kommunikation zwischen CPU und Geräten |
| IRQ | Geräte melden Ereignisse an die CPU |
| DMA | Geräte übertragen Daten direkt in den RAM |
| Speicheradressen | CPU und Geräte speichern / lesen Daten |
