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 : ® 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 A B C 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 … A B C … 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 … A B C Zum Lesen des 1. Befehls (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 CE IR Clk LILI MAR = 0 Clk LMLM PC = 0 Clk CPCP

8 8 Dekodieren des Befehls u. Operand holen … A B C 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 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 … A B C Zum Lesen des Operanden an Adresse 9 (1001) setzt die ABL die Signal CE und L A auf high. Im Akkumulator wird der Operand gespeichert (w) 8 EPEP ABL C P E P L M CEL I L A CE Clk LILI 1001 Clk LMLM PC = 0 Clk CPCP Akku Clk LALA 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 … A B C EPEP ABL C P E P L M CEL I L A CE 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 … A B C 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 Clk LILI MAR = 1

12 12 Lesen des 2. Befehls … A B C Zum Lesen des 2. Befehls (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 CE IR Clk LILI MAR = 1 Clk LMLM PC = 1 Clk CPCP Akku Clk LALA Clk LILI

13 13 Dekodieren des Befehls u. Operand holen … A B C 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 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 … A B C 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 gespeichert(w) 8 EPEP ABL C P E P L M CEL I L A L B CE Clk LILI 1010 Clk LMLM PC = 1 Clk CPCP 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.® Clk LBLB

15 Clk LBLB Addition durchführen … A B C 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 Clk LILI 1010 Clk LMLM PC = 1 Clk CPCP 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 Clk LALA

16 Clk LBLB Inkrementieren des Befehlszählers … A B C 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 Clk LILI 1010 Clk LMLM PC = PC+1 Clk CPCP 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

17 17 Adressieren des 3. Befehls – ADD B … A B C 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 Clk LILI MAR = Clk LBLB Rechenwerk ALU EUEU

18 18 Lesen des 3. Befehls … A B C Zum Lesen des 3. Befehls (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 CE IR Clk LILI MAR = 2 Clk LMLM PC = 2 Clk CPCP Akku Clk LALA Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU

19 19 Dekodieren des Befehls u. Operand holen … A B C 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 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 … A B C 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 gespeichert(w) 8 EPEP ABL C P E P L M CEL I E I L A L B CE Clk LILI 1011 Clk LMLM PC = 2 Clk CPCP Clk LALA ADD bedeutet wieder, lade einen Wert in das Register B und addiere es mit dem Akkumulator.® Clk LBLB Clk LBLB Rechenwerk ALU EUEU Clk LBLB

21 Clk LBLB Addition durchführen … A B C 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 Clk LILI 1011 Clk LMLM PC = 2 Clk CPCP 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 Clk LALA

22 Clk LBLB Inkrementieren des Befehlszählers … A B C 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 Clk LILI 1011 Clk LMLM PC = PC+1 Clk CPCP 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

23 23 Adressieren des 4. Befehls – SUB C … A B C 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 Clk LILI MAR = Clk LBLB Rechenwerk ALU EUEU

24 24 Lesen des 4. Befehls – SUB C … A B C Zum Lesen des 4. Befehls (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 CE IR Clk LILI MAR = 3 Clk LMLM PC = 3 Clk CPCP Akku Clk LALA Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU

25 25 Dekodieren des Befehls u. Operand holen … A B C 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 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 … A B C 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 gespeichert(w) 8 EPEP ABL C P E P L M CEL I E I L A L B CE Clk LILI 1100 Clk LMLM PC = 3 Clk CPCP Clk LALA SUB bedeutet, lade den Subtrahenden in das Register B und subtrahiere ihn vom Akkumulator. ® Clk LBLB Rechenwerk ALU EUEU Clk LBLB

27 Clk LBLB Subtraktion durchführen … A B C 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 Clk LILI 1011 Clk LMLM PC = 3 Clk CPCP 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 Clk LALA SUSU

28 Clk LBLB Inkrementieren des Befehlszählers … A B C EPEP ABL C P E P L M CEL I E I L A L B E U S U CE Clk LILI 1011 Clk LMLM PC = PC+1 Clk CPCP 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 SUSU

29 29 Adressieren des 5. Befehls - OUT … A B C 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 Clk LILI MAR = Clk LBLB Rechenwerk ALU EUEU SUSU

30 30 Lesen des 5. Befehls - OUT … A B C Zum Lesen des 5. Befehls (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 CE IR Clk LILI MAR = 4 Clk LMLM PC = 4 Clk CPCP Akku Clk LALA Clk LILI Register B Clk LBLB Rechenwerk ALU EUEU SUSU

31 31 Dekodieren des 5. Befehls … A B C EPEP ABL CE 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 … A B C EPEP ABL CE 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 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 Die Aufgabe 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