Der Simple As Possible Computer

Slides:



Advertisements
Ähnliche Präsentationen
Wesen und „Unwesen“ der binären, dezimalen und hexadezimalen Zahlen
Advertisements

Vom HW-Automaten zum Prozessor
Der Einfachstrechner in Aktion
Programmierung: Einführung
4.5 Virtueller Speicher Problemsituation: Programme und Daten sind zu groß für den verfügbaren Arbeitsspeicher Frühere Lösung Aufspaltung der Programme.
CPI Der einzelne Befehl braucht immer noch 5 Zyklen (stimmt nicht ganz, einige brauchen weniger!) Was verbessert wird, ist der Durchsatz = #Befehle /
2.3 Register-Transfer-Strukturen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Vortrag: Praktikum Technische Informatik Sommersemester 2007
Elektronisch messen, steuern, regeln
CPCP Institute of Clinical Pharmacology AGAH Annual Meeting, 29. Februar 2004, Berlin, Praktischer Umgang mit den Genehmigungsanträgen gemäß 12. AMG Novelle.
= = = = 47 = 47 = 48 = =
E / IDE Enhanced / Integrated Device Elektronics
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
Scratch Der Einstieg in das Programmieren. Scatch: Entwicklungsumgebung Prof. Dr. Haftendorn, Leuphana Universität Lüneburg,
Neumannrechner.
WS Algorithmentheorie 02 - Polynomprodukt und Fast Fourier Transformation Prof. Dr. Th. Ottmann.
© 2006 W. Oberschelp, G. Vossen Rechneraufbau & Rechnerstrukturen, Folie 2.1.
W. Oberschelp G. Vossen Kapitel 7.
Grundkurs Theoretische Informatik, Folie 2.1 © 2006 G. Vossen,K.-U. Witt Grundkurs Theoretische Informatik Kapitel 2 Gottfried Vossen Kurt-Ulrich Witt.
Rechneraufbau & Rechnerstrukturen, Folie 5.1 © 2006 W. Oberschelp, G. Vossen.
Aufbau und Funktionsweise von Prozessoren
Vererbung Spezialisierung von Klassen in JAVA möglich durch
PKJ 2005/1 Stefan Dissmann Rückblick auf 2005 Was zuletzt in 2005 vorgestellt wurde: Klassen mit Attributen, Methoden und Konstruktoren Referenzen auf.
Kursleitung: Hier ist Platz für Ihren Namen
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
Kennlinie Lichtregelung in JavaNNS Version 1.1
Mikroprogrammierte Ablaufsteuerung
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Rechneraufbau & Rechnerstrukturen, Folie 12.1 © W. Oberschelp, G. Vossen W. Oberschelp G. Vossen Kapitel 12.
2.3 Register-Transfer-Strukturen
1. 2 Schreibprojekt Zeitung 3 Überblick 1. Vorstellung ComputerLernWerkstatt 2. Schreibprojekt: Zeitung 2.1 Konzeption des Kurses 2.2 Projektverlauf.
Bild 1.1 Copyright © Alfred Mertins | Signaltheorie, 2. Auflage Vieweg+Teubner PLUS Zusatzmaterialien Vieweg+Teubner Verlag | Wiesbaden.
20:00.
So arbeitet ein PC.
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Virtueller Rundgang Casa Mariposa in Playa del Coco.
SK / , , in Hochkössen und der Wildschönau flow Ski- und Snowboardschule Intersport Menzel.
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
INTEL Pentium 4 Prozessor
Basisinformationstechnologie HK-Medien
Zuordnung CacheHauptspeicher
Universelle Registermaschine
Rechnen im Binärsystem
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Das ist die Geschichte eines kleinen Jungen aus der Schweiz.
Symmetrische Blockchiffren DES – der Data Encryption Standard
PARTENARIAT ÉDUCATIF GRUNDTVIG PARTENARIAT ÉDUCATIF GRUNDTVIG REPERES KULTURELLER ZUSAMMENHALT UND AUSDEHNUNG DER IDEEN AUF EUROPÄISCHEM.
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
MINDREADER Ein magisch - interaktives Erlebnis mit ENZO PAOLO
1 (C)2006, Hermann Knoll, HTW Chur, FHO Quadratische Reste Definitionen: Quadratischer Rest Quadratwurzel Anwendungen.
Gebrauchsanweisung für ein glückliches Zusammenleben
Analyseprodukte numerischer Modelle
Pigmentierte Läsionen der Haut
Schutzvermerk nach DIN 34 beachten 20/05/14 Seite 1 Grundlagen XSoft Lösung :Logische Grundschaltung IEC-Grundlagen und logische Verknüpfungen.
Rechnerarchitekturen
Vortrag von Rechtsanwältin Verena Nedden, Fachanwältin für Steuerrecht zur Veranstaltung Wege zum bedingungslosen Grundeinkommen der Piratenpartei Rhein-Hessen.
Ertragsteuern, 5. Auflage Christiana Djanani, Gernot Brähler, Christian Lösel, Andreas Krenzin © UVK Verlagsgesellschaft mbH, Konstanz und München 2012.
D 11 Adress- Dekoder
Johann Baron von Neumann
Es war einmal ein Haus
1 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt 10 pt 15 pt 20 pt 25 pt 5 pt Wie.
1 Medienpädagogischer Forschungsverbund Südwest KIM-Studie 2014 Landesanstalt für Kommunikation Baden-Württemberg (LFK) Landeszentrale für Medien und Kommunikation.
Monatsbericht Ausgleichsenergiemarkt Gas – Oktober
Der Prozessor Von Stephan Blum.
Speicher CPU Steuerwerk Rechenwerk 1 Befehlsregister 2 Befehlszähler 3

Vom HW-Automaten zum Prozessor
 Präsentation transkript:

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

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.

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

Das Programm: LDA 9 ADD A ADD B SUB C OUT 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-CH®

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

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

Lesen des 1. Befehls – LDA 9 PC = 0 Clk CP 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. ® 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. ® 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 CE 0000 1001 IR Clk LI 8 ABL CP EPLMCELI

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 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 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 0000 1001 Clk LI EI 0000 ABL CP EPLMCE LIEI CP EPLMCE LI

Operand in Akkumulator ablegen PC = 0 Clk CP Akku Clk LA LA 0000 0001 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.® 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 LA auf high. Im Akkumulator wird der Operand 0000 0001 gespeichert (w) CE 0000 0001 0000 1001 Clk LI 8 ABL CP EPLMCELILA

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) 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 CE 0000 1001 Clk LI 8 ABL CP EPLMCELILA

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 .® 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 0000 1001 Clk LI 8 ABL CP EPLMCELILA

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 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® 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 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) CE 0001 1010 0001 1010 Clk LI IR Clk LI 8 ABL CP EPLMCELI

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

Summand ablegen 8 PC = 1 0000 0001 1010 0000 0010 Register B Clk CP 0000 0001 Clk LA EP 1010 Clk LM 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 0000 0010 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 0000 0010 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) 0000 1010 Clk LI 8 ABL CP EPLMCELILALB

Addition durchführen 8 0000 0011 PC = 1 0000 0001 1010 0000 0011 Clk LA PC = 1 Clk CP 0000 0001 Clk LA EP 1010 Clk LM Rechenwerk ALU EU EU 0000 0011 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 0000 0010 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 0001 101 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

Inkrementieren des Befehlszählers PC = PC+1 Clk CP 0000 0011 Clk LA EP 1010 Clk LM Rechenwerk ALU EU 0000 0101 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 0000 0010 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 0000 1001 Clk LI 8 Und was macht währenddessen die ALU? Die addiert die aktuellen Operanden 2+3® ABL CP EPLMCELILALBEU

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

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 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 Register B Clk LB 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® CE 0001 1011 0001 1010 Clk LI IR Clk LI 8 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL CP EPLMCELI

Dekodieren des Befehls u. Operand holen PC = 2 Clk CP Akku Clk LA EP LM MAR=1 Clk LM 1011 Clk Rechenwerk ALU EU 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 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 0001 1011 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

Summand ablegen 8 PC = 2 0000 0011 1011 Register B 0000 0010 0000 0011 Clk CP 0000 0011 Clk LA EP 1011 Clk LM Rechenwerk ALU EU 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 Register B Clk LB 0000 0010 Clk LB 0000 0011 Clk LB 0000 0011 Clk LB ADD bedeutet wieder, lade einen Wert in das Register B und addiere es mit dem Akkumulator.® CE 0000 0011 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) 0001 1011 Clk LI 8 ABL CP EPLMCELIEILALB

Addition durchführen 8 0000 0110 PC = 2 0000 0011 1011 0000 0110 Clk LA PC = 2 Clk CP 0000 0011 Clk LA EP 1011 Clk LM Rechenwerk ALU EU EU 0000 0110 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 0000 0011 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 0000 1011 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

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

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

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

Dekodieren des Befehls u. Operand holen PC = 3 Clk CP Akku Clk LA EP LM MAR=3 Clk LM 1100 Clk Rechenwerk ALU EU 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 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 0010 1100 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

Subtrahend ablegen 8 PC = 3 0000 0110 1100 0000 0100 0000 0011 Clk CP 0000 0110 Clk LA EP 1100 Clk LM Rechenwerk ALU EU 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 0000 0100 Clk LB 0000 0011 Clk LB SUB bedeutet, lade den Subtrahenden in das Register B und subtrahiere ihn vom Akkumulator. ® CE 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) 0010 1100 Clk LI 8 ABL CP EPLMCELIEILALB

Subtraktion durchführen 0000 0010 Clk LA PC = 3 Clk CP 0000 0110 Clk LA EP 1011 Clk LM Rechenwerk ALU EU EU 0000 0010 SU 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 0000 0100 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 0010 1100 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

Inkrementieren des Befehlszählers PC = PC+1 Clk CP 0000 0010 Clk LA EP 1011 Clk LM Rechenwerk ALU EU 0000 1001 SU 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 0000 0100 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 0010 1100 Clk LI 8 ABL CP EPLMCELIEILALBEUSU

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

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 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 Register B Clk LB 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® CE 1110 0000 IR Clk LI 1110 0000 Clk LI 8 Bei der nächsten positiven Flanke des Clocksignals wird der Befehl übernommen.(w) ABL CP EPLMCELIEI LA LBEUSU

Dekodieren des 5. Befehls PC = 4 Clk CP Akku Clk LA EP MAR=4 Clk LM Rechenwerk ALU EU SU 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 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 1110 0000 Clk LI EI ABL 1110 CP EPLMCE LIEILA LBEUSU

Akkumulator an das Outputregister übertragen EA PC = 4 Clk CP 0000 0010 Clk LA EP MAR=4 Clk LM Rechenwerk ALU EU SU 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 Register B Clk LB LO 0000 0010 Output Clk 2 Display Die ABL setzt die Kontrollsignale Enable Akkumulator (EA) und Load Output (LO) auf high.(w) CE 1110 0000 Clk LI EI Die Aufgabe 1+2+3-4 ist ausgeführt und das Ergebnis 2 steht an der Ausgabeeinheit. ABL CP EPLMCE LIEILA LBEU SU EA LO

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.

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

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 !

Der Befehlszyklus - Impulsdiagramm

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.

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

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

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

Die komplette Ablaufsteuerung CP EPLMCE LIEILA LBEU SU EA LO

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

Das Rechenwerk - Addierer und Subtrahierer