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.