rechnerarchitektur. 2 teil 1 das registermaschinenmodell
TRANSCRIPT
![Page 1: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/1.jpg)
Rechnerarchitektur
![Page 2: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/2.jpg)
2 Teil 1
Das Registermaschinenmodell
![Page 3: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/3.jpg)
3 Zielsetzung
Ziel ist es zu verstehen, wie ein Rechner funktioniert. Ziel ist es zu verstehen, wie ein Rechner ein Programm (z. B. ein Delphi-Programm) bearbeiten kann.
![Page 4: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/4.jpg)
4 Analytische Methode
Man öffnet und zerlegt einen Rechner und versucht dabei, die Funktion der Einzelteile und ihr Zusammenwirken zu verstehen.
http://www.mona-net.at/zine/9/1250
Dieser Weg ist wegen der Komplexität realer Rechner wenig erfolgversprechend. Zu viele technische Details lenken von den Grundideen ab.
![Page 5: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/5.jpg)
5 Synthetische Methode
Man entwickelt einen funktionsfähigen Rechner, ausgehend von einem sehr einfachen Maschinen-Modell.
Technische Details spielen dabei keine Rolle. Dieser Weg soll im Folgenden beschritten werden.
1 2
8 9
3
4 5 6
7
![Page 6: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/6.jpg)
6 Anforderungen
Der Rechner verfügt über einen (Arbeits-)Speicher, in dem Daten abgelegt werden können.
Der Rechner verfügt über eine Zentraleinheit, die für die Abarbeitung von Programmen zuständig ist.
Wir verzichten hier auf eine Eingabe- und Ausgabeeinheit. Daten können hier direkt im Speicher abgelegt werden. Der Speicherinhalt kann auch direkt eingesehen werden.
Zentraleinheit
Speicher
![Page 7: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/7.jpg)
7 Der Gläser-Rechner
Der Speicher besteht aus (beliebig vielen) Gläsern, die der Reihe nach durchnummeriert sind. In jedem dieser Gläser können sich Kugeln befinden.
Rechnen bedeutet für diesen Rechner, dass in einem Glas eine Kugel hinzugefügt bzw. weggenommen wird.
Rechenvorgänge werden durch ein Programm gesteuert und von einem Menschen ausgeführt.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT 1 2 3 ...
Nach: D. Jonietz: Gläserrechner als Registermaschine
Verarbeitung
Speicher
![Page 8: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/8.jpg)
8 Die Befehle des Gläser-Rechners
Die Bedeutung der Befehle:
JMP 4: Springe zum Befehl in Zeile 4.
INC 1: Füge in Glas 1 eine Kugel hinzu.
DEC 2: Entferne in Glas 2 eine Kugel.
TST 2: Wenn Glas 2 nicht leer ist, dann springe zur nächsten Zeile, sonst zur übernächsten.
HLT: Beende die Bearbeitung.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT 1 2 3 ...
![Page 9: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/9.jpg)
9 Aufgabe
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT 1 2 3 ...
Übernehmen Sie die Rolle des „Programmausführers“. Spielen Sie das vorgegebene Programm mit Hilfe von Münzen durch. Ein Münzhaufen soll dabei einem Glas mit Kugeln entsprechen.
![Page 10: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/10.jpg)
10 Das Registermaschinenmodell
Speicher mit Registern
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
1
Eine Registermaschine ist ein sehr einfaches Modell eines Rechners. Der Speicher besteht aus einer festen endlichen Anzahl von Registern. Die Arbeitsweise wird über ein Registermaschinenprogramm festgelegt.
3
2 2
3 0
4 0
... ...
Beachte: Ein Registermachinenprogramm legt eine bestimmte Verarbeitung der Register fest. Eine Registermaschine beschreibt demnach ein System mit fester Funktionalität, also noch kein programmierbares System.
Registermaschinenprogramm
![Page 11: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/11.jpg)
11 Befehlssatz der Registermaschine
x INC i Erhöhe Register i um 1 und gehe zur Zeile x+1.
x DEC i Erniedrige Register i um 1 (sofern möglich) und gehe zur Zeile x+1.
x JMP i Gehe zur Zeile i.
x TST i Wenn Register i keine Null enthält, dann gehe zur Zeile x+1, sonst zu x+2.
x HLT Beende die Bearbeitung.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
1 3
2 2
3 0
4 0
... ...
![Page 12: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/12.jpg)
12 Assembler
Eine Assemblersprache ist ein maschinenorientierte Programmiersprache. Für jeden Prozessortyp gibt es spezielle Assemblersprachen. Die hier verwendete Assemblersprache basiert auf dem Befehlssatz der Registermaschine. Das unten abgebildete Registermaschinenprogramm ist daher ein Assembler-Programm im hier verwendeten Sinn.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
1 3
2 2
3 0
4 0
... ...
Assemblerprogramm
![Page 13: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/13.jpg)
13
Abarbeitung eines Assemblerprogramms
> 1 JMP 4 2 INC 1 3 DEC 2 4 TST 2 5 JMP 2 6 HLT
1: 32: 23: 04: 05: 0..
1 JMP 4 2 INC 1 3 DEC 2> 4 TST 2 5 JMP 2 6 HLT
1 JMP 4 2 INC 1 3 DEC 2 4 TST 2> 5 JMP 2 6 HLT
1 JMP 4> 2 INC 1 3 DEC 2 4 TST 2 5 JMP 2 6 HLT
1 JMP 4 2 INC 1> 3 DEC 2 4 TST 2 5 JMP 2 6 HLT
1 JMP 4 2 INC 1 3 DEC 2> 4 TST 2 5 JMP 2 6 HLT
1: 32: 23: 04: 05: 0..
1: 32: 23: 04: 05: 0..
1: 32: 23: 04: 05: 0..
1: 42: 23: 04: 05: 0..
1: 42: 13: 04: 05: 0..
![Page 14: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/14.jpg)
14 Aufgabe
Testen Sie das vorgegebene Assembler-Programm mit dem BONSAI-Simulationsprogramm. Geben Sie zunächst das Programm in den Programmspeicher und die Daten in den Datenspeicher (Register) ein. Starten Sie dann den Programmlauf.
![Page 15: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/15.jpg)
15 Aufgabe
Entwickeln Sie ein Assembler-Programm, das folgende Spezifikation erfüllt:
Registerzustand vorher:
{1: x; 2: 0; 3: 0; ...}
Registerzustand nachher:
{1: 0; 2: 2x; 3: 0; ...}
![Page 16: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/16.jpg)
16 Teil 2
Universelle Registermaschine
![Page 17: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/17.jpg)
17 Erweiterung des Gläser-Rechners
Bisher wurden der Gläser-Rechner von einem festen, auf einem Zettel notierten Programm gesteuert (s. u.). Der Gläser-Rechner soll jetzt zu einem programmierbares System erweitert werden. Das Verarbeitungsprogramm soll beliebig ausgetauscht werden können. Es soll (wie in realen Rechnern) gemeinsam mit den Daten im Speicher abgelegt werden.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT 1 2 3 ...
Verarbeitung
Speicher
![Page 18: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/18.jpg)
18 Programme als Daten
In einem (noch genauer festzulegenden) Gläserbereich sollen die einzelnen Befehle gespeichert werden. Da Gläser nur Kugeln enthalten sollen, können die Befehle nicht direkt in den Gläsern abgelegt werden. Es bietet sich an, die Befehle mit Hilfe von Kugeln geeignet darzustellen.
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
1 2 3 ...
1 2 3 4
JMP 4 INC 1 DEC 2 TST 2 JMP 2 HLT
5 6
![Page 19: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/19.jpg)
19 Programme als Daten
Wir verwenden (vorerst) zwei Sorten Kugeln: Blaue Kugeln als „Daten-Kugeln“ und rote Kugeln zur Kodierung der Befehle.
1 2 3 ...
1 2 3 4
JMP 4 INC 1 DEC 2 TST 2 JMP 2 HLT
5 6
Kodierung:
INC
DEC
JMP
TST
HLT
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
Beachte: Die Festlegungen sind willkürlich. Man könnte auch ganz anders vorgehen. Z. B. könnte man zwei aufeinander folgende Gläser zur Darstellung eines Befehls benutzen.
![Page 20: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/20.jpg)
20 Programme als Daten
Wir legen fest: - Der Programmteil soll ab Glas 1 beginnen.- Der Datenteil beginnt erst nach dem Datenteil. - Dazwischen soll ein (leeres) Glas sein.Jetzt müssen die Befehle entsprechend angepasst werden.
7 8 9 ...
1 2 3 4
JMP 4 INC 8 DEC 9 TST 9 JMP 2 HLT
5 6
Kodierung:
INC
DEC
JMP
TST
HLT
1 JMP 4
2 INC 1
3 DEC 2
4 TST 2
5 JMP 2
6 HLT
Beachte: Die Festlegungen sind willkürlich. Man könnte auch Daten „von links“ und Befehle „von rechts“ in die Gläser füllen.
![Page 21: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/21.jpg)
21 Abarbeitung eines Programms
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner
Nach: B. Brost: Von-Neumann-Architektur – Heranführung über einen Gläserrechner
1 2 3
4 5 6
7 8 9
Die Abarbeitung eines Programms soll mit Hilfe von drei Akteuren simuliert werden.
Ein sog. Steuerer ist für die Steuerung der Aktionen zuständig. Ein sog. Rechner ist für Rechenvorgänge (hier: inkrementieren bzw. dekrementieren) zuständig. Ein sog. Bringer ist für das Überbringen von Daten (hier Kugeln) zuständig.
![Page 22: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/22.jpg)
22 Abarbeitung eines Programms
1 2
8 9
3
4 5 6
7
Der Steuerer sitzt mit dem Rücken zum Gläserspeicher. Als „Chef“ darf er die Initiative ergreifen und Bringer sowie Rechner beauftragen, Aktionen durchzuführen. Zudem verfügt er über einen Merkzettel, mit dem er sich das Glas mit dem zu bearbeitenden Befehl merken kann.
Der Rechner sitzt ebenfalls mit dem Rücken zum Gläserspeicher. Er darf als einziger einen Gläserinhalt (nach Aufforderung durch den Steuerer) verändern.
SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
![Page 23: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/23.jpg)
23 Abarbeitung eines Programms
1 2
8 9
3
4 5 6
7
Der Bringer hat als einziger Zugang zum Gläserspeicher. Er darf (nach Aufforderung durch den Steuerer) den Inhalt eines Speicherglases kopieren (Speicher lesen) oder seine aktuell verwalteten Kugeln in ein Speicherglas - nach vorherigem Entfernen der dortigen Kugeln - füllen (Speicher beschreiben). Zudem ist er für den Transport von Kugeln zum Steuerer bzw. Rechner zuständig. Hierzu verwendet er ein geeignetes Transportgefäß.
SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
![Page 24: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/24.jpg)
24 Aufgabe
Spielen Sie das vorgegebene Programm mit Hilfe von Münzen durch. Ein Münzhaufen soll dabei einem Glas mit Kugeln entsprechen.
![Page 25: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/25.jpg)
25 Befehl holen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
„Bringer, kopiere den Inhalt von Glas 1 und bringe ihn her.“
INC
DEC
JMP
TST
HLT
![Page 26: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/26.jpg)
26 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Aha, ein JMP-Befehl. In Glas 4 ist also der nächste Befehl.“
![Page 27: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/27.jpg)
27 Befehl holen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, kopiere den Inhalt von Glas 4 und bringe ihn her.“
![Page 28: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/28.jpg)
28 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Aha, ein TST-Befehl. Bringer, kopiere den Inhalt von Glas 9 und teile mir mit, ob Kugeln vorhanden sind.“
![Page 29: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/29.jpg)
29 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Aha, es sind Kugeln vorhanden, dann ist der nächste Befehl in Glas 5.“
![Page 30: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/30.jpg)
30 Befehl holen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, kopiere den Inhalt von Glas 5 und bringe ihn her.“
![Page 31: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/31.jpg)
31 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Aha ein JMP-Befehl. In Glas 2 ist also der nächste Befehl.“
![Page 32: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/32.jpg)
32 Befehl holen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, kopiere den Inhalt von Glas 2 und bringe ihn her.“
![Page 33: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/33.jpg)
33 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Aha, ein INC-Befehl. Bringer, kopiere den Inhalt von Glas 8 und bringe ihn zum Rechner.“
![Page 34: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/34.jpg)
34 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT „Rechner, leg eine Kugel dazu.“
![Page 35: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/35.jpg)
35 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, hol die Kugeln beim Rechner ab, leere Glas 8 und fülle die Kugeln dann dort hinein. Weiter geht es jetzt mit dem Befehl in Glas 3.“
![Page 36: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/36.jpg)
36 Befehl dekodieren und ausführen
1 2
8 9
3
4 5 6
7SteuererBringer
Rechner1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, hol die Kugeln beim Rechner ab, leere Glas 8 und fülle die Kugeln dann dort hinein. Weiter geht es jetzt mit dem Befehl in Glas 3.“
![Page 37: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/37.jpg)
37 Befehl ausführen
1 2 3
4 5 6
7 8 9
INC
DEC
JMP
TST
HLT
„Bringer, hol die Kugeln beim Rechner ab, leere Glas 8 und fülle die Kugeln dann dort hinein. Weiter geht es jetzt mit dem Befehl in Glas 3.“
1 2
8 9
3
4 5 6
7
![Page 38: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/38.jpg)
38 Universelles Steuerungsprogramm
Wiederhole folgende Aktionen:
Bringer, kopiere den Inhalt des Glases mit der auf dem Merkzettel notierten Nummer und bringe ihn her.
Falls die Anzahl der roten Kugeln
1 beträgt, dann kopiere den Inhalt des Glases mit der Nummer, die der Anzahl der blauen Kugeln entspricht, und bringe diese Kugeln zum Rechner. Rechner, leg dann eine Kugel dazu. Bringer, hol die Kugeln beim Rechner ab, leere das aktuell bearbeitete Glas und fülle die Kugeln dann dort hinein. Ich erhöhe die Nummer auf dem Merkzettel um 1. (bei 2 analog)
3 beträgt, dann markiere ich auf dem Merkzettel die Nummer, die der Anzahl der roten Kugeln entspricht.
4 beträgt, dann kopiere den Inhalt des Glases mit der Nummer, die der Anzahl der blauen Kugeln entspricht, und teile mir mit, ob hier Kugeln vorhanden sind. Wenn keine Kugeln vorhanden sind, dann erhöhe ich die Nummer auf dem Merkzettel um 1, sonst um 2.
5 beträgt, dann stoppe.
1 2
8 9
3
4 5 6
7
![Page 39: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/39.jpg)
39 Universeller Gläser-Rechner
Wiederhole folgende Aktionen:
Bringer, kopiere den Inhalt des Glases mit der auf dem Merkzettel notierten Nummer und bringe ihn her.
Falls die Anzahl der roten Kugeln
1 beträgt, dann kopiere den Inhalt des Glases mit der Nummer, die der Anzahl der blauen Kugeln entspricht, und bringe diese Kugeln zum Rechner. Rechner, leg dann eine Kugel dazu. Bringer, hol die Kugeln beim Rechner ab, leere das aktuell bearbeitete Glas und fülle die Kugeln dann dort hinein. Ich erhöhe die Nummer auf dem Merkzettel um 1. (bei 2 analog)
...
1 2
8 9
3
4 5 6
7
Ein universeller Gläser-Rechner ist programmierbar in dem Sinn, dass er die Verarbeitung beliebiger Registermaschinenprogramme „simulieren“ kann.
![Page 40: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/40.jpg)
40 Universelle Registermaschine
Eine universelle Registermaschine bearbeitet beliebig eingebbare Daten nach einem beliebig eingebbaren Programm. Eine universelle Registermaschine ist somit ein programmierbares System.
Daten
1: „JMP 4“ 2: „INC 1“ 3: „DEC 2“ 4: „TST 2“ 5: „JMP 2“ 6: „HLT“ 1: 0 0005
2: 0 0003 .. 0 0000
Programm
Speicher (Registern)
Verarbeitungseinheit
Universelles Steuerungs-programm
![Page 41: Rechnerarchitektur. 2 Teil 1 Das Registermaschinenmodell](https://reader036.vdocuments.pub/reader036/viewer/2022062622/55204d6849795902118be5a5/html5/thumbnails/41.jpg)
41 Maschinenprogramm
1: JMP 3 2: INC 0 3: DEC 1 4: TST 1 5: JMP 1 6: HLT 1: 0 0005
2: 0 0003 .. 0 0000
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
Kodierung:
INC 1
DEC 2
JMP 3
TST 4
HLT 5
Da in einem Register nur natürliche Zahlen gespeichert werden können, muss ein Registermaschinenprogramm geeignet kodiert werden, um abgespeichert werden zu können. Ein solches Maschinen-nahes Programm heißt dann Maschinenprogramm.
Zu diesem Zweck werden die Befehle mit Hilfe natürlicher Zahlen kodiert. Aus technischen Gründen (s. Folie ...) wird die Nummerierung der Register ab jetzt bei Null begonnen.Maschinenprogramm