Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Universelle Registermaschine

Ähnliche Präsentationen


Präsentation zum Thema: "Universelle Registermaschine"—  Präsentation transkript:

1 Universelle Registermaschine
Klaus Becker 2003

2 Programmierbare Systeme

3 Universelle Registermaschine als Rechnermodell
Teil 1 Universelle Registermaschine als Rechnermodell

4 Verarbeitungseinheit
Registermaschine Adresse Register Progr.zähler Befehl 0: 5 1: 3 2: 0 3: 0 4: 0 .. 0 JMP INC DEC TST 1 > 4 JMP HLT Speicher (Registern) Verarbeitungseinheit

5 Registermaschinenbefehle
Erhöhe Register i um 1. Gehe zu Zeile x+1. > x INC i Erniedrige Register i um 1. Gehe zu Zeile x+1. > x DEC i > x JMP i Gehe zu Zeile i. Wenn Register i ungleich 0 ist, dann gehe zu Zeile x+1, sonst zu Zeile x+2. > x TST i > x HLT Beende die Bearbeitung.

6 Registermaschine in Aktion
0: 5 1: 3 2: 0 3: 0 4: 0 .. > 0 JMP INC DEC TST JMP HLT 0: 5 1: 3 2: 0 3: 0 4: 0 .. 0 JMP INC DEC 1 > 3 TST JMP HLT 0: 5 1: 3 2: 0 3: 0 4: 0 .. 0 JMP INC DEC TST 1 > 4 JMP HLT 0: 5 1: 3 2: 0 3: 0 4: 0 .. 0 JMP 3 > 1 INC DEC TST JMP HLT 0: 6 1: 3 2: 0 3: 0 4: 0 .. 0 JMP INC 0 > 2 DEC TST JMP HLT 0: 6 1: 2 2: 0 3: 0 4: 0 .. 0 JMP INC DEC 1 > 3 TST JMP HLT

7 Einfache Registermaschine
Registermaschine als programmgesteuertes System Daten Programm 0: 5 1: 3 2: 0 3: 0 4: 0 .. > 0 JMP INC DEC TST JMP HLT Eine Registermaschine bearbeitet beliebig eingebbare Daten nach einem fest vorgegebenen Programm.

8 Universelle Registermaschine
Universelle Registermaschine als programmierbares System Programm 0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT : : Daten Speicher (Registern) Verarbeitungseinheit Eine universelle Registermaschine bearbeitet beliebig eingebbare Daten nach einem beliebig vorgegebenen Programm.

9 Vereinheitlichung von Programm und Daten
0: JMP 3 1: INC 0 2: DEC 1 3: TST 1 4: JMP 1 5: HLT : : Kodierung CPU INC: 1 DEC: 2 JMP: 3 TST: 4 HLT: 5 Daten Programm 0: : : : : : : : : CPU Daten

10 Rechnerarchitektur (nach von Neumann)
Adressbus 0: : : : : : : : : PC IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

11 Befehl holen PC IR Akku Adressbus 3 0003 Arbeitsspeicher Steuerwerk
0: : : : : : : : : PC 3 0003 IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

12 Befehl dekodieren und ausführen
Adressbus 0: : : : : : : : : PC 3 3 0003 IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

13 Fundamentalzyklus Wiederhole Befehl holen (fetch-Phase)
Befehl dekodieren und ausführen (execute-Phase)

14 Steueralgorithmus Wiederhole Befehl holen
Befehl dekodieren und ausführen Befehl holen WIEDERHOLE PC  ABus; PC  ABus; RInhalt  DBus; DBus  IR; op := Operatorteil(IR); adr := Adressteil(IR) FALLS op : adr  ABus; adr  ABus; RInhalt  DBus; DBus  Akku; adr  ABus; upAkku; adr  ABus; Akku  DBus; DBus  RInhalt; IncPC; : // analog : adr ABus; ABus  PC; : adr  ABus; adr  ABus; Registerinhalt  DBus; WENN DBus = 0 DANN IncPC; IncPC; BIS op = 5 // HLT Befehl dekodieren INC-Befehl ausführen JMP-Befehl ausführen TST-Befehl ausführen

15 Steuerung durch ein Mikroprogramm
Befehl holen , 3, , 2 INC ausführen , 3, , , 4, 8, , 1 DEC ausführen , 3, , , 4, 8, , 1 JMP ausführen  30 12, , 1 TST ausführen  , , 3, , 1 WIEDERHOLE PC  ABus; PC  ABus; RInhalt  DBus; Dbus  IR; op := Operatorteil(IR); adr := Adressteil(IR) FALLS op : adr  ABus; adr  ABus; RInhalt  DBus; DBus  Akku; adr  ABus; upAkku; adr  ABus; Akku  DBus; DBus  RInhalt; IncPC; : // analog : adr ABus; ABus  PC; : adr  ABus; adr  ABus; Registerinhalt  DBus; WENN DBus = 0 DANN IncPC; IncPC; BIS op = 5 // HLT

16

17 Entwicklung einer universellen Registermaschine
Teil 2 Entwicklung einer universellen Registermaschine

18 Zielsetzung Mit Hilfe vorgegebener Hardwarebausteinen soll ein einfacher, voll funktionsfähiger (Bonsai) Rechner entwickelt werden.

19 Schritt 1: Akku-Register
Wir beginnen mit dem Akku-Register. Der hier benutzte Akku soll 8-Bit-Dateneinheiten aufnehmen können. Akku

20 Register-Baustein hades.models.rtlib.register.RegRE 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

21 Registertest hades.models.rtlib.io.IpinVector
hades.models.rtlib.io.OpinVector

22 Schritt 2: Rechenwerk Akku
Mit Hilfe des Rechenwerkes sollen Inkrementier- und Dekrementieroperationen ausgeführt werden Akku Rechenwerk

23 Rechenwerk hades.models.rtlib.arith.Decr hades.models.rtlib.arith.Incr
hades.models.rtlib.muxes.Mux21

24 Schritt 3: Arbeitsspeicher
Die im Akku-Register zu verarbeitenden Daten sollen aus einem Arbeitsspeicher geholt und wieder gespeichert werden. 0: : : : : : : : : Arbeitsspeicher Akku Rechenwerk

25 RAM-Baustein nCS: nCS = 0: (notChipSelect) RAM-Baustein aktiv
hades.models.rtlib.memory.RAM nCS: nCS = 0: (notChipSelect) RAM-Baustein aktiv nWE: nWE = 0: DIN  adressiertes Register nWE = 1: adressiertes Register  DOUT A: Adress-Eingang DIN: Daten-Eingang DOUT: Daten-Ausgang

26 RAM-Test RAM  Akku Akku  RAM

27 Schritt 4: Datenbus Akku
Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen. 0: : : : : : : : : Arbeitsspeicher Datenbus Akku Rechenwerk

28 Datenbus Datenbus Datenbus RAM  Akku Akku  RAM

29 Torsteuerung hades.models.rtlib.muxes.TriBuf Datenbus

30 tri-state-Verhalten S 1 E 1 A 1 S 1 E 1 A Z 1 S = 0: passiv
1 E 1 A 1 S 1 E 1 A Z 1 hochohmig S = 0: passiv S = 1: aktiv (durchlassen)

31 Schritt 5: Befehlsregister und Adressbus
0: : : : : : : : : 3 0003 IR Arbeitsspeicher Datenbus Akku Rechenwerk

32 Befehlsregister Adressbus Bussplitter Speicher Befehlsregister
Datenbus Reset

33 Befehlsregister hades.models.rtlib.register.RegRE

34 Bussplitter hades.models.rtlib.io.BusTapBottom

35 Bussystem 4-Bit-Adressbus Speicher mit 16 8-Bit-Registern
Befehlsregister Befehlsregister 8-Bit-Datenbus

36 Schritt 6: Programmzähler
Adressbus 0: : : : : : : : : PC 3 0003 IR Arbeitsspeicher Datenbus Akku Rechenwerk

37 Programmzähler Adressbus Programmzähler Befehlsregister
Datenbus

38 Schritt 7: Programmbeendung
Adressbus 0: : : : : : : : : PC 3 0003 IR Arbeitsspeicher Datenbus Akku Rechenwerk

39 Nullentdeckung Datenbus hades.models.rtlib.compare.CompareEqual

40 Schritt 8: Steuerwerk PC IR Akku Adressbus 3 0003 Arbeitsspeicher
0: : : : : : : : : PC 3 0003 IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

41 Steuerwerk Steuersignal Steuerwerk

42 Mikroprogramm Mikroprogramm Befehl holen 0 10 1 10, 3, 11 2 0, 2
INC ausführen , 3, , , 4, 8, , 1 ... Mikroprogramm

43 Ausführung des Mikroprogramms
Befehl holen , 3, , 2 INC ausführen , 3, , , 4, 8, , 1 ... Mikroprogrammzähler Mikroprogrammzähler

44 Funktionseinheiten Programmzähler Befehlsregister Adressbus
Arbeitsspeicher Datenbus Rechenwerk Steuerwerk Akkumulator

45 Funktionseinheiten PC IR Akku Adressbus Arbeitsspeicher Steuerwerk
Datenbus Akku Rechenwerk

46 Literaturhinweise Klaus Merkert, Walter Zimmer: Handbuch zum Bonsai-Lehrcomputer Siehe auch hsg.kaiserslautern.de/faecher/inf/material/bonsai


Herunterladen ppt "Universelle Registermaschine"

Ähnliche Präsentationen


Google-Anzeigen