Введение
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 году.
The iAPX 432 (Intel Advanced Performance Architecture) is a discontinued computer architecture introduced in 1981. It was Intel's first 32 bit processor design. The main processor of the architecture, the general data processor, is implemented as a set of two separate integrated circuits, due to technical limitations at the time. Although some early 8086, 80186 and 80286 based systems and manuals also used the iAPX prefix for marketing reasons, the iAPX 432 and the 8086 processor lines are completely separate designs with completely different instruction sets. The project started in 1975 as the 8800 (after the 8008 and the 8080) and was intended to be Intel's major design for the 1980s. Unlike the 8086, which was designed the following year as a successor to the 8080, the iAPX 432 was a radical departure from Intel's previous designs meant for a different market niche, and completely unrelated to the 8080 or x86 product lines. The iAPX 432 project is considered a commercial failure for Intel, and was discontinued in 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 бит, если он присутствует (некоторые классы содержат только одну инструкцию и, следовательно, не имеют опкода). "Поле формата позволяет программисту рассматривать архитектуру как систему с нулевым, одним, двумя или тремя адресными режимами". Поле формата указывает, является ли операнд ссылкой на данные или верхним или следующим за верхним элементом стека операндов.