AG Technische Informatik

Technische Informatik II: Rechnerarchitektur MMIX

Technische Informatik II: Rechnerarchitektur

MMIX Logo

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

Erstellen eines MMIX-Programms

  1. Quellcode erstellen und (üblicherweise) mit der Endung .mms abspeichern.
  2. Quellcodedatei name.mms wie folgt assemblieren: mmixal name.mms -> name.mmo wird erzeugt
  3. Die Objektdatei wird wie folgt ausgeführt: mmix name.mmo oder mmix 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.


Binaries

Binaries des Assembler und Simulators Versionen, für: