1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten)...
-
Upload
ute-wetzell -
Category
Documents
-
view
106 -
download
4
Transcript of 1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten)...
1
Der Simple As Possible Computer
Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen
Programms
2
Erläuterung zur Präsentation
• Die Präsentation verwendet Animationen, um Kontrollsignale und Datenflüsse zu veranschaulichen. Wenn eine automatische Animation stattfinden wird, muss der Betrachter einen Moment warten. Ein (w) am Ende eines Textes weist darauf hin.
• Ist eine Animation bereits abgeschlossen, zeigt ein ® an, dass die Präsentation mit der Taste RETURN weitergeführt wird.
3
Voraussetzungen aus Kapitel 4
• Der SAP kennt die Befehle – LDA Adr - Lade Inhalt der Speicherzelle mit der Nummer Adr in das
Register Akkumulator– ADD Adr - Addiere zum Inhalt des Akkumulators den Inhalt der
Speicherzelle mit der Nummer Adr und speichere das Ergebnis im Akku – SUB Adr - Subtrahiere vom Inhalt des Akkumulators den Inhalt der
Speicherzelle mit der Nummer Adr und speichere das Ergebnis im Akku – OUT - Der Inhalt des Akkumulators wird in das OUTPUT-Register
übertragen– HALT - Die Programmausführung wird beendet (das Clocksignal wird
nicht mehr erzeugt)®
4
Das Programm:
1. LDA 92. ADD A3. ADD B4. SUB C5. OUT 6. HLT
Die Aufgabe des Programms sei die Addition : 1+2+3-4®
Die Operanden 1,2,3 Die Operanden 1,2,3 und 4 stehen im und 4 stehen im Speicher an den Speicher an den Adressen 9-CAdressen 9-CHH®
5
Das Programm im Speicher
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 00006789 0000 0001A 0000 0010B 0000 0011C 0000 0100DEF
Zur Ausführung des Programms muss der 1. Befehl in Adr. 0 angesprochen werden. Dafür braucht man ein Memory Address Register in dem immer die Nummer der gerade gewünschten Speicherzelle steht
MAR=0
Die Verbindung zwischen MAR und Speicher ist TWO-State ,d.h. MAR wirkt ständig auf den Speicher ! ®
Das MAR muss sowohl Befehle als auch die Operanden der Befehle addressieren können ®
6
Der Program Counter
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100…
MAR = 0
Da alle Befehle von Adresse 0 bis 5 nacheinander ausgeführt werden sollen, braucht man ein Register, das die jeweilige Nummer enthält: Program Counter PC. ®
PC ist ein Zählerregister, das mit 0 initialisiert ist und bei Bedarf - wenn CP (d.h., Count PC) high ist - den Inhalt um den Wert eins inkrementiert. ®
Die Datenübertragung PC -> MAR erfolgt über einen internen Bus bei der nächsten positiven Flanke wenn Enable Program Counter (EP) und Load MAR (LM) high ist ®
PC = 0
8
Clk
ClkEP
LM
Die Kontrollsignale CP, EP und LM werden wie alle weiteren von der Ablaufsteuerung ABL erzeugt.®ABLEP
CP
LM
CP
7
Lesen des 1. Befehls – LDA 9
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des 1. Befehls 0000 1001 (LDA 9) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. ®
8
EP
Ein Instruktionsregister IR übernimmt das Datum. Dafür muss das Signal Load IR (LI) von der ABL gleichzeitig mit CE auf high gesetzt werden. Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen. ®
ABL
CP EPLMCELI
0000 1001CE
IR ClkLI
MAR = 0ClkLM
PC = 0ClkCP
8
Dekodieren des Befehls u. Operand holen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Die oberen 4 Bit (opcode des Befehls) werden über TWO-State Verbindung an die ABL übertragen. Diese dekodiert den Opcode und ‘weiss’, dass LDA einen Operanden erfordert, dessen Adresse in den unteren 4 Bit des Befehls enthalten ist. (w)
EP
Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM die 9 (1001) ins Adressregister MAR übertragen(w)
ABL
CP EPLMCE LI
1001CE
0000 1001ClkLI
MAR=0ClkLM
PC = 0ClkCP
EI
1001Clk
0000
LM
CP EPLMCE LIEI
9
Operand in Akkumulator ablegen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des Operanden an Adresse 9 (1001) setzt die ABL die Signal CE und LA auf high. Im Akkumulator wird der Operand 0000 0001 gespeichert (w)
8
EP
ABL
CP EPLMCELILA
0000 0001CE
0000 1001 ClkLI
1001ClkLM
PC = 0ClkCP
Akku ClkLA
0000 0001 ClkLA
LDA heisst, lade einen Wert in das Register Akkumultaor. Wir erweitern den SAP um dieses 8 Bit Register und schliessen es an den Bus an.®
10
Inkrementieren des Befehlszählers
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
8
EP
ABL
CP EPLMCELILA
CE
0000 1001 ClkLI
1001ClkLM
PC = 0ClkCP
Akku ClkLA
Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (CP) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 1 gesetzt wird. (w)
PC = 0ClkCP
PC = PC+1
ClkCP
11
Adressieren des 2. Befehls – ADD A
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
MAR = 0Die ABL setzt Enable Program Counter (EP) und Load MAR (LM) auf high. Bei der nächsten positiven Flanke wird das MAR mit dem PC geladen. Das RAM dekodiert die MAR Adresse .®
PC = 1
8
Clk
ClkEP
LM
ABL
CP
CP EPLMCELILA
Akku ClkLA
0000 1001 ClkLI
MAR = 1
12
Lesen des 2. Befehls
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des 2. Befehls 0001 1010 (ADD A) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. Das Instruktionsregister IR soll das Datum übernehmen. Load IR (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt®
8
EP
Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w)
ABL
CP EPLMCELI
0001 1010CE
IR ClkLI
MAR = 1ClkLM
PC = 1ClkCP
Akku ClkLA
0001 1010 ClkLI
13
Dekodieren des Befehls u. Operand holen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Die oberen 4 Bit (opcode des Befehls) werden wieder über die TWO-State Verbindung an die ABL übertragen. Diese dekodiert den Opcode und ‘weiss’, dass ADD einen Operanden erfordert, dessen Adresse in den unteren 4 Bit des Befehls enthalten ist.(w)
EP
Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM der Wert Ahex (1010) ins Adressregister MAR übertragen(w)
ABL
CP EPLMCE LIEI
1010CE
0001 1010ClkLI
MAR=1ClkLM
PC = 1ClkCP
EI
1010Clk
0001
LM
CP EPLMCE LIEI
Akku ClkLA
14
Register B ClkLB
Summand ablegen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des Operanden an Adresse A (1010) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand 0000 0010 gespeichert(w)
8
EP
ABL
CP EPLMCELILALB
0000 0010CE
0000 1010 ClkLI
1010ClkLM
PC = 1ClkCP
0000 0001 ClkLA
ADD bedeutet, lade einen Wert in das Register B und addiere es mit dem Akkumultaor. Wir erweitern den SAP um dieses 8 Bit Register und schliessen es an den Bus an.®
0000 0010 ClkLB
15
0000 0010 ClkLB
Addition durchführen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (EU) und Load Akku (LA) auf high. (w)
8
EP
ABL
CP EPLMCELILALBEU
CE
0001 101 ClkLI
1010ClkLM
PC = 1ClkCP
0000 0001 ClkLA
Zur Addition der Operanden in den Registern Akkumulator und Register B benötigt der SAP ein Rechenwerk. Es wird über TWO-State Verbindungen an die beiden Register angeschlossen. Die ALU addiert die Werte der beiden Eingänge ®
Rechenwerk ALU
EUEU
0000 0011 ClkLA
0000 0011
16
0000 0010 ClkLB
Inkrementieren des Befehlszählers
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 2+3®
8
EP
ABL
CP EPLMCELILALBEU
CE
0000 1001 ClkLI
1010ClkLM
PC = PC+1
ClkCP
0000 0011 ClkLA
Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (CP) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 2 gesetzt wird. (w)
Rechenwerk ALU
EU
0000 0101
17
Adressieren des 3. Befehls – ADD B
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
MAR = A
Die ABL setzt Enable Program Counter (EP) und Load MAR (LM) auf high. Bei der nächsten positiven Flanke wird das MAR mit dem PC geladen. Das RAM dekodiert die MAR Adresse .
PC = 2
8
Clk
ClkEP
LM
ABL
CP
CP EPLMCELILA
Akku ClkLA
0000 1001 ClkLI
MAR = 2
0000 0010 ClkLB
Rechenwerk ALU
EU
18
Lesen des 3. Befehls
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des 3. Befehls 0001 1011 (ADD B) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. Das Instruktionsregister IR soll das Datum übernehmen. Load IR (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt®8
EP
Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w)
ABL
CP EPLMCELI
0001 1011CE
IR ClkLI
MAR = 2ClkLM
PC = 2ClkCP
Akku ClkLA
0001 1010 ClkLI
Register B ClkLB
Rechenwerk ALU
EU
19
Dekodieren des Befehls u. Operand holen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Die oberen 4 Bit (opcode des Befehls) werden wieder über die TWO-State Verbindung an die ABL übertragen. Diese dekodiert den Opcode und ‘weiss’, dass ADD einen Operanden erfordert, dessen Adresse in den unteren 4 Bit des Befehls enthalten ist.
EP
Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM der Wert Bhex (1011) ins Adressregister MAR übertragen
ABL
CP EPLMCE LIEI
1010CE
0001 1011ClkLI
MAR=1ClkLM
PC = 2ClkCP
EI
1011Clk
0001
LM
CP EPLMCE LIEI
Akku ClkLA
Register B ClkLB
Rechenwerk ALU
EU
20
Register B ClkLB
Summand ablegen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des Operanden an Adresse B (1011) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand 0000 0011 gespeichert(w)
8
EP
ABL
CP EPLMCELIEILALB
0000 0011CE
0001 1011 ClkLI
1011ClkLM
PC = 2ClkCP
0000 0011 ClkLA
ADD bedeutet wieder, lade einen Wert in das Register B und addiere es mit dem Akkumulator.®
0000 0010 ClkLB
0000 0011 ClkLB
Rechenwerk ALU
EU
0000 0011 ClkLB
21
0000 0011 ClkLB
Addition durchführen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (EU) und Load Akku (LA) auf high. (w)
8
EP
ABL
CP EPLMCELIEILALBEU
CE
0000 1011 ClkLI
1011ClkLM
PC = 2ClkCP
0000 0011 ClkLA
Zur Addition der Operanden in den Registern Akkumulator und Register B benötigt der SAP ein Rechenwerk. Es wird über TWO-State Verbindungen an die beiden Register angeschlossen. Die ALU addiert die Werte der beiden Eingänge ®
Rechenwerk ALU
EUEU
0000 0110 ClkLA
0000 0110
22
0000 0011 ClkLB
Inkrementieren des Befehlszählers
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 6+3®
8
EP
ABL
CP EPLMCELIEILALBEU
CE
0000 1011 ClkLI
1011ClkLM
PC = PC+1
ClkCP
0000 0110 ClkLA
Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (CP) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 3 gesetzt wird. (w)
Rechenwerk ALU
EU
0000 1001
23
Adressieren des 4. Befehls – SUB C
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
MAR = B
Die ABL setzt Enable Program Counter (EP) und Load MAR (LM) auf high. Bei der nächsten positiven Flanke wird das MAR mit dem PC geladen. Das RAM dekodiert die MAR Adresse .
PC = 3
8
Clk
ClkEP
LM
ABL
CP
CP EPLMCELIEILA
Akku ClkLA
0000 1001 ClkLI
MAR = 3
0000 0010 ClkLB
Rechenwerk ALU
EU
24
Lesen des 4. Befehls – SUB C
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des 4. Befehls 0010 1100 (SUB C) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. Das Instruktionsregister IR soll das Datum übernehmen. Load IR (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt®8
EP
Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w)
ABL
CP EPLMCELIEILA
0010 1100CE
IR ClkLI
MAR = 3ClkLM
PC = 3ClkCP
Akku ClkLA
0010 1100 ClkLI
Register B ClkLB
Rechenwerk ALU
EU
25
Dekodieren des Befehls u. Operand holen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Die oberen 4 Bit (opcode des Befehls) werden wieder über die TWO-State Verbindung an die ABL übertragen. Diese dekodiert den Opcode und ‘weiss’, dass ADD einen Operanden erfordert, dessen Adresse in den unteren 4 Bit des Befehls enthalten ist. (w)
EP
Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM der Wert Ahex (1010) ins Adressregister MAR übertragen (w)
ABL
CP EPLMCE LIEI
1100CE
0010 1100ClkLI
MAR=3ClkLM
PC = 3ClkCP
EI
1100Clk
0010
LM
CP EPLMCE LIEILA
Akku ClkLA
Register B ClkLB
Rechenwerk ALU
EU
26
Subtrahend ablegen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des Operanden an Adresse C (1100) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand 0000 0100 gespeichert(w)
8
EP
ABL
CP EPLMCELIEILALB
0000 0100CE
0010 1100 ClkLI
1100ClkLM
PC = 3ClkCP
0000 0110 ClkLA
SUB bedeutet, lade den Subtrahenden in das Register B und subtrahiere ihn vom Akkumulator. ®
0000 0011 ClkLB
Rechenwerk ALU
EU
0000 0100 ClkLB
27
0000 0100 ClkLB
Subtraktion durchführen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (EU), Subtract Unit (SU) und Load Akku (LA) auf high. (w)
8
EP
ABL
CP EPLMCELIEILALBEUSU
CE
0010 1100 ClkLI
1011ClkLM
PC = 3ClkCP
0000 0110 ClkLA
Zur Subtraktion der Operanden in den Registern Akkumulator und Register B benötigt das Rechenwerk das Signal SU . Die ALU subtrahiert die Werte der beiden Eingänge ®
Rechenwerk ALU
EUEU
0000 0010 ClkLA
0000 0010SU
28
0000 0100 ClkLB
Inkrementieren des Befehlszählers
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
8
EP
ABL
CP EPLMCELIEILALBEUSU
CE
0010 1100 ClkLI
1011ClkLM
PC = PC+1
ClkCP
0000 0010 ClkLA
Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (CP) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 3 gesetzt wird. (w)
Rechenwerk ALU
EU
0000 1001SU
29
Adressieren des 5. Befehls - OUT
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
MAR = C
Die ABL setzt Enable Program Counter (EP) und Load MAR (LM) auf high. Bei der nächsten positiven Flanke wird das MAR mit dem PC geladen. Das RAM dekodiert die MAR Adresse .
PC = 4
8
Clk
ClkEP
LM
ABL
CP
CP EPLMCELI EILA LBEUSU
Akku ClkLA
0010 1100 ClkLI
MAR = 4
0000 0010 ClkLB
Rechenwerk ALU
EU
SU
30
Lesen des 5. Befehls - OUT
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
Zum Lesen des 5. Befehls 1110 0000 (OUT) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. Das Instruktionsregister IR soll das Datum übernehmen. Load IR (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt®8
EP
Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w)
ABL
CP EPLMCELIEI LA LBEUSU
1110 0000CE
IR ClkLI
MAR = 4ClkLM
PC = 4ClkCP
Akku ClkLA
1110 0000 ClkLI
Register B ClkLB
Rechenwerk ALU
EU
SU
31
Dekodieren des 5. Befehls
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
EP
ABL
CE
1110 0000ClkLI
MAR=4ClkLM
PC = 4ClkCP
EI
1110
CP EPLMCE LIEILA LBEUSU
Akku ClkLA
Register B ClkLB
Rechenwerk ALU
EU
Die oberen 4 Bit (opcode des Befehls) werden wieder über die TWO-State Verbindung an die ABL übertragen. Diese dekodiert den Opcode und ‘weiss’, dass OUT keinen Operanden erfordert. Der Inhalt des Akkumulators muss an ein Outputregister übertragen werden, das fest mit einem Display verbunden ist.(w)
Output ClkLO
Display
SU
32
Akkumulator an das Outputregister übertragen
0 0000 10011 0001 10102 0001 10113 0010 11004 1110 00005 1111 0000…9 0000 0001A 0000 0010B 0000 0011C 0000 0100
EP
ABL
CE
1110 0000ClkLI
MAR=4ClkLM
PC = 4ClkCP
EI
CP EPLMCE LIEILA LBEU SU EA LO
0000 0010 ClkLA
Register B ClkLB
Rechenwerk ALU
EU
Die ABL setzt die Kontrollsignale Enable Akkumulator (EA) und Load Output (LO) auf high.(w)
Output ClkLO
Display
SU
EA
0000 0010 2
Die Aufgabe 1+2+3-4 ist ausgeführt und das Ergebnis 2 steht an der Ausgabeeinheit.
33
Der 6. Befehl• Der Befehl HLT bringt nichts mehr neues
für die Architektur des SAP und wird deshalb hier nicht simuliert. Er wird wie alle anderen Befehle adressiert, gelesen, im IR abgelegt und an die ABL übergeben. Die hält darauf hin den SAP an.
34
Zusammenfassung• Die Animation zeigte neben den benötigten Bausteinen
((Spezial)register, ALU, RAM), dass die ABL bei der Ausführung
der Befehle eine Folge von Kontrollsignalen erzeugen muss:
Takt LDA 9 ADD A
ADD B
SUB C
OUT HLT
1 EP LM EP LM EP LM EP LM EP LM EP LM
2 CE LI CE LI CE LI CE LI CE LI CE LI
3 EI LM EI LM EI LM EI LM EALO -
4 CE LA CE LB CE LB CE LB CP -
5 CP EU LA EU LA EUSUL
A
- -
6 - CP CP CP - -
35
Der Befehlszyklus• Systematisiert, um es der ABL einfacher zu machen
(Inkrementieren des PC erfolgt immer in Takt 3) :
Takt LDA 9 ADD A
ADD B
SUB C
OUT HLT
1 EP LM EP LM EP LM EP LM EP LM EP LM
2 CE LI CE LI CE LI CE LI CE LI CE LI
3 CP CP CP CP CP CP
4 EI LM EI LM EI LM EI LM EALO -
5 CE LA CE LB CE LB CE LB - -
6 - EU LA EU LA EUSUL
A
- -
Fetch Cycle
(Hole-Zyklus)
Execute Cycle
(Ausfürungs-Zyklus) Der Hole-Zyklus ist bei jedem Befehl identisch (Befehl adressieren, lesen,
dekodieren und PC inkrementieren), die Ausführungszyklen unterscheiden sich !
36
Der Befehlszyklus - Impulsdiagramm
37
Die Ablaufsteuerung• Aufgabe:
Kontrollsignale gemäß dem Befehlszyklus erzeugen
• Dafür muss sie den Opcode des Befehls berücksichtegen und beachten, in welcher Phase des Maschinenzyklus sich der Prozessor befindet
CP EPLMCE LIEILA LBEU SU EA LO
ABL
1. EP LM
2. CE LI
3. CP
d.h. In den drei ersten Taktzyklen werden immer die gleichen Kontrollsignale erzeugt.
38
Ringzähler der Ablaufsteuerung
• Ein Ringzähler erzeugt ein Signal, das die aktuelle Phase definiert:
CP EPLMCE LIEILA LBEU SU EA LO
ABL
T0. EP LM
T1. CE LI
T2. CP
39
Der Befehlsdekodierer
• Der Opcode eines Befehls wird von einem Befehlsdekodierer verarbeitet: Dabei werden nur die definierten 5 Opcodes von 16 möglichen erfasst
CP EPLMCE LIEILA LBEU SU EA LO
ABL
40
Die Kontrollmatrix
• In Abhängigkeit von Phase und Opcode müssen die Kontrollsignale erzeugt werden:
CP EPLMCE LIEILA LBEU SU EA LO
ABL
41
Die komplette Ablaufsteuerung
CP EPLMCE LIEILA LBEU SU EA LO
42
Das Rechenwerk Addierer
4 Bit Addierwerk
Halb-Addierer
Voll-Addierer
43
Das Rechenwerk - Addierer und Subtrahierer