Ansprechen einzelner Komponenten -Adressraum
Problem: Die CPU möchte Daten mit den einzelnen Komponenten (RAM, ROM, I/O) austauschen, die Komponenten sind jedoch parallel an den Bussen angeschlossen.
Wie kann gewährleistet werden, daß jeweils nur eine Komponente angesprochen wird?
- Der Steuerbus gibt der gewünschten Komponente ein Einsatz-Signal.
- Die Einheiten reagieren auf unterschiedliche Adressen, haben einen unterschiedlichen Adressraum.
Adressarithmetik
Adressen n | Rechnung | Leitungen | Adressbereich Binär | Adressbereich HEX |
---|---|---|---|---|
2 | log2 2 = | 1 | 0 .. 1 | 0 .. 1 |
16 | log2 16 = | 4 | 0 .. 1111 | 0 .. F |
256 | log2 256 = | 8 | 0 .. 1111 1111 | 0 .. FF |
1k = 1.024 | log2 1024 = | 10 | 0 .. 11 1111 1111 | 0 .. 3 FF |
64k = 65536 | log2 65536 = | 16 | 0 .. 1111 1111 1111 1111 | 0 .. FF FF |
1M = 1.048.576 | log2 1M = | 20 | 0 .. 20 Einsen | 0 .. F FF FF |
1G = 1.073.741.824 | log2 1G = | 30 | 0 .. 30 Einsen | 0 .. 3F FF FF FF |
Wie viele Adressleitungen werden benötigt, um n unterschiedliche Adressen bilden zu können?
Ein 16 Bit Adressbuss hat einen Adressraum von 216 = 64k = 65536 Adressen.
Adressraum-Aufteilung
Komponente B | ||
---|---|---|
Adr.dezimal | Adr. HEX | Inhalt |
0 | 0 | 'e' |
1 | 1 | 'f' |
.. | .. | |
14 | E | 'g' |
15 | F | 'h' |
Komponente A | ||
---|---|---|
Adr.dezimal | Adr. HEX | Inhalt |
0 | 0 | 'a' |
1 | 1 | 'b' |
.. | .. | |
14 | E | 'c' |
15 | F | 'd' |
Problem: Zwei Komponenten A und B mit einem Adressraum von jeweils 16 Adressen sollen an eine CPU angeschlossen werden.
Wie viele Adressleitungen benötigt eine der Komponenten?
Eine der Komponenten benötigt 4 Adressleitungen.
Wie groß ist der Adressraum beider Komponenten, wie viele Adressleitungen werden benötigt?
Der Adressraum beträgt 2*16 = 32 Adressen, es werden 4+1 = 5 Leitungen benötigt.
Welche Adresse (in HEX) muss die CPU auf den Adressbus legen, damit die Daten 'a' bis 'h' erreicht werden?
Inhalt | 'a' | 'b' | 'c' | 'd' | 'e' | 'f' | 'g' | 'h' |
---|---|---|---|---|---|---|---|---|
Adresse | 0 | 1 | E | F | 10 | 11 | 1E | 1F |
Verbinden Sie die CPU mit den beiden Komponenten A und B so, daß die Komponente A im Adressraum vor Komponente B erreicht wird.
Tipp: Sie dürfen weitere logische Gatter einfügen.
Adressdekoder
Konstruieren Sie eine Baugruppe, die aus 2 Adressleitungen 4 CE-Signale erzeugt.
Komponente | Adressleitungen | Adressen-Anzahl | CPU-Adressbereich HEX |
---|---|---|---|
Rom | 4 | 16 | 0..F |
I/O | 4 | 16 | 10..1F |
Ram | 5 | 32 | 20..3F |
Problem: Eine CPU soll mit 3 Komponenten verschaltet werden:
Wie groß muss der Adressbereich der CPU sein (Leitungen)?
Füllen Sie die Tabelle aus, die Komponenten sollen nacheinander im CPU-Adressbereich angesprochen werden können.
Jede Komponente hat einen !CE-Eingang, entwickeln Sie unter Verwendung eines Adress-Dekoders (De-Multiplexers) einen Schaltplan!
Hinweis: Die Ausgänge des Adress-Dekoders sind invertiert (siehe Tabellenbuch), Sie dürfen ein weiteres Gatter Ihrer Wahl verwenden.