Galería de mapas mentales Kapitel 7 Eingabe- und Ausgabesystem
Dies ist eine Mindmap zum Input-Output-System in Kapitel 7. Die Hauptaufgabe des Input-Output-Systems besteht darin, externe Eingabeinformationen zu empfangen und diese in eine Form umzuwandeln, die intern vom Computer verarbeitet werden kann.
Editado a las 2024-01-16 15:51:57,Kapitel 7 Eingabe-/Ausgabesystem
Ein-/Ausgabesystem
Grundkonzepte des I/O-Systems
I/O-Steuerungsmodus
Wird hauptsächlich für externe Geräte mit geringer Datenübertragungsrate verwendet
Programmabfragemethode
Programmunterbrechungsmodus
Wird hauptsächlich für Geräte mit hohen Datenübertragungsraten verwendet
DMA-Modus
Kanalmodus
externes Gerät
Eingabegerät
Ausgabegerät
Externer Speicher (Hilfsspeicher)
I/O-Schnittstelle
I/O-Schnittstellenfunktionen
Führen Sie die Adressdekodierung und Geräteauswahl durch
Realisieren Sie die Kommunikationssteuerung zwischen Host und Peripheriegeräten
Implementieren Sie die Datenpufferung (die Schnittstelle muss ein Datenpufferregister für die temporäre Speicherung von Daten einrichten, um Datenverlust aufgrund inkonsistenter Geschwindigkeiten zu vermeiden.)
Konvertierung des Signalformats
Steuerbefehle und Statusinformationen übertragen
Grundstruktur der I/O-Schnittstelle
Datenpufferregister (DBR): Wird zum Puffern von Daten verwendet, um den Geschwindigkeitsunterschied zwischen der CPU und externen Geräten auszugleichen.
Gerätestatusregister (DSR): Wird zur Rückmeldung des Gerätestatus und allgemeiner Statusinformationen wie Gerät beschäftigt, Gerät bereit, Gerätefehler usw. verwendet. Im Programmabfragemodus ermittelt die CPU den Status des Geräts durch Lesen des Statusregisters.
Gerätebefehlsregister (DCR): Wird zum Empfangen von von der CPU gesendeten Gerätesteuerbefehlen verwendet, z. B. Geräte-Reset, Geräteidentifizierung, Lese- und Schreibsteuerung usw. Verschiedene Geräte können unterschiedliche Befehle unterstützen. Einfache Geräte verfügen nicht einmal über Befehlsregister, wie z. B. einfache Tastatureingabe- und Zeichenterminal-Ausgabegeräte. Manchmal werden die Status- und Befehlsregister in einem zusammengefasst.
Das Statusregister und das Steuerregister (Befehlsregister) sind in der Übertragungsrichtung entgegengesetzt.
Über den Datenbus werden Daten zwischen dem Datenpufferregister und dem Speicher- oder CPU-Register übertragen. Gleichzeitig werden die Statusinformationen der Schnittstelle und des Geräts im Statusregister aufgezeichnet und über die Datenleitung an die CPU gesendet. Die Steuerbefehle der CPU für Peripheriegeräte werden ebenfalls über die Datenleitung übertragen, normalerweise an das Steuerregister der I/O-Schnittstelle.
Über die Adressleitung in der Schnittstelle wird die Adresse des Registers in der I/O-Schnittstelle angegeben, auf das zugegriffen werden soll. Sie wird zusammen mit den Lese- und Schreibsteuersignalen an die Steuerlogikkomponente der I/O-Schnittstelle gesendet.
Die über die Steuerleitung übertragenen Lese- und Schreibsignale bestätigen, ob das Register gelesen oder geschrieben werden soll. Darüber hinaus überträgt die Steuerleitung auch einige Arbitrierungssignale und Handshake-Signale.
Zugriffsvorgänge auf das Datenpufferregister und das Statuskontrollregister werden durch entsprechende Anweisungen abgeschlossen, die üblicherweise als E/A-Anweisungen bezeichnet werden.
Typ der I/O-Schnittstelle
Steuerungsmethode für den Zugriff auf E/A-Geräte durch den Host
Programmabfrageschnittstelle
Interrupt-Schnittstelle
DMA-Schnittstelle
I/O-Ports und deren Adressierung
I/O-Ports beziehen sich auf Register in der Schnittstellenschaltung, auf die die CPU direkt zugreifen kann.
Datenschnittstelle
Statusport
Steueranschluss
Adressierung
Einheitliche Adressierung
Es ist nicht erforderlich, dedizierte E/A-Anweisungen einzurichten. Auf externe Geräte kann über Lade-/Speicheranweisungen zugegriffen werden. Das spezifische Gerät, auf das zugegriffen werden soll, hängt von der Adresse ab.
Unabhängige Adressierung
Für den Zugriff auf externe Geräte müssen spezielle I/O-Anweisungen verwendet werden.
Verschiedene Befehle erzeugen unterschiedliche Bussteuersignale, um zu identifizieren, ob es sich bei der Adresse auf dem Adressbus um eine Hauptspeicher- oder E/A-Adresse handelt.
Ein Computersystem umfasst mehrere E/A-Geräte, die alle über die „E/A-Schnittstelle (Busschnittstelle)“ mit dem Bus verbunden sind. Die CPU verwendet die Geräteadresse, um über den Bus auf die E/A-Schnittstelle zuzugreifen die I/O-Geräte. Die I/O-Schnittstelle ist die physische und logische Schnittstelle, die den Bus und die I/O-Geräte verbindet, einschließlich physischer Verbindungsschaltungen und logischer Schnittstellen für die Softwareinteraktion.
I/O-Modus
Programmabfragemethode
Die Steuerung des Informationsaustausches wird vollständig vom CPU-Ausführungsprogramm übernommen.
Es gibt zwei Hauptstrategien für die Umfrage
beschäftigt mit Warten
Die CPU kann keine anderen Aufgaben ausführen und wird als beschäftigter Wartezustand bezeichnet.
Sobald das Gerät bereit ist, kann die CPU den Sense abfragen.
Regelmäßige Umfragen
Starten Sie einen geplanten Interrupt.
Programmunterbrechungsmodus
Die CPU ordnet im Programm an, dass ein bestimmtes Peripheriegerät zu einem bestimmten Zeitpunkt gestartet wird. Anschließend führt die CPU das aktuelle Programm weiter aus, ohne darauf zu warten, dass das Peripheriegerät wie bei der Abfragemethode bereit ist.
Haltepunkte speichern. Um sicherzustellen, dass das Originalprogramm nach Ausführung der Interrupt-Serviceroutine korrekt zurückgegeben werden kann, muss der Haltepunkt des Originalprogramms (der Inhalt von PC und PSW, der von der Anweisung nicht direkt gelesen werden kann) im Stapel gespeichert werden ein bestimmtes Register.
Beenden Sie die Interrupt-Serviceroutine. Identifizieren Sie die Interrupt-Quelle und senden Sie die entsprechende Dienstprogramm-Eintragsadresse an den Programmzähler-PC.
Speichern Sie Szenen und Masken und legen Sie neue Masken fest. Nach dem Aufrufen der Interrupt-Service-Routine müssen Sie zunächst die Szene und das Interrupt-Maskenwort speichern. Die Szeneninformationen beziehen sich auf den für den Benutzer sichtbaren Inhalt des Arbeitsregisters, in dem der aktuelle Wert der Programmausführung am Haltepunkt gespeichert wird.
Bei jeder Datenübertragung kommt es zu einem Interrupt.
Typische Struktur einer Interrupt-Serviceroutine
Unterscheiden Sie zwischen Interrupt-Antwort und Interrupt-Service-Routine
E/A-Kontrollfluss im Programmunterbrechungsmodus
Verarbeitungsvorgang unterbrechen
DMA-Modus
Einfacher DMA-Controller
Adresszähler des Hauptspeichers
Übertragungslängenzähler
Datenpufferregister
Wenn der DMAC ein Slave-Gerät ist, kann er zum Empfangen von von der CPU übertragenen Daten verwendet werden. Wenn der DMAC ein Master-Gerät ist, kann er zum vorübergehenden Speichern der übertragenen Daten verwendet werden. Wenn der Datenaustausch zwischen Gerät und Speicher direkt über den Datenbus erfolgt, ohne dieses Register zu durchlaufen, ist die Leistung natürlich besser.
Auslöser der DMA-Anfrage
Logik „Steuerung/Zustand“.
Unterbrechungsmechanismus
Während des DMA-Übertragungsprozesses übernimmt der DMA-Controller den Adressbus, Datenbus und Steuerbus der CPU, und die Verwendung des Hauptspeichersteuersignals der CPU ist verboten.
Daten müssen nicht durch CPU-Register übertragen werden.
DMA-Übertragungsprozess
Speicherkonfliktproblem (DMA-Übertragungsmethode)
Verhindern Sie, dass die CPU auf den Speicher zugreift
Beanspruchen Sie kontinuierlich mehrere Buszyklen für die Datenübertragung.
Wenn bei dieser Übertragungsmethode ein Datenstapel übertragen werden muss, sendet die DMA-Schnittstelle eine Busnutzungsanforderung (HRQ) an die CPU. Nachdem die CPU die Bussteuerungsrechte (dargestellt durch HLDA) aufgibt, steuert die DMA-Schnittstelle die Bus für die Datenübertragung, bis alle Datenübertragungen abgeschlossen sind. Dann wird die Bussteuerung freigegeben.
DMAC und CPU greifen abwechselnd auf den Speicher zu
Diese Methode unterteilt den Speicherzugriffszyklus (Maschinenzyklus) in zwei Segmente, ein Segment ist dem DMAC-Zugriff auf den Speicher gewidmet und das andere Segment ist dem CPU-Zugriff auf den Speicher gewidmet.
Teilen Sie einen CPU-Zyklus in zwei Zyklen auf, C1 und C2, wobei C1 ausschließlich für den DMA-Speicherzugriff und C2 ausschließlich für den CPU-Speicherzugriff vorgesehen ist.
Die DMA-Schnittstelle muss keine Busnutzungsrechte beantragen und freigeben, und die Übertragungseffizienz ist hoch. Die CPU muss die Programmausführung nicht anhalten und die Arbeitseffizienz ist sehr hoch.
Zyklusaneignung
Nur wenn DMAC auf den Speicher zugreifen muss, unterbricht die CPU einen Speicherzyklus, damit DMAC auf den Hauptspeicher zugreifen kann. Nachdem die Übertragung von Daten (Wort oder Maschinenwort) abgeschlossen ist, wird die Bussteuerung an die CPU zurückgegeben.
Immer wenn das Peripheriegerät bereit ist, sendet die DMA-Schnittstelle eine Busnutzungsanforderung an die CPU. Nachdem die CPU die Bussteuerung aufgegeben hat, steuert die DMA-Schnittstelle den Bus zur Datenübertragung und gibt die Bussteuerung nach jeder Datenübertragung frei.
Die Antwort auf eine DMA-Anfrage kann am Ende eines beliebigen Maschinenzyklus erfolgen (nach dem Befehlsabruf, der indirekten Adresse oder dem Ausführungszyklus).