Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

IAPX 432 ( Intel Advanced Performance Architecture ) является прекращенной компьютерная архитектура введена в 1981 году [1] [NB 1] Это был Intel первой «s 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 -битный ALU, через случайную логику и микрокод или другие виды последовательной логики . Расширенное адресное пространство iAPX 432 по сравнению с 8080 также было ограничено тем фактом, что при линейной адресации данных все еще можно было использовать только 16-битные смещения, что немного похоже на первый 8086 от Intel.на основе дизайна, включая современный 80286 (новые смещения 32-битных сегментов архитектуры 80386 были подробно описаны публично в 1984 году). [NB 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 стартовал в 1975 году, через год после того, как был завершен 8-разрядный Intel 8080, и за год до начала их проекта 16-разрядного 8086 . Первоначально проект 432 назывался 8800 , [5] как их следующий шаг за пределы существующих микропроцессоров Intel 8008 и 8080 . Это стало очень большим шагом. Наборы инструкций этих 8-битных процессоров не очень хорошо подходят для типичных языков, подобных Algol, компилируемых . Однако основной проблемой были их небольшие собственные диапазоны адресации, всего 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 и инструкции с плотной кодировкой. Это амбициозное сочетание новых функций сделало чип больше и сложнее. Сложность чипа ограничивала тактовую частоту и удлиняла график проектирования.

Ядро конструкции - главный процессор - называлось General Data Processor ( GDP ) и состояло из двух интегральных схем : одна (43201) для выборки и декодирования инструкций, а другая (43202) для их выполнения. Большинство систем также включает в себя интерфейсный процессор ( IP ) 43203, который работает как контроллер канала для ввода-вывода , и присоединенный процессор ( AP ), обычный Intel 8086, который обеспечивает «вычислительную мощность в подсистеме ввода-вывода». [4]

Это были одни из самых крупных [ требующих разъяснений ] дизайнов той эпохи. Двухчиповый GDP имел общее количество примерно 97000  транзисторов, а одночиповый IP - примерно 49000. Для сравнения: 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.. Одна из проблем заключалась в том, что двухчиповая реализация GDP ограничивала скорость электропроводки материнской платы. Более серьезная проблема заключалась в том, что архитектура возможностей требовала для эффективной работы больших ассоциативных кешей, но в чипах для этого не оставалось места. В наборе команд также использовались выровненные по битам инструкции переменной длины вместо обычных полуфиксированных байтовых или выровненных по словам форматов, используемых в большинстве компьютерных проектов. Поэтому декодирование инструкций было более сложным, чем в других конструкциях. Хотя это само по себе не сказывалось на производительности, в нем использовались дополнительные транзисторы (в основном для большого цилиндрического переключателя).) в конструкции, в которой уже не хватало места и транзисторов для кэшей, более широких шин и других функций, ориентированных на производительность. Кроме того, 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 . Подмножество i960 RISC какое-то время стало популярным на рынке встраиваемых процессоров, но высокопроизводительный 960MC и 960MX с маркированной памятью продавались только для военных приложений.

По данным New York Times , сотрудничество Intel с HP над процессором Merced (позже известным как Itanium) было попыткой компании вернуться на рынок очень высокого класса. [15]

Архитектура [ править ]

Инструкции iAPX 432 имеют переменную длину от 6 до 321 бит. [17] Как ни странно, они не были выровнены по байтам. [5]

Объектно-ориентированная память и возможности [ править ]

IAPX 432 имеет аппаратную поддержку и поддержку микрокода для объектно-ориентированного программирования и адресации на основе возможностей . [18] В системе используется сегментированная память , содержащая до 2 24 сегментов размером до 64  КБ каждый, что обеспечивает общее виртуальное адресное пространство 2 40 байтов. Физическое адресное пространство составляет 2 24 байта (16  МБ ).

Программы не могут ссылаться на данные или инструкции по адресу; вместо этого они должны указать сегмент и смещение внутри сегмента. На сегменты ссылаются дескрипторы доступа ( AD ), которые обеспечивают индекс в таблице системных объектов и набор прав ( возможностей ), управляющих доступом к этому сегменту. Сегменты могут быть «сегментами доступа», которые могут содержать только дескрипторы доступа, или «сегментами данных», которые не могут содержать AD. Аппаратное обеспечение и микрокод жестко разграничивают сегменты данных и доступа и не позволяют программному обеспечению обрабатывать данные как дескрипторы доступа или наоборот.

Системные объекты состоят либо из одного сегмента доступа, либо из сегмента доступа и сегмента данных. Определенные системой сегменты содержат данные или дескрипторы доступа для определенных системой данных на заданных смещениях, хотя операционная система или программное обеспечение пользователя могут расширять их с помощью дополнительных данных. Каждый системный объект имеет поле типа, которое проверяется микрокодом, так что объект порта нельзя использовать там, где требуется объект-носитель. Пользовательские программы могут определять новые типы объектов, которые получат все преимущества проверки типа оборудования, за счет использования объектов управления типом ( TCO ).

В версии 1 архитектуры iAPX 432 определяемый системой объект обычно состоял из сегмента доступа и необязательно (в зависимости от типа объекта) сегмента данных, заданного дескриптором доступа с фиксированным смещением внутри сегмента доступа.

В версии 3 архитектуры для повышения производительности сегменты доступа и сегменты данных были объединены в отдельные сегменты размером до 128 КБ, разделенные на часть доступа и часть данных размером 0–64 КБ каждый. Это резко сократило количество поисков в таблице объектов и удвоило максимальное виртуальное адресное пространство. [19]

IAPX432 распознает четырнадцать типов предопределенных системных объектов : [20] : стр.1–11–1–12

  • объект инструкции содержит исполняемые инструкции
  • объект домена представляет собой программный модуль и содержит ссылки на подпрограммы и данные
  • объект context представляет контекст выполняемого процесса
  • объект определения типа представляет собой программно-определяемый тип объекта
  • объект управления типом представляет собой зависящую от типа привилегию
  • таблица объектов идентифицирует системную коллекцию дескрипторов активных объектов
  • объект ресурса хранения представляет собой свободный пул хранения
  • физический объект хранения идентифицирует свободные блоки хранения в памяти
  • объект заявки на хранение ограничивает объем памяти, который может быть выделен всеми связанными объектами ресурсов хранения
  • объект процесса идентифицирует запущенный процесс
  • объект порта представляет порт и очередь сообщений для межпроцессного взаимодействия
  • Перевозчик Перевозчики доставляют сообщения в порты и из них
  • процессор содержит информацию о состоянии для одного процессора в системе
  • объект связи процессора используется для межпроцессорной связи

Сборка мусора [ править ]

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

Формат инструкции [ править ]

Исполняемые инструкции содержатся в системном «объекте инструкции». [20] : стр.7–3 Поскольку инструкции выровнены по битам, 16-битное смещение в объекте инструкции позволяет объекту содержать до 8192 байтов инструкций (65 536 бит).

Инструкции состоят из оператора , состоящего из класса и кода операции , и от нуля до трех ссылок на операнды . «Поля организованы для представления информации процессору в последовательности, необходимой для декодирования». Более часто используемые операторы кодируются с использованием меньшего количества бит. [20] : стр.7–6 Команда начинается с 4- или 6-битного поля класса, которое указывает количество операндов, называемое порядком команды, и длину каждого операнда. За ним может следовать формат от 0 до 4 бит.поле, которое описывает операнды (если операндов нет, формат отсутствует). Затем введите от нуля до трех операндов, как описано в формате. Команда завершается кодом операции от 0 до 5 бит, если таковой имеется (некоторые классы содержат только одну инструкцию и, следовательно, не имеют кода операции). «Поле Format позволяет программисту представлять GDP в виде архитектуры с нулевым, одно-, двух- или трехадресным адресом». Поле формата указывает, что операнд является ссылкой на данные или верхним или последующим элементом стека операндов. [20] : стр.7–3–7–5

См. Также [ править ]

  • iAPX , для имени iAPX

Заметки [ править ]

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

Ссылки [ править ]

  1. ^ a b c d Дворак, Джон К. "Что случилось с Intel iAPX432?" . Проверено 19 июля 2012 года .
  2. ^ Определение Intel: 25 лет / 25 событий (PDF) . Intel. 1993. стр. 14.
  3. ^ Смит, Эрик. «Микромэйнфрейм Intel iAPX-432» . Проверено 6 декабря 2015 года .
  4. ^ a b Корпорация Intel (1981). Введение в архитектуру iAPX 432 (PDF) . стр. iii.
  5. ^ а б в г Стэнли Мазор (январь – март 2010 г.). «Intel 8086». IEEE Annals of the History of Computing . 32 (1): 75–79. DOI : 10.1109 / MAHC.2010.22 .
  6. ^ Кан, Кевин С.; Корвин, Уильям М .; Деннис, Т. Дон; d'Hooge, Герман; Hubka, David E .; Hutchins, Linda A .; Монтегю, Джон Т .; Поллак, Фред Дж. (Декабрь 1981 г.). «iMAX: многопроцессорная операционная система для объектно-ориентированного компьютера» (PDF) . Обзор операционных систем ACM SIGOPS . 15 (5): 127–136. DOI : 10.1145 / 800216.806601 .
  7. ^ a b Колвелл, Роберт; Герингер, Эдвард (1988). «Влияние архитектурной сложности на производительность Intel 432» (PDF) . Сделки в компьютерных системах . 6 (3): 296–339. DOI : 10.1145 / 45059.214411 .
  8. ^ Intel iAPX-432 Micromainframe
  9. ^ Maliniak, Лиза (21 октября 2002). «Десять заметных провалов: учиться на ошибках» . Электронный дизайн.
  10. Дэвид Кинг; Лян Чжоу; Джон Брайсон; Дэвид Диксон (15 апреля 1999 г.). «Intel iAPX 432 - Компьютерные науки 460 - Заключительный проект» .
  11. ^ Мазор, Стэнли (2010). «Intel 8086» . IEEE Annals of the History of Computing : 75.
  12. ^ a b Хайке Майер (2012). Предпринимательство и инновации в регионах второго уровня . Эдвард Элгар Паблишинг. С. 100–101. ISBN 978-0-85793-869-5.
  13. ^ Определение Intel: 25 лет / 25 событий (PDF) . Intel. 1993. стр. 14.
  14. ^ Марк Смотерман, Обзор Intel 432
  15. ^ a b Джон Маркофф, Inside Intel, Будущее едет на новом чипе , 5 апреля 1998 г.
  16. ^ Викери, Кристофер. «Справочный материал IEEE-754» . Проверено 5 декабря 2015 года .
  17. ^ Тадао Итикава; Х. Цуботани (1992). Языковые архитектуры и среды программирования . World Scientific. п. 127. ISBN 978-981-02-1012-0.
  18. ^ Леви, Генри М. (1984). «Глава 9: Intel iAPX 432» (PDF) . Компьютерные системы, основанные на возможностях . Цифровая пресса .
  19. ^ Гленфорд J Мейерс (1982). «Раздел VI: Обзор архитектуры Intel iAPX432». Достижения в компьютерной архитектуре (2-е изд.). Вайли. ISBN 978-0-471-07878-4.
  20. ^ а б в г Intel Corporation (1983). ОБЩЕЕ РУКОВОДСТВО ПО АРХИТЕКТУРЕ ПРОЦЕССОРА ДАННЫХ iAPX432 СПРАВОЧНОЕ РУКОВОДСТВО (PDF) . Проверено 16 ноября 2015 года .
  21. ^ Дейкстра, EW ; Lamport, L .; Мартин, AJ; Scholten, CS; Стеффенс, EFM (ноябрь 1978 г.). «Сборка мусора на лету: упражнение в сотрудничестве». Коммуникации ACM . 21 (11): 966–975. DOI : 10.1145 / 359642.359655 .
  22. ^ «Справочное руководство iMAX 432» (PDF) . Intel . Май 1982 г.

Внешние ссылки [ править ]

  • Руководства по IAPX 432 на Bitsavers.org
  • Музей истории компьютеров
  • Intel iAPX432 Micromainframe содержит список всей документации Intel, связанной с iAPX 432, список номеров деталей оборудования и список из более чем 30 документов.