MMIX (udtales em-mix ) er en 64-bit RISC computerarkitektur udviklet af Donald Knuth med betydelige bidrag fra John Hennessy og Richard Sites. Med Donald Knuths ord selv:
MMIX - en computer, hvis formål er at illustrere aspekter af programmering på maskinniveau. I mine bøger The Art of Programming erstatter MIXden en 1960'er-stilmaskine, der spillede samme rolle. Jeg forsøgte at designe det på MMIXen sådan måde, at dets maskinsprog var enkelt, elegant, let at lære. Samtidig forsøgte jeg at inddrage al den kompleksitet, der skal til for at opnå høj effektivitet i praksis, så den MMIXkan bygges realistisk og endda kan være konkurrencedygtig med nogle af de hurtigste universalcomputere på markedet.
Originaltekst (engelsk)[ Visskjule]MMIXer en computer beregnet til at illustrere aspekter af programmering på maskinniveau. I mine bøger The Art of Computer Programming erstatter MIXden den maskine i 1960'er-stil, der tidligere spillede en sådan rolle... Jeg stræbte efter at designe MMIX, så dens maskinsprog ville være enkelt, elegant og let at lære. Samtidig var jeg omhyggelig med at inkludere alle de kompleksiteter, der var nødvendige for at opnå høj ydeevne i praksis, så det MMIXi princippet kunne bygges og endda måske være konkurrencedygtigt med nogle af de hurtigste almene computere på markedet.
Designet til undervisning, meget lig arkitekturen af John Hennessy og David Paterson DLX fra Computer Architecture: A Quantitative Approach .
Da Donald Knuth begyndte at skrive sin berømte bogserie The Art of Programming i 1962 , skulle han beslutte sig for, hvilket programmeringssprog han skulle bruge. For at løse alle mulige problemer én gang for alle, samt for at bevare evnen til at beskrive lavniveaustrukturer og algoritmer i bogen, besluttede forfatteren at udvikle sin egen computer, designet specielt til læring. Han fik navnet . MIX
Men i løbet af de næste tre årtier skete der store forandringer inden for computerteknologi. MIXstort set forældet. For at kunsten at programmere fortsat skal være en relevant informationskilde, besluttede forfatteren at udvikle en ny computer - MMIXsom er en analog af computere, der erobrede det meste af markedet i 90'erne af det XX århundrede.
MMIX er en 64-bit computerarkitektur med 256 64-bit registre til generelle formål og 32 64-bit specialregistre. Den har 32-bit instruktioner og et 64-bit adresserum. Computerens instruktionssæt MMIXindeholder 256 instruktionskoder, hvoraf en er reserveret til fremtidig udvidelse. Implementerer flydende komma-aritmetik i henhold til IEEE 754-standarden.
Hver instruktion har en mnemonik. For eksempel har instruktion 32 den mnemoniske ADD. De fleste instruktioner er skrevet som "OP X,Y,Z", hvor OP er mnemonikken, X er det register, som resultatet af instruktionen vil blive skrevet til, og Y og Z er instruktionens operander. Ved indkodning tildeles 8 bits for hvert felt.
De fleste instruktioner kan tage en registeroperand eller en øjeblikkelig værdi (umiddelbar), så flere opkoder kan svare til den samme mnemonic.
MMIX-programmer er normalt skrevet i MMIXAL assemblersprog. Et eksempel på et MMIXAL-program, der viser tekstmeddelelsen "Hej verden":
Hoved GETA $ 255 , streng ; Skriv adressen på strengen for at registrere 255. TRAP 0 , Fputs , StdOut ; Udskriv strengen, hvis adresse er i ; registrer 255 til filen StdOut. TRAP 0 , Stop , 0 ; Afslut processen. string BYTE "Hej, verden!" , # a , 0 ; Strengkonstant. ; #et linjeskifttegn, ; 0 er linjeterminatoren.
MMIX-processoren har 256 registre til generelle formål, betegnet $0 .. $255; og 32 særlige arkitektoniske registre.
To særlige registre, rL og rG, styrer opdelingen af ROH i globalt og lokalt. Registre i området $0 ... ([rL] - 1) er lokale. Registre i området [rL] ... ([rG]-1) kaldes "marginalregistre". De returnerer 0, når du forsøger at læse fra dem, men hvis du bruger en af dem som destination, så vil rL automatisk stige, og det brugte register bliver lokalt. Registre i området [rG] ... $255 er globale og gemmes ikke på registerstakken.
Særlige registreFra 2008 er MMIXdet endnu ikke blevet implementeret i hardware.
Computerens instruktionssæt MMIXunderstøttes af nogle softwareudviklingsprogrammer.
GNU Compiler Collection understøtter kompilering af C / C++ programmer til målarkitekturen MMIX.
Donald Knuth | |
---|---|
Publikationer |
|
Software | |
Skrifttyper |
|
Kompetent programmering |
|
Algoritmer |
|
Andet |
|