stringtranslate.com

Intel i860

Intel i860 (также известный как 80860 ) — это микропроцессор RISC, представленный Intel в 1989 году. Это одна из первых попыток Intel создать совершенно новую архитектуру набора команд высокого класса после провалившегося Intel iAPX 432 начала 1980-х годов. Это был первый в мире чип с миллионом транзисторов. [1] Он был выпущен с большой помпой, слегка затмив более ранний Intel i960 , который был успешен в некоторых нишах встраиваемых систем . i860 так и не достиг коммерческого успеха, и проект был закрыт в середине 1990-х годов.

Реализации

Кристалл Intel i860 XR.
Кристалл Intel i860 XP.

Первой реализацией архитектуры i860 стал микропроцессор i860 XR (кодовое название N10 ), работавший на частоте 25, 33 или 40 МГц. Микропроцессор второго поколения i860 XP (кодовое название N11 ) добавил страницы по 4 Мбайта, больший кэш на кристалле, поддержку кэша второго уровня, более быстрые шины и аппаратную поддержку отслеживания шины для обеспечения согласованности кэша в многопроцессорных системах. Уменьшение процесса для XP (с 1 мкм до 0,8 CHMOS V) увеличило тактовую частоту до 40 и 50 МГц. [3] Оба микропроцессора поддерживали один и тот же набор инструкций для прикладных программ.

Технические характеристики

i860 сочетал в себе ряд уникальных на то время функций, в частности архитектуру очень длинного командного слова (VLIW) и мощную поддержку высокоскоростных операций с плавающей точкой. [4] В конструкции используются два класса инструкций: «основные» инструкции, которые используют 32-битный ALU , и «плавающие или графические» инструкции, которые работают на сумматоре с плавающей точкой, умножителе с плавающей точкой или 64-битном целочисленном графическом блоке. Система имела отдельные конвейеры для ALU, сумматора с плавающей точкой, умножителя с плавающей точкой и графического блока. Он может извлекать и декодировать одну «основную» инструкцию и одну «плавающую или графическую» инструкцию за такт. При использовании двухоперационных инструкций с плавающей точкой (которые передают значения между последовательными двухоперационными инструкциями) он может выполнять до трех операций (одно ALU, одно умножение с плавающей точкой и одно сложение или вычитание с плавающей точкой) за такт. [1] [5]

Все шины данных имели ширину не менее 64 бит. Внутренняя шина памяти для кэша, например, имела ширину 128 бит.

Инструкции класса «core» используют тридцать два 32-битных целочисленных регистра. Но инструкции «плавающей точки или графики» используют регистровый файл, к которому блоки с плавающей точкой могут обращаться как к тридцати двум 32-битным, шестнадцати 64-битным или восьми 128-битным регистрам с плавающей точкой, или к которому графический блок может обращаться как к шестнадцати 64-битным целочисленным регистрам.

Блок «ядра» отвечает за выборку инструкций и в обычном режиме «одиночной инструкции» может выбирать одну 32-битную «ядро» или одну 32-битную «плавающую точку или графическую» инструкцию за цикл. Но при выполнении в режиме двойной инструкции кэш инструкций доступен как инструкции VLIW, состоящие из 32-битной «ядра» инструкции, связанной с 32-битной «плавающей точкой или графической» инструкцией, одновременно выбираемые вместе по 64-битной шине. [5]

Intel назвала эту разработку «64-битным микропроцессором i860». [6]

Инструкции Intel i860 работали с данными размером от 8 до 128 бит. [7]

Графика поддерживает инструкции типа SIMD в дополнение к базовой 64-битной целочисленной математике. Например, ее 64-битный целочисленный путь данных может представлять несколько пикселей вместе как 8-битные пиксели, 16-битные пиксели или 32-битные пиксели. [5] Опыт работы с i860 повлиял на функциональность MMX, позже добавленную в процессоры Intel Pentium .

Конвейеры в функциональных блоках доступны для программ ( VLIW ), что требует от компиляторов тщательного упорядочивания инструкций в объектном коде для поддержания заполненности конвейеров. В традиционных архитектурах эти обязанности обрабатывались во время выполнения планировщиком на самом ЦП, но сложность этих систем ограничивала их применение в ранних конструкциях RISC. i860 был попыткой полностью избежать этого, переместив эту обязанность за пределы кристалла в компилятор. Это позволило i860 выделить больше места функциональным блокам, повысив производительность. В результате своей архитектуры i860 мог выполнять определенные графические и плавающие алгоритмы с исключительно высокой скоростью, но его производительность в приложениях общего назначения страдала, и было трудно программировать эффективно (см. ниже).

В i860 есть как неотложенные, так и отложенные инструкции ветвления. Когда принимаются отложенные инструкции ветвления, следующая инструкция будет выполнена до передачи управления целевой инструкции ветвления. Это означает, что в i860 есть один слот задержки ветвления. [8]

Производительность

На бумаге производительность была впечатляющей для одночипового решения; однако, реальная производительность была совсем не такой. Одна проблема, возможно, неосознанная в то время, заключалась в том, что пути кода выполнения трудно предсказать, что означает, что становится чрезвычайно сложно правильно упорядочить инструкции во время компиляции . Например, инструкция по сложению двух чисел займет значительно больше времени, если эти числа отсутствуют в кэше, но у программиста нет возможности узнать, находятся ли они в кэше или нет. Если сделана неверная догадка, весь конвейер остановится, ожидая данных. Вся конструкция i860 была основана на компиляторе, эффективно справляющемся с этой задачей, что оказалось почти невозможным на практике. Хотя теоретически он мог достигать пиковой производительности около 60-80 MFLOPS как для одинарной , так и для двойной точности для версий XP, [9] вручную написанный ассемблерный код умудрялся получить только около 40 MFLOPS, и большинство компиляторов с трудом получали даже 10 MFLOPs. [10] Более поздняя архитектура Itanium , также разработанная на основе VLIW, снова столкнулась с проблемой неспособности компиляторов предоставлять достаточно оптимизированный код.

Другой серьезной проблемой было отсутствие какого-либо решения для быстрой обработки переключения контекста . У i860 было несколько конвейеров (для частей ALU и FPU), и прерывание могло их сбросить и потребовать их повторной загрузки. Это занимало 62 цикла в лучшем случае и почти 2000 циклов в худшем. Последнее составляет 1/20000 секунды на частоте 40 МГц (50 микросекунд), вечность для ЦП. Это в значительной степени исключило i860 как ЦП общего назначения.

Кончина

По мере совершенствования компиляторов общая производительность i860 также росла, но к тому времени большинство других RISC-проектов уже превзошли i860 по производительности.

В конце 1990-х годов Intel заменила всю свою линейку RISC на проекты на базе ARM , известные как XScale . Как ни странно, номер 860 с тех пор повторно использовался для набора микросхем управления материнской платой для систем Intel Xeon (высокопроизводительный Pentium ) и модели Core i7.

Энди Гроув предположил, что провал i860 на рынке был вызван тем, что Intel оказалась слишком растянутой по времени:

Теперь у нас было два очень мощных чипа, которые мы представили почти в одно и то же время: 486, в основном основанный на технологии CISC и совместимый со всем программным обеспечением ПК, и i860, основанный на технологии RISC, который был очень быстрым, но несовместимым ни с чем. Мы не знали, что делать. Поэтому мы представили оба, полагая, что позволим рынку решать. ... наша двусмысленность заставила наших клиентов задаться вопросом, что на самом деле представляла Intel, 486 или i860?

—  Энди Гроув , [11]

Приложения

Три процессора i860 XP-50 на плате суперкомпьютера Intel Paragon XP/S

Сначала i860 использовался только в небольшом количестве суперкомпьютеров , таких как Intel iPSC/860 . Позднее Intel некоторое время продавала i860 как микропроцессор для рабочих станций, где он конкурировал с микропроцессорами на базе архитектур MIPS и SPARC , среди прочих. Рабочие станции Oki Electric OKI Station 7300/30 [12] и Stardent Vistra 800 [13] Unix были основаны на 40 МГц i860 XR, работающем под управлением UNIX System V /i860. [14] Hauppauge 4860 [ 15 ] и Olivetti CP486 [16] имели Intel 80486 и i860 на одной материнской плате. Microsoft изначально разработала то, что должно было стать Windows NT, на внутренних рабочих станциях на базе i860XR (кодовое название Dazzle ), только позже портировав NT на MIPS ( Microsoft Jazz ), Intel 80386 и другие процессоры. Некоторые утверждают, что обозначение NT было ссылкой на кодовое название "N-Ten" i860XR. [17]

i860 действительно нашел некоторое применение в мире рабочих станций в качестве графического ускорителя. Например, он использовался в NeXTdimension , где он запускал урезанную версию ядра Mach , работающую с полным стеком PostScript . Однако часть проекта PostScript так и не была завершена, поэтому в итоге он просто перемещал цветные пиксели. В этой роли конструкция i860 работала значительно лучше, так как основную программу можно было загрузить в кэш и сделать полностью «предсказуемой», что позволяло компиляторам правильно упорядочивать. Truevision выпустила плату ускорителя на базе i860, предназначенную для использования с их картами кадрового буфера Targa и Vista. Pixar выпустила специальную версию RenderMan для запуска на карте, которая работала примерно в четыре раза быстрее, чем хост 386. Другим примером был RealityEngine от SGI , который использовал несколько процессоров i860XP в своем геометрическом движке. Такое использование также постепенно сошло на нет, поскольку более универсальные процессоры начали соответствовать по производительности i860, а Intel переключила свое внимание на процессоры Pentium для универсальных вычислений.

Mercury Computer Systems использовала i860 в своем мультикомпьютере . От 2 до 360 вычислительных узлов будут находиться в сети с коммутацией каналов и древовидной структурой , причем каждый узел будет иметь локальную память, которая может быть отображена любым другим узлом. Каждый узел в этой гетерогенной системе может быть i860, PowerPC или группой из трех SHARC DSP. Хорошая производительность была получена от i860 за счет предоставления клиентам библиотеки функций обработки сигналов, написанных на языке ассемблера. Аппаратное обеспечение упаковывало до 360 вычислительных узлов в 9U стоечного пространства , что делало его пригодным для мобильных приложений, таких как обработка бортовых радаров.

В начале 1990-х годов компания Stratus Technologies создала серверы на базе i860 серии XA/R, работающие под управлением собственной операционной системы VOS . [18]

Также в 1990-х годах компания Alliant Computer Systems построила свои серверы FX/800 и FX/2800 на базе i860, заменив серии FX/80 и FX/8, которые были основаны на Motorola 68000 ISA. Обе вычислительные системы Alliant и Mercury активно использовались в NASA/JPL для миссий SIR-C .

Военные США использовали i860 в качестве сопроцессора для многочисленных приложений в аэрокосмической отрасли и цифровой обработки сигналов , где он применялся вплоть до конца 1990-х годов. [19]

Ссылки

  1. ^ ab Perry, Tekla (2022-07-02). "Первый чип-миллионер: история инженеров". IEEE Spectrum . Архивировано из оригинала 2022-07-05 . Получено 2022-07-05 .
  2. ^ Льюнс, Энн, «Архитектура Intel386 здесь, чтобы остаться», Intel Corporation, Microcomputer Solutions, июль/август 1989 г., стр. 2
  3. ^ "I860 XP - Второе поколение i860" (PDF) . Архивировано из оригинала (PDF) 2018-08-20 . Получено 2015-02-22 .
  4. ^ Кон, Лес; Маргулис, Н. (август 1989 г.). «Представляем 64-разрядный микропроцессор Intel i860». IEEE Micro . 9 (4). IEEE Computer Society: 15–30. doi :10.1109/40.31485. S2CID  21922034.
  5. ^ Справочное руководство программиста 64-битного микропроцессора abc i860 (PDF) . Санта-Клара, Калифорния, США: Intel . 1989. Архивировано (PDF) из оригинала 23.02.2022.
  6. ^ Граймс, Джек; Кон, Л.; Бхарадвадж, Р. (июль 1989 г.). «64-разрядный процессор Intel i860: универсальный процессор с возможностями 3D-графики». IEEE Computer Graphics and Applications . 9 (4). IEEE Computer Society: 85–94. doi : 10.1109/38.31467. S2CID  38831149.
  7. ^ "Коллекция микросхем - Микропроцессор i860 - Смитсоновский институт". Смитсоновский институт .
  8. ^ "Справочное руководство по программированию 64-битного микропроцессора i860™" (PDF) . стр. 70(5-11) . Получено 21.12.2023 .
  9. ^ Олег Ю. Репин, Алексей С. Пылкин (2000). "Intel i860: 64-разрядный микропроцессор". sscc.ru, ICMMG. Архивировано из оригинала 2009-06-23 . Получено 2013-09-27 .
  10. ^ Бейли, Д. Х.; Барщ, Э.; Фатухи, Р. А.; Саймон, Х. Д.; Виратунга, С. (1990). Результаты производительности прототипа Intel Touchstone Gamma (PDF) (Отчет). Исследовательский центр имени Эймса в НАСА. Архивировано из оригинала (PDF) 21 декабря 2016 г. Получено 10 июля 2016 г.
  11. ^ Олсон, Сандер (3 июня 2004 г.). "ЦП Intel 486 исполняется 15 лет". Geek.com . Архивировано из оригинала 25.05.2008.
  12. ^ "Oki Electric OKI Station 7300/30-Музей компьютеров".
  13. ^ "Intel i860 - Отсюда туда". 2010.
  14. ^ "KUBOTA Computer/Stardent AVSstation Titan Vistra 800". Архивировано из оригинала 2014-05-14 . Получено 2014-05-14 .
  15. ^ "GeekDot - Hauppauge 4860". 20 марта 2008 г.
  16. ^ "GeekDot - Olivetti CP486" . 16 августа 2011 г.
  17. ^ Thurrott, Paul (2003-01-24). "Windows Server 2003: Дорога к золоту". Win super site . Архивировано из оригинала 2011-07-20 . Получено 02.09.2013 .
  18. ^ "История машины Stratus". Архивировано из оригинала 2003-06-12.
  19. ^ "StackPath". Май 1997.

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