1 / 46

Universelle Registermaschine

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.

alika
Download Presentation

Universelle Registermaschine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Universelle Registermaschine Klaus Becker 2003

  2. Programmierbare Systeme

  3. Teil 1 Universelle Registermaschine als Rechnermodell

  4. Registermaschine Adresse Register Progr.zähler Befehl 0: 51: 32: 03: 04: 0.. 0 JMP 3 1 INC 0 2 DEC 1 3 TST 1> 4 JMP 1 5 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: 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.. 0 JMP 3 1 INC 0 2 DEC 1> 3 TST 1 4 JMP 1 5 HLT

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

  8. Universelle Registermaschine Universelle Registermaschine als programmierbares System 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 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 0: 0 0005 1: 0 0003 .. 0 0000 Programm Kodierung CPU INC: 1 DEC: 2 JMP: 3 TST: 4 HLT: 5 Daten 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 Programm CPU Daten

  10. Rechnerarchitektur (nach von Neumann) Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

  11. Befehl holen Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR 0 3 0003 Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

  12. Befehl dekodieren und ausführen Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR 3 3 0003 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 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 dekodieren INC-Befehl ausführen JMP-Befehl ausführen TST-Befehl ausführen

  15. Steuerung durch ein Mikroprogramm 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 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

  16. Teil 2 Entwicklung einer universellen Registermaschine

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

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

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

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

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

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

  23. Schritt 3: Arbeitsspeicher 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 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 Arbeitsspeicher Akku Rechenwerk

  24. RAM-Baustein 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

  25. RAM-Test RAM  Akku Akku  RAM

  26. Schritt 4: Datenbus Der Datenaustausch zwischen dem Arbeitsspeicher und dem Akku-Register soll über einen Datenbus erfolgen. 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 Arbeitsspeicher Datenbus Akku Rechenwerk

  27. Datenbus Datenbus Datenbus RAM  Akku Akku  RAM

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

  29. tri-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)

  30. Schritt 5: Befehlsregister und Adressbus Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 IR 3 0003 Arbeitsspeicher Datenbus Akku Rechenwerk

  31. Befehlsregister Adressbus Bussplitter Speicher Befehlsregister Befehlsregister Datenbus Reset

  32. Befehlsregister hades.models.rtlib.register.RegRE hades.models.rtlib.register.RegRE

  33. Bussplitter hades.models.rtlib.io.BusTapBottom hades.models.rtlib.io.BusTapBottom

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

  35. Schritt 6: Programmzähler Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR 0 3 0003 Arbeitsspeicher Datenbus Akku Rechenwerk

  36. Programmzähler Adressbus Programmzähler Befehlsregister Befehlsregister Datenbus

  37. Schritt 7: Programmbeendung Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR 0 3 0003 Arbeitsspeicher Datenbus Akku Rechenwerk

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

  39. Schritt 8: Steuerwerk Adressbus 0: 3 0003 1: 1 0007 2: 2 0008 3: 4 0008 4: 3 0001 5: 5 00006: 0 0000 7: 0 0005 8: 0 0003 .. 0 0000 PC IR 0 3 0003 Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

  40. Steuerwerk Steuersignal Steuerwerk

  41. Mikroprogramm Befehl holen0 101 10, 3, 112 0, 2 INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1 ... Mikroprogramm

  42. Ausführung des Mikroprogramms Befehl holen0 101 10, 3, 112 0, 2 INC ausführen10 1211 12, 3, 712 12, 513 12, 4, 8, 1314 0, 1 ... Mikroprogrammzähler Mikroprogrammzähler

  43. Funktionseinheiten Programmzähler Befehlsregister Adressbus Arbeitsspeicher Datenbus Rechenwerk Steuerwerk Akkumulator

  44. Funktionseinheiten Adressbus PC IR Arbeitsspeicher Steuerwerk Datenbus Akku Rechenwerk

  45. Literaturhinweise Klaus Merkert, Walter Zimmer: Handbuch zum Bonsai-Lehrcomputer. 1994. Siehe auchhsg.kaiserslautern.de/faecher/inf/material/bonsai

More Related