Technische Informatik II: Rechnerarchitektur MMIX
Technische Informatik II: Rechnerarchitektur
Als Beispiel eines von Neumann (RISC) Rechners soll in der Vorlesung der MMIX Modellprozessor von Donald Knuth und der zugehörige Assembler dienen. Zu diesem Prozessor existieren Beispielumgebungen für verschiedene Systeme, so dass auch ein praktischer Umgang damit möglich ist. Diese Seite soll eine kurze Einführung in den Umgang mit diesen Umgebungen geben. Vor allem aber wird auf weitere Informationen im WWW verwiesen.
Knuth schreibt als kurze Übersicht zu MMIX:
MMIX is a machine that operates primarily on 64-bit words. It has 256 general-purpose 64-bit registers that each can hold either fixed-point or floating-point numbers. Most instructions have the 4-byte form `OP X Y Z', where each of OP, X, Y, and Z is a single 8-bit byte. For example, if OP is the code for ADD the meaning is ``X=Y+Z''; i.e., ``Set register X to the contents of register Y plus the contents of register Z.'' The 256 possible OP codes fall into a dozen or so easily remembered categories. The designers of important real-world processor chips (e.g., MIPS and ALPHA) have helped me with the design of MMIX.
Links
- Crash-Kurs zu MMIX
- erweiteter MMIX-Kurs der RWTH-Aachen:
- Tipps & Tricks: Hinweise zur richtigen Adressierung in MMIX v.1.1
- Tipps & Tricks: Unterprogramme in MMIX(29.05.09)
- Video-Tutorials zu MMIX
- grafischer Debugger für Windows
- grafischer Debugger für Java
- MMIX-Forum der Vorlesung
- Kurze Beschreibung der Historie von MMIX (von Knuth) mit allen wichtigen Links; interessant für die Motivation ist der Abschnitt mit dem Titel ``Why have a machine language?''
- Ausführliche Beschreibung von MMIX (.pdf)
- Op-Codes von MMIX
- Quellcode
- CWEB System of Structured Documentation (wird benötigt, um
mmix
aus den Quelldateien unter Linux zu erzeugen) - gcc für MMIX - C/C++ Programme in MMIX-Assembler übersetzen
Erstellen eines MMIX-Programms
- Quellcode erstellen und (üblicherweise) mit der Endung
.mms
abspeichern. - Quellcodedatei
name.mms
wie folgt assemblieren:mmixal name.mms
->name.mmo
wird erzeugt - Die Objektdatei wird wie folgt ausgeführt:
mmix name.mmo
odermmix name
Assembler und Simulator haben verschiedene Optionen (mmixal
bzw. mmix -h
eingeben). Die am Anfang interessantesten Optionen für mmix
sind die Optionen -v
(verbose, geschwätzig, gibt verschiedene Informationen über den Zustand des Prozessors aus) und -i
(interaktiv, nach jedem Befehl wird der Prozessor angehalten und man kann sich Speicher- und Registerinhalte anzeigen lassen und verändern).
Der genaue Aufbau des MMIX-Prozessors und seines Befehlssatzes sowie seine Programmierung wird in der Vorlesung behandelt.