stringtranslate.com

Интел 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 бит.

Инструкции «ядерного» класса используют тридцать два 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 была основана на том, что компилятор эффективно справляется с этой задачей, что на практике оказалось практически невыполнимым. Хотя теоретически максимальная производительность в версиях XP как для одинарной, так и для двойной точности может достигать 60-80 MFLOPS, [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 . Рабочие станции Unix Oki Electric OKI Station 7300/30 [12] и Stardent Vistra 800 [13] были основаны на процессоре i860 XR с частотой 40 МГц и операционной системой 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 создала серверы серии XA/R на базе i860, работающие под управлением собственной операционной системы VOS . [18]

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

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

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

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

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