universelle registermaschine
DESCRIPTION
Universelle Registermaschine. Klaus Becker 2003. Programmierbare Systeme. Teil 1. Universelle Registermaschine als Rechnermodell. Registermaschine. Adresse. Register. Progr.zähler. Befehl. 0:5 1:3 2:0 3:0 4:0 ... 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 > 4 JMP 1 5 HLT. - PowerPoint PPT PresentationTRANSCRIPT
Universelle RegistermaschineUniverselle Registermaschine
Klaus Becker2003
2
KB
Sch
alt
syst
em
eProgrammierbare SystemeProgrammierbare Systeme
3
KB
Sch
alt
syst
em
eTeil 1 Teil 1
Universelle Registermaschine als Rechnermodell
4
KB
Sch
alt
syst
em
eRegistermaschineRegistermaschine
0 JMP 3 1 INC 0 2 DEC 1 3 TST 1> 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
Speicher (Registern)
RegisterAdresse BefehlProgr.zähler
Verarbeitungseinheit
5
KB
Sch
alt
syst
em
eRegistermaschinenbefehleRegistermaschinenbefehle
> x INC i Erhöhe Register i um 1.Gehe zu Zeile x+1.
> x DEC i Erniedrige Register i um 1.Gehe zu Zeile x+1.
> x JMP i Gehe zu Zeile i.
> x TST iWenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2.
> x HLT Beende die Bearbeitung.
6
KB
Sch
alt
syst
em
eRegistermaschine in AktionRegistermaschine in Aktion
> 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
0 JMP 3 1 INC 0 2 DEC 1> 3 TST 1 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
0 JMP 3 1 INC 0 2 DEC 1 3 TST 1> 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
0 JMP 3> 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
0 JMP 3 1 INC 0> 2 DEC 1 3 TST 1 4 JMP 1 5 HLT
0: 61: 32: 03: 04: 0..
0 JMP 3 1 INC 0 2 DEC 1> 3 TST 1 4 JMP 1 5 HLT
0: 61: 22: 03: 04: 0..
7
KB
Sch
alt
syst
em
eEinfache RegistermaschineEinfache Registermaschine
> 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1 4 JMP 1 5 HLT
0: 51: 32: 03: 04: 0..
Registermaschine als programmgesteuertes SystemRegistermaschine als programmgesteuertes System
Programm
Daten
Eine Registermaschine bearbeitet beliebig eingebbare Daten nach einem fest vorgegebenen Programm.
8
KB
Sch
alt
syst
em
eUniverselle RegistermaschineUniverselle Registermaschine
Universelle Registermaschine als programmierbares SystemUniverselle Registermaschine als programmierbares System
Daten
Eine universelle Registermaschine bearbeitet beliebig eingebbare Daten nach einem beliebig vorgegebenen Programm.
0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT 0: 0 0005
1: 0 0003 .. 0 0000
Programm
Speicher (Registern)
Verarbeitungseinheit
9
KB
Sch
alt
syst
em
eVereinheitlichung von Programm und Vereinheitlichung von Programm und
DatenDaten
CPU
0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT 0: 0 0005
1: 0 0003 .. 0 0000
Daten
Programm
Daten
Programm
0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
KodierungKodierung
INC: 1
DEC: 2
JMP: 3
TST: 4
HLT: 5CPU
10
KB
Sch
alt
syst
em
eRechnerarchitektur (nach von Rechnerarchitektur (nach von
Neumann)Neumann)
Rechenwerk
Datenbus
Adressbus
Akku
PC IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher Steuerwerk
11
KB
Sch
alt
syst
em
eBefehl holenBefehl holen
Rechenwerk
Datenbus
Adressbus
Akku
PC IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher Steuerwerk
0 3 0003
12
KB
Sch
alt
syst
em
eBefehl dekodieren und ausführenBefehl dekodieren und ausführen
Rechenwerk
Datenbus
Adressbus
Akku
PC IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher Steuerwerk
3 3 0003
13
KB
Sch
alt
syst
em
eFundamentalzyklusFundamentalzyklus
Wiederhole
Befehl holen (fetch-Phase)
Befehl dekodieren und ausführen (execute-Phase)
Wiederhole
Befehl holen (fetch-Phase)
Befehl dekodieren und ausführen (execute-Phase)
14
KB
Sch
alt
syst
em
eSteueralgorithmusSteueralgorithmus
WIEDERHOLE PC ABus; PC ABus; RInhalt DBus; DBus IR; op := Operatorteil(IR); adr := Adressteil(IR) FALLS op 1: adr ABus;
adr ABus; RInhalt DBus; DBus Akku; adr ABus; upAkku; adr ABus; Akku DBus; DBus RInhalt; IncPC; 2: // analog 3: adr ABus; ABus PC; 4: adr ABus;
adr ABus; Registerinhalt DBus; WENN DBus = 0 DANN IncPC; IncPC;
BIS op = 5 // HLT
Befehl holen
JMP-Befehl ausführen
TST-Befehl ausführen
INC-Befehl ausführen
Befehl dekodieren
Wiederhole
Befehl holen
Befehl dekodieren und ausführen
Wiederhole
Befehl holen
Befehl dekodieren und ausführen
15
KB
Sch
alt
syst
em
eSteuerung durch ein MikroprogrammSteuerung durch ein Mikroprogramm
WIEDERHOLE PC ABus; PC ABus; RInhalt DBus; Dbus IR; op := Operatorteil(IR); adr := Adressteil(IR) FALLS op 1: adr ABus;
adr ABus; RInhalt DBus; DBus Akku; adr ABus; upAkku; adr ABus; Akku DBus; DBus RInhalt; IncPC; 2: // analog 3: adr ABus; ABus PC; 4: adr ABus;
adr ABus; Registerinhalt DBus; WENN DBus = 0 DANN IncPC; IncPC;
BIS op = 5 // HLT
Befehl holen0 101 10, 3, 112 0, 2
INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1
DEC ausführen20 1221 12, 3, 722 12, 623 12, 4, 8, 1324 0, 1
JMP ausführen 30 12, 931 0, 1
TST ausführen 40 1241 12, 342 12, 3, 1443 1344 0, 1
16
KB
Sch
alt
syst
em
e
17
KB
Sch
alt
syst
em
eTeil 2 Teil 2
Entwicklung einer universellen Registermaschine
18
KB
Sch
alt
syst
em
eZielsetzungZielsetzung
Mit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger (Bonsai) Rechner entwickelt werden.
Mit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger (Bonsai) Rechner entwickelt werden.
19
KB
Sch
alt
syst
em
eSchritt 1: Akku-RegisterSchritt 1: Akku-Register
Wir beginnen mit dem Akku-Register. Der hier benutzte Akku soll 8-Bit-Dateneinheiten aufnehmen können. Wir beginnen mit dem Akku-Register. Der hier benutzte Akku soll 8-Bit-Dateneinheiten aufnehmen können.
Akku
20
KB
Sch
alt
syst
em
eRegister-BausteinRegister-Baustein
CLK: Takt-Eingang (Register reagiert b. steigender Taktflanke)NR: Reset-Eingang (NR = 0: Reset)
ENA: Enable-Eingang (ENA = 1: Register bereit zum Lesen) D: Daten-Eingang
Q: Daten-Ausgang
hades.models.rtlib.register.RegRE
21
KB
Sch
alt
syst
em
eRegistertestRegistertest
hades.models.rtlib.io.OpinVector
hades.models.rtlib.io.IpinVector
22
KB
Sch
alt
syst
em
eSchritt 2: RechenwerkSchritt 2: Rechenwerk
Mit Hilfe des Rechenwerkes sollen Inkrementier- und Dekrementieroperationen ausgeführt werdenMit Hilfe des Rechenwerkes sollen Inkrementier- und Dekrementieroperationen ausgeführt werden
Rechenwerk
Akku
23
KB
Sch
alt
syst
em
eRechenwerkRechenwerk
hades.models.rtlib.arith.Decr hades.models.rtlib.arith.Incr
hades.models.rtlib.muxes.Mux21
24
KB
Sch
alt
syst
em
eSchritt 3: ArbeitsspeicherSchritt 3: Arbeitsspeicher
Die im Akku-Register zu verarbeitenden Daten sollen aus einem Arbeitsspeicher geholt und wieder gespeichert werden.
Die im Akku-Register zu verarbeitenden Daten sollen aus einem Arbeitsspeicher geholt und wieder gespeichert werden.
0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher
Rechenwerk
Akku
25
KB
Sch
alt
syst
em
eRAM-BausteinRAM-Baustein
nCS: nCS = 0: (notChipSelect) RAM-Baustein aktiv nWE: nWE = 0: DIN adressiertes Register
nWE = 1: adressiertes Register DOUT
A: Adress-EingangDIN: Daten-Eingang
DOUT: Daten-Ausgang
hades.models.rtlib.memory.RAM
26
KB
Sch
alt
syst
em
eRAM-TestRAM-Test
RAM Akku Akku RAM
27
KB
Sch
alt
syst
em
eSchritt 4: DatenbusSchritt 4: Datenbus
Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen.
Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen.
Rechenwerk
Datenbus
Akku
0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher
28
KB
Sch
alt
syst
em
eDatenbusDatenbus
Datenbus Datenbus
RAM Akku Akku RAM
29
KB
Sch
alt
syst
em
eTorsteuerungTorsteuerung
Datenbus
hades.models.rtlib.muxes.TriBuf
30
KB
Sch
alt
syst
em
etri-state-Verhaltentri-state-Verhalten
S
0
0
1
1
E
0
1
0
1
A
0
0
0
1
S
0
0
1
1
E
0
1
0
1
A
Z
Z
0
1
hochohmig
S = 0: passiv
S = 1: aktiv (durchlassen)
31
KB
Sch
alt
syst
em
eSchritt 5: Befehlsregister und Schritt 5: Befehlsregister und
AdressbusAdressbus
Rechenwerk
Datenbus
Adressbus
Akku
IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher
3 0003
32
KB
Sch
alt
syst
em
eBefehlsregisterBefehlsregister
Datenbus
Adressbus
BefehlsregisterBefehlsregister
Speicher
Reset
Bussplitter
33
KB
Sch
alt
syst
em
eBefehlsregisterBefehlsregister
hades.models.rtlib.register.RegREhades.models.rtlib.register.RegRE
34
KB
Sch
alt
syst
em
eBussplitterBussplitter
hades.models.rtlib.io.BusTapBottomhades.models.rtlib.io.BusTapBottom
35
KB
Sch
alt
syst
em
eBussystemBussystem
8-Bit-Datenbus
4-Bit-Adressbus
BefehlsregisterBefehlsregister
Speicher mit 16 8-Bit-Registern
36
KB
Sch
alt
syst
em
eSchritt 6: ProgrammzählerSchritt 6: Programmzähler
Rechenwerk
Datenbus
Adressbus
Akku
IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher
3 0003
PC 0
37
KB
Sch
alt
syst
em
eProgrammzählerProgrammzähler
Adressbus
Datenbus
BefehlsregisterBefehlsregister
Programmzähler
38
KB
Sch
alt
syst
em
eSchritt 7: ProgrammbeendungSchritt 7: Programmbeendung
Rechenwerk
Datenbus
Adressbus
Akku
IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher
3 0003
PC 0
39
KB
Sch
alt
syst
em
eNullentdeckungNullentdeckung
Datenbus
hades.models.rtlib.compare.CompareEqual
40
KB
Sch
alt
syst
em
eSchritt 8: SteuerwerkSchritt 8: Steuerwerk
Rechenwerk
Datenbus
Adressbus
Akku
IR 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 0000 6: 0 0000 7: 0 0005
8: 0 0003 .. 0 0000
Arbeitsspeicher Steuerwerk
3 0003
PC 0
41
KB
Sch
alt
syst
em
eSteuerwerkSteuerwerk
Steuerwerk
Steuersignal
42
KB
Sch
alt
syst
em
eMikroprogrammMikroprogramm
Mikroprogramm
Befehl holen0 101 10, 3, 112 0, 2
INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1
...
43
KB
Sch
alt
syst
em
eAusführung des MikroprogrammsAusführung des Mikroprogramms
MikroprogrammzählerMikroprogrammzähler
Befehl holen0 101 10, 3, 112 0, 2
INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1
...
44
KB
Sch
alt
syst
em
eFunktionseinheitenFunktionseinheiten
Programmzähler Befehlsregister
Rechenwerk
Arbeitsspeicher
Akkumulator
Steuerwerk
Datenbus
Adressbus
45
KB
Sch
alt
syst
em
eFunktionseinheitenFunktionseinheiten
Rechenwerk
Arbeitsspeicher Steuerwerk
Datenbus
Adressbus
Akku
PC IR
46
KB
Sch
alt
syst
em
eLiteraturhinweiseLiteraturhinweise
Klaus Merkert, Walter Zimmer: Handbuch zum Bonsai-Lehrcomputer. 1994.
Siehe auchhsg.kaiserslautern.de/faecher/inf/material/bonsai