MMIXMMIX (произносится эм-микс) — 64-битная RISC архитектура компьютера, разработанная Дональдом Кнутом с существенным вкладом Джона Хеннесси и Ричарда Сайтса. По словам самого Дональда Кнута:
Предназначен для обучения, весьма сходен с архитектурой Джона Хеннесси и Дэвида Патерсона DLX из книги Компьютерная архитектура: количественный подход. История созданияКогда в 1962 году Дональд Кнут приступил к написанию своей знаменитой серии книг Искусство программирования, ему необходимо было принять решение, какой язык программирования использовать.
Чтобы раз и навсегда решить все возможные проблемы, а также сохранить возможность описывать в книге низкоуровневые структуры и алгоритмы, автор принял решение разработать собственный компьютер, предназначенный специально для обучения.
Он получил название Но в течение последующих трёх десятилетий в области компьютерных технологий произошли серьёзные изменения.
АрхитектураMMIX — 64-битная архитектура компьютера, имеющая 256 64-битных регистров общего назначения и 32 64-битных регистра специального назначения. Имеет 32-битные инструкции и 64-битное адресное пространство. Набор инструкций компьютера ИнструкцииУ каждой инструкции есть мнемоника. Например, инструкция 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 год, Программные инструментыНабор инструкций компьютера Эмуляторы и ассемблеры
КомпиляторGNU Compiler Collection поддерживает компиляцию программ на языке C/C++ в целевую архитектуру
См. такжеСсылки
|