stringtranslate.com

Intel iAPX 432

Плата Intel SBC 432/100
Общий процессор данных 43201
Общий процессор данных 43202

iAPX 432 ( Intel Advanced Performance Architecture ) — это компьютерная архитектура , снятая с производства , представленная в 1981 году. [1] [NB 1] Это был первый 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 году. [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 Bus Interface Unit ( BIU ) и 43205 Memory Control Unit ( 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 стало то, что разработчики микропроцессоров пришли к выводу, что поддержка объектов в чипе приводит к сложной конструкции, которая всегда будет работать медленно, и сторонники RISC- проектов часто приводили 432 в качестве контрпримера . Однако некоторые считают, что поддержка ОО не была основной проблемой 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. 

Смотрите также

Примечания

  1. ^ Иногда усовершенствованная архитектура процессоров Intel [2]
  2. ^ хотя чип 80386 не производился серийно до середины 1986 года.

Рекомендации

  1. ^ abcd Дворжак, Джон К. «Что случилось с Intel iAPX432?» . Проверено 19 июля 2012 г.
  2. ^ Определение Intel: 25 лет / 25 событий (PDF) . Интел. 1993. с. 14.
  3. ^ Смит, Эрик. «Микромейнфрейм Intel iAPX-432» . Проверено 6 декабря 2015 г.
  4. ^ ab Корпорация Intel (1981). Введение в архитектуру iAPX 432 (PDF) . стр. iii.
  5. ^ abcd Стэнли Мазор (январь – март 2010 г.). «Интел 8086». IEEE Анналы истории вычислений . 32 (1): 75–79. дои : 10.1109/MAHC.2010.22. S2CID  16451604.
  6. ^ Кан, Кевин С.; Корвин, Уильям М.; Деннис, Т. Дон; д'Хуге, Герман; Хубка, Дэвид Э.; Хатчинс, Линда А.; Монтегю, Джон Т.; Поллак, Фред Дж. (декабрь 1981 г.). «iMAX: многопроцессорная операционная система для объектно-ориентированного компьютера» (PDF) . Обзор операционных систем ACM SIGOPS . 15 (5): 127–136. дои : 10.1145/800216.806601. S2CID  9245960.
  7. ^ аб Колвелл, Роберт; Герингер, Эдвард (1988). «Влияние сложности архитектуры на производительность Intel 432» (PDF) . Транзакции по компьютерным системам . 6 (3): 296–339. дои : 10.1145/45059.214411. S2CID  8314206.
  8. ^ Микромейнфрейм Intel iAPX-432
  9. Малиниак, Лиза (21 октября 2002 г.). «Десять заметных провалов: учимся на ошибках». Электронный дизайн.
  10. ^ Дэвид Кинг; Лян Чжоу; Джон Брайсон; Дэвид Диксон (15 апреля 1999 г.). «Intel iAPX 432 — Информатика 460 — Итоговый проект».
  11. ^ Мазор, Стэнли (2010). «Интел 8086». IEEE Анналы истории вычислений . 32:75 . дои :10.1109/MAHC.2010.22. S2CID  16451604.
  12. ^ аб Хайке Майер (2012). Предпринимательство и инновации в регионах второго уровня. Издательство Эдварда Элгара. стр. 100–101. ISBN 978-0-85793-869-5.
  13. ^ Определение Intel: 25 лет / 25 событий (PDF) . Интел. 1993. с. 14.
  14. ^ Марк Смотерман, Обзор Intel 432
  15. ^ ab Джон Маркофф, Внутри Intel, будущее за новым чипом, 5 апреля 1998 г.
  16. ^ Викери, Кристофер. «Справочный материал IEEE-754» . Проверено 5 декабря 2015 г.
  17. ^ Тадао Итикава; Х. Цуботани (1992). Языковые архитектуры и среды программирования. Всемирная научная. п. 127. ИСБН 978-981-02-1012-0.
  18. ^ Леви, Генри М. (1984). «Глава 9: Intel iAPX 432» (PDF) . Компьютерные системы, основанные на возможностях. Цифровая пресса .
  19. ^ Органик, Эллиот И. (1983). «Глава 4: Структуры объектов i432 для выполнения программ». Взгляд программиста на систему Intel 432. Нью-Йорк: МакГроу-Хилл. ISBN 0-07-047719-1. ОСЛК  9110667.
  20. ^ Гленфорд Дж. Мейерс (1982). «Раздел VI: Обзор архитектуры Intel iAPX432». Достижения в компьютерной архитектуре (2-е изд.). Уайли. ISBN 978-0-471-07878-4.
  21. ^ abcd Корпорация Intel (1983). СПРАВОЧНОЕ РУКОВОДСТВО ПО ОБЩЕЙ АРХИТЕКТУРЕ ПРОЦЕССОРА ДАННЫХ iAPX432 (PDF) . Проверено 16 ноября 2015 г.
  22. ^ Дейкстра, EW ; Лэмпорт, Л. ; Мартин, Эй Джей; Схолтен, CS; Стеффенс, EFM (ноябрь 1978 г.). «Сборка мусора на лету: упражнение в сотрудничестве». Коммуникации АКМ . 21 (11): 966–975. дои : 10.1145/359642.359655 . S2CID  8017272.
  23. ^ «Справочное руководство iMAX 432» (PDF) . Интел . Май 1982 года.

Внешние ссылки