Введение

MIPS, аббревиатура от Microprocessor without Interlocked Pipeline Stages, был исследовательским проектом, проведенным Джоном Л. Хеннесси в Стэнфордском университете в период с 1981 по 1984 год. MIPS исследовал тип архитектуры наборов инструкций (ISA), теперь называемый компьютером с упрощенным набором команд (RISC), его реализацию в качестве микропроцессора с использованием технологии сверхбольшой интеграции (СБИ) и эффективное использование архитектур RISC с оптимизирующими компиляторами. MIPS, вместе с IBM 801 и Berkeley RISC, были тремя исследовательскими проектами, которые стали пионерами и популяризировали технологию RISC в середине 1980-х годов. В знак признания влияния MIPS на вычислительную технику, Хеннесси был удостоен медали IEEE Джона фон Неймана в 2000 году Институтом инженеров электротехники и электроники (IEEE) (совместно с Дэвидом А. Паттерсоном), премии Экерта — Моучли в 2001 году Ассоциацией вычислительной техники, премии Сеймура Крея по компьютерной инженерии в 2001 году IEEE Computer Society и, вновь вместе с Дэвидом Паттерсоном, премии Тьюринга в 2017 году ACM. Проект был инициирован в 1981 году в ответ на сообщения о подобных проектах в IBM (801) и Калифорнийском университете в Беркли (RISC). MIPS проводился Хеннесси и его аспирантами до его завершения в 1984 году. В том же году Хеннесси основал MIPS Computer Systems для коммерциализации технологии, разработанной в рамках проекта. В 1985 году MIPS Computer Systems объявила о новой ISA, также называемой MIPS, и ее первой реализации — микропроцессоре R2000. Коммерческая ISA MIPS и ее реализации получили широкое распространение, находя применение во встраиваемых компьютерах, персональных компьютерах, рабочих станциях, серверах и суперкомпьютерах. По состоянию на май 2017 года коммерческая ISA MIPS принадлежит компании Imagination Technologies и используется в основном во встраиваемых компьютерах. В конце 1980-х годов Хеннесси провел в Стэнфорде последующий проект под названием MIPS X. ISA MIPS была основана на 32-битном слове. Она поддерживала 32-битное адресование и была организована по словам. Это была архитектура «загрузка-хранение», где все обращения к памяти осуществлялись с помощью инструкций загрузки и хранения, копирующих данные между основной памятью и 32 регистрами общего назначения (GPR). Все остальные инструкции, такие как целочисленная арифметика, работали с GPR. Она имела базовый набор инструкций, состоящий из инструкций для управления потоком, целочисленной арифметики и логических операций. Для минимизации остановок конвейера все инструкции, кроме загрузки и хранения, должны были выполняться за один тактовый цикл. Инструкций для целочисленного умножения или деления, а также операций с числами с плавающей точкой не было. Архитектура выявляла все риски, вызванные пятиступенчатым конвейером с ячейками задержки. Компилятор планировал инструкции, чтобы избежать рисков, приводящих к неверным вычислениям, одновременно обеспечивая минимизацию времени выполнения генерируемого кода. Инструкции MIPS имеют длину 16 или 32 бита. Решение о выявлении всех рисков было обусловлено стремлением максимизировать производительность за счет минимизации критических путей, удлиняющих цепи. Инструкции были упакованы в 32-битные слова инструкций (поскольку MIPS организован по словам). 32-битное слово инструкции могло содержать две 16-битные операции. Они были включены для уменьшения размера машинного кода. Микропроцессор MIPS был реализован на логике NMOS.