MMIX (tietokone)

MMIX (lausutaan em-mix ) on 64-bittinen RISC - tietokonearkkitehtuuri , jonka on kehittänyt Donald Knuth John Hennessyn ja Richard Sitesin merkittävällä panoksella . Donald Knuthin itsensä sanoin:

MMIX - tietokone, jonka tarkoitus on havainnollistaa ohjelmoinnin näkökohtia konetasolla. Kirjassani The Art of Programming se korvaa MIX1960-luvun tyylisen koneen, jolla oli sama rooli. Yritin suunnitella sen niin MMIX, että sen konekieli oli yksinkertainen, tyylikäs ja helppo oppia. Samalla yritin sisällyttää kaiken monimutkaisuuden, jota tarvitaan korkean tehokkuuden saavuttamiseen käytännössä, jotta se MMIXvoidaan rakentaa realistisesti ja jopa olla kilpailukykyinen joidenkin markkinoiden nopeimpien yleiskäyttöisten tietokoneiden kanssa.

Alkuperäinen teksti  (englanniksi)[ näytäpiilottaa]

MMIXon tietokone, joka on tarkoitettu havainnollistamaan ohjelmoinnin konetason näkökohtia. Kirjassani The Art of Computer Programming se korvaa MIX1960-luvun tyylisen koneen, jolla oli aiemmin tällainen rooli... Pyrin suunnittelemaan MMIXniin, että sen konekieli olisi yksinkertainen, tyylikäs ja helppo oppia. Samaan aikaan olin varovainen sisällyttämään kaikki monimutkaisuudet, joita tarvitaan korkean suorituskyvyn saavuttamiseen käytännössä, jotta se MMIXvoitaisiin periaatteessa rakentaa ja jopa olla kilpailukykyinen joidenkin markkinoiden nopeimpien yleiskäyttöisten tietokoneiden kanssa.

Suunniteltu opetukseen, hyvin samanlainen kuin John Hennessyn ja David Patersonin DLX : n arkkitehtuuri Computer Architecture: A Quantitative Approach .

Luontihistoria

Kun Donald Knuth alkoi kirjoittaa kuuluisaa kirjasarjaansa The Art of Programming vuonna 1962 , hänen oli päätettävä, mitä ohjelmointikieltä käyttää. Ratkaistakseen kaikki mahdolliset ongelmat lopullisesti ja säilyttääkseen kyvyn kuvata kirjassa matalan tason rakenteita ja algoritmeja, kirjailija päätti kehittää oman tietokoneensa, joka on suunniteltu erityisesti oppimiseen. Hän sai nimen . MIX

Mutta seuraavien kolmen vuosikymmenen aikana tietotekniikan alalla tapahtui suuria muutoksia. MIXsuurelta osin vanhentunut. Jotta ohjelmoinnin taito olisi jatkossakin olennainen tietolähde, kirjoittaja päätti kehittää uuden tietokoneen - MMIXjoka on analoginen tietokoneista, jotka valloittivat suurimman osan markkinoista 1900-luvun 90-luvulla.

Arkkitehtuuri

MMIX on 64-bittinen tietokonearkkitehtuuri, jossa on 256 64-bittistä yleiskäyttöistä rekisteriä ja 32 64-bittistä erikoisrekisteriä. Siinä on 32-bittiset ohjeet ja 64-bittinen osoiteavaruus. Tietokoneen käskysarja MMIXsisältää 256 ohjekoodia, joista yksi on varattu tulevaa laajennusta varten. Toteuttaa liukulukuaritmetiikkaa IEEE 754 -standardin mukaisesti.

Ohjeet

Jokaisella käskyllä ​​on muistikuva. Esimerkiksi käskyssä 32 on muistomerkki ADD. Useimmat käskyt on kirjoitettu muodossa "OP X,Y,Z", jossa OP on muistomerkki, X on rekisteri, johon käskyn tulos kirjoitetaan, ja Y ja Z ovat käskyn operandit. Koodattaessa jokaiselle kentälle varataan 8 bittiä.

Useimmat käskyt voivat ottaa rekisterioperandin tai välittömän arvon (välitön), joten useat operaatiokoodit voivat vastata samaa muistomerkkiä.

MMIX-ohjelmat kirjoitetaan yleensä MMIXAL-kokoonpanokielellä. Esimerkki MMIXAL-ohjelmasta, joka näyttää tekstiviestin "Hei, maailma":

Main GETA $ 255 , merkkijono ; Kirjoita merkkijonon osoite rekisteriin 255. TRAP 0 , Fputs , StdOut ; Tulosta merkkijono, jonka osoite on ; rekisteröi 255 tiedostoon StdOut. TRAP 0 , Pysäytys , 0 ; Lopeta prosessi. string BYTE "Hei, maailma!" , # a , 0 ; Merkkijonovakio. ; #rivin uusi merkki, ; 0 on rivin pääte.


Rekisterit

MMIX-prosessorissa on 256 yleiskäyttöistä rekisteriä, merkintä $0 .. $255; ja 32 erityistä arkkitehtuurirekisteriä.

Kaksi erityisrekisteriä, rL ja rG, ohjaavat ROH:n jakoa globaaliin ja paikalliseen. Rekisterit alueella $0 ... ([rL] - 1) ovat paikallisia. Alueella [rL] ... ([rG]-1) olevia rekistereitä kutsutaan "marginaalirekistereiksi". Ne palauttavat 0, kun yrität lukea niistä, mutta jos käytät jotakin niistä määränpäänä, rL kasvaa automaattisesti ja käytetystä rekisteristä tulee paikallinen. Alueen [rG] ... $255 rekisterit ovat globaaleja eikä niitä tallenneta rekisteripinoon.

Erikoisrekisterit

Laitteistototeutukset

Vuodesta 2008 lähtien MMIXsitä ei ole vielä otettu käyttöön laitteistossa.

Ohjelmistotyökalut

MMIXJotkut ohjelmistokehitysohjelmat tukevat tietokoneen ohjesarjaa .

Emulaattorit ja kokoajat

  • MMIXware  on Donald Knuthin kehittämä ohjelmistopaketti, joka sisältää emulaattorin, MMIXAL-kokoonpanon, täydellisen dokumentaation, esimerkkiohjelmia ja paljon muuta.

Kääntäjä

GNU Compiler Collection tukee C / C++ - ohjelmien kääntämistä kohdearkkitehtuuriin MMIX.

Katso myös

Linkit