Intel iAPX 432

редактировать
Intel iAPX 432
Логотип Intel (1968 г.).svg Логотип корпорации Intel, 1968–2006
Общая информация
Запущенконец 1981
Снято с производстваоколо 1985
Обычный производитель (-ы)
  • Intel
Производительность
Макс. CPU тактовая частота от 5 МГц до 8 МГц

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

Проект начался в 1975 году как 8800 (после 8008 и 8080 ) и должен был стать основной разработкой Intel для 1980-е годы. В отличие от 8086, который был разработан в следующем году как преемник 8080, iAPX 432 радикально отличался от предыдущих разработок Intel, предназначенных для другой рыночной ниши, и совершенно не имел отношения к 8080 или <70.>x86 продуктовые линейки.

Проект iAPX 432 считается коммерческим провалом для Intel и был прекращен в 1986 году.

Содержание
  • 1 Описание
  • 2 История
    • 2.1 Разработка
    • 2.2 Неудачи проекта
    • 2.3 Воздействие и аналогичные конструкции
  • 3 Архитектура
    • 3.1 Объектно-ориентированная память и возможности
    • 3.2 Сборка мусора
    • 3.3 Формат инструкции
  • 4 См. Также
  • 5 Примечания
  • 6 Ссылки
  • 7 Внешние ссылки
Описание

iAPX 432 назывался «микромейнфрейм», предназначенный для программирования полностью на языках высокого уровня. Архитектура набора команд также была совершенно новой и существенно отличалась от предыдущих процессоров Intel 8008 и 8080, поскольку модель программирования iAPX 432 представляет собой стековую машину . без видимых регистров общего назначения. Он поддерживает объектно-ориентированное программирование, сборку мусора и многозадачность, а также более традиционное управление памятью непосредственно на оборудовании и микрокод.. Прямая поддержка различных структур данных также предназначена для реализации современных операционных систем с использованием гораздо меньшего количества программного кода, чем для обычных процессоров. Intel iMAX 432 - это прекращенная операционная система для 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 г.). Этот начальный разрыв в производительности по сравнению с довольно низкопрофильной и недорогой линейкой 8086, вероятно, был основной причиной того, что Intel планирует заменить последнюю (позже известную как x86 ) на iAPX 432. не удалось. Хотя инженеры увидели способы улучшить дизайн следующего поколения, архитектура возможностей iAPX 432 теперь стала рассматриваться больше как накладные расходы на реализацию, а не как упрощающую поддержку, которой она должна была быть.

Первоначально разработанные для тактовых частот до 10 МГц, фактические продаваемые устройства были рассчитаны на максимальные тактовые частоты 4 МГц, 5 МГц, 7 МГц и 8 МГц с максимальной производительностью 2 миллиона инструкций в секунду на частоте 8 МГц.

История

Разработка

Проект Intel 432 начался в 1975 году, через год после завершения 8-битной Intel 8080 и через год до того, как начался их 16-битный проект 8086. Первоначально проект 432 назывался 8800, как их следующий шаг за пределы существующих микропроцессоров Intel 8008 и 8080. Это стало очень большим шагом. Наборы команд этих 8-битных процессоров не очень хорошо подходят для типичных Algol -подобных компилируемых языков. Однако главной проблемой были их небольшие собственные диапазоны адресации, всего 16 КБ для 8008 и 64 КБ для 8080, что слишком мало для многих сложных программных систем без использования каких-либо переключения банков, сегментации памяти или аналогичный механизм (который был встроен в 8086 несколько лет спустя). Теперь Intel стремилась создать сложную полную систему на нескольких микросхемах LSI, которая была бы функционально равна или лучше, чем лучшие 32-разрядные миникомпьютеры и мэйнфреймы, требующие целых корпусов старых микросхем. Эта система будет поддерживать мультипроцессоры, модульное расширение, отказоустойчивость, продвинутые операционные системы, продвинутые языки программирования, очень большие приложения, сверхнадежность и сверхбезопасность. Его архитектура будет удовлетворять потребности клиентов Intel в течение десятилетия.

Группой разработчиков iAPX 432 руководил Билл Латтин, а Джастин Раттнер был ведущим инженером (хотя один источник утверждает, что Фред Поллак был ведущим инженером). (Позже Раттнер стал техническим директором Intel.) Первоначально команда работала из Санта-Клары, но в марте 1977 года Латтин и его команда из 17 инженеров переехали на новый офис Intel в Портленде. Позже Поллак специализировался на суперскалярности и стал ведущим архитектором чипа i686 Intel Pentium Pro.

Вскоре стало ясно, что на разработку всего этого потребуется несколько лет и много инженеров. И точно так же потребовалось бы несколько лет дальнейшего развития закона Мура, прежде чем улучшенное производство микросхем смогло бы уместить все это в несколько плотных микросхем. Между тем 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) для их выполнения. Большинство систем также будет включать интерфейсный процессор 43203 (IP ), который работает как контроллер канала для ввода / вывода, и подключенный процессор (AP ), обычный Intel 8086, который обеспечивал «вычислительную мощность подсистемы ввода-вывода».

Это были одни из самых крупных разработок того времени. Двухчиповый 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 передача параметров занимала в десять раз больше времени, чем все другие вычисления вместе взятые.

Согласно New York Times, «i432 работал в 5-10 раз медленнее, чем его конкурент., Motorola 68000 ".

Воздействие и аналогичные конструкции

iAPX 432 была одной из первых систем, реализующих новый стандарт IEEE-754 для арифметики с плавающей запятой.

Результатом отказа 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) было попыткой компании вернуться на рынок очень высокого класса.

Архитектура

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

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

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

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

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

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

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

iAPX432 распознает четырнадцать типов предопределенных системных объектов:

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

Сборка мусора

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

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

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

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

См. Также
  • iAPX, чтобы узнать имя iAPX
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-24 03:59:03
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте