Ich lese gerade ein Computerorganisationsbuch und bin so verwirrt über den Ein- / Ausgabemechanismus und habe viele Fragen im Kopf.
Wie ich verstanden habe, gibt es zwei Konzepte für die Kommunikation mit Peripheriegeräten: das eine ist speicherabgebildete E / A und das andere ist E / A (Port) -abgebildete E / A Spezielle E / A-Befehle wie "in", "out" usw. und Geräteregister werden dem Speicheradressraum zugeordnet, damit wir per "mov" -Befehl per Lese- oder Schreibzugriff auf Peripherie-Ports zugreifen können. Andererseits, wenn die Architektur auf E / A basiert Zugeordnete E / A, Geräteregister werden dem E / A-Adressraum zugeordnet, der vollständig vom Speicheradressraum getrennt ist, und die CPU verwendet spezielle Befehle ("in", "out", "ins", "outs") zum Lesen oder Schreiben E / A zugeordnete Geräteregister.
Also hier sind meine Fragen;
1.) Wenn die X86-Architektur die E / A-Technik (Port, isoliert usw.) verwendet, warum gibt es Speicheradressräume für Geräte wie Grafikkarten?
2.) Wenn die Grafikkarte dem Hauptspeicher-Adressraum 1 GB Speicher zuordnet, was bedeutet das? Bedeutet es Memory Mapped I / O?
3.) Wenn die x86-Architektur kein speicherzugeordnetes E / A verwendet, wie kann sich ein Gerät dem Speicheradressraum zuordnen?
4.) Wenn die x86-Architektur speicherzugeordnete E / A verwenden kann, wie und mit welchen Anweisungen?
5.) Wenn es bei der E / A-Zuordnung um die Zuordnung von Peripherieregistern geht, warum benötigt die Grafikkarte so viel Platz für die Zuordnung?