MMIX

MMIX (ausgesprochene Em-Mischung) ist eine RISC Befehlssatz-64-Bit-Architektur (ISA), die von Donald Knuth, mit bedeutenden Beiträgen durch John L. Hennessy entworfen ist (wer zum Design der MIPS ISAS beigetragen hat) und Richard L. Sites (wer ein Architekt des Alphas ISA war). In den eigenen Wörtern von Knuth:

Architektur

MMIX ist ein RISC 64-Bit-Computer, mit 256 64-Bit-Mehrzweckregistern und 32 64-Bit-Registern des speziellen Zwecks. MMIX ist eine große-endian Maschine mit 32-Bit-Instruktionen und einem virtuellen 64-Bit-Adressraum. Der MMIX Befehlssatz umfasst 256 opcodes, von denen einer für die zukünftige Vergrößerung vorbestellt wird.

Es verwendet IEEE 754 Schwimmpunkt-Zahlen.

Instruktionen

Alle Instruktionen haben einen verbundenen mnemonischen. Zum Beispiel wird Instruktion 32 vereinigt, um BEIZUTRAGEN. Die meisten Instruktionen haben die symbolische Form "OP X, Y, Z", wo OP angibt, dass die Sorte der Instruktion, X angibt, dass das Register gepflegt hat, das Ergebnis der Instruktion zu versorgen, und der Rest den operands der Instruktion angeben. Jedes dieser Felder ist acht Bit breit. Zum Beispiel wird die Instruktion "FÜGEN 0 $, 1,3 $ HINZU", den Inhalt des Registers 1 und der unmittelbare Wert 3 hinzufügen und das Ergebnis im Register 0 versorgen.

Die meisten Instruktionen können entweder unmittelbare Werte nehmen oder Inhalt einschreiben; so kann eine einzelne mnemonische Instruktion einem von zwei opcodes entsprechen.

MMIX Programme werden normalerweise mit der MMIXAL Zusammenbau-Sprache gebaut. Ist unten ein einfaches MMIXAL Programm, das Hallo, Welt druckt:

Wichtige GETA 255 $, Schnur; Bekommen Sie die Adresse der Schnur

; im Register 255.

STELLEN SIE 0, Fputs, StdOut FALLEN; Stellen Sie die auf angespitzte Schnur

; durch das Register 255, um StdOut abzulegen.

STELLEN SIE 0, Halt, 0 FALLEN; Endprozess.

spannen Sie BYTE "Hallo, Welt! ",#a,0; zu druckende Schnur.

; #a ist newline,

; 0 begrenzt die Schnur.

</Quelle>

Register

Es gibt 256 allgemeinen Zweck architektonische Register in einem MMIX Span, der durch 0 $ durch 255 $ und 32 spezielle physische architektonische Register benannt ist.

Zwei der speziellen Register, rL und rG, bestimmen, welches von den allgemeinen Registern lokal ist, und die global sind. Alle Register von 0 $... ([rL] - 1) sind lokale Register. Register von [rL]... ([rG]-1) sind "Randregister" sie kehren immer 0 zurück, wenn sie als eine Quelle in einer Operation verwendet werden. Mit einem Randregister weil wird der Bestimmungsort einer Operation die Maschine veranlassen, rL automatisch zu vergrößern, um dieses Register einzuschließen. Alle Register [rG]... 255 $ werden globale Register genannt, und werden auf dem Register-Stapel nicht gespart.

Lokaler Register-Stapel

Der lokale Register-Stapel stellt jedes Unterprogramm mit seinen eigenen rL lokalen Registern zur Verfügung, die durch 0 $ durch den $ (rL&minus;1) benannt sind. Wann auch immer ein Unterprogramm genannt wird, mehrere lokale Register wird unten der Stapel gestoßen. Die Argumente des genannten Unterprogramms werden in den restlichen lokalen Registern verlassen. Wenn ein Unterprogramm fertig ist, lässt es die vorher gestoßenen Register knallen. Weil es nur 256 lokale physische Register gibt, kann es notwendig sein, einen Teil des Stapels im Gedächtnis zu versorgen. Das wird mit den speziellen Registern rO und rS durchgeführt, die registrieren, welcher Teil des lokalen Register-Stapels im Gedächtnis ist, und welcher Teil noch in lokalen physischen Registern ist. Der Register-Stapel sorgt für schnelle Unterprogramm-Verbindung.

Spezielle Register

Die 32 speziellen physischen architektonischen Register sind wie folgt:

  1. ; rB, das Stiefelstrippe-Register (Reise)
  2. : Wenn man, rB zu Fall bringt

Softwarewerkzeuge

Die MMIX Befehlssatz-Architektur wird durch mehrere Softwarewerkzeuge für die Computerarchitektur-Forschung und Softwareentwicklung unterstützt.

Simulatoren und Monteur

  • MMIXware - der einfache (verhaltens)-Simulator von Donald Knuth, Monteur, prüft Gefolge, Beispielprogramme, volle Dokumentation, und architektonisch (Rohrleitung) Simulator (Datei).
  • MMIXX - Ein X11-basiertes Grafikpaket, das von Andrew Pochinsky von Zentrum von MIT für die Theoretische Physik beigetragen ist, die, wenn verbunden, mit den MMIXware Quellen oben, die MMIX virtuelle Maschine mit 640×480 Pixel, wahr-farbige 'virtuelle Anzeige' (für UNIX/Linux) vermehrt.

Bearbeiter

Die GNU-Bearbeiter-Sammlung schließt ein MMIX Zurückende für seinen C/C ++ Bearbeiter ein, die von Hans-Peter Nilsson und einem Teil des GCC Hauptvertriebs seit Ende 2001 beigetragen sind. Bezüglich des Januars 2011 setzt das MMIX Zurückende zu GCC fort, aktiv entwickelt und von Freiwilligen aufrechterhalten zu werden.

Die obengenannten Werkzeuge konnten theoretisch verwendet werden, um kompletten FreeBSD zu kompilieren, zu bauen, und zu urladen, Linux oder anderer ähnlicher Betriebssystemkern auf die MMIX Hardware, waren solche Hardware, um zu bestehen.

Siehe auch

  • Bildungsprogrammiersprache
  • DLX
  • LC-3
  • Wenig Mann-Computer
  • MikroSim
  • MISCHUNG
  • Errata zum obengenannten Buch.
  • Donald E. Knuth (2005). Die Kunst des Computers, Bündel des Bands 1 1 Programmierend: MMIX EIN RISC Computer für das Neue Millennium. Addison-Wesley. Internationale Standardbuchnummer 0-201-85392-2 (Errata)

Links

  • Die MMIX Seite von Donald Knuth - Eine kurze Einführung in MMIX und die Gründe von Knuth dafür, eine hypothetische Zusammenbau-Sprache in TAoCP zu verwenden.
  • Die MMIX Nachrichtenseite von Donald Knuth - Ein Simulator der offenen Quelle, der in CWEB, einem Handbuch eines Programmierers und Beispiel-Programmen geschrieben ist.
  • MMIXmasters Website Eine Website für die Freiwilligen (MMIXmasters), die alle Programme in TAOCP, Bänden 1 - 3, von der alten Sprach-MISCHUNG bis die neue Sprache MMIX umwandeln.
  • VMMMIX VMMMIX ist die MMIX virtuelle Maschine. Es hat Konsole, HDD und Ethernet I/Os. Zurzeit läuft diese virtuelle Maschine auf Windows nur. Und Linux läuft auf dieser MMIX virtuellen Maschine.
  • Die MMIX Einstiegsseite im September 2011, MMIX hat sein Haus von Stanford nach München bewegt.
  • Die VMB Einstiegsseite, die Das Virtuelle Hauptplatine-Projekt einem Stecker und Spiel-Sammlung von Geräten anbietet, die mit einer passenden Version der MMIX ZE verwendet werden können.

Mennonite / Vertrag von Maastricht
Impressum & Datenschutz