MMIX (компьютер)

MMIX (компьютер)

MMIX (произносится эм-микс) — 64-битная RISC архитектура компьютера, разработанная Дональдом Кнутом с существенным вкладом Джона Геннеси и Ричарда Сайтса. По словам самого Дональда Кнута:

MMIX — компьютер, цель которого проиллюстрировать аспекты программирования на машинном уровне. В моих книгах Искусство программирования он заменяет MIX, машину стиля 1960-х годов, которая играла ту же роль. Я старался так проектировать MMIX, чтобы его машинный язык был простым, изящным, удобным для изучения. В то же время я старался включить все сложности, которые необходимы для достижения высокой эффективности на практике, так что MMIX может быть реально построен и даже может быть конкурентоспособным с некоторыми из самых быстрых компьютеров общего назначения на рынке.

Предназначен для обучения, весьма сходен с архитектурой Джона Геннесси и Дэвида Патерсона DLX из книги Компьютерная архитектура: количественный подход.

Содержание

История создания

Когда в 1962 году Дональд Кнут приступил к написанию своей знаменитой серии книг Искусство программирования, ему необходимо было принять решение, какой язык программирования использовать. Чтобы раз и навсегда решить все возможные проблемы, а также сохранить возможность описывать в книге низкоуровневые структуры и алгоритмы, автор принял решение разработать собственный компьютер, предназначенный специально для обучения. Он получил название MIX.

Но в течение последующих трёх десятилетий в области компьютерных технологий произошли серьёзные изменения. MIX во многом устарел. Чтобы Искусство программирования продолжало оставаться актуальным источником информации, автор принял решение разработать новый компьютер — MMIX, который является аналогом компьютеров, завоевавших большую часть рынка в 90-х годах XX века.

Архитектура

MMIX — 64-битная архитектура компьютера, имеющая 256 64-битных регистров общего назначения и 32 64-битных регистра специального назначения. Имеет 32-битные инструкции и 64-битное адресное пространство. Набор инструкций компьютера MMIX включает 256 кодов команд, один из которых зарезервирован для возможности расширений в будущем. Реализует арифметику над числами с плавающей запятой согласно стандарту IEEE 754.

Инструкции

У каждой инструкции есть мнемоника. Например, инструкция 32 имеет мнемонику ADD. Большинство инструкций записываются в виде "OP X,Y,Z", где OP - мнемоника, X - обозначения регистра, в который будет записан результат инструкции, а Y и Z - обозначения операндов инструкции. При кодировании под каждое поле отводится по 8 бит.

Большинство инструкций могут принимать операнд регистр или непосредственное значение (immediate), поэтому одной мнемонике может соответствовать несколько опкодов.

Программы на MMIX обычно создаются на языке ассемблера MMIXAL. Пример программы на MMIXAL, выводящей текстовое сообщение "Hello, world":

Main    GETA  $255,string               ; Записать адрес string в регистр 255.
 
        TRAP  0,Fputs,StdOut            ; Вывести строку, адрес которой находится в
                                        ; регистре 255 в файл StdOut.
 
        TRAP  0,Halt,0                  ; Завершить процесс.
 
string  BYTE  "Hello, world!",#a,0      ; Строковая константа.
                                        ; #a символ перевода строки,
                                        ; 0 символ окончания строки.


Регистры

В процессоре MMIX имеется 256 регистров общего назначения, обозначаемых $0 .. $255; и 32 специальных архитектурных регистра.

Два специальных регистра, rL и rG, управляют разделением РОН на глобальные и локальные. Регистры из диапазона $0 ... ([rL] - 1) являются локальными. Регистры из диапазона [rL] ... ([rG]-1) называются "marginal registers". Они возвращают 0 при попытке чтения из них, но если использовать один из них в качестве назначения, то rL автоматически увеличится и использованный регистр станет локальным. Регистры из диапазона [rG] ... $255 являются глобальными и не сохраняются на регистровом стеке.

Специальные регистры

Аппаратные реализации

По состоянию на 2008 год, MMIX ещё не был реализован аппаратно.

Программные инструменты

Набор инструкций компьютера MMIX поддерживается некоторыми программами для разработки программного обеспечения.

Эмуляторы и ассемблеры

  • MMIXware — разработанный Дональдом Кнутом комплект программ, включающий в себя эмулятор, ассемблер MMIXAL, полную документацию, примеры программ и многое другое.

Компилятор

GNU Compiler Collection поддерживает компиляцию программ на языке C/C++ в целевую архитектуру MMIX.


См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


Смотреть что такое "MMIX (компьютер)" в других словарях:

  • MMIX — MMIX: MMIX  запись римскими цифрами числа 2009. MMIX (компьютер)  64 битная RISC архитектура компьютера, предложенная и используемая Дональдом Кнутом в своих книгах для кодирования алгоритмов …   Википедия

  • MIX — MIX  это гипотетический компьютер, использованный в монографии Дональда Кнута, «Искусство программирования»[1]. Номер модели компьютера MIX  1009, происходит от комбинации номеров и названий коммерческих моделей машин, современных… …   Википедия

  • Искусство программирования — The Art of Computer Programming Автор: Дональд Кнут Жанр: Информатика …   Википедия

  • Кнут, Дональд Эрвин — В Википедии есть статьи о других людях с такой фамилией, см. Кнут. Дональд Эрвин Кнут Donald Ervin Knuth …   Википедия

  • Д. Кнут — Дональд Эрвин Кнут Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия

  • Дональд Кнут — Дональд Эрвин Кнут Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия

  • Дональд Эрвин Кнут — Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия

  • Кнут, Дональд — Дональд Эрвин Кнут Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия

  • Кнут Д. — Дональд Эрвин Кнут Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия

  • Кнут Д. Э. — Дональд Эрвин Кнут Donald Ervin Knuth Дата рождения: 10 января 1938 (71 год) Место рождения: Милуоки, Висконсин, США Гражданство …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»