Введение

Архитектура процессора

Компьютер с минимальным набором команд (MISC) — это архитектура центрального процессора (CPU), обычно в форме микропроцессора, с очень небольшим количеством базовых операций и соответствующих кодов операций, вместе формирующих набор команд. Такие наборы команд обычно основаны на стеке, а не на регистрах, чтобы уменьшить размер спецификаторов операндов. Архитектура стековой машины по своей сути проще, поскольку все инструкции оперируют с элементами, находящимися на вершине стека. Одним из результатов стековой архитектуры является более компактный набор команд, что позволяет использовать более простой и быстрый блок декодирования команд и, в целом, ускоряет выполнение отдельных инструкций.

Характеристики и философия проектирования

Отдельно от определения стека архитектуры MISC, сама архитектура MISC определяется количеством поддерживаемых инструкций. Как правило, компьютер с минимальным набором инструкций рассматривается как имеющий 32 или менее инструкций, при этом инструкции типа NOP, RESET и CPUID обычно не учитываются по общему согласию из-за их базовой природы. 32 инструкции считаются максимально допустимым количеством для MISC, хотя 16 или 8 инструкций ближе к тому, что подразумевается под "минимальным набором инструкций". У MISC-процессора не может быть нулевых инструкций, так как это компьютер с нулевым набором инструкций. У MISC-процессора не может быть одной инструкции, так как это компьютер с одноинструкционным набором. Реализованные инструкции CPU по умолчанию не должны поддерживать широкий спектр входных данных, поэтому обычно это означает 8-битный или 16-битный CPU. Если процессор имеет бит NX, то он, скорее всего, будет классифицирован как компьютер со сложным набором инструкций (CISC) или компьютером с уменьшенным набором инструкций (RISC). Чипы MISC обычно не имеют аппаратной защиты памяти какого-либо типа, если только нет специфической причины для реализации этой функции. Наличие подсистемы микрокода исключает процессор из категории MISC. Единственным приемлемым режимом адресации для MISC-процессора считается загрузка/хранение, как и для компьютеров с уменьшенным набором инструкций (RISC). MISC-процессоры обычно имеют от 64 КБ до 4 ГБ доступной адресуемой памяти, но большинство конструкций MISC занимают менее 1 мегабайта. Кроме того, конвейеры инструкций MISC, как правило, очень просты. Конвейеры инструкций, предсказание ветвлений, внеочередное выполнение, переименование регистров и спекулятивное выполнение в целом исключают отнесение процессора к архитектуре MISC. Хотя 1-битные процессоры в остальном устарели (и не были MISC или OISC), первый компьютер на основе углеродных нанотрубок является 1-битным компьютером с одноинструкционным набором и содержит всего 178 транзисторов, что, вероятно, делает его самым простым (или одним из самых простых) CPU, созданным на сегодняшний день (по количеству транзисторов).

Первые компьютеры с сохраненной программой

IBM SSEC обладал возможностью обрабатывать инструкции как данные и был публично продемонстрирован 27 января 1948 года. Эта возможность была запатентована в США 28 апреля 1953 года. Однако, он был частично электромеханическим, а не полностью электронным. На практике инструкции считывались с бумажной ленты из-за ограниченной памяти. Manchester Baby, разработанный в университете Виктории в Манчестере, стал первым полностью электронным компьютером, способным выполнять хранимую программу. 21 июня 1948 года он выполнил программу факторизации в течение 52 минут, после выполнения простой программы деления и программы, демонстрирующей взаимную простоту двух чисел. Электронный численный интегратор и компьютер (ENIAC) был модифицирован для работы в качестве примитивного компьютера с памятью только для чтения (используя таблицы функций в качестве ПЗУ) и был продемонстрирован в таком виде 16 сентября 1948 года, выполняя программу Адель Голдстайн для фон Неймана. Бинарный автоматический компьютер (BINAC) выполнил несколько тестовых программ в феврале, марте и апреле 1949 года, однако был полностью завершен лишь в сентябре 1949 года. Manchester Mark 1 был разработан на основе проекта Baby. Промежуточная версия Mark 1 была доступна для выполнения программ в апреле 1949 года, но завершена только в октябре 1949 года. Электронный автоматический калькулятор с задержкой хранения (EDSAC) выполнил свою первую программу 6 мая 1949 года. Электронный дискретный переменный автоматический компьютер (EDVAC) был поставлен в августе 1949 года, но проблемы не позволили ввести его в регулярную эксплуатацию до 1951 года. Автоматический компьютер для научных и промышленных исследований Содружества (CSIRAC, ранее CSIR Mk I) выполнил свою первую программу в ноябре 1949 года. Стандартный восточный автоматический компьютер (SEAC) был продемонстрирован в апреле 1950 года. Pilot ACE выполнил свою первую программу 10 мая 1950 года и был продемонстрирован в декабре 1950 года. Стандартный западный автоматический компьютер (SWAC) был завершен в июле 1950 года. Whirlwind был завершен в декабре 1950 года и начал фактическое использование в апреле 1951 года. Первый ERA Atlas (позже коммерческий ERA 1101/UNIVAC 1101) был установлен в декабре 1950 года.

Недостатки конструкции

Недостатком MISC является то, что инструкции, как правило, имеют больше последовательных зависимостей, что снижает общий уровень параллелизма инструкций. Архитектуры MISC имеют много общего с некоторыми особенностями языков программирования, такими как использование стека в Forth и виртуальной машине Java. Обе они недостаточно эффективно поддерживают полный параллелизм на уровне инструкций. Однако можно использовать объединение макроопераций для выполнения часто встречающихся последовательностей инструкций как единых шагов (например, ADD, FETCH для выполнения единственного чтения из памяти с использованием индекса).

Известные процессоры

Вероятно, самым коммерчески успешным MISC стала оригинальная архитектура транспондера INMOS, в которой отсутствовал блок операций с плавающей точкой. Однако многие 8-битные микроконтроллеры, предназначенные для встраиваемых компьютерных приложений, подпадают под определение MISC. Каждый космический аппарат STEREO оснащен двумя процессорами P24 MISC и двумя процессорами CPU24 MISC.