Adressierungstechnik

Beim Zugriff auf die Speichereinheiten (Memory ) und den Peripheriebausteinen (I/O-Einheiten) unterscheidet man  bei den Mikroprozessoren zwischen einer Memory- und einer I/O-Adressierung. Diese Unterscheidung trifft der 8088 über die I/OM-Leitung, d.h. hat diese Leitung ein 1-Signal, greift der 8088 auf seine Peripherie zu, bei einem 0-Signal auf seine Speichereinheiten (RAM oder ROM). Zur Peripherie zählen die Laufwerke.
Beim Zugriff auf Speichereinheiten unterscheidet man weiterhin zwischen der Betriebsart für den Schreib- und Lesebetrieb. Bei einer vollständigen Adressierung ist 1MByte an Schreib- Lesespeicher vorhanden und über die
I/OM -Leitung erfolgt die Freigabe der Adressen. Hat die RD-Leitung (Read Data(low aktiv)) ein 0-Signal, handelt es sich um das Freigabesignal für den Lesebetrieb, hat WR (write(low aktiv)) ein 0-Signal, schreibt die CPU in das adressierte  Speicherbyte eine neue Information ein.
Beim Lesebetrieb bleibt die gespeicherte Information erhalten, beim Schreibbetrieb wird dagegen die  gespeicherte Information überschrieben und geht  unweigerlich  verloren. Im Ruhezustand, wenn weder eine Lese- noch eine Schreiboperation durchgeführt wird, befindet sich die
RD- und die WR-Leitung  immer auf 1-Signal. Weder die RD- noch die WR- Leitung können gleichzeitig ein 0-Signal führen, da dieser Zustand intern vom Mikroprozessor verhindert wird.

Der Adressraum der Peripheriebausteine ist meistens auf 4096 Adressen begrenzt (8088, BIOS).
Bei den I/O-Bausteinen unterscheidet man zwischen den
I-Einheiten (Input), den O-Einheiten (Output) und den kombinatorischen Ports, (I/O). Führt der Mikroprozessor eine Ausgabefunktion durch, so hat die I/OW-Leitung das entsprechende  Signal, da es sich um einen  Schreibbetrieb handelt. Der Wert des Akkumulators im 8088 wird auf die Ausgabeeinheit übertragen. Benötigt die CPU von einer Eingabeeinheit einen Wert, führt der 8088 eine Lesefunktion durch und damit hat die I/OR-Leitung ein entsprechendes Freigabesignal für die Peripherie. Der Wert, der an der Eingabeeinheit anliegt, wird über den 8-Bit-Datenbus in den Akku übertragen.

Wir unterscheiden zwischen dem internen und dem externen Bus. Der Treiberbaustein74LS245 bildet die Schnittstelle zwischen den beiden Bussen. Dieser Baustein kann als Sender und Empfänger zwischen den beiden Bussystemen arbeiten, da jeder Busanschluß mit einem Sender und einem Empfänger ausgerüstet ist. Durch die Leitung DT/R bestimmt man über den DIR -Eingang, ob die Schnittstelle als Sender (Transmitter) oder als Empfänger (Reciver ) arbeitet. Gibt die CPU auf der Leitung DT/R ein 1-Signal ab, überträgt der 74LS245 die Daten von A (CPU) nach B (Datenbus), bei einem 0-Signal dagegen von B (Datenbus) nach A (CPU). Hat der Eingang G ein 1-Signal, isoliert der 74LS245 die beiden Bussysteme(Tristate).

Durch den Interrupt-Controller 8259A lassen sich die peripheren Einheiten zusammenfassen, wenn eine interne oder externe Peripherieeinheit eine Programmunterbrechung auslöst. Zur Erkennung von Unterbrechungen ( Interrupts ) sind bei dem Computersystem 8 IR-Eingänge vorhanden und jeder Eingang hat eine entsprechende Priorität.

Eingang

Kennzahl

Funktion

IR 0

08H

Timer/Counter

IR 1

09H

Tastatur

IR 2

0AH

VGA

IR 3

0BH

Ser 02

IR 4

0CH

Ser 01

IR 5

0DH

HD

IR 6

0EH

Floppy-Disk

IR 7

0FH

LPT

Der Interrupt-Controller8295A bedient acht vektorisierte und priorisierte Unterbrechungen. Die Arbeitsweise erfolgt statisch, ohne Taktsteuerung. Die Hardware ist so ausgelegt, daß durch die Behandlung von priorisierten  Unterbrechungen auf mehrere Ebenen der Software- und der Realzeit-Steuerungsaufwand verringert wird. Die verschiedenen Betriebsarten des 8295A gestatten die schaltungstechnische Optimierung hinsichtlich unterschiedlicher Systemanforderungen für die gesammte Interrupt-Steuerung. Der Interrupt-Controller arbeitet wie ein Verwalter in einer unterbrechungsgesteuerten Umgebung. Er nimmt Anforderungen entgegen, ermittelt und prüft die Priorität und sendet anschließend ein Unterbrechungssignal an die CPU. Die programmierbare Unterbrechungssteuerung muß, nach dem Aussenden des IRQ -Signals an den Mikroprozessor die Informationen weitergeben, die den Befehlszähler in der CPU auf die entsprechende Routine zeigen läßt, welche zu dem anfordernden Gerät paßt. Dieser Zeiger ist eine Adresse in einer Vektortabelle und wird bei der Beschreibung von Interrupt-Controllern als Vectordatum bezeichnet.

Der erforderliche Arbeitstakt wird vom Taktgenerator8284A erzeugt. Die Quarzfrequenz wird über zwei interne Frequnzteiler entweder durch 2 oder 3 geteilt, damit entsteht ein sauberer Arbeitstakt. Gleichzeitig erzeugt der 8284A auch das Reset-Signal für die Rückstellung der CPU und das Ready-Signal für die Bereitstellung weiterer Steuersignale.

 

Verbindung gesucht:

Die Schaltungsentwicklung einer Slotkarte für einen Computer fängt da an, wo die Karte später untergebracht wird, nämlich am Slot selber. Um später keine bösen Überraschungen zu erleben muß der Daten- und Adressenaustausch genau festgelegten Vorgaben entsprechen. Nicht nur um Schäden vorzubeugen, sondern auch, weil die Treiberleistung der Datenbuspuffer im Rechner beschränkt ist, müssen die acht bidirektionalen Datenkanäle gepuffert sein. Weiterhin ist zu beachten, daß die Zusatzelektronik in einem genau festgelegten Adressbereich von der CPU angesprochen werden kann, so das keine Mehrdeutigkeit im Rechner entsteht. Soll heißen, daß der gewählte Adressbereich durch keine andere Peripherie belegt sein darf.
Für die Ansteuerung eines I/O-Port benötigt man einen Adreßdecoder , der aus den 20 Adreßleitungen eine einzelne Adresse erzeugt. Gleichzeitig ist auch die RD-Leitung mit dem Adreßdecoder verbunden, damit die Freigabe erfolgen kann, wenn nach der Adressierung die Leseleitung RD vom 8088 auf 0-Signal geschaltet wird. Der Adreßbereich des 8088 liegt zwischen00000H und FFFFF H. Wenn man aus diesem Bereich einen bestimmten Wert für eine I/O-Einheit auswählt, sind nur die ersten 4096 Adreßen aus dem gesammten Speicherbereich interessant. Für diese Adressierung benötigt man die 12 Leitungen von A0 bis A11.

Beispiel: Die Schnittstelle soll an der Adresse 30010 liegen und läßt sich folgendermaßen bestimmen.

300

:

2

=

150

Rest

=

0

A0

150

:

2

=

75

Rest

=

0

A1

75

:

2

=

37

Rest

=

1

A2

37

:

2

=

18

Rest

=

1

A3

18

:

2

=

9

Rest

=

0

A4

9

:

2

=

4

Rest

=

1

A5

4

:

2

=

2

Rest

=

0

A6

2

:

2

=

2

Rest

=

0

A7

1

:

2

=

0

Rest

=

1

A8


Die Adresse 30010 ergibt den binären Wert von 100101100, also einen 9-Bit-Wert. Da man bei 4096 Adressen aber 12 Leitungen für die Adressierung hat, muß man den binären Wert noch auf  12 Bit , also 000100101100 erweitern. Diesen Wert gibt man auf ein UND-Gatter, wobei jedes 0-Signal über ein NICHT-Gatter negiert werden muß. Wenn der 8088 diese Adresse ausgibt, reagiert das UND-Gatter und man hat am Ausgang ein 1-Signal für die Freigabe der Scnittstelle. Wenn die CPU diese Adresse ausgibt, dauert es eine bestimmte Zeit, bis sich die Signale auf den Adressleitungen eingestellt haben und die Decodierung abgeschloßen ist. Mit einer geringen Verzögerung schaltet der Prozessor seine IO/M-Leitung auf 1-Signal und zeigt so einen peripheren Zugriff an. Daraufhin wird das UND-Gatter aktiv und wartet  bis die RD-Leitung Low-Pegel führt.

Zurück
[Home] [Computer] [Jazz Moers] [Fotos] [Skandalös!] [Lebenshilfe] [FORUM]

Wenn Sie Fragen oder Anmerkungen haben, wenden Sie sich bitte an unseren Webmaster.
© Copyright 2oo2 By Andreas Sommer.  Alle Rechte vorbehalten.