46
Universelle Universelle Registermaschine Registermaschine Klaus Becker 2003

Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

Embed Size (px)

Citation preview

Page 1: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

Universelle RegistermaschineUniverselle Registermaschine

Klaus Becker2003

Page 2: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

2

KB

Sch

alt

syst

em

eProgrammierbare SystemeProgrammierbare Systeme

Page 3: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

3

KB

Sch

alt

syst

em

eTeil 1 Teil 1

Universelle Registermaschine als Rechnermodell

Page 4: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 5: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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.

Page 6: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 7: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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.

Page 8: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 9: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 10: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 11: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 12: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 13: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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)

Page 14: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 15: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 16: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

16

KB

Sch

alt

syst

em

e

Page 17: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

17

KB

Sch

alt

syst

em

eTeil 2 Teil 2

Entwicklung einer universellen Registermaschine

Page 18: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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.

Page 19: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 20: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 21: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

21

KB

Sch

alt

syst

em

eRegistertestRegistertest

hades.models.rtlib.io.OpinVector

hades.models.rtlib.io.IpinVector

Page 22: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 23: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

23

KB

Sch

alt

syst

em

eRechenwerkRechenwerk

hades.models.rtlib.arith.Decr hades.models.rtlib.arith.Incr

hades.models.rtlib.muxes.Mux21

Page 24: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 25: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 26: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

26

KB

Sch

alt

syst

em

eRAM-TestRAM-Test

RAM Akku Akku RAM

Page 27: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 28: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

28

KB

Sch

alt

syst

em

eDatenbusDatenbus

Datenbus Datenbus

RAM Akku Akku RAM

Page 29: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

29

KB

Sch

alt

syst

em

eTorsteuerungTorsteuerung

Datenbus

hades.models.rtlib.muxes.TriBuf

Page 30: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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)

Page 31: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 32: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

32

KB

Sch

alt

syst

em

eBefehlsregisterBefehlsregister

Datenbus

Adressbus

BefehlsregisterBefehlsregister

Speicher

Reset

Bussplitter

Page 33: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

33

KB

Sch

alt

syst

em

eBefehlsregisterBefehlsregister

hades.models.rtlib.register.RegREhades.models.rtlib.register.RegRE

Page 34: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

34

KB

Sch

alt

syst

em

eBussplitterBussplitter

hades.models.rtlib.io.BusTapBottomhades.models.rtlib.io.BusTapBottom

Page 35: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

35

KB

Sch

alt

syst

em

eBussystemBussystem

8-Bit-Datenbus

4-Bit-Adressbus

BefehlsregisterBefehlsregister

Speicher mit 16 8-Bit-Registern

Page 36: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 37: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

37

KB

Sch

alt

syst

em

eProgrammzählerProgrammzähler

Adressbus

Datenbus

BefehlsregisterBefehlsregister

Programmzähler

Page 38: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 39: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

39

KB

Sch

alt

syst

em

eNullentdeckungNullentdeckung

Datenbus

hades.models.rtlib.compare.CompareEqual

Page 40: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

Page 41: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

41

KB

Sch

alt

syst

em

eSteuerwerkSteuerwerk

Steuerwerk

Steuersignal

Page 42: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

...

Page 43: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

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

...

Page 44: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

44

KB

Sch

alt

syst

em

eFunktionseinheitenFunktionseinheiten

Programmzähler Befehlsregister

Rechenwerk

Arbeitsspeicher

Akkumulator

Steuerwerk

Datenbus

Adressbus

Page 45: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

45

KB

Sch

alt

syst

em

eFunktionseinheitenFunktionseinheiten

Rechenwerk

Arbeitsspeicher Steuerwerk

Datenbus

Adressbus

Akku

PC IR

Page 46: Universelle Registermaschine Klaus Becker 2003. KB Schaltsysteme 2 Programmierbare Systeme

46

KB

Sch

alt

syst

em

eLiteraturhinweiseLiteraturhinweise

Klaus Merkert, Walter Zimmer: Handbuch zum Bonsai-Lehrcomputer. 1994.

Siehe auchhsg.kaiserslautern.de/faecher/inf/material/bonsai