Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen Programms.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen Programms."—  Präsentation transkript:

1 1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen Programms

2 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 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 4 Das Programm: 1.LDA 9 2.ADD A 3.ADD B 4.SUB C 5.OUT 6.HLT Die Aufgabe des Programms sei die Addition : 1+2+3-4 ® Die Operanden 1,2,3 und 4 stehen im Speicher an den Adressen 9-C H Die Operanden 1,2,3 und 4 stehen im Speicher an den Adressen 9-C H ®

5 5 Das Programm im Speicher 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 6 7 8 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 D E F 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 6 Der Program Counter 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 C P (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 (E P ) und Load MAR (L M ) high ist ® PC = 0 8 Clk EPEP LMLM Die Kontrollsignale C P, E P und L M werden wie alle weiteren von der Ablaufsteuerung ABL erzeugt.® ABL EPEP CPCP LMLM CPCP

7 7 Lesen des 1. Befehls – LDA 9 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 EPEP Ein Instruktionsregister IR übernimmt das Datum. Dafür muss das Signal Load IR (L I ) von der ABL gleichzeitig mit CE auf high gesetzt werden. Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen. ® ABL C P E P L M CEL I 0000 1001 CE IR Clk LILI MAR = 0 Clk LMLM PC = 0 Clk CPCP

8 8 Dekodieren des Befehls u. Operand holen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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) EPEP Mit dem Signal E I werden die unteren 4 Bit auf den Datenbus gegeben und mit L M die 9 (1001) ins Adressregister MAR übertragen(w) ABL C P E P L M CE L I 1001 CE 0000 1001 Clk LILI MAR=0 Clk LMLM PC = 0 Clk CPCP EIEI 1001 Clk 0000 LMLM C P E P L M CE L I E I

9 9 Operand in Akkumulator ablegen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Zum Lesen des Operanden an Adresse 9 (1001) setzt die ABL die Signal CE und L A auf high. Im Akkumulator wird der Operand 0000 0001 gespeichert (w) 8 EPEP ABL C P E P L M CEL I L A 0000 0001 CE 0000 1001 Clk LILI 1001 Clk LMLM PC = 0 Clk CPCP Akku Clk LALA 0000 0001 Clk LALA 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 10 Inkrementieren des Befehlszählers 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 8 EPEP ABL C P E P L M CEL I L A CE 0000 1001 Clk LILI 1001 Clk LMLM PC = 0 Clk CPCP Akku Clk LALA Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (C P ) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 1 gesetzt wird. (w) PC = 0 Clk CPCP PC = PC+1 Clk CPCP

11 11 Adressieren des 2. Befehls – ADD A 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 MAR = 0 Die ABL setzt Enable Program Counter (E P ) und Load MAR (L M ) 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 EPEP LMLM ABL CPCP C P E P L M CEL I L A Akku Clk LALA 0000 1001 Clk LILI MAR = 1

12 12 Lesen des 2. Befehls 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 (L I ) wird von der ABL gleichzeitig mit CE auf high gesetzt® 8 EPEP Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL C P E P L M CEL I 0001 1010 CE IR Clk LILI MAR = 1 Clk LMLM PC = 1 Clk CPCP Akku Clk LALA 0001 1010 Clk LILI

13 13 Dekodieren des Befehls u. Operand holen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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) EPEP Mit dem Signal E I werden die unteren 4 Bit auf den Datenbus gegeben und mit L M der Wert A hex (1010) ins Adressregister MAR übertragen(w) ABL C P E P L M CE L I E I 1010 CE 0001 1010 Clk LILI MAR=1 Clk LMLM PC = 1 Clk CPCP EIEI 1010 Clk 0001 LMLM C P E P L M CE L I E I Akku Clk LALA

14 14 Register B Clk LBLB Summand ablegen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Zum Lesen des Operanden an Adresse A (1010) setzt die ABL die Signale CE und L B auf high. Im Register B wird der Operand 0000 0010 gespeichert(w) 8 EPEP ABL C P E P L M CEL I L A L B 0000 0010 CE 0000 1010 Clk LILI 1010 Clk LMLM PC = 1 Clk CPCP 0000 0001 Clk LALA 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 Clk LBLB

15 15 0000 0010 Clk LBLB Addition durchführen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (E U ) und Load Akku (L A ) auf high. (w) 8 EPEP ABL C P E P L M CEL I L A L B E U CE 0001 101 Clk LILI 1010 Clk LMLM PC = 1 Clk CPCP 0000 0001 Clk LALA 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 EUEU 0000 0011 Clk LALA 0000 0011

16 16 0000 0010 Clk LBLB Inkrementieren des Befehlszählers 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 2+3® 8 EPEP ABL C P E P L M CEL I L A L B E U CE 0000 1001 Clk LILI 1010 Clk LMLM PC = PC+1 Clk CPCP 0000 0011 Clk LALA Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (C P ) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 2 gesetzt wird. (w) Rechenwerk ALU EUEU 0000 0101

17 17 Adressieren des 3. Befehls – ADD B 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 MAR = A Die ABL setzt Enable Program Counter (E P ) und Load MAR (L M ) 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 EPEP LMLM ABL CPCP C P E P L M CEL I L A Akku Clk LALA 0000 1001 Clk LILI MAR = 2 0000 0010 Clk LBLB Rechenwerk ALU EUEU

18 18 Lesen des 3. Befehls 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 (L I ) wird von der ABL gleichzeitig mit CE auf high gesetzt® 8 EPEP Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL C P E P L M CEL I 0001 1011 CE IR Clk LILI MAR = 2 Clk LMLM PC = 2 Clk CPCP Akku Clk LALA 0001 1010 Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU

19 19 Dekodieren des Befehls u. Operand holen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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. EPEP Mit dem Signal E I werden die unteren 4 Bit auf den Datenbus gegeben und mit L M der Wert B hex (1011) ins Adressregister MAR übertragen ABL C P E P L M CE L I E I 1010 CE 0001 1011 Clk LILI MAR=1 Clk LMLM PC = 2 Clk CPCP EIEI 1011 Clk 0001 LMLM C P E P L M CE L I E I Akku Clk LALA Register B Clk LBLB Rechenwerk ALU EUEU

20 20 Register B Clk LBLB Summand ablegen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Zum Lesen des Operanden an Adresse B (1011) setzt die ABL die Signale CE und L B auf high. Im Register B wird der Operand 0000 0011 gespeichert(w) 8 EPEP ABL C P E P L M CEL I E I L A L B 0000 0011 CE 0001 1011 Clk LILI 1011 Clk LMLM PC = 2 Clk CPCP 0000 0011 Clk LALA ADD bedeutet wieder, lade einen Wert in das Register B und addiere es mit dem Akkumulator.® 0000 0010 Clk LBLB 0000 0011 Clk LBLB Rechenwerk ALU EUEU 0000 0011 Clk LBLB

21 21 0000 0011 Clk LBLB Addition durchführen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (E U ) und Load Akku (L A ) auf high. (w) 8 EPEP ABL C P E P L M CEL I E I L A L B E U CE 0000 1011 Clk LILI 1011 Clk LMLM PC = 2 Clk CPCP 0000 0011 Clk LALA 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 EUEU 0000 0110 Clk LALA 0000 0110

22 22 0000 0011 Clk LBLB Inkrementieren des Befehlszählers 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 6+3® 8 EPEP ABL C P E P L M CEL I E I L A L B E U CE 0000 1011 Clk LILI 1011 Clk LMLM PC = PC+1 Clk CPCP 0000 0110 Clk LALA Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (C P ) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 3 gesetzt wird. (w) Rechenwerk ALU EUEU 0000 1001

23 23 Adressieren des 4. Befehls – SUB C 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 MAR = B Die ABL setzt Enable Program Counter (E P ) und Load MAR (L M ) 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 EPEP LMLM ABL CPCP C P E P L M CEL I E I L A Akku Clk LALA 0000 1001 Clk LILI MAR = 3 0000 0010 Clk LBLB Rechenwerk ALU EUEU

24 24 Lesen des 4. Befehls – SUB C 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 (L I ) wird von der ABL gleichzeitig mit CE auf high gesetzt® 8 EPEP Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL C P E P L M CEL I E I L A 0010 1100 CE IR Clk LILI MAR = 3 Clk LMLM PC = 3 Clk CPCP Akku Clk LALA 0010 1100 Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU

25 25 Dekodieren des Befehls u. Operand holen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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) EPEP Mit dem Signal E I werden die unteren 4 Bit auf den Datenbus gegeben und mit L M der Wert A hex (1010) ins Adressregister MAR übertragen (w) ABL C P E P L M CE L I E I 1100 CE 0010 1100 Clk LILI MAR=3 Clk LMLM PC = 3 Clk CPCP EIEI 1100 Clk 0010 LMLM C P E P L M CE L I E I L A Akku Clk LALA Register B Clk LBLB Rechenwerk ALU EUEU

26 26 Subtrahend ablegen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Zum Lesen des Operanden an Adresse C (1100) setzt die ABL die Signale CE und L B auf high. Im Register B wird der Operand 0000 0100 gespeichert(w) 8 EPEP ABL C P E P L M CEL I E I L A L B 0000 0100 CE 0010 1100 Clk LILI 1100 Clk LMLM PC = 3 Clk CPCP 0000 0110 Clk LALA SUB bedeutet, lade den Subtrahenden in das Register B und subtrahiere ihn vom Akkumulator. ® 0000 0011 Clk LBLB Rechenwerk ALU EUEU 0000 0100 Clk LBLB

27 27 0000 0100 Clk LBLB Subtraktion durchführen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (E U ), Subtract Unit (S U) und Load Akku (L A ) auf high. (w) 8 EPEP ABL C P E P L M CEL I E I L A L B E U S U CE 0010 1100 Clk LILI 1011 Clk LMLM PC = 3 Clk CPCP 0000 0110 Clk LALA Zur Subtraktion der Operanden in den Registern Akkumulator und Register B benötigt das Rechenwerk das Signal S U. Die ALU subtrahiert die Werte der beiden Eingänge ® Rechenwerk ALU EUEU EUEU 0000 0010 Clk LALA 0000 0010 SUSU

28 28 0000 0100 Clk LBLB Inkrementieren des Befehlszählers 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 8 EPEP ABL C P E P L M CEL I E I L A L B E U S U CE 0010 1100 Clk LILI 1011 Clk LMLM PC = PC+1 Clk CPCP 0000 0010 Clk LALA Damit der nächste Befehl bearbeitet werden kann, wird der Programcounter PC um eins erhöht. Die ABL setzt Count Programmcounter (C P ) auf high, so dass beim nächsten Clocksignal der Programmcounter PC auf 3 gesetzt wird. (w) Rechenwerk ALU EUEU 0000 1001 SUSU

29 29 Adressieren des 5. Befehls - OUT 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 MAR = C Die ABL setzt Enable Program Counter (E P ) und Load MAR (L M ) 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 EPEP LMLM ABL CPCP C P E P L M CEL I E I L A L B E U S U Akku Clk LALA 0010 1100 Clk LILI MAR = 4 0000 0010 Clk LBLB Rechenwerk ALU EUEU SUSU

30 30 Lesen des 5. Befehls - OUT 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 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 (L I ) wird von der ABL gleichzeitig mit CE auf high gesetzt® 8 EPEP Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL C P E P L M CEL I E I L A L B E U S U 1110 0000 CE IR Clk LILI MAR = 4 Clk LMLM PC = 4 Clk CPCP Akku Clk LALA 1110 0000 Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU SUSU

31 31 Dekodieren des 5. Befehls 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 EPEP ABL CE 1110 0000 Clk LILI MAR=4 Clk LMLM PC = 4 Clk CPCP EIEI 1110 C P E P L M CE L I E I L A L B E U S U Akku Clk LALA Register B Clk LBLB Rechenwerk ALU EUEU 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 Clk LOLO Display SUSU

32 32 Akkumulator an das Outputregister übertragen 0 0000 1001 1 0001 1010 2 0001 1011 3 0010 1100 4 1110 0000 5 1111 0000 … 9 0000 0001 A 0000 0010 B 0000 0011 C 0000 0100 EPEP ABL CE 1110 0000 Clk LILI MAR=4 Clk LMLM PC = 4 Clk CPCP EIEI C P E P L M CE L I E I L A L B E U S U E A L O 0000 0010 Clk LALA Register B Clk LBLB Rechenwerk ALU EUEU Die ABL setzt die Kontrollsignale Enable Akkumulator (E A ) und Load Output (L O ) auf high.(w) Output Clk LOLO Display SUSU EAEA 0000 0010 2 Die Aufgabe 1+2+3-4 ist ausgeführt und das Ergebnis 2 steht an der Ausgabeeinheit.

33 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 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 : TaktLDA 9ADD AADD BSUB COUTHLT 1E P L M 2CE L I 3E I L M EALOEALO - 4CE L A CE L B CPCP - 5CPCP E U L A EUSULAEUSULA -- 6-CPCP CPCP CPCP --

35 35 Der Befehlszyklus Systematisiert, um es der ABL einfacher zu machen (Inkrementieren des PC erfolgt immer in Takt 3) : TaktLDA 9ADD AADD BSUB COUTHLT 1E P L M 2CE L I 3CPCP CPCP CPCP CPCP CPCP CPCP 4E I L M EALOEALO - 5CE L A CE L B -- 6-E U L A EUSULAEUSULA -- 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 36 Der Befehlszyklus - Impulsdiagramm

37 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 C P E P L M CE L I E I L A L B E U S U E A L O ABL 1. E P L M 2. CE L I 3. C P d.h. In den drei ersten Taktzyklen werden immer die gleichen Kontrollsignale erzeugt.

38 38 Ringzähler der Ablaufsteuerung Ein Ringzähler erzeugt ein Signal, das die aktuelle Phase definiert: C P E P L M CE L I E I L A L B E U S U E A L O ABL T0. E P L M T1. CE L I T2. C P

39 39 Der Befehlsdekodierer Der Opcode eines Befehls wird von einem Befehlsdekodierer verarbeitet: Dabei werden nur die definierten 5 Opcodes von 16 möglichen erfasst C P E P L M CE L I E I L A L B E U S U E A L O ABL

40 40 Die Kontrollmatrix In Abhängigkeit von Phase und Opcode müssen die Kontrollsignale erzeugt werden: C P E P L M CE L I E I L A L B E U S U E A L O ABL

41 41 Die komplette Ablaufsteuerung C P E P L M CE L I E I L A L B E U S U E A L O

42 42 Das RechenwerkAddierer 4 Bit Addierwerk Halb-Addierer Voll-Addierer

43 43 Das Rechenwerk- Addierer und Subtrahierer


Herunterladen ppt "1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen Programms."

Ähnliche Präsentationen


Google-Anzeigen