Vom Semalt-Experten erläuterte Eingabe-Ausgabe-Ports

In Computern wird jedes Gerät (z. B. ein auf einer Erweiterungskarte oder einem Motherboard installierter Controller) mit Ausnahme des Arbeitsspeichers von der CPU als Peripheriegerät behandelt. Der Datenaustausch zwischen dem Zentralprozessor und den Peripheriegeräten erfolgt über Eingabe-Ausgabe-Ports. Der E / A-Port ist eine Puffervorrichtung oder ein Register eines Controllers, eines digitalen Signalprozessors usw., die direkt mit dem E / A-Bus des Computers verbunden sind. Über Eingangs- / Ausgangsanschlüsse können Sie eine Vielzahl interner und externer Geräte an Ihren Computer anschließen, um dessen Funktionen zu erweitern.

Mit E / A-Ports können Sie eine Verbindung zwischen den Geräten und der Software im Computer herstellen. Sie ähneln Funksprechkanälen, da der Informationsaustausch in beide Richtungen auf demselben Kanal stattfindet.

Portadresse

Um den Datenaustausch zwischen Computergeräten zu steuern, wird jedem E / A-Port eine eigene eindeutige Nummer zugewiesen - Portadresse. Auf dem PC wird 16-Bit-Code verwendet, um E / A-Ports zu adressieren. Daher gibt es 216 = 65 536 Ports, die von OOOOh bis FFFFh nummeriert sind. Der Standard-E / A-Bereich für IBM-kompatible Computer beträgt 0-3FFh. Dazu gehören Anschlüsse für Tastaturcontroller, Festplatten und Disketten, EGA / VGA-Videoadapter, Soundkarten, serielle und parallele Schnittstellen, Spieleanschlüsse und andere Peripheriegeräte. Ein Peripheriegerät kann mehrere E / A-Ports verwenden. Beachten Sie, dass Sie tatsächlich Adressen bis zu FFFFh verwenden können. Beispielsweise haben die Ports des WT-Syntheseprozessors der Soundkarte einen E / A-Bereich von 620h bis E23h.

Ports werden vom Zentralprozessor beim Ausführen eines Programms angesprochen. Um zu vermeiden, dass während der Programmierung die spezifische Adresse jedes Peripherie-E / A-Ports angegeben wird, und um die Adresse abhängig von der jeweiligen Computerkonfiguration sofort zu ändern, wird die E / A-Basisadresse verwendet. Die Basisadresse wird jedem Peripheriegerät zugewiesen und entspricht der niedrigsten Adresse in der Portgruppe. Die Adressierung der verbleibenden Ports eines Peripheriegeräts erfolgt durch Angabe des Versatzes relativ zur Basisadresse.

Die E / A-Basisadresse des Peripheriegeräts kann eine beliebige Adresse aus dem E / A-Bereich sein. Das BIOS reserviert einen Teil des E / A-Bereichs für Standardhardwaregeräte, die nicht von anderen Peripheriegeräten verwendet werden können. Beispielsweise ist für die LPT1-Schnittstelle der E / A-Bereich 378h - 37Eh reserviert, in dem die E / A-Basisadresse ausgewählt werden kann. Dann wird die Möglichkeit von Konflikten bei der Adressierung von Ports auf Hardware-Software-Ebene ausgeschlossen. Da drei Register zur Steuerung und Überwachung von LPT1 verwendet werden, gibt es innerhalb dieses E / A-Bereichs 5 mögliche Werte der Basisadresse - 378h-s-37Ch.

Programmierte E / A.

Für den Datenaustausch mit Ports wird der programmierte Ein- / Ausgang (PIO) verwendet. Es überträgt Wörter mit einer Bittiefe von 8, 16 oder 32 Bit mithilfe von Zeichenfolgenbefehlen. Das Wort kann für einen oder mehrere Buszyklen mit einer Angabe der entsprechenden Adresse in jedem Speicherzugriffszyklus übertragen werden. Busaustauschzyklen werden während der Ausführung eines E / A-Befehls initiiert. Die Anzahl der Zyklen hängt von der Ausrichtung der Adresse entlang der Wortgrenze und der Datenbittiefe des verwendeten Busses ab. Die PIO-Datenaustauschgeschwindigkeit überschreitet die Austauschgeschwindigkeit des Standard-DMA-Kanals (Direct Memory Access).