www.wikidata.de-de.nina.az
MMIX ˈɛmɪks ist ein 64 Bit Modellcomputer engl abstract machine mit einem RISC Befehlssatz Donald E Knuth benutzt ihn in seinem mehrbandigen Standardwerk The Art of Computer Programming um die vorgestellten Algorithmen zu beschreiben MMIX ersetzt den alteren MIX Modellcomputer der ersten Auflagen durch eine moderne erweiterte Version Knuth begrundet diese Wahl mit dem Hinweis dass das Programmieren in einer hypothetischen Assemblersprache verhindere dass sein Werk rasch veraltet wirke Man habe in den letzten Jahrzehnten immer wieder neue Programmiersprachen gesehen die nur kurze Zeit Interesse fanden Zudem erlaube eine hardwarenahe Sprache die Probleme bei der effizienten Implementation von Algorithmen konkreter darzustellen als eine hohere Programmiersprache Der MMIX wird uber 256 Maschinenbefehle gesteuert Die meisten insbesondere die arithmetisch logischen Befehle verwenden ausschliesslich Register Operanden Wie moderne RISC Prozessoren hat der MMIX mit 256 eine relativ grosse Zahl von Allzweck Registern Zusatzlich gibt es 32 Spezialregister zum Anzeigen von Fehlern und bestimmten Zustanden Daneben erlaubt MMIX im Gegensatz zum erwahnten MIX auch virtuelle Adressierung und damit die Untersuchung von Speicheralgorithmen Die Tatsache dass der MMIX nicht als Hardware sondern als Software Simulation implementiert ist ist wohl einer der Grunde warum er vor allem in der Forschung und der Lehre eingesetzt wird Insbesondere auf dem Gebiet der Algorithmenentwicklung und der Effizienzmessung von Algorithmen ist der MMIX von grossem Nutzen Die Simulatorsoftware gibt Auskunft uber die Laufzeit bzw die benotigten Taktzyklen und die Anzahl der ausgefuhrten Befehle einzelner Algorithmen und ermoglicht so einen direkten und ungestorten Vergleich unterschiedlicher Algorithmen Inhaltsverzeichnis 1 Architektur 1 1 Befehle 1 2 Register 1 2 1 Lokaler Register Stack 1 2 2 Spezialregister 2 Literatur 3 WeblinksArchitektur BearbeitenMMIX ist ein Binarcomputer mit einem 64 Bit grossen virtuellen Adressraum und 32 Bit Befehlen die die big endian Konvention benutzen Befehle Bearbeiten Zu allen Befehlen gehoren Mnemonics etwa ADD zu 32 Die meisten Befehle haben die Form OP X Y Z wobei OP fur die Anweisung steht und X fur das Register in dem das Ergebnis gespeichert wird Der Rest bezeichnet die Operanden der Anweisung Jedes Feld ist acht Bit breit ADD 0 1 3 addiert beispielsweise den Inhalt aus Register 1 zu 3 und speichert das Ergebnis in Register 0 MMIX Programme benutzen normalerweise die MMIXAL Assembler Sprache siehe dazu die Hello World Seite Register Bearbeiten Es gibt 256 Allzweckregister im MMIX Chip die von 0 bis 255 durchnummeriert sind und 32 Spezialregister Wenn X eine Zahl von 0 bis einschliesslich 255 bezeichnet legen die Register rL und rG fest ob X ein lokales oder globales Register ist Lokaler Register Stack Bearbeiten Der lokale Register Stack fuhrt seine eigenen Unterroutinen mit eigenen rL lokalen Registern 0 bis rL 1 durch Die Argumente der Unterprogramme verbleiben bei Aufruf in lokalen Registern des Unterprogramms Beim Rucksprung aus dem Unterprogramm werden die zuvor auf den Stack gelegten Register PUSH zuruckgelesen POP Da nur 512 lokale physische Register vorliegen wird ein Teil des Stacks im Hauptspeicher abgelegt Mit den Spezialregistern rO und rS kann man einsehen welcher Teil des lokalen Registerstacks bereits im Speicher liegt Spezialregister Bearbeiten Die 32 Spezialregister sind rB das Bootstrap Register trip Beim Zuweisen von rB 255 und 255 rJ Somit wird rJ in einem normalen Register gespeichert rD Dividendenregister Unsigned Integer Division verwendet dieses Register rE Epsilonregister Fur Gleitkommavergleiche mit Beachtung des Epsilons rH Himultregister Zum Speichern des linken Teils eines 128 Bit Ergebnisses nach einer unsigned integer Multiplikation rJ return Jump register Beim Ausfuhren von PUSH wird die Adresse der nachsten Anweisung hier gespeichert und beim Rucksprung von POP gelesen rM Multiplex mask register Wird vom Multiplex Befehl verwendet rR Restregister Fur den Rest einer integer division rBB Bootstrap register trap Beim Zuweisen von rBB 255 und 255 rJ Somit wird rJ in einem normalen Register gespeichert rC Cycle counter Wird bei jedem Zyklus erhoht rN Seriennummer Eine Konstante die den MMIX Prozessor bezeichnet rO Registerstack Offset Zur Umsetzung des Register Stacks rS Registerstack Pointer Zur Umsetzung des Register Stacks rI Interval counter Wird bei jedem Zyklus verringert Lost bei 0 ein Interrupt aus rT Trap address Register Zum Speichern der Adresse des Trip Vektors rTT dynamic Trap address register Zum Speichern der Adresse des Trip Vektors rK Interrupt mask register Zum Aktivieren oder Deaktivieren von Interrupts rQ Interrupt request register Zum Speichern der Interrupts bei ihrem Auftreten rU Usage counter Zahlt die ausgefuhrten Befehle rV Virtual translation register Zum Ubersetzen einer virtuellen Adresse in eine physische rG Global threshold register Alle Register grosser gleich rG gehoren zu den globalen Registern rL Local threshold register Alle Register kleiner als rL gehoren zu den lokalen Registern rA Arithmetic status register Zum Aufzeichnen arithmetischer Exceptions wie Uberlaufen overflow oder Division durch Null rF Failure location register Hier wird die Adresse des Befehls gespeichert der einen Fehler ausgelost hat rP Prediction register Wird von conditional swap CSWAP verwendet rW Where interrupted register trip Zum Speichern des nachfolgenden Befehls der von einem Interrupt unterbrochen wurde rX Execution register trip Zum Speichern des Befehls der von einem Interrupt unterbrochen wurde rY Y Operand trip Zum Speichern des Y Operanden bei einem Interrupt rZ Z Operand trip Zum Speichern des Z Operanden bei einem Interrupt rWW Where interrupted register trap Zum Speichern des nachfolgenden Befehls der von einem Interrupt unterbrochen wurde rXX Execution register trap Zum Speichern des Befehls der von einem Interrupt unterbrochen wurde rYY Y Operand trap Zum Speichern des Y Operanden bei einem Interrupt rZZ Z Operand trap Zum Speichern des Z Operanden bei einem InterruptLiteratur BearbeitenHeidi Anlauff Axel Bottcher amp Martin Ruckert Das MMIX Buch Ein praxisnaher Zugang zur Informatik Springer Berlin u a 2002 ISBN 3 540 42408 3 Donald E Knuth MMIXware A RISC Computer for the Third Millennium Springer Berlin u a 1999 ISBN 3 540 66938 8 ders The Art of Computer Programming Vol 1 Fascicle 1 MMIX A RISC Computer for the New Millennium 3 Ausgabe Addison Wesley 2005 ISBN 0 201 85392 2Weblinks BearbeitenDonald Knuths MMIX Seite englisch MMIX Homepage englisch Abgerufen von https de wikipedia org w index php title MMIX amp oldid 226392276