5.8 KiB
5.8 KiB
MU0-Rechner
Historie
- SSEM Small Scale Experimental Machine erste erfolgreiche Implementierung des Von-Neumann-Rechners
- 1948 erstmals Programm aus dem Speicher ausgeführt
Elemente
- Steuerwerk
- Control - Takt, Steuerlogik
- IR - Instruction Register - speichert den aktuellen Befehlscode
- PC - Programm Counter - speichert die aktuelle Programmadresse
- Rechenwerk
- ALU - Arithmetic Logic Unit - kann rechnen
- ACC - Akkumulator - Ergebnis Register für Rechnungen
- Speicherwerk
- Memory - speichert Programme und Daten
- Bus - verbindet alle Elemente
Steuerwerk
- Steuert Elemente mithilfe von Steuersignalen
- Besteht aus
- Ablaufsteuerung / Steuerlogik
- Dekodierer
- Befehlsregister IR
- Befehls-Zähler PC
- Endlicher Automat, der gemäß der Steuerlogik Steuersignale schaltet
- führt für jeden Befehl ein Mikroprogramm aus Mikroschritten aus
Register
- Zwischenspeicher
- Register-Größe: 1 Wort (16 Bit)
- Arbeitsmodus Lesen / Schreiben
- output enable liegt an → Daten ausgeben (schreiben)
- input enable liegt an → Daten einlesen
- Ausgeben und Lesen erfolgt jeweils beim Flankenwechsel
Speicher
- Stelle im Speicher wird über eine Adresse angesprochen
- Adresse wird vom Adressbus gelesen
- Daten werden vom Datenbus gelesen bzw. geschrieben
Datenpfade
- je nach Steuerungscode lesen / schreiben
- geschriebene Daten liegen an Datenpfad an
- immer nur 1 Element schreiben
ALU
- über Steuercode wird Funktion ausgewählt
- Eingang A, B führt aus
- mögliche Funktionen:
- A+Β
- A-B
- A*Β
- Konjunktion (logisches UND, bitweise)
- Disjunktion (logisches ODER, bitweise)
- Vergleich von A und B (bitweise)
- ...
Beispiel für einen Befehlsablauf
Der Rechenzyklus
Fetch
- Wert des Programmcounters auf den Adressbus legen
- Programmcode aus dem Speicher in das Instructionregister lesen
- ALU erhöht gleichzeitig Wert des PC und speichert diesen wieder zurück
Decode/Execute/Write für Rechenoperationen
- Adresse des Operanden aus dem Befehl dekodieren (1)
- Wert des angesprochenen Speicherworts an einen Eingang des ALU schalten (2)
- zweiter Eingang der ALU erhält seine Information vom Akkumulator (2)
- Rechenoperation wird aus dem Befehl dekodiert und and der ALU über Steuercode gewählt (1)
- Ergebnis der Rechnung wird wieder im Akkumulator gespeichert (3)
Taktsynchronität
- Register sind Zwischenspeicher und arbeiten getaktet
- Daten liegen taktsynchron am Bus an
- ALU und Speicher sind nicht taktsynchron
- folgen Steuercodes und dem Inhalt auf dem Bus
Umsetzung MU0-Struktur in Hardware
-
Architektur muss in Gattern und getaktet umsetzbar sein
-
Prinzip des minimalen Hardwareaufwands
-
Festlegung der Wortbreite: 16 Bit
-
Steuerung der Elemente durch Steuercodes
-
Befehle (Instruction Set)
- Kodierung der Befehle
- Steuerlogik
Datenpfad-Modell
- bisheriges Bild lässt sich nicht 1:1 umsetzen
- ALU hat nur zwei Eingänge
- Getrennte Datenpfade für jeden ALU-Eingang
- Kontrolle der PFade für Daten und Adressen durch Multiplexer
- ALU hat nur zwei Eingänge
Multiplexer
- Schalter, der durch Anlegen eines Steuersignals das ausgewählte Eingangssignal auf den Ausgang legt
Befehlsgruppen
- Multiplexer B steht auf 1 bei allen Datenverarbeitungs-Befehlen und auf 0 bei allen Sprung-Befehlen
- Multiplexer A wird nur für Fetchzyklus auf 0 gestellt
- ansonsten wird S (unterer Teil von IR) immer als Adresse interpretiert
- Bei _Sprung-Befehlen erfolgt kein Datenzugriff, S (IR) wird direkt nach PC verschoben
Kennwerte
- Wortbreite des Prozessors: 16 Bit
- Registergröße
- Busbreite
- Eingänge/Ausgänge ALU
- Instruktionen immer 2 Takte lang
- Fetch + Instruction (= Execute): 2 Takte
- Schreiben + Lesen + Schreiben + Lesen: 4 Taktflanken
Elemente und Steuercodes
Speicher des MU0
- Steuersignale des Datenbus:
- MemRQ (Memory Request)
- Speicherbaustein wird angesprochen
- RnW(Read / not Write)
- gibt an, ob (von oder in) den Speicher geschrieben wird
- Lesen bei High, Schreiben bei Low
- gibt an, ob (von oder in) den Speicher geschrieben wird
- MemRQ (Memory Request)
Instruction Set des MU0-Rechners (Befehlssatz)
-
Prozessor kennt keine Befehle
- zum Laden und Speichern von Werten
- zur Berechnung
- zur Ablaufkontrolle
-
Die Instruktionen setzen sich zusammen aus
- einem 4 Bit Operation Code
- einer 12 Bit Adresse
→ 16 Befehle möglich
MU0-Steuerlogik (Kontroll-Logik)
Opcode: 4Bits, Adresse: 12Bits
Fetchen
ADD S
Ein erstes MU0-Programm
Fazit
-
Elemente der von-Neumann-Architektur
- Steuerwerk, Rechenwerk, Speicherwerk, I/O
-
Speicherprogrammiert
- Programme (& Daten) liegen im Speicher
-
Architektur muss in Gattern umsetzbar sein
- Datenpfad & Steuertabelle
-
Von-Neumann-Zyklus: Fetch-Decode-Execute-Write
-
Steuerlogik wird über Opcodes (Befehle) abgefragt und generiert Steuercodes
-
MU0 ist ein Modellrechner zum Lernen
- 16-Bit Wortbreite, binär
- Register: PC, IR, ACC
- Befehlssatz (Instruction Set)
- 4-Bit OpCode erlaubt 16 Befehle, 8 sind implementiert
- Takt
- Immer 2 Zyklen pro Mikroprogramm