Кіріспе

64 биттік RISC архитектурасы, Дональд Кнут жасаған нұсқаулар жиынтығы архитектурасы.

MMIX (ем микс деп айтылады) – Дональд Кнут жасаған 64 биттік қысқартылған нұсқаулар жиынтығы (RISC) архитектурасы, Джон Л. Хеннессидің (MIPS архитектурасын жобалауға үлес қосқан) және Ричард Л. Сайтстың (Альфа архитектурасының архитекторы) маңызды үлесі бар. Кнут MMIX-ті бағдарламалаудың машиналық деңгейдегі аспектілерін көрсетуге арналған компьютер деп айтты. Менің "Компьютерлік бағдарламалау өнері" кітабымда ол бұрын осындай рөл атқарған 1960-шы жылдардағы MIX машинасының орнын басады. MMIX-тің машиналық тілі қарапайым, әдемі және оқуға оңай болуын қамтамасыз ету үшін жобалауға тырыстым. Сонымен қатар, практикада жоғары өнімділікке жету үшін қажетті барлық күрделіліктерді қосуға ұмтылдым, сондықтан MMIX қағидатта құрылымын салуға болады және тіпті нарықтағы ең жылдам мақсаттық компьютерлермен бәсекелесе алады. Кнут MMIX дизайнын 1999 жылы бастады және 2011 жылы дизайнның тұрақты нұсқасын жариялады. Процессор "2009" деп нөмірленген, Кнут бұл басқа компьютерлік архитектуралар сандарының арифметикалық орташасы екенін түсіндірді; сонымен қатар рим цифрларында "MMIX" болып табылады.

Сәулет

MMIX – бұл үлкен эндиандық 64 биттік қысқартылған нұсқаулар жиынтығы (RISC), 256 64 биттік жалпы мақсаттағы регистрлері, 32 64 биттік арнайы регистрлері, тұрақты ұзындығы 32 бит болатын нұсқаулар және 64 биттік виртуалды адрестік кеңістікке ие. MMIX нұсқаулар жиынтығы 256 опкодтан тұрады, олардың біреуі болашаққа кеңейту үшін резервтелген. MMIX IEEE 754 стандартындағы қозғалатын үзінді нөмірлерді пайдаланады.

Тіркелімдер

MMIX чипінде $0-ден $255-ке дейін тағайындалған 256 тікелей адрестелетін жалпы мақсаттағы архитектуралық регистрлер және 32 арнайы мақсаттағы архитектуралық регистрлер бар. Арнайы мақсаттағы регистрлерге GET және PUT командалары арқылы қол жеткізуге болады. Арнайы екі регистр, rL және rG, жалпы регистрлердің қайсысы жергілікті, ал қайсысы жаһандық екенін анықтайды. $0 ([rL] − 1) дейінгі барлық регистрлер жергілікті регистрлер болып табылады және ішкі регистрлер стегіне терезе ретінде қызмет етеді. Бұл арнайы rO және rS регистрлерімен іске асырылады, олар жергілікті регистрлер стегінің қай бөлігі жадта, ал қайсысы жергілікті физикалық регистрлерде сақталғанын тіркейді. Регистр стегі субпрограммаларға жылдам байланыс жасауға мүмкіндік береді.

Бағдарламалық құралдар

MMIX командалар жиынтығы архитектурасы компьютерлік архитектураны зерттеу және бағдарламалық құралдарды жасау үшін көптеген бағдарламалық құралдармен қолдау көрсетіледі.

Симуляторлар мен құрастырушы

MMIXware – Дональд Кнуттың MMIX SIM қарапайым (мінез-құлқылық) симуляторы, MMIXAL құрастырғышы, тест жиынтығы, үлгі бағдарламалары, толық құжаттама және MMIX архитектуралық (конвейерлік) симуляторы (gzipped tar файлы). MMIXX – MIT Теориялық физика орталығының Эндрю Починский ұсынған X11 негізделген графикалық пакет, жоғарыда аталған MMIXware көздерімен біріктірілгенде, MMIX виртуалды машинасына 640×480 пикселдік, нақты түсті «виртуалды дисплей» қосады (UNIX/Linux үшін).

Компилятор

GNU Compiler Collection құрамына C/C++ компиляторлары үшін MMIX бэк-энді кіреді, оған Ханс Питер Нильссон үлес қосып, 2001 жылдың соңынан бері GCC негізгі дистрибуциясының бөлігі болып табылады. 2017 жылға қарай GCC үшін MMIX бэк-эндін белсенді түрде әзірлеу және күтіп-ұстау еріктілер тарапынан жалғастырылуда. Ханс Петер Нильссонның GCC + MMIX құралдарын орнату жөніндегі нұсқаулары. §3.17.26. GNU GCC 7.2.0 нұсқасы үшін MMIX опциялары (GNU GCC веб-сайты). §9.28. GNU Binutils 2.29 нұсқасынан бастап GNU GCC (GNU Binutils веб-сайты) үшін ассемблерге тәуелді MMIX мүмкіндіктері. Егер мұндай аппараттық құрал болған жағдайда, аталған құралдар теориялық тұрғыдан бүкіл FreeBSD, Linux немесе басқа ұқсас операциялық жүйе ядросын MMIX аппараттық құралдарына компиляциялау, құрастыру және жүктеу үшін қолданылуы мүмкін.