1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten)...

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

Transcript of 1 Der Simple As Possible Computer Entwicklung seiner Architektur während der (simulierten)...

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

1

Der Simple As Possible Computer

Entwicklung seiner Architektur während der (simulierten) Ausführung eines kleinen

Programms

Page 2: 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.

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

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)®

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

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®

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

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 ®

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

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

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

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

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

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

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

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.®

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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.

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

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.

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

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 - -

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

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 !

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

36

Der Befehlszyklus - Impulsdiagramm

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

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.

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

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

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

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

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

40

Die Kontrollmatrix

• In Abhängigkeit von Phase und Opcode müssen die Kontrollsignale erzeugt werden:

CP EPLMCE LIEILA LBEU SU EA LO

ABL

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

41

Die komplette Ablaufsteuerung

CP EPLMCE LIEILA LBEU SU EA LO

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

42

Das Rechenwerk Addierer

4 Bit Addierwerk

Halb-Addierer

Voll-Addierer

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

43

Das Rechenwerk - Addierer und Subtrahierer