Intel iAPX 432 - Intel iAPX 432

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

IAPX 432 ( Intel Advanced Performance Architecture ) является прекращенной компьютерной архитектурой введен в 1981. Это была 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 году.

Описание

IAPX 432 назывался «микромейнфрейм», предназначенный для программирования полностью на языках высокого уровня. Архитектура набора команд также была совершенно новой и существенно отличалась от предыдущих процессоров Intel 8008 и 8080 , поскольку модель программирования iAPX 432 представляет собой стековую машину без видимых регистров общего назначения . Он поддерживает объектно-ориентированное программирование , сборку мусора и многозадачность, а также более традиционное управление памятью непосредственно в оборудовании и микрокоде . Прямая поддержка различных структур данных также предназначена для реализации современных операционных систем с использованием гораздо меньшего количества программного кода, чем для обычных процессоров. Intel iMAX 432 - это прекращенная операционная система для 432, полностью написанная на Ada , и Ada также была предполагаемым основным языком для программирования приложений. В некоторых аспектах это можно рассматривать как компьютерную архитектуру на языке высокого уровня .

Эти свойства и особенности привели к созданию оборудования и микрокода, более сложного, чем у большинства процессоров того времени, особенно микропроцессоров. Однако внутренняя и внешняя шины (в большинстве случаев) не шире, чем 16-битные , и, как и в других 32-битных микропроцессорах той эпохи (например, 68000 или 32016 ), 32-битные арифметические инструкции реализуются 16 -битный ALU, через случайную логику и микрокод или другие виды последовательной логики . Расширенное адресное пространство 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 стартовал в 1976 году, через год после того, как был завершен 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) для их выполнения. Большинство систем также включает в себя интерфейсный процессор ( IP ) 43203, который работает как контроллер канала для ввода-вывода , и присоединенный процессор ( 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 24 сегментов размером до 64  КБ каждый, что обеспечивает общее виртуальное адресное пространство 2 40 байтов. Физическое адресное пространство составляет 2 24 байта (16  МБ ).

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

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

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

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

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

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

Вывоз мусора

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

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

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

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

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

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

Заметки

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

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