MMIX (computer)

MMIX (pronunțat em-mix ) este o arhitectură de computer RISC pe 64 de biți dezvoltată de Donald Knuth cu contribuții semnificative de la John Hennessy și Richard Sites. În cuvintele lui Donald Knuth însuși:

MMIX - un calculator al cărui scop este acela de a ilustra aspecte ale programării la nivel de mașină. În cărțile mele The Art of Programming , înlocuiește MIXo mașină în stilul anilor 1960 care a jucat același rol. Am încercat să-l proiectez în MMIXașa fel încât limbajul său de mașină să fie simplu, elegant, ușor de învățat. În același timp, am încercat să includ toată complexitatea necesară pentru a obține o eficiență ridicată în practică, astfel încât să MMIXpoată fi construit în mod realist și chiar să fie competitiv cu unele dintre cele mai rapide computere de uz general de pe piață.

Text original  (engleză)[ arataascunde]

MMIXeste un computer menit să ilustreze aspecte ale programării la nivel de mașină. În cărțile mele The Art of Computer Programming , înlocuiește MIX, mașina în stilul anilor 1960 care a jucat anterior un astfel de rol... M-am străduit să proiectez MMIXastfel încât limbajul său de mașină să fie simplu, elegant și ușor de învățat. În același timp, am avut grijă să includ toate complexitățile necesare pentru a obține performanțe ridicate în practică, astfel încât acestea să MMIXpoată fi construite în principiu și chiar să fie competitive cu unele dintre cele mai rapide computere de uz general de pe piață.

Proiectat pentru predare, foarte asemănător cu arhitectura lui John Hennessy și David Paterson DLX de la Computer Architecture: A Quantitative Approach .

Istoricul creației

Când Donald Knuth a început să scrie celebra sa serie de cărți The Art of Programming în 1962 , a trebuit să decidă ce limbaj de programare să folosească. Pentru a rezolva toate problemele posibile odată pentru totdeauna, precum și pentru a păstra capacitatea de a descrie structuri și algoritmi de nivel scăzut în carte, autorul a decis să-și dezvolte propriul computer, conceput special pentru învățare. El a primit numele . MIX

Dar, în următoarele trei decenii, au avut loc schimbări majore în domeniul tehnologiei computerelor. MIXîn mare măsură învechit. Pentru ca Arta Programarii să continue să fie o sursă relevantă de informații, autorul a decis să dezvolte un nou computer - MMIXcare este un analog al computerelor care au cucerit cea mai mare parte a pieței în anii 90 ai secolului XX.

Arhitectură

MMIX este o arhitectură de computer pe 64 de biți cu 256 de registre de uz general pe 64 de biți și 32 de registre de utilizare specială pe 64 de biți. Are instrucțiuni pe 32 de biți și un spațiu de adrese de 64 de biți. Setul de instrucțiuni al computerului MMIXinclude 256 de coduri de instrucțiuni, dintre care unul este rezervat pentru extinderea ulterioară. Implementează aritmetica în virgulă mobilă conform standardului IEEE 754.

Instrucțiuni

Fiecare instrucțiune are un mnemonic. De exemplu, instrucțiunea 32 are mnemonicul ADD. Majoritatea instrucțiunilor sunt scrise ca „OP X,Y,Z”, unde OP este mnemonicul, X este registrul în care va fi scris rezultatul instrucțiunii și Y și Z sunt operanzii instrucțiunii. La codificare, sunt alocați 8 biți pentru fiecare câmp.

Majoritatea instrucțiunilor pot lua un operand de registru sau o valoare imediată (imediată), astfel încât codurile operaționale multiple pot corespunde aceluiași mnemonic.

Programele MMIX sunt de obicei scrise în limbajul de asamblare MMIXAL. Un exemplu de program MMIXAL care afișează mesajul text „Bună ziua, lume”:

Principal GETA $ 255 , șir ; Scrieți adresa șirului de caractere pentru înregistrarea 255. TRAP 0 , Fputs , StdOut ; Ieșiți șirul a cărui adresă este în ; înregistrați 255 în fișierul StdOut. CAPCANĂ 0 , Oprire , 0 ; Încheiați procesul. string BYTE "Bună, lume!" , # a , 0 ; Constantă de șir. ; #un caracter newline, ; 0 este terminatorul de linie.


Registre

Procesorul MMIX are 256 de registre de uz general, notate $0 .. $255; și 32 de registre speciale de arhitectură.

Două registre speciale, rL și rG, controlează împărțirea ROH în global și local. Registrele din intervalul $0 ... ([rL] - 1) sunt locale. Registrele din intervalul [rL] ... ([rG]-1) se numesc „registre marginale”. Ele returnează 0 când încercați să citiți din ele, dar dacă utilizați una dintre ele ca destinație, atunci rL va crește automat și registrul folosit va deveni local. Registrele din intervalul [rG] ... $255 sunt globale și nu sunt stocate în stiva de registre.

Registre speciale

Implementări hardware

Din 2008, MMIXacesta nu a fost încă implementat în hardware.

Instrumente software

Setul de instrucțiuni al computerului MMIXeste acceptat de unele programe de dezvoltare software.

Emulatori și asamblatori

  • MMIXware  este o suită de software dezvoltată de Donald Knuth care include un emulator, un asamblator MMIXAL, documentație completă, exemple de programe și multe altele.

Compilator

GNU Compiler Collection acceptă compilarea programelor C / C++ la arhitectura țintă MMIX.

Vezi și

Link -uri