Zur Hauptnavigation springen [Alt]+[0] Zum Seiteninhalt springen [Alt]+[1]

Registermaschine

Nachdem die Schüler gelernt haben, wie aus logischen Bauelementen mathematische Funktionen aufgebaut werden können, kann daraus ein Computer aufgebaut werden. Die Bildungsstandards sind auch erfüllt, wenn nur dieses Kapitel behandelt wird, da in den Standards nur der Aufbau des Von-Neumann-Rechners und die Übersetzungsvorgänge zwischen den verschiedenen Sprachebenen verlangt werden. Die vorangehenden Kapitel sind damit Teil eines möglichen Schulcurriculums.

Im Vordergrund muss dabei stehen, den Schülern deutlich zu machen, dass mit wenigen verschiedenen elektronischen Bauelementen/Schaltungen eine Vielzahl von algorithmischen Problemen genauso gut gelöst werden können wie mit einer Hochsprache. Dazu müssen mindestens die Grundelemente eines Algorithmus Sequenz, Entscheidung und Schleife behandelt werden.

Um dies zu verdeutlichen, bietet es sich an, ein Simulationsprogramm einer Registermaschine einzusetzen. Im Internet finden sich viele verschiedene kostenlose Programme, die dies leisten.

z.B.

Sie finden eine didaktische Bewertung in den Handreichungen zum Informatikunterricht des ISB (Staatsinstitut für Schulqualität und Bildungsforschung München) für Klasse 12 (Stand: Sep. 2011).

Bis auf MIKROSIM simulieren alle diese Programme den Von-Neumann-Zyklus als „Black Box“. Das Steuerwerk führt den Von-Neumann-Zyklus aus, ohne dass deutlich wird, wie das mit einfachen elektronischen Bausteinen möglich ist. MIKROSIM besitzt als einziges Simulationsprogramm einen Mikroprogrammspeicher, der den Übergang von den elektronischen Bauelementen zur Maschinensprache schafft. Verzichtet man im Unterricht auf die Behandlung von elektronischen Bauelementen, ist dieser Schritt nicht notwendig und es kann einer der anderen Simulatoren verwendet werden. Für den hier vorgeschlagenen Unterrichtsgang ist MIKROSIM aber am besten geeignet.

Einziger Nachteil: Um MIKROSIM möglichst einfach zu halten, müssen auch Daten, die ins OP bzw. IP Register übertragen werden, durch die ALU laufen. Dies ist bei einem realen Rechner nicht so, da dies den PC erheblich ausbremsen würde. Ein Nebeneffekt davon ist, dass das Statusregister in MIKROSIM nicht vom Ergebnis der letzten Berechnung der ALU sondern vom Zustand des AX Registers abhängt. Dies ist nicht anders realisierbar, weil andernfalls die Transportoperationen in das OP-Register (Von-Neumann Zyklus), die Informationen im Statusregister sofort wieder überschreiben würden.

MIKROSIM kann entweder im Tauschlaufwerk bereitgestellt oder in einem Verzeichnis auf dem Server abgelegt werden. Es ist keine spezielle Installation erforderlich.

Unterrichtsgang mit MIKROSIM

Die Datei Mikrosim.odt enthält ein Leitprogramm, mit dem die Schülerinnen und Schüler lernen mit MIKROSIM umzugehen, einen funktionsfähigen Computer aufzubauen und am Ende die Übersetzung von Java-Programmen in Maschinencode für den MIKROSIM-Computer zu bewerkstelligen. Die Schüler können dieses Leitprogramm im Wesentlichen selbstständig abarbeiten. Als Lehrer ist es nur wichtig, den Schülern den „roten Faden“ zu zeigen: Welchen Zweck erfüllen die Aufgaben des Leitprogramms? In welcher Ebene der Übersetzung eines Java-Programms in Schaltimpulse für den Computer bewegen wir uns gerade?

Lediglich die Einführung der Assembler-Befehle einer beschränkten Mini-Assembler-Sprache sollte in einem Lehrer-Schüler-Gespräch erfolgen. Dabei ist es wichtig, den Schülern die (etwas gewöhnungsbedürftige) Schreibweise von Assemblerbefehlen zu erläutern. Es ist unnatürlich, dass die Zieladresse, an der das Ergebnis einer Operation gespeichert wird, zuerst genannt wird und gleichzeitig auch noch der ein Parameter sein kann.

Das Leitprogramm gliedert sich in mehrere Schritte:

  1. Einstieg: Kennenlernen der MIKROSIM-Umgebung

    Es ist wichtig, dass die Schüler von Anfang an, mit Tor-Öffnungen arbeiten und die Zahlenwerte nicht von Hand in die Register eingetragen werden.

    Die unterschiedliche Schreibweise für Zahlen und Adressen im RAM (mit eckigen Klammern) muss eventuell erläutert werden.

    Die Aufgabe l) behandelt die Problematik des Speicherüberlaufs durch eine beschränkte Registerbreite. Sie richtet sich vor allem an gute Schüler.

  2. Folgen von Toröffnungen für Assembler-Befehle

    Hier sollten die notwendigen Assembler-Befehle besprochen werden. Es ist klar, dass es Datentransport- und Rechenbefehle geben muss. Die Sprungbefehle können nur unter Vorgriff auf das Übersetzen von Java-Programmen motiviert werden, da diese in den einfachen Übungen noch nicht vorkamen. Wichtig ist die Unterscheidung von Zahlenwerten und Adressangaben. Die Schreibweise der Assembler-Befehle sollte thematisiert werden.

    Dann können die Schüler die Folgen von Toröffnungen für exemplarische Assembler-Befehle bestimmen. Dies ist sinnvoll, da später eine automatische Ausführung erfolgen soll und daher die Folge von Toröffnungen bekannt sein muss.

  3. Automatische Ausführung von Toröffnungen / Mikroprogramme

    Die Folge von Toröffnungen wird in den Mikroprogrammspeicher übertragen. Dort ist eine automatische Ausführung möglich. Es ist wichtig, den Prozess der Erstellung von Mikroprogrammen und später von Assembler-Programmen klar zu trennen. Der Computer wird nicht über die Mikroprogramme programmiert. Diese definieren nur den Befehlssatz des Computers und liegen bei der Auslieferung des Computers schon fertig vor.

    Zum Testen der Mikroprogramme ist es hilfreich, mit der Maus im MPS auf den Befehl (in der linken Spalte) zu klicken, der als nächstes ausgeführt werden soll.

  4. Von-Neumann-Zyklus

    Der Von-Neumann Zyklus wird durch Erforschen des fertigen Mikroprogramms erarbeitet. Die Umsetzung unterscheidet sich geringfügig von der Darstellung des Von-Neumann Zyklus im Internet (die auch nicht immer gleich sind). Insbesondere der Decode und Execute-Teil sind durchmischt. Bei einem realen Prozessor werden die Steuersignale aus dem Mikroprogrammspeicher ausgelesen und in einen Warteschlange übertragen (DECODE). Der Prozessor arbeitet dann die Warteschlange ab (EXECUTE).

    Die Aufgabe d) richtet sich nur an gute, schnelle Schüler.

  5. Sprungbefehle

    Die Schüler müssen erkennen, dass die Sprungbefehle durch die Veränderung des IP-Registers realisiert sind und bei bedingten Sprüngen vom Sign-Flag abhängen. Das Zustandsdiagramm (Tabelle) soll den Schülern helfen, den Ablauf des Assemblerprogramms nachzuvollziehen. Sie können damit auch zeigen, dass sie den Ablauf eines unbekannten Programms verstanden haben (vgl. Abituraufgabe Bayern 20111).

    Aufgabe b ist eine einfache Programmieraufgabe, die eine Entscheidung verlangt. Sie sollte von allen Schülern gelöst werden. Aufgabe c) sollte mit einer Schleife umgesetzt werden. Aufgaben e) und f) sind wieder nur als Ergänzung gedacht.

  6. Hochsprache / Assembler

    Die Schüler sollen erkennen, dass Programme der Hochsprachen automatisch in Assembler umgesetzt werden können. Außerdem sollen sie üben, Assembler-Programme zu schreiben. Die Schüler müssen natürlich keine perfekten Assembler-Programmierer werden...

    Die Aufgaben sind daher auch eher als Auswahl gedacht und müssen nicht alle umgesetzt werden. Die Grenzen eines Programmes zu erkennen und benennen zu können, gehört zur hohen Kunst des Informatikers und ist nicht von jedem Schüler zu leisten.

    Die Verwendung des Java-Compilers soll den Schülern nur zeigen, dass dieser Übersetzungsvorgang auch automatisch erfolgen kann. Es geht nicht darum, dieses Programm ausgiebig einzusetzen. Es ist auch nicht notwendig, dass die Schüler verstehen, wie die Berechnung von Termen mit einem Stack vonstatten geht. Für interessierte Schüler bietet sich dies aber als GFS-Thema an2.


1 Abituraufgaben Informatik – Bayern 2011 (Stand: Sep. 2011)

2 Umgekehrte Polnische Notation In: Wikipedia, Die freie Enzyklopädie. (Stand: 26. Sep. 2011)

 

 

Unterrichtsgang: Herunterladen [odt][72 KB]

 

Weiter zu Unterrichtsverlauf