Universelle Registermaschine

Post on 09-Jan-2016

31 views 0 download

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 Presentation

transcript

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