Intel iAPX 432
Общая информация | |
---|---|
Запущен | конец 1981 года |
Снято с производства | как в 1985 году |
Общий производитель |
|
Производительность | |
Макс. процессора Тактовая частота | от 5 МГц до 8 МГц |
iAPX 432 ( Intel Advanced Performance Architecture ) — компьютерная архитектура, выпускаемая с производства , выпущенная в 1981 году. [1] [Примечание 1] Это был Intel первый 32-битный процессор . Основной процессор архитектуры, процессор общих данных , из-за технических ограничений того времени реализован в виде набора двух отдельных интегральных схем. Хотя в некоторых ранних системах и руководствах на базе 8086, 80186 и 80286 также использовался префикс iAPX по маркетинговым причинам, линейки процессоров iAPX 432 и 8086 представляют собой совершенно разные конструкции с совершенно разными наборами команд.
Проект стартовал в 1975 году как 8800 (после 8008 и 8080 ) и должен был стать основным проектом Intel в 1980-х годах. В отличие от 8086 , который был разработан в следующем году как преемник 8080, iAPX 432 радикально отличался от предыдущих разработок Intel, предназначенных для другой рыночной ниши и совершенно не связанных с линейками продуктов 8080 или x86 .
Проект iAPX 432 считается коммерческим провалом Intel и был прекращен в 1986 году. [1] [3]
Описание
[ редактировать ]iAPX 432 назывался «микромейнфреймом», предназначенным для программирования полностью на языках высокого уровня. [4] [5] Архитектура набора команд также была совершенно новой и существенно отличалась от предыдущих процессоров Intel 8008 и 8080 , поскольку модель программирования iAPX 432 представляет собой стековую машину без видимых регистров общего назначения . Он поддерживает объектно-ориентированное программирование , [5] сбор мусора и многозадачность , а также более традиционное управление памятью непосредственно в аппаратном обеспечении и микрокоде . Прямая поддержка различных структур данных также призвана позволить современные операционные системы реализовать с использованием гораздо меньшего количества программного кода , чем для обычных процессоров. Intel iMAX 432 — операционная система для модели 432, выпуск которой прекращен. [6] написан полностью на языке Ada , и Ada также была основным языком для программирования приложений. В некоторых аспектах его можно рассматривать как компьютерную архитектуру языка высокого уровня .
Эти свойства и особенности привели к тому, что конструкция аппаратного обеспечения и микрокода была более сложной, чем у большинства процессоров той эпохи, особенно у микропроцессоров. Однако внутренние и внешние шины (в основном) не шире 16-битных , и, как и в других 32-битных микропроцессорах той эпохи (таких как 68000 или 32016 ), 32-битные арифметические инструкции реализуются 16-битным процессором. -битовое АЛУ, посредством случайной логики и микрокода или других видов последовательной логики . Увеличенное адресное пространство iAPX 432 по сравнению с 8080 было также ограничено тем фактом, что линейная адресация данных по-прежнему могла использовать только 16-битные смещения, что чем-то похоже на первые разработки Intel на базе 8086 , включая современный 80286 (новый 32-битный сегмент). смещения архитектуры 80386 были подробно описаны публично в 1984 году). [Примечание 2]
Используя полупроводниковые технологии того времени, инженеры Intel не смогли воплотить проект в очень эффективную первую реализацию. Наряду с отсутствием оптимизации в преждевременном компиляторе Ada , это способствовало тому, что компьютерные системы были довольно медленными, но дорогими, выполняя типичные тесты со скоростью примерно 1/4 скорости нового чипа 80286 на той же тактовой частоте (в начале 1982 года). [7] Этот первоначальный разрыв в производительности с довольно скромной и недорогой линейкой 8086 , вероятно, был основной причиной того, что план Intel по замене последней (позже известной как x86 ) на iAPX 432 провалился. Хотя инженеры видели способы улучшить конструкцию следующего поколения, архитектура возможностей iAPX 432 теперь стала рассматриваться скорее как накладные расходы на реализацию, а не как упрощающая поддержка, которой она должна была быть. [7]
Первоначально разработанные для тактовой частоты до 10 МГц, реальные продаваемые устройства были рассчитаны на максимальные тактовые частоты 4 МГц, 5 МГц, 7 МГц и 8 МГц с пиковой производительностью 2 миллиона инструкций в секунду на частоте 8 МГц. [8] [9]
История
[ редактировать ]Разработка
[ редактировать ]Проект Intel 432 стартовал в 1976 году, через год после завершения разработки 8-битного Intel 8080 и за год до начала проекта 16-битного 8086 . Проект 432 изначально назывался 8800 , [5] как следующий шаг за пределами существующих микропроцессоров Intel 8008 и 8080 . Это стало очень большим шагом. Наборы команд этих 8-битных процессоров не очень хорошо подходили для типичных Алголу подобных компилируемых языков, . Однако основной проблемой был их небольшой собственный диапазон адресации, всего 16 КБ для 8008 и 64 КБ для 8080, что слишком мало для многих сложных программных систем без использования какого-либо переключения банков , сегментации памяти или аналогичного механизма (который был встроен в 8086, несколько лет спустя). Теперь Intel стремилась создать сложную полную систему на нескольких чипах LSI, которая функционально была бы равна или лучше, чем лучшие 32-битные миникомпьютеры и мэйнфреймы, требующие целые шкафы старых чипов. Эта система будет поддерживать мультипроцессоры, модульное расширение, отказоустойчивость, передовые операционные системы, продвинутые языки программирования, очень большие приложения, сверхнадежность и сверхбезопасность. Его архитектура будет удовлетворять потребности клиентов Intel в течение десятилетия. [10]
Командой разработчиков iAPX 432 руководил Билл Латтин, а Джастин Раттнер . ведущим инженером был [11] [12] [13] (хотя один источник [1] утверждает, что Фред Поллак был ведущим инженером). (Раттнер позже стал техническим директором Intel.) Первоначально команда работала в Санта-Кларе, но в марте 1977 года Латтин и его команда из 17 инженеров переехали на новый офис Intel в Портленде. [12] Позже Поллак специализировался на суперскалярности и стал ведущим архитектором чипа i686 Intel Pentium Pro . [1]
Вскоре стало ясно, что на проектирование всего этого потребуется несколько лет и множество инженеров. И точно так же потребуется несколько лет дальнейшего прогресса в законе Мура , прежде чем улучшенное производство чипов сможет уместить все это в несколько плотных чипов. Тем временем Intel срочно требовался более простой промежуточный продукт, чтобы противостоять непосредственной конкуренции со стороны Motorola , Zilog и National Semiconductor . Поэтому Intel приступила к срочному проекту по разработке 8086 как постепенной эволюции 8080 с низким уровнем риска, используя отдельную группу разработчиков. Модель 8086 для массового рынка поступила в продажу в 1978 году.
8086 был разработан с учетом обратной совместимости с 8080 в том смысле, что язык ассемблера 8080 можно было преобразовать в архитектуру 8086 с помощью специального ассемблера . сборки 8080 Таким образом, существующий исходный код (хотя и без исполняемого кода ) стал в некоторой степени совместим с новым 8086. Напротив, у модели 432 не было никаких требований к совместимости программного обеспечения или миграции. Архитекторы имели полную свободу создавать новый проект с нуля, используя любые методы, которые, по их мнению, лучше всего подходили для крупномасштабных систем и программного обеспечения. Они применили модные концепции информатики из университетов, в частности машины возможностей , объектно-ориентированное программирование, машины CISC высокого уровня, Ada и плотно закодированные инструкции. Это амбициозное сочетание новых функций сделало чип больше и сложнее. Сложность чипа ограничивала тактовую частоту и удлиняла сроки разработки.
Ядро конструкции — главный процессор — называлось процессором общих данных ( GDP ) и представляло собой две интегральные схемы : одна (43201) для выборки и декодирования инструкций, другая (43202) для их выполнения. Большинство систем также будут включать в себя интерфейсный процессор 43203 ( IP ), который работал как контроллер канала для ввода-вывода , и подключенный процессор ( AP ), обычный процессор Intel 8086, который обеспечивал «вычислительную мощность в подсистеме ввода-вывода». [4]
Это были одни из крупнейших [ нужны разъяснения ] конструкции той эпохи. В двухчиповом ВВП было около 97 000 транзисторов. [ нужна ссылка ] в то время как у одного чипа IP было около 49 000. Для сравнения, Motorola 68000 (выпущенный в 1979 году) имел примерно 40 000 транзисторов. [ нужна ссылка ]
В 1983 году Intel выпустила две дополнительные интегральные схемы для межсетевой архитектуры iAPX 432: блок интерфейса шины 43204 ( BIU ) и блок управления памятью 43205 ( MCU ). Эти чипы позволили создать практически бесклеевые многопроцессорные системы с числом узлов до 63.
Неудачи проекта
[ редактировать ]Некоторые инновационные функции iAPX 432 мешали хорошей производительности. Во многих случаях iAPX 432 имел значительно более медленную скорость выполнения инструкций, чем обычные микропроцессоры той эпохи, такие как National Semiconductor 32016 , Motorola 68010 и Intel 80286 . Одна из проблем заключалась в том, что двухчиповая реализация ВВП ограничивала его скорость электропроводки материнской платы. Более серьезная проблема заключалась в том, что для эффективной работы архитектуры возможностей требовались большие ассоциативные кэши, но в чипах для этого не оставалось места. В наборе команд также использовались инструкции переменной длины с битовым выравниванием вместо обычных полуфиксированных форматов с выравниванием байтов или слов, используемых в большинстве компьютерных конструкций. Поэтому декодирование инструкций было более сложным, чем в других конструкциях. использовались дополнительные транзисторы (в основном для большого барабанного переключателя Хотя это само по себе не ухудшало производительность, в конструкции, в которой уже не хватало места, а также транзисторов для кэшей, более широких шин и других функций, ориентированных на производительность, ). Кроме того, BIU был разработан для поддержки отказоустойчивых систем, и при этом до 40% времени шины задерживалось в ждать состояния .
Другой серьезной проблемой был незрелый и не настроенный Ada компилятор . В каждом случае он использовал дорогостоящие объектно-ориентированные инструкции вместо более быстрых скалярных инструкций там, где это имело смысл. межмодульной Например, iAPX 432 включал очень дорогую инструкцию вызова процедуры , которую компилятор использовал для всех вызовов, несмотря на существование гораздо более быстрых инструкций ветвления и связи. Еще один очень медленный вызов — enter_environment, который настраивал защиту памяти. Компилятор запускал это для каждой переменной в системе, даже если переменные использовались внутри существующей среды и их не нужно было проверять. Что еще хуже, данные, передаваемые в процедуры и из них, всегда передавались путем возврата значения, а не по ссылке. При запуске теста Dhrystone передача параметров заняла в десять раз больше времени, чем все остальные вычисления вместе взятые. [14]
По данным New York Times , «i432 работал в 5–10 раз медленнее, чем его конкурент Motorola 68000». [15]
Ударные и подобные конструкции
[ редактировать ]iAPX 432 была одной из первых систем, реализовавших новый стандарт IEEE-754 для арифметики с плавающей запятой. [16]
проектов часто приводили 432 в качестве контрпримера Результатом неудачи 432 стало то, что разработчики микропроцессоров пришли к выводу, что поддержка объектов в чипе приводит к сложной конструкции, которая всегда будет работать медленно, и сторонники RISC- . Однако некоторые считают, что поддержка ОО не была основной проблемой 432 и что упомянутые выше недостатки реализации (особенно в компиляторе) сделали бы любой дизайн ЦП медленным. Со времени iAPX 432 была только одна попытка создания аналогичной конструкции — процессор Rekursiv , хотя INMOS Transputer была аналогичной — и очень быстрой. поддержка процессов [ нужна ссылка ]
Intel потратила много времени, денег и умений на 432, имела над ним квалифицированную команду и не желала полностью отказываться от него после его провала на рынке. Новый архитектор — Гленфорд Майерс — был привлечен для создания совершенно новой архитектуры и реализации основного процессора, который будет создан в рамках совместного проекта Intel и Siemens (позже BiiN ), в результате чего появятся процессоры серии i960 . Подмножество RISC i960 на какое-то время стало популярным на рынке встраиваемых процессоров, но высокопроизводительные 960MC и 960MX с тегированной памятью продавались только для военных приложений.
По данным New York Times , сотрудничество Intel с HP над процессором Merced (позже известным как Itanium) было попыткой компании вернуться на рынок очень высокого класса. [15]
Архитектура
[ редактировать ]Инструкции iAPX 432 имеют переменную длину от 6 до 321 бита. [17] Необычно то, что они не выровнены по байтам, то есть могут содержать нечетное количество битов и следовать друг за другом напрямую, независимо от границ байтов. [5]
Объектно-ориентированная память и возможности
[ редактировать ]iAPX 432 имеет аппаратную поддержку и микрокод для объектно-ориентированного программирования и адресации на основе возможностей . [18] [19] В системе используется сегментированная память , до 2 24 сегменты размером до 64 КБ каждый, что обеспечивает общее виртуальное адресное пространство размером 2 40 байты. Физическое адресное пространство равно 2 24 байт (16 МБ ).
Программы не могут ссылаться на данные или инструкции по адресу; вместо этого они должны указать сегмент и смещение внутри сегмента. На сегменты ссылаются дескрипторы доступа (AD) , которые предоставляют индекс в таблице системных объектов и набор прав ( возможностей ), управляющих доступом к этому сегменту. Сегменты могут быть «сегментами доступа», которые могут содержать только дескрипторы доступа, или «сегментами данных», которые не могут содержать AD. Аппаратное обеспечение и микрокод жестко обеспечивают различие между данными и сегментами доступа и не позволяют программному обеспечению рассматривать данные как дескрипторы доступа или наоборот.
Определенные системой объекты состоят либо из одного сегмента доступа, либо из сегмента доступа и сегмента данных. Определенные системой сегменты содержат данные или дескрипторы доступа для определенных системой данных с указанными смещениями, хотя операционная система или пользовательское программное обеспечение могут расширять их дополнительными данными. Каждый системный объект имеет поле типа, которое проверяется микрокодом, поэтому объект порта нельзя использовать там, где необходим объект-перевозчик. Пользовательские программы могут определять новые типы объектов, которые получат все преимущества проверки типов оборудования за счет использования объектов управления типами (TCO) .
В версии 1 архитектуры iAPX 432 определяемый системой объект обычно состоял из сегмента доступа и, при необходимости (в зависимости от типа объекта), сегмента данных, заданного дескриптором доступа с фиксированным смещением внутри сегмента доступа.
В третьем релизе архитектуры для повышения производительности сегменты доступа и сегменты данных были объединены в единые сегменты размером до 128 КБ, разделенные на часть доступа и часть данных по 0–64 КБ каждый. Это значительно сократило количество операций поиска в таблице объектов и удвоило максимальное виртуальное адресное пространство. [20]
iAPX432 распознает четырнадцать типов предопределенных системных объектов : [21] : стр.1-11–1-12
- Объект инструкции содержит исполняемые инструкции
- объект домена представляет программный модуль и содержит ссылки на подпрограммы и данные
- объект контекста представляет контекст выполняемого процесса
- объект определения типа представляет собой программно-определяемый тип объекта
- объект управления типом представляет привилегию, специфичную для типа
- таблица объектов идентифицирует коллекцию дескрипторов активных объектов системы.
- Объект ресурса хранения представляет собой свободный пул хранения.
- объект физического хранилища идентифицирует свободные блоки хранения в памяти
- Объект утверждения хранилища ограничивает хранилище, которое может быть выделено всеми связанными объектами ресурсов хранилища.
- Объект процесса идентифицирует запущенный процесс
- объект порта представляет собой порт и очередь сообщений для межпроцессного взаимодействия.
- Перевозчик Перевозчики доставляют сообщения в порты и обратно
- процессор содержит информацию о состоянии одного процессора в системе
- объект связи процессора используется для межпроцессорной связи
Сбор мусора
[ редактировать ]Программному обеспечению, работающему на 432, не требуется явно освобождать объекты, которые больше не нужны. Вместо этого микрокод реализует часть маркирующей части Эдсгера Дейкстры «на лету» алгоритма параллельной сборки мусора ( сборщик в стиле «маркировка и очистка» ). [22] Записи в таблице системных объектов содержат биты, используемые для обозначения каждого объекта как белого, черного или серого цвета в зависимости от требований сборщика. Операционная система iMAX 432 включает программную часть сборщика мусора. [23]
Формат инструкции
[ редактировать ]Исполняемые инструкции содержатся в системном «объекте инструкций». [21] : стр.7-3 Поскольку инструкции выровнены по битам, 16-битное смещение в объекте инструкции позволяет объекту содержать до 65 536 бит (8 192 байта) инструкций.
Инструкции состоят из оператора , состоящего из класса и кода операции , и от нуля до трех ссылок на операнды . «Поля организованы таким образом, чтобы представлять информацию процессору в той последовательности, которая необходима для декодирования». Более часто используемые операторы кодируются меньшим количеством битов. [21] : стр.7-6 Инструкция начинается с 4- или 6-битного поля класса, которое указывает количество операндов, называемое порядком инструкции, и длину каждого операнда. За ним необязательно следует поле формата от 0 до 4 бит , которое описывает операнды (если операндов нет, формат отсутствует). Затем от нуля до трех операндов, как описано в формате. Инструкция завершается кодом операции от 0 до 5 бит, если таковой имеется (некоторые классы содержат только одну инструкцию и, следовательно, не имеют кода операции). «Поле «Формат» позволяет ВВП представиться программисту как архитектура с нулевым, одним, двумя или тремя адресами». Поле формата указывает, что операнд является ссылкой на данные или верхним или последующим элементом стека операндов. [21] : стр.7-3–7-5
См. также
[ редактировать ]- iAPX для имени iAPX
Примечания
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д Дворжак, Джон К. «Что случилось с Intel iAPX432?» . Проверено 19 июля 2012 г.
- ^ Определение Intel: 25 лет / 25 событий (PDF) . Интел. 1993. с. 14.
- ^ Смит, Эрик. «Микромейнфрейм Intel iAPX-432» . Проверено 6 декабря 2015 г.
- ^ Перейти обратно: а б Корпорация Интел (1981). Введение в архитектуру iAPX 432 (PDF) . стр. iii.
- ^ Перейти обратно: а б с д Стэнли Мазор (январь – март 2010 г.). «Интел 8086». IEEE Анналы истории вычислений . 32 (1): 75–79. дои : 10.1109/MAHC.2010.22 . S2CID 16451604 .
- ^ Кан, Кевин С.; Корвин, Уильям М.; Деннис, Т. Дон; д'Хуге, Герман; Хубка, Дэвид Э.; Хатчинс, Линда А.; Монтегю, Джон Т.; Поллак, Фред Дж. (декабрь 1981 г.). «iMAX: многопроцессорная операционная система для объектно-ориентированного компьютера» (PDF) . Обзор операционных систем ACM SIGOPS . 15 (5): 127–136. дои : 10.1145/800216.806601 . S2CID 9245960 .
- ^ Перейти обратно: а б Колвелл, Роберт; Герингер, Эдвард (1988). «Влияние сложности архитектуры на производительность Intel 432» (PDF) . Транзакции по компьютерным системам . 6 (3): 296–339. дои : 10.1145/45059.214411 . S2CID 8314206 .
- ^ Микромейнфрейм Intel iAPX-432
- ^ Малиниак, Лиза (21 октября 2002 г.). «Десять заметных провалов: учимся на ошибках» . Электронный дизайн.
- ^ Дэвид Кинг; Лян Чжоу; Джон Брайсон; Дэвид Диксон (15 апреля 1999 г.). «Intel iAPX 432 — Информатика 460 — Итоговый проект» .
- ^ Мазор, Стэнли (2010). «Интел 8086» . IEEE Анналы истории вычислений . 32 : 75. дои : 10.1109/MAHC.2010.22 . S2CID 16451604 .
- ^ Перейти обратно: а б Хайке Майер (2012). Предпринимательство и инновации в регионах второго эшелона . Издательство Эдварда Элгара. стр. 100–101. ISBN 978-0-85793-869-5 .
- ^ Определение Intel: 25 лет / 25 событий (PDF) . Интел. 1993. с. 14.
- ^ Марк Смотерман, Обзор Intel 432
- ^ Перейти обратно: а б Джон Маркофф, Внутри Intel: будущее за новым чипом , 5 апреля 1998 г.
- ^ Викери, Кристофер. «Справочный материал IEEE-754» . Проверено 5 декабря 2015 г.
- ^ Тадао Итикава; Х. Цуботани (1992). Языковые архитектуры и среды программирования . Всемирная научная. п. 127. ИСБН 978-981-02-1012-0 .
- ^ Леви, Генри М. (1984). «Глава 9: Intel iAPX 432» (PDF) . Компьютерные системы, основанные на возможностях . Цифровая пресса .
- ^ Органик, Эллиот И. (1983). «Глава 4: Структуры объектов i432 для выполнения программ». Взгляд программиста на систему Intel 432 . Нью-Йорк: МакГроу-Хилл. ISBN 0-07-047719-1 . OCLC 9110667 .
- ^ Гленфорд Дж. Мейерс (1982). «Раздел VI: Обзор архитектуры Intel iAPX432». Достижения в компьютерной архитектуре (2-е изд.). Уайли. ISBN 978-0-471-07878-4 .
- ^ Перейти обратно: а б с д Корпорация Интел (1983). iAPX432 СПРАВОЧНОЕ РУКОВОДСТВО ПО ОБЩЕЙ АРХИТЕКТУРЕ ПРОЦЕССОРА ДАННЫХ (PDF) . Проверено 16 ноября 2015 г.
- ^ Дейкстра, EW ; Лэмпорт, Л. ; Мартин, Эй Джей; Схолтен, CS; Стеффенс, EFM (ноябрь 1978 г.). «Оперативная уборка мусора: упражнение в сотрудничестве» . Коммуникации АКМ . 21 (11): 966–975. дои : 10.1145/359642.359655 . S2CID 8017272 .
- ^ «Справочное руководство iMAX 432» (PDF) . Интел . Май 1982 года.
Внешние ссылки
[ редактировать ]- Руководства по IAPX 432 на Bitsavers.org
- Музей компьютерной истории
- Микромейнфрейм Intel iAPX432 содержит список всей документации Intel, связанной с iAPX 432, список номеров деталей оборудования и список из более чем 30 документов.