MMIX (számítógép)

Az MMIX (ejtsd: em-mix ) egy 64 bites RISC számítógép-architektúra , amelyet Donald Knuth fejlesztett ki John Hennessy és Richard Sites jelentős közreműködésével . Maga Donald Knuth szavaival élve:

MMIX - számítógép, amelynek célja a programozás gépi szintű szemléltetése. A programozás művészete című könyveimben egy 1960-as évekbeli stílusú gépet helyettesít MIX, amely ugyanazt a szerepet játszotta. Igyekeztem úgy kialakítani, MMIXhogy a gépi nyelve egyszerű, elegáns, könnyen megtanulható legyen. Ugyanakkor igyekeztem mindazt a komplexitást beépíteni, ami a gyakorlatban is szükséges a nagy hatékonyság eléréséhez, hogy MMIXreálisan építhető legyen, és akár versenyképes legyen a piac leggyorsabb általános célú számítógépeivel.

Eredeti szöveg  (angol)[ showelrejt]

MMIXegy számítógép, amely a programozás gépi szintű szempontjait szemlélteti. A Számítógép-programozás művészete című könyveimben felváltja MIXaz 1960-as évekbeli stílusú gépet, amely korábban ilyen szerepet játszott... Arra törekedtem, MMIXhogy a gépi nyelve egyszerű, elegáns és könnyen megtanulható legyen. Ugyanakkor gondosan ügyeltem arra, hogy a gyakorlatban a nagy teljesítmény eléréséhez szükséges összes bonyolultságot beépítsem, hogy MMIXelvileg meg lehessen építeni, és akár versenyképes is legyen a piacon a leggyorsabb általános célú számítógépekkel.

Tanításra tervezték, nagyon hasonló John Hennessy és David Paterson DLX architektúrájához a Computer Architecture: A Quantitative Approach -ból .

Létrehozási előzmények

Amikor Donald Knuth 1962 -ben elkezdte írni a The Art of Programming című híres könyvsorozatát , el kellett döntenie, hogy melyik programozási nyelvet használja. Annak érdekében, hogy minden lehetséges problémát egyszer és mindenkorra megoldjon, valamint megőrizze az alacsony szintű struktúrák és algoritmusok leírásának képességét a könyvben, a szerző úgy döntött, hogy saját számítógépet fejleszt, amelyet kifejezetten tanulásra terveztek. Megkapta a nevet . MIX

A következő három évtizedben azonban jelentős változások mentek végbe a számítástechnika területén. MIXnagyrészt elavult. Annak érdekében , hogy a programozás művészete továbbra is releváns információforrás maradjon, a szerző egy új számítógép kifejlesztése mellett döntött – MMIXamely a XX. század 90-es éveiben a piac nagy részét meghódító számítógépek analógja.

Építészet

Az MMIX egy 64 bites számítógép-architektúra 256 64 bites általános célú regiszterrel és 32 64 bites speciális célú regiszterrel. 32 bites utasításokkal és 64 bites címterrel rendelkezik. A számítógép utasításkészlete MMIX256 utasításkódot tartalmaz, amelyek közül egy a későbbi bővítéshez van fenntartva. Az IEEE 754 szabvány szerinti lebegőpontos aritmetikát valósítja meg.

Útmutató

Minden utasításhoz tartozik egy emlékeztető. Például a 32. utasításnak van egy emlékezetes ADD. A legtöbb utasítás "OP X,Y,Z"-ként van írva, ahol OP a mnemonikus, X a regiszter, amelybe az utasítás eredménye be lesz írva, Y és Z pedig az utasítás operandusai. Kódoláskor minden mezőhöz 8 bit van lefoglalva.

A legtöbb utasítás felvehet egy regiszter-operandumot vagy egy azonnali értéket (azonnali), így több műveleti kód is megfelelhet ugyanannak a mnemonikának.

Az MMIX programokat általában MMIXAL assembly nyelven írják. Egy példa MMIXAL program, amely a "Hello, world" szöveges üzenetet jeleníti meg:

GETA 255 $ , húr ; Írja be a karakterlánc címét a 255-ös regiszterbe. TRAP 0 , Fputs , StdOut ; Írja ki azt a karakterláncot, amelynek címe a ; regisztrálja a 255-öt az StdOut fájlba. CSAPDA 0 , Halt , 0 ; Fejezd be a folyamatot. string BYTE "Hello, world!" , # a , 0 ; String állandó. ; #egy újsor karakter, ; 0 a sorlezáró.


Regisztrálok

Az MMIX processzor 256 általános célú regiszterrel rendelkezik, amelyek jelölése 0 .. 255 $; és 32 speciális építészeti regiszter.

Két speciális regiszter, az rL és az rG szabályozza a ROH globális és lokális felosztását. A $0 ... ([rL] - 1) tartományba eső regiszterek helyiek. Az [rL] ... ([rG]-1) tartományba eső regisztereket "marginális regisztereknek" nevezzük. 0-t adnak vissza, amikor megpróbálunk olvasni belőlük, de ha valamelyiket célként használjuk, akkor az rL automatikusan megnő és a használt regiszter lokális lesz. Az [rG] ... $255 tartományba tartozó regiszterek globálisak, és nem tárolódnak a regiszterveremben.

Különleges regiszterek

Hardver implementációk

2008-ig MMIXmég nem implementálták hardveren.

Szoftvereszközök

A számítógép utasításkészletét MMIXnéhány szoftverfejlesztő program támogatja.

Emulátorok és összeszerelők

  • Az MMIXware  egy Donald Knuth által kifejlesztett szoftvercsomag, amely emulátort, MMIXAL assemblert, teljes dokumentációt, mintaprogramokat és egyebeket tartalmaz.

Fordító

A GNU Compiler Collection támogatja a C / C++ programok fordítását a cél architektúrára MMIX.

Lásd még

Linkek