Zum Inhalt springen
L

Das Video kommt von YouTube: erst beim Abspielen verbindet sich die Seite mit YouTube (Google).

Registermaschinen einfach erklärt (Konfigurationen, Befehlsarten & Registerarten)

Politik & Co 15:07 7.106 Aufrufe veröffentlicht Auf YouTube

Das Wichtigste aus dem Video

Tipp auf eine Zeit – das Video springt genau dorthin.

Transkriptautomatisch erstellt · 90 Zeilen
Herunterladen
  1. hallo und herzlich willkommen zu diesem neuen Video auf improve WiFi heute mit dem Thema registermaschinen und zunächst erst einmal mit der Definition von
  2. registermaschinen ähnlich wie Automaten modellieren auch registermaschinen die Funktionsweise und Möglichkeiten eines Computers nur dass eine Registermaschine
  3. deutlich mehr Möglichkeiten bietet und näher an der realen Hardware eines Computers bestehend aus Prozessor und Speicher ist registermaschinen werden
  4. hauptsächlich dazu verwendet die verarbe von Algorithmen zu modellieren oder Algorithmen sind Befehlsketten welche in Abhängigkeit zu eingabeparametern
  5. versuchen Probleme zu lösen und diese Probleme sind mathematisch formuliert kommen nun zum Aufbau und den Bestandteilen einer Registermaschine
  6. eine Registermaschine basiert auf einem Register und einem mehreren Registern besser gesagt und ein Programm wobei das Register ein
  7. Befehlsregister hat ein arbeitsregister und ein speicherregister an welchen Zahlen eingeschrieben und gespeichert werden können und das Programm besteht
  8. nun mal aus den verschiedenen Befehlen ja Register kann man in drei Arten unterteilen dem Befehlsregister wie gesagt dem arbeitsregister und dem
  9. speicherregister wie der Name schon verlauten lässt zählt der Befehlsregister die Anzahl der Befehle oder den aktuellen Befehl der ausgeführt
  10. wird besser gesagt zu später mehr im arbeitsregister werden Zwischenschritte einer Rechnung bzw das Ergebnis der aktuellen Rechnung gespeichert und im
  11. speicherregister werden Startwerte Zwischenergebnisse und Endergebnisse gespeichert dabei sind unendlich viele speicherregister
  12. möglich kommen nun zur Funktionsweise von registermaschinen registermaschinen können drei verschiedene Kategorien von Befehlen entgegennehmen die erste Befehl
  13. art umfasst Eingabe und ausgabebefehle konkret gemeint ist dass man eine Eingabe wie laut load Cloud oder Store für einen
  14. Zahlenwert vornimmt und so Zahlenwerte aus dem speicherregister oder als externe Konstanten in das arbeitsregister lädt oder im
  15. speicherregister speichert dazu auch später mehr die zweite befehlskategorie sind die arithmetischen Operatoren welche dazu dienen verschiedene
  16. Zahlenwerte miteinander zu verknüpfen Terme zu erstellen und schlussendlich auch zu berechnen die letzte und dritte
  17. befehlskategorie sind die Sprungbefehle ein Programm ist eine Abfolge von Befehlen und mittels implementierter Sprungbefehl im Programm
  18. kann die Registermaschine im Programm abhängig von den Eingaben und Konfiguration hin und her springen um so unnötige Befehle zu überspringen oder so
  19. schleifen mehrfachausführung zu ermöglichen später mehr dazu zunächst blicken wir darauf wofür Befehle überhaupt ja da sind im Kontext von
  20. registermaschinen Befehle egal welche der eben genannten Arten führen dazu dass eine Ausgangskonfiguration durch ein Befehl
  21. und dessen Ausführung in eine neue Konfiguration wechseln ähnlich wie die übergangsfunktion bei deterministischen endlichen Automaten bei gegebenen
  22. Zustand und Eingabe den neuen Zustand deterministisch determiniert das heißt nur eine Möglichkeit für einen neuen Zustand zulässt so sind auch die Befehle
  23. einer Registermaschine deterministisch bei gegebenen Zahlenwert und Stelle im Programm das heißt bei gegebener Konfiguration und ein Befehl gibt dieser
  24. Befehl eben deterministisch vor wie die Konfiguration sich durch den Befehl im Verbund mit dem adressierten Zahlenwert verändert um dies besser nachvollziehen
  25. zu können blicken wir nun einmal auf die Bestandteile einer Konfiguration eine Konfiguration ist eine Darstellungsweise für die äh drei verschiedenen Arten von
  26. Registern und den darin gespeicherten Zahlenwerten spricht dem befehlzellerlerregister dem arbeitsregister auch Akkumulator genannt
  27. und dem speicherregister wovon es ja theoretisch unendlich viele geben könnte in der Regel grenzt man das natürlich ein wenn man die Registermaschine
  28. definiert allgemein schreiben wir für den Wert im Befehlsregister klein B für den Wert im arbeitsregister C0 und für die theoretisch unendlich vielen
  29. Speicher Register C1 bis CN wobei n logischerweise eine natürliche Zahl sein muss wir füllen nun die allgemeine Bezeichnungen mit Zahlenwerten das heißt
  30. im Befehlsregister schreiben wir für B8 was im Kontext bedeutet dass bereits sieben Befehle des Programms ausgeführt worden sind in sequentieller Abfolge und
  31. nun der achte Befehl ausgeführt wird im arbeitsregister schreiben wir für C02 was bedeutet dass Operation dem Wert 2 durchgeführt werden sofern der Wert 2 im
  32. Akkumulator nicht überschrieben wird im speicherregister haben wir die Anzahl aller speicherregister auf C1 und C2 also
  33. insgesamt zwei speicherregister begrenzt und C1 bekommt den Wert 2 zugewesen und C2 bekommt den Wert 6 zugewiesen nun müssen wir lediglich die ganzen Werte
  34. von links nach rechts das heißt von Befehlsregister nach arbeitsregister wie gesagt auch Akku ulator genannt bis hin zu den verschiedenen speicherregistern
  35. in Klammern der Reihe nach aufschreiben und erhalten so den formalen Ausdruck einer Konfiguration und diese lautet in diesem Beispiel
  36. 8226 ja kommen jetzt zur Daten ein und Ausgabe und den Befehlen das haben wir eben schon mal leicht angesprochen nun nehmen wir die K Konfiguration
  37. 8226 und schauen wie die Befehle der Kategorie Dateneingabe und Ausgabe sich jeweils auf die Konfigurationen auf die diese
  38. Konfiguration die wir hier haben auswirken dabei schreiben wir wieder Befehlsregister arbeitsregister respektive Akkumulator und ein
  39. speicherregister od in den Register wieder die Werte der Konfiguration 8226 zu und nun geben wir mit unserer Tastatur eine Eingabe bzw ein Befehl ein
  40. und dieser wird in einem Programm in der Regel natürlich automatisch eingegeben und ausgeführt nur die Eingabe von Werten würde noch die manuelle Hingabe
  41. des Nutzers erfordern wir starten mit dem Befehl load 2 bei loadbefehlen werden Werte aus den speicherregistern in das arbeitsregister geladen und die
  42. zwei hinter dem load adressiert das zweite speicherregister also C2 sass dessen Wert 6 nun in das arbeitsregister geschrieben besser gesagt überschrieben
  43. wird denn im arbeitsregister ist bereits der Wert Z enthalten und da unser arbeitsregister unser Akkumulator nur ein Wert speichern kann wird die zwei
  44. überschrieben und der Akkumulator C0 hat nur den Wert 6 anstatt 2 dieser Befehl verändert logischerweise auch unsere Konfiguration da die
  45. Konfiguration ja eine mathematische Formalisierung der registerzustände und Rechnungen beinhaltet wir ändern das arbeitsregister C0 also ändert sich auch
  46. der Wert von C0 in der Konfiguration dit load 2 einen Befehl ausgeführt wurde müssen wir den befehlzeller um ein inkrementieren wir haben den insgesamt
  47. achten Befehl ausgeführt so dass wir uns jetzt im neen Befehl befinden bzw jetzt kommt der neute Befehl auf uns zu unsere neue Konfiguration lautet also
  48. 9626 kommen wir nun zum nächsten eingabefehl und zwar Cloud i und in unserem Fall Cloud 5 das C vor dem load steht für die
  49. konstante was bedeutet dass ein Wert nicht aus dem speicherregister verwendet wird sondern manuell eingegeben wird der Wert ist also bis dato nicht gespeichert
  50. und mit Cloud i wird also ein beliebiger konstanter Wert ins arbeitsregister geschrieben in unserem Fall ist es die 5 welche dann den bisherigen
  51. Akkumulatorwert 6 überschreibt und unsere neue Konfiguration lautet also 10526 kommen nun zum letzten Daten Eingabe und ausgabebefehl nämlich Store
  52. i bzw in diesem Beispiel Store 2 Store kommt von Speichern mit Store 2 ist jetzt aber nicht gemeint dass man die Zahl 2 ins speicherregister schreiben
  53. soll sondern dass der Wert des arbeitsregisters in unserem Fall 5 in das zweite speicherregister geschrieben wird C2 wird also
  54. durch den Wert im Akkumulator ersetzt bzw der Wert im Akkumulator der Wert 5 überschreibt den Wert im zweiten speicherregister C2 und nun haben wir
  55. nicht mehr den Wert 6 dort stehen sondern den Wert 5 hier habe ich noch mal die Bedeutungen der Befehle kurz und bündig definiert die verschiedenen
  56. Folien Beispiele etc pp werde ich vermutlich auch noch auf unserer Webseite www.improvewissen.de hochladen Link dazu
  57. in der Beschreibung load i adressiert das Arbeit Register und befiehlt diesen den Wert aus einem speicherregister i abzulesen und zu speichern Cloud i macht
  58. das gleiche nur das halt in diesem Fall i kein Wert aus dem speicherregister ist sondern eine konstante Store e adressiert das speicherregister i und
  59. befiehlt diesem den aktuellen Zahlenwert aus dem Akkumulator auszulesen und zu speichern registermaschinen modellieren Computer Computer heißen Computer weil
  60. sie rechnen können das heißt Sie können mathematische Operationen ausführen unsere Registermaschine als Computermodell muss also ebenfalls die
  61. vier arithmetischen Operationen Addition Subtraktion Multiplikation und Division ausführen können lila markiert siehst du all diese abgekürzten arithmetischen
  62. Operatoren mit einem großen C zu Beginn und dieses große C kommt uns schon bekannt vor aus dem Befehl Cloud und steht für konstante wie bereits
  63. erleutert ist eine konstante ein Zahlenwert welcher nicht im speicherregister enthalten ist oder zusätz
  64. benötigt wird ein Befehl mit einer Konstante haben wir bereits kennengelernt wie gesagt den Cloud Befehl und zur Verdeutlichung nehmen wir
  65. mal die konstante 5 wir schreiben also Cloud 5 und nun wird 5 ins arbeitsregister geschrieben nun vergleichen wir dies mit dem Befehl load
  66. 5 dort wird nicht der Zahlenwert 5 ins arbeitsregister geschrieben sondern der im fünften speicherregister vorhandene Wert welcher eine beliebige natürliche
  67. Zahl sein kann je nachdem wie man die Registermaschine definiert hat dieser Unterschied ist sehr wichtig denn genauso wie zu dem Befehl load der
  68. Befehl Cloud für konstanten vorhanden ist gibt es zu jedem arithmetischen Operator also zu jedem add Sub multiply divide eine C Version also ein Befehl
  69. welcher nur für konstanten arithmetische Operationen zulässt [Musik]
  70. ja kommen wir nun zur letzten befehlskategorie einer der wichtigsten und vielleicht auch komplexesten den sprungbefehlen Sprungbefehle
  71. unterscheiden sich fundamental von all anderen befehlsarten die wir bisher kennengelernt haben weil sie die im Akkumulator oder speicherregister
  72. vorhandenen Werte eben nicht manipulieren nicht verändern jedoch den Befehlszähler verändern und so dafür sorgen dass im Programm zu einem anderen
  73. Befehl gesprungen wird der nicht in der normalen Reihenfolge liegt und somit wird die sequentielle Abarbeitung des Programms durch diese Sprungbefehle
  74. durchbrochen wir schauen uns ein Beispiel an Sprungbefehle haben immer die Form go to zu deutsch gear zu und den Parameter i welcher hier nicht für
  75. ein speicherregister steht sondern für die Reihenfolge eines Befehls in der Gesamtheit der befehlsequenz eines Programmes i ist also Äquivalent zur
  76. Programmstelle Sprungbefehle denn hauptsächlich zur Performance Optimierung weil bei bestimmten Zahlenwerten einige Befehle keinen Sinn
  77. machen und aus diesem Grund haben go to Befehle eine Bedingung implementiert diese Bedingung ist in der Form if dann kommt ein Zahlenwert aus dem
  78. speicherregister oder aber eine konstante und dann kommt ein ja eine Relation so also ist gleich kleiner gleich kleiner größer größer gleich dem
  79. zahlen t x und dieser Zahlenwert X ist in der Regel dann die der Zahlenwert aus dem arbeitsregister aus dem Akkumulator und
  80. wenn dann die Bedingung erfüllt wird dann kommt die Exekution der Goto Anweisung daher z.B überspringe XY Befehle beende das Programm und kehre in
  81. ein vorherigen Programmschritt zurück wären so verschiedene Sachen die dann passieren könnten in unserem Beispielprogramm haben wir im vierten
  82. Befehl ein Goto Befehl welcher sagt dass wenn im arbeitsregister bzw Akkumulator eine Z steht der fünfte Befehl übersprungen werden soll und direkt mit
  83. dem Schritt 6 weitergemacht werden soll im dritten Befehl wurde der Akkumulator also C0 durch den Befehl Cloud 2 mit der konstante 2 überschrieben C0 ist also 2
  84. und erfüllt so mit die Bedingung des Goto Befehls du sass nun nicht mit dem fünften Befehl weitergemacht wird sondern mit dem sechsten
  85. Befehl eingabusgabenfanten ein weiterfeh das ist der endbefehl der Befehl end beendet
  86. ein Programm und lässt dabei die aktuelle Konfiguration unverändert das heißt durch den endbefehl bzw nach dessen Ausführung kommt es nicht mehr zu
  87. einer inkrementierung oder Veränderung des befehlzählers und auch alle anderen Register bleiben unberührt in dem Sinne vielen Dank fürs
  88. zuschauen im nächsten Video geht's dann konkret um ein Beispiel weil es dann mit dem befehlzellerler doch teilweise Irritation
  89. gibt und in dem Sinne wünsche ich dir einen schönen Tag macht's gut bleibt gesund und
  90. [Musik] ciao ه [Musik]

Zum Nachlesen