Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Der Simple As Possible Computer

Ähnliche Präsentationen


Präsentation zum Thema: "Der Simple As Possible Computer"—  Präsentation transkript:

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

5 Das Programm im Speicher
Die Verbindung zwischen MAR und Speicher ist TWO-State ,d.h. MAR wirkt ständig auf den Speicher ! ® MAR=0 6 7 8 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 Das MAR muss sowohl Befehle als auch die Operanden der Befehle addressieren können ®

6 Der Program Counter 8 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. ® CP PC = 0 Clk EP LM MAR = 0 Clk 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. ® A B C 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 ® Die Kontrollsignale CP, EP und LM werden wie alle weiteren von der Ablaufsteuerung ABL erzeugt.® LM EP ABL CP

7 Lesen des 1. Befehls – LDA 9 PC = 0 Clk CP Zum Lesen des 1. Befehls (LDA 9) muss die ABL das Signal CE auf high setzen, damit die Daten auf den Bus gelegt werden. ® EP MAR = 0 Clk LM 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. ® A B C CE IR Clk LI 8 ABL CP EPLMCELI

8 Dekodieren des Befehls u. Operand holen
PC = 0 Clk CP 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 MAR=0 Clk LM LM 1001 Clk A B C Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM die 9 (1001) ins Adressregister MAR übertragen(w) 1001 CE Clk LI EI 0000 ABL CP EPLMCE LIEI CP EPLMCE LI

9 Operand in Akkumulator ablegen
PC = 0 Clk CP Akku Clk LA LA Clk EP 1001 Clk LM 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.® A B C Zum Lesen des Operanden an Adresse 9 (1001) setzt die ABL die Signal CE und LA auf high. Im Akkumulator wird der Operand gespeichert (w) CE Clk LI 8 ABL CP EPLMCELILA

10 Inkrementieren des Befehlszählers
PC = 0 Clk CP PC = 0 Clk CP PC = PC+1 Clk CP Akku Clk LA EP 1001 Clk LM 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) A B C CE Clk LI 8 ABL CP EPLMCELILA

11 Adressieren des 2. Befehls – ADD A
MAR = 1 CP Akku Clk LA PC = 1 Clk EP LM MAR = 0 Clk 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 .® A B C Clk LI 8 ABL CP EPLMCELILA

12 Lesen des 2. Befehls 8 PC = 1 Akku MAR = 1
Clk CP Akku Clk LA EP MAR = 1 Clk LM 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 (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt® A B C Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) CE Clk LI IR Clk LI 8 ABL CP EPLMCELI

13 Dekodieren des Befehls u. Operand holen
PC = 1 Clk CP Akku Clk LA EP LM MAR=1 Clk LM 1010 Clk 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) 1010 CE 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) Clk LI EI ABL 0001 CP EPLMCE LIEI CP EPLMCE LIEI

14 Summand ablegen 8 PC = 1 0000 0001 1010 0000 0010 Register B
Clk CP Clk LA EP 1010 Clk LM A B C Clk LB Register B Clk LB 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.® CE Zum Lesen des Operanden an Adresse A (1010) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand gespeichert(w) Clk LI 8 ABL CP EPLMCELILALB

15 Addition durchführen 8 0000 0011 PC = 1 0000 0001 1010 0000 0011
Clk LA PC = 1 Clk CP Clk LA EP 1010 Clk LM Rechenwerk ALU EU EU A B C Clk LB 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 ® CE Clk LI 8 Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (EU) und Load Akku (LA) auf high. (w) ABL CP EPLMCELILALBEU

16 Inkrementieren des Befehlszählers
PC = PC+1 Clk CP Clk LA EP 1010 Clk LM Rechenwerk ALU EU A B C Clk LB 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) CE Clk LI 8 Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 2+3® ABL CP EPLMCELILALBEU

17 Adressieren des 3. Befehls – ADD B
MAR = 2 CP Akku Clk LA PC = 2 Clk EP LM MAR = A Clk Rechenwerk ALU EU A B C Clk LB 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 . Clk LI 8 ABL CP EPLMCELILA

18 Lesen des 3. Befehls 8 PC = 2 Akku MAR = 2 Register B
Clk CP Akku Clk LA EP MAR = 2 Clk LM Rechenwerk ALU EU A B C Register B Clk LB 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 (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt® CE Clk LI IR Clk LI 8 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL CP EPLMCELI

19 Dekodieren des Befehls u. Operand holen
PC = 2 Clk CP Akku Clk LA EP LM MAR=1 Clk LM 1011 Clk Rechenwerk ALU EU A B C Register B Clk LB 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. 1010 CE Clk LI EI Mit dem Signal EI werden die unteren 4 Bit auf den Datenbus gegeben und mit LM der Wert Bhex (1011) ins Adressregister MAR übertragen 0001 ABL CP EPLMCE LIEI CP EPLMCE LIEI

20 Summand ablegen 8 PC = 2 0000 0011 1011 Register B 0000 0010 0000 0011
Clk CP Clk LA EP 1011 Clk LM Rechenwerk ALU EU A B C Register B Clk LB Clk LB Clk LB Clk LB ADD bedeutet wieder, lade einen Wert in das Register B und addiere es mit dem Akkumulator.® CE Zum Lesen des Operanden an Adresse B (1011) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand gespeichert(w) Clk LI 8 ABL CP EPLMCELIEILALB

21 Addition durchführen 8 0000 0110 PC = 2 0000 0011 1011 0000 0110
Clk LA PC = 2 Clk CP Clk LA EP 1011 Clk LM Rechenwerk ALU EU EU A B C Clk LB 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 ® CE Clk LI 8 Das Ergebnis wird wieder im Akkumulator abgelegt. Dafür setzt die ABL das Enable Unit (EU) und Load Akku (LA) auf high. (w) ABL CP EPLMCELIEILALBEU

22 Inkrementieren des Befehlszählers
PC = PC+1 Clk CP Clk LA EP 1011 Clk LM Rechenwerk ALU EU A B C Clk LB 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) CE Clk LI 8 Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 6+3® ABL CP EPLMCELIEILALBEU

23 Adressieren des 4. Befehls – SUB C
MAR = 3 CP Akku Clk LA PC = 3 Clk EP LM MAR = B Clk Rechenwerk ALU EU A B C Clk LB 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 . Clk LI 8 ABL CP EPLMCELIEILA

24 Lesen des 4. Befehls – SUB C
PC = 3 Clk CP Akku Clk LA EP MAR = 3 Clk LM Rechenwerk ALU EU A B C Register B Clk LB 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 (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt® CE Clk LI IR Clk LI 8 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL CP EPLMCELIEILA

25 Dekodieren des Befehls u. Operand holen
PC = 3 Clk CP Akku Clk LA EP LM MAR=3 Clk LM 1100 Clk Rechenwerk ALU EU A B C Register B Clk LB 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) 1100 CE Clk LI EI 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) 0010 ABL CP EPLMCE LIEILA CP EPLMCE LIEI

26 Subtrahend ablegen 8 PC = 3 0000 0110 1100 0000 0100 0000 0011
Clk CP Clk LA EP 1100 Clk LM Rechenwerk ALU EU A B C Clk LB Clk LB SUB bedeutet, lade den Subtrahenden in das Register B und subtrahiere ihn vom Akkumulator. ® CE Zum Lesen des Operanden an Adresse C (1100) setzt die ABL die Signale CE und LB auf high. Im Register B wird der Operand gespeichert(w) Clk LI 8 ABL CP EPLMCELIEILALB

27 Subtraktion durchführen
Clk LA PC = 3 Clk CP Clk LA EP 1011 Clk LM Rechenwerk ALU EU EU SU A B C Clk LB 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 ® CE Clk LI 8 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) ABL CP EPLMCELIEILALBEUSU

28 Inkrementieren des Befehlszählers
PC = PC+1 Clk CP Clk LA EP 1011 Clk LM Rechenwerk ALU EU SU A B C Clk LB 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) CE Clk LI 8 ABL CP EPLMCELIEILALBEUSU

29 Adressieren des 5. Befehls - OUT
MAR = 4 CP Akku Clk LA PC = 4 Clk EP LM MAR = C Clk Rechenwerk ALU EU SU A B C Clk LB 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 . Clk LI 8 ABL CP EPLMCELI EILA LBEUSU

30 Lesen des 5. Befehls - OUT 8 PC = 4 Akku MAR = 4 Register B
Clk CP Akku Clk LA EP MAR = 4 Clk LM Rechenwerk ALU EU SU A B C Register B Clk LB 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 (LI) wird von der ABL gleichzeitig mit CE auf high gesetzt® CE IR Clk LI Clk LI 8 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL CP EPLMCELIEI LA LBEUSU

31 Dekodieren des 5. Befehls
PC = 4 Clk CP Akku Clk LA EP MAR=4 Clk LM Rechenwerk ALU EU SU A B C Register B Clk LB Output Clk LO Display 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) CE Clk LI EI ABL 1110 CP EPLMCE LIEILA LBEUSU

32 Akkumulator an das Outputregister übertragen
EA PC = 4 Clk CP Clk LA EP MAR=4 Clk LM Rechenwerk ALU EU SU A B C Register B Clk LB LO Output Clk 2 Display Die ABL setzt die Kontrollsignale Enable Akkumulator (EA) und Load Output (LO) auf high.(w) CE Clk LI EI Die Aufgabe ist ausgeführt und das Ergebnis 2 steht an der Ausgabeeinheit. ABL CP EPLMCE LIEILA LBEU SU EA LO

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 Takt LDA 9 ADD A ADD B SUB C OUT HLT 1 EP LM 2 CE LI 3
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 2 CE LI 3 EI LM EALO - 4 CE LA CE LB CP 5 EU LA EUSULA 6

35 Der Befehlszyklus Fetch Cycle Execute Cycle
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 2 CE LI 3 CP 4 EI LM EALO - 5 CE LA CE LB 6 EU LA EUSULA 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 1. EP LM 2. CE LI 3. CP
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 ABL CP EPLMCE LIEILA LBEU SU EA LO 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: ABL CP EPLMCE LIEILA LBEU SU EA LO 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 ABL CP EPLMCE LIEILA LBEU SU EA LO

40 Die Kontrollmatrix ABL CP EPLMCE LIEILA LBEU SU EA LO In Abhängigkeit von Phase und Opcode müssen die Kontrollsignale erzeugt werden:

41 Die komplette Ablaufsteuerung
CP EPLMCE LIEILA LBEU SU EA LO

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

43 Das Rechenwerk - Addierer und Subtrahierer


Herunterladen ppt "Der Simple As Possible Computer"

Ähnliche Präsentationen


Google-Anzeigen