Введение

iAPX 432 (Intel Advanced Performance Architecture) – устаревшая компьютерная архитектура, представленная в 1981 году. Это был первый 32-битный процессор, разработанный Intel. Основной процессор архитектуры, процессор общего назначения, реализован в виде набора из двух отдельных интегральных схем из-за технических ограничений того времени. Хотя в некоторых ранних системах и руководствах на базе 8086, 80186 и 80286 префикс iAPX также использовался в маркетинговых целях, архитектуры iAPX 432 и процессоры 8086 – это полностью отдельные разработки с совершенно разными наборами команд. Проект начался в 1975 году под названием 8800 (после 8008 и 8080) и должен был стать основным дизайном Intel для 1980-х годов. В отличие от 8086, который был разработан в следующем году как преемник 8080, iAPX 432 представлял собой радикальный отход от предыдущих разработок Intel, предназначенных для другой рыночной ниши, и не имел отношения к линейкам продуктов 8080 или x86. Проект iAPX 432 считается коммерческим провалом для Intel и был прекращен в 1986 году.

Описание

iAPX 432 назывался "микромейнфрейм" и был разработан для программирования исключительно на языках высокого уровня. Архитектура набора команд также была совершенно новой и значительно отличалась от предыдущих процессоров Intel 8008 и 8080, поскольку модель программирования iAPX 432 представляет собой стековую машину без видимых регистров общего назначения. Он поддерживал объектно-ориентированное программирование, полностью реализованное на Ada, и Ada также был основным языком, предназначенным для прикладного программирования. В некоторых аспектах его можно рассматривать как компьютерную архитектуру, ориентированную на языки высокого уровня. Эти свойства и особенности привели к созданию аппаратного и микрокодового обеспечения, которое было сложнее, чем у большинства процессоров того времени, особенно микропроцессоров. Однако внутренние и внешние шины (в основном) не шире 16 бит, и, как и в других 32-битных микропроцессорах того времени (таких как 68000 или 32016), 32-битные арифметические инструкции реализованы с помощью 16-битного АЛУ посредством комбинационной логики и микрокода или других видов последовательной логики. Увеличенное адресное пространство iAPX 432 по сравнению с 8080 также было ограничено тем фактом, что для линейной адресации данных все еще можно было использовать только 16-битные смещения, что было несколько похоже на первые разработки Intel на базе 8086, включая современный 80286 (новые 32-битные сегментные смещения архитектуры 80386 были подробно описаны публично в 1984 году). Используя полупроводниковую технологию того времени, инженерам Intel не удалось реализовать эту конструкцию в эффективной первой версии. Наряду с отсутствием оптимизации в раннем компиляторе Ada, это привело к созданию довольно медленных, но дорогих компьютерных систем, выполняющих типичные тесты примерно в 1/4 скорости нового чипа 80286 при той же тактовой частоте (в начале 1982 года). Первоначально разработанные для тактовых частот до 10 МГц, фактически продаваемые устройства имели максимальные тактовые частоты 4 МГц, 5 МГц, 7 МГц и 8 МГц с пиковой производительностью 2 миллиона инструкций в секунду при 8 МГц.

Разработка

Проект Intel 432 начался в 1976 году, через год после завершения 8-битного процессора Intel 8080 и за год до начала их 16-битного проекта 8086. Изначально проект 432 назывался 8800.

Разработкой iAPX 432 руководил Билл Латтин, а ведущим инженером был Джастин Ратнер (однако, согласно одному из источников, позже он специализировался на суперскалярности и стал главным архитектором чипа i686 Intel Pentium Pro). По данным газеты "Нью-Йорк Таймс", "i432 работал в 5-10 раз медленнее своего конкурента, Motorola 68000".

Сбор мусора

Программное обеспечение, работающее на 432, не нуждается в явном освобождении объектов, которые больше не используются. Вместо этого микрокод реализует часть маркировочного этапа алгоритма параллельной сборки мусора Эдсгера Дейкстры (коллектор типа "маркировка и подметание"). Записи в таблице системных объектов содержат биты, используемые для маркировки каждого объекта как белого, черного или серого, в соответствии с потребностями коллектора. Операционная система iMAX 432 включает в себя программную часть сборщика мусора.

Формат инструкции

Исполняемые инструкции содержатся в системном "объекте инструкции". Благодаря битовой выровненности инструкций, 16-битное битовое смещение внутри объекта инструкции позволяет ему содержать до 65 536 бит (8 192 байта) инструкций. Инструкции состоят из оператора, включающего класс и опкод, а также от нуля до трех ссылок на операнды. "Поля организованы таким образом, чтобы представлять информацию процессору в последовательности, необходимой для декодирования". Более часто используемые операторы кодируются меньшим количеством бит. Инструкция начинается с поля класса длиной 4 или 6 бит, которое указывает количество операндов, называемое порядком инструкции, и длину каждого операнда. За ним, опционально, следует поле формата длиной от 0 до 4 бит, описывающее операнды (если операндов нет, поле формата отсутствует). Далее следуют от нуля до трех операндов, как описано в поле формата. Инструкция завершается опкодом длиной от 0 до 5 бит, если он присутствует (некоторые классы содержат только одну инструкцию и, следовательно, не имеют опкода). "Поле формата позволяет программисту рассматривать архитектуру как систему с нулевым, одним, двумя или тремя адресными режимами". Поле формата указывает, является ли операнд ссылкой на данные или верхним или следующим за верхним элементом стека операндов.