Welche Beziehungen bestehen zwischen E / A-Ports und Registern in einer Gerätesteuerung?

534
Tim

Geben die folgenden zwei Referenzen unterschiedliche Ansprüche bezüglich der Beziehungen zwischen E / A-Ports und Registern in einer Gerätesteuerung an? Welche Beziehungen haben sie eigentlich?

Bedeutet das folgende Zitat aus https://cs.nyu.edu/courses/fall10/V22.0436-001/lecture24.html, dass in einer Gerätesteuerung genau ein E / A-Port für jedes Register vorhanden ist und genau ein für jeden IO-Port registrieren?

Jedes E / A-Gerät ist über einen Controller mit dem E / A-Bus verbunden. Ein einfacher Controller verfügt über mindestens drei Adressen (Ports) auf dem Bus, die jeweils einem Register im Controller entsprechen

  • ein Datenregister (entweder lesbar oder schreibbar, abhängig davon, ob es sich um ein Eingabe- oder Ausgabegerät handelt)
  • ein Steuerregister (beschreibbar zum Steuern des Gerätebetriebs)
  • ein Statusregister (lesbar, um den Gerätestatus zu ermitteln - insbesondere, ob es bereit ist, Daten zu empfangen oder bereitzustellen)

Komplexere Geräte (z. B. Festplatten) verfügen über mehrere Steuer- und Statusregister

Bedeutet das folgende Zitat aus Betriebssystemkonzepten, dass ein E / A-Port in einer Gerätesteuerung vier Register hat?

Ein E / A-Port besteht normalerweise aus vier Registern, die als Status-, Steuer-, Dateneingangs- und Datenausgangsregister bezeichnet werden.

• Das Dateneingangsregister wird vom Host gelesen, um eine Eingabe zu erhalten.

• Das Datenausgangsregister wird vom Host geschrieben, um die Ausgabe zu senden.

• Das Statusregister enthält Bits, die vom Host gelesen werden können.

• Das Steuerregister. ...

Vielen Dank.

-3
Ich schlage vor, Sie schauen sich einige Datenblätter mit echter Hardware an, um eine bessere Vorstellung davon zu bekommen, was passieren kann. Während dies die Grundidee richtig beschreibt, sind reale Chips unheimlich und Sie werden der Ideenvielfalt, die Hardware-Designer haben, nicht glauben ... dirkt vor 5 Jahren 0
Tim, bitte lies den Text zum Schließen der Frage genauer. Diese Kategorie ist ** off-topic ** hier auf SU. Twisty Impersonator vor 5 Jahren 0
@ TwistyImpersonator Ich frage nicht nach "Produkt-, Service- oder Lernmaterialempfehlungen". Meine Frage ist gültig. (Ich habe "nicht" in meinem vorherigen Kommentar vergessen) Tim vor 5 Jahren 0
@ Tim LOL ... ok Ich habe mich gefragt, ob das der Fall gewesen sein könnte. Twisty Impersonator vor 5 Jahren 0
@ TwistyImpersonator Tut mir leid. Könnten Sie eine Wiedereröffnung abgeben? Tim vor 5 Jahren 0
Nun, ich habe VTC nicht auf Ihren Kommentar bezogen, sondern eher auf Ihre Frage. In seiner jetzigen Form kann eine Wiedereröffnung nicht gerechtfertigt werden. Ihre Frage könnte besser sein, wenn Sie sie bearbeiten, um das tatsächliche Problem zu beschreiben, das Sie lösen möchten. Twisty Impersonator vor 5 Jahren 1
Ich verstehe deine Bitte nicht. Ist mein Beitrag nicht das eigentliche Problem, das ich zu lösen versuche? Sie scheinen besser zu wissen, was mein eigentliches Problem ist, als ich. Tim vor 5 Jahren 0

2 Antworten auf die Frage

2
LawrenceC

Was Sie in Ihrem Beitrag beschreiben, ist ein "typisches" Szenario, insbesondere wenn sich die E / A auf einem anderen Bus als der CPU befindet (PCI / PCI ist ein gutes Beispiel) oder wenn Sie mit einem Controller anstatt mit dem tatsächlichen E / A-Gerät sprechen . Die Realität ist natürlich viel unordentlicher.

Hardware kann so ausgelegt werden, dass sie auf jede Weise reagiert, die der Hardware-Designer Anforderungen von der CPU lesen / schreiben möchte.

Zum Beispiel ist es möglich:

  • Machen Sie den Zugriff auf eine E / A-Adresse so, dass das Gerät etwas tut (lesen oder schreiben).

  • Machen Sie es so, dass Lese- und Schreibvorgänge an dieselbe E / A-Adresse erfolgen, die tatsächlich auf verschiedene Register oder Funktionen des Geräts zugreifen.

  • Einfache Geräte benötigen möglicherweise kein Daten-, Steuer- und Statusregister. Der PC-Parallelanschluss ist ein Beispiel. Es wird von einem einzelnen Byte im E / A-Adressraum gesteuert.

Natürlich wären solche Geräte direkt von der CPU ansprechbar und nicht "hinter" einem Controller. Parallele Schnittstelle als ISA-Gerät der alten Schule. Heutzutage handelt es sich tatsächlich um den LPC-Bus, aber LPC funktioniert wie ISA.

Das Vorstehende war in der Zeit vor dem PC weitaus häufiger, und ich glaube, dass es auf Nicht-x86-Plattformen wie ARM und MIPS üblich ist.

Komplexe Controller (die meisten) benötigen einen zusätzlichen Mechanismus, mit dem Sie angeben können, mit welchem ​​Gerät Sie mit dem Controller verbunden sind. I2C ist so.

1
Attie

IP ist in der Regel als Modul mit klar definierten Grenzen konzipiert ... Oft befinden sie sich im Adressraum des Prozessorkerns. Es ist möglich, einen E / A-Block mit entweder einem einzelnen Eingangs- oder Ausgangspin zu entwickeln, der ein einzelnes Bit eines Registers verdrahtet hat, um entweder den Eingangswert zu lesen oder den Ausgangswert festzulegen ... aber das ist nicht sinnvoll und durchaus nicht sinnvoll verschwenderisch für den Adressraum.

Stattdessen sind die Module so gestaltet, dass sie " eleganter " sind und daher in manchen Fällen paralleler sind. Die AVR-E / A-Module verfügen über 8 Eingangs- / Ausgangspins, während das STM32-E / A-Modul 16 Pins besitzt. Der AVR bietet grundlegende E / A-Funktionen, während das STM32 die Slew-Rate-Steuerung und alternative Funktionen aufweist, die den von den E / A-Pins bereitgestellten Treibern zugeordnet werden können.

Betrachten Sie die E / A-Anschlüsse der folgenden:

AVR

avr I / O-Register

STM32

stm32 E / A-Register


Bedeutet das folgende Zitat [...], dass in einer Gerätesteuerung für jedes Register genau ein E / A-Port vorhanden ist und für jedes E / A-Port genau ein Register vorhanden ist?

Ich würde " Nein " sagen - es impliziert, dass es zumindest eine Art von Daten-, Steuerungs- und Statusschnittstelle für ein E / A-Modul gibt.

Denken Sie daran, dass viele Lernmaterialien ein leicht verständliches Modell darstellen, bevor sie ungültig werden und die tatsächlich vorhandenen Einschränkungen und technischen Komplexität darstellen.

Bedeutet das folgende Zitat aus Betriebssystemkonzepten, dass ein E / A-Port in einer Gerätesteuerung vier Register hat?

Wieder würde ich " Nein " sagen ... Es gibt eine " typische " / " Basis " - Erwartung, woraus etwas bestehen kann.