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 кодів команд, один з яких зарезервований для можливості розширення в майбутньому.
Апаратні реалізації Станом на 2008 рік, MMIX ще не був реалізований апаратно.
Програмні інструменти Набір інструкцій комп'ютера MMIX підтримується деякими програмами для розробки програмного забезпечення.
Емулятори і асемблери MMIXware — розроблений Дональдом Кнутом комплект програм, що включає в себе емулятор, асемблер MMIXAL, повну документацію, приклади програм та багато іншого.
Компілятор
GNU Compiler Collection підтримує компіляцію програм мовою C/C++ в цільову архітектуру MMIX.