stringtranslate.com

Сопроцессор

Арифметический сопроцессор AM9511-1

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

Функциональность

Сопроцессоры различаются по степени автономности. Некоторые из них (например, FPU ) полагаются на прямое управление с помощью инструкций сопроцессора , встроенных в поток команд ЦП . Другие являются независимыми процессорами, способными работать асинхронно; они до сих пор не оптимизированы для кода общего назначения или не способны на это из-за ограниченного набора инструкций , ориентированных на ускорение конкретных задач . Обычно они управляются прямым доступом к памяти (DMA), когда главный процессор (ЦП) формирует список команд . Emotion Engine PlayStation 2 содержал необычный векторный блок SIMD , похожий на DSP , способный работать в обоих режимах.

История

Чтобы наилучшим образом использовать время процессора мэйнфрейма , задачи ввода/вывода были делегированы отдельным системам, называемым Channel I/O . Мэйнфрейму вообще не потребуется никакой обработки ввода-вывода, вместо этого он просто установит параметры для операции ввода или вывода, а затем подаст сигнал канальному процессору выполнить всю операцию. За счет выделения относительно простых подпроцессоров для обработки трудоемкого форматирования и обработки ввода-вывода общая производительность системы была улучшена.

Сопроцессоры для арифметики с плавающей запятой впервые появились в настольных компьютерах в 1970-х годах и получили широкое распространение в 1980-х и начале 1990-х годов. Ранние 8-битные и 16-битные процессоры использовали программное обеспечение для выполнения арифметических операций с плавающей запятой . Там, где поддерживался сопроцессор, вычисления с плавающей запятой могли выполняться во много раз быстрее. Математические сопроцессоры были популярными покупками среди пользователей программного обеспечения для автоматизированного проектирования (САПР), а также для научных и инженерных расчетов. Некоторые блоки с плавающей запятой, такие как AMD 9511 , Intel 8231/8232 и FPU Weitek , рассматривались как периферийные устройства, тогда как другие, такие как Intel 8087 , Motorola 68881 и National 32081, были более тесно интегрированы с процессором.

Другой формой сопроцессора был сопроцессор видеодисплея, который использовался в 8-битном семействе Atari , TI-99/4A и домашних компьютерах MSX , которые назывались « контроллерами видеодисплея ». Специальный набор микросхем Amiga включает в себя такой блок, известный как Copper , а также блиттер для ускорения манипуляций с растровыми изображениями в памяти.

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

Интел

микроархитектура i8087 и i80287
микроархитектура i80387

Оригинальный IBM PC включал разъем для сопроцессора Intel 8087 с плавающей запятой (он же FPU ), который был популярным вариантом для людей, использующих ПК для автоматизированного проектирования или математических вычислений. В этой архитектуре сопроцессор ускоряет арифметику с плавающей запятой примерно в пятьдесят раз. Например, пользователи, которые использовали ПК только для обработки текста, сэкономили на высокой стоимости сопроцессора, который не ускорил бы выполнение операций по манипулированию текстом.

8087 был тесно интегрирован с 8086/8088 и реагировал на коды операций машинного кода с плавающей запятой, вставленные в поток команд 8088. Процессор 8088 без 8087 не мог интерпретировать эти инструкции, требуя отдельных версий программ для систем с FPU и без FPU или, по крайней мере, теста во время выполнения для обнаружения FPU и выбора соответствующих функций математической библиотеки.

Процессор Intel 80386DX с математическим сопроцессором 80387DX

Еще одним сопроцессором для центрального процессора 8086/8088 был сопроцессор ввода-вывода 8089 . Он использовал ту же технику программирования, что и 8087, для операций ввода-вывода, таких как передача данных из памяти на периферийное устройство, и таким образом снижал нагрузку на процессор. Но IBM не использовала его при разработке IBM PC, а Intel прекратила разработку сопроцессора этого типа.

Микропроцессор Intel 80386 использовал дополнительный «математический» сопроцессор ( 80387 ) для выполнения операций с плавающей запятой непосредственно на аппаратном уровне . Процессор Intel 80486DX включал в себя аппаратное обеспечение для операций с плавающей запятой. Intel выпустила удешевленный процессор 80486SX, который не имел оборудования с плавающей запятой, а также продала сопроцессор 80487SX, который по сути отключал основной процессор при установке, поскольку 80487SX был полной версией 80486DX с другим набором контактов. [1]

Процессоры Intel более поздних версий, чем 80486, имеют встроенное оборудование для операций с плавающей запятой на основном чипе процессора; Достижения в области интеграции устранили экономическое преимущество продажи процессора с плавающей запятой в качестве дополнительного элемента. Было бы очень сложно адаптировать технологии печатных плат, адекватные частоте процессора 75 МГц, для соответствия стандартам временной задержки, энергопотребления и радиочастотных помех, необходимым для тактовых частот гигагерцового диапазона. Эти встроенные процессоры с плавающей запятой до сих пор называются сопроцессорами, поскольку они работают параллельно с основным процессором.

В эпоху 8- и 16-битных настольных компьютеров еще одним распространенным источником сопроцессоров с плавающей запятой был Weitek . Эти сопроцессоры имели другой набор инструкций, чем сопроцессоры Intel, и использовали другой сокет, который поддерживали не все материнские платы. Процессоры Weitek не обеспечивали функций трансцендентной математики (например, тригонометрических функций), как семейство Intel x87, и требовали специальных программных библиотек для поддержки своих функций. [2]

Моторола

Семейство Motorola 68000 имело сопроцессоры 68881/68882 , которые обеспечивали такое же ускорение скорости с плавающей запятой, что и процессоры Intel. Компьютеры, использующие семейство 68000, но не оснащенные аппаратным процессором с плавающей запятой, могли перехватывать и эмулировать инструкции с плавающей запятой в программном обеспечении, что, хотя и медленнее, позволяло распространять одну двоичную версию программы для обоих случаев. Сопроцессор управления памятью 68451 был разработан для работы с процессором 68020. [3]

Современные сопроцессоры

По состоянию на 2001 год выделенные графические процессоры ( GPU ) в виде видеокарт стали обычным явлением. Некоторые модели звуковых карт были оснащены специальными процессорами, обеспечивающими цифровое многоканальное микширование и эффекты DSP в реальном времени еще с 1990 по 1994 год ( типичными примерами являются Gravis Ultrasound и Sound Blaster AWE32 ), а Sound Blaster Audigy и Sound Blaster X -Fi — более свежие примеры.

В 2006 году AGEIA анонсировала карту расширения для компьютеров, названную PhysX PPU . PhysX был разработан для выполнения сложных физических вычислений, чтобы центральному и графическому процессору не приходилось выполнять эти трудоемкие вычисления. Он был разработан для видеоигр, хотя теоретически для него можно было разработать и другие математические применения. В 2008 году Nvidia приобрела компанию и прекратила выпуск линейки карт PhysX; функциональность была добавлена ​​​​с помощью программного обеспечения, позволяющего их графическим процессорам отображать PhysX на ядрах, обычно используемых для обработки графики, с использованием программного обеспечения движка Nvidia PhysX.

В 2006 году компания BigFoot Systems представила карту расширения PCI, которую они назвали KillerNIC, которая запускала собственное специальное ядро ​​Linux на FreeScale PowerQUICC , работающем на частоте 400 МГц, назвав чип FreeScale сетевым процессором или NPU.

SpursEngine — это мультимедийная карта расширения с сопроцессором, основанным на микроархитектуре Cell . SPU сами по себе являются векторными сопроцессорами.

В 2008 году Khronos Group выпустила OpenCL с целью поддержки процессоров общего назначения, графических процессоров ATI/AMD и Nvidia (и других ускорителей) с единым общим языком для вычислительных ядер .

В 2010-х годах в некоторых мобильных вычислительных устройствах сенсорный концентратор был реализован в виде сопроцессора. Примеры сопроцессоров, используемых для интеграции датчиков в мобильные устройства, включают сопроцессоры движения Apple M7 и M8 , Qualcomm Snapdragon Sensor Core и Qualcomm Hexagon , а также блок голографической обработки для Microsoft HoloLens .

В 2012 году Intel анонсировала сопроцессор Intel Xeon Phi . [4]

По состоянию на 2016 год различные компании разрабатывают сопроцессоры, направленные на ускорение искусственных нейронных сетей для зрения и других когнитивных задач (например, блоки обработки зрения , TrueNorth и Zeroth ), а по состоянию на 2018 год такие AI-чипы есть в смартфонах, например, от Apple, и несколько поставщиков телефонов Android.

Другие сопроцессоры

Тенденции

Со временем процессоры имели тенденцию расти и поглощать функциональность самых популярных сопроцессоров. FPU теперь считаются неотъемлемой частью основного конвейера процессора; Модули SIMD придали мультимедиа ускорение, взяв на себя роль различных карт-ускорителей DSP ; и даже графические процессоры интегрированы в кристаллы процессоров. Тем не менее, специализированные устройства остаются популярными вне настольных компьютеров и для обеспечения дополнительной мощности и позволяют продолжать развитие независимо от основных линеек процессоров.

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

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

  1. ^ Скотт Мюллер, Обновление и ремонт компьютеров , 15-е издание, Que Publishing, ISBN 2003 г.  0-7897-2974-1 , страницы 108–110
  2. ^ Скотт Мюллер, Модернизация и ремонт компьютеров, второе издание , Que Publishing, 1992 ISBN 0-88022-856-3 , стр. 412-413 
  3. ^ Уильям Форд, Уильям Р. Топп Язык ассемблера и системное программирование для семейства M68000 Jones & Bartlett Learning, 1992 ISBN 0-7637-0357-5 , стр. 892 и далее. 
  4. ^ «Intel предлагает новую архитектуру для обнаружения с сопроцессорами Intel® Xeon Phi™». Newsroom.intel.com. 12 ноября 2012 г. Архивировано из оригинала 3 июня 2013 г. Проверено 16 июня 2013 г.
  5. ^ Эрин Фаркуар, Филип Банс, Справочник программиста MIPS , Морган Кауфманн, 1994 ISBN 1-55860-297-6 , приложение A3, стр. 330 
  6. ^ «Китайский Tianhe-2A будет использовать собственный ускоритель и иметь пиковую мощность 95 петафлопс» . hpcwire.com . 25 сентября 2017 г. Архивировано из оригинала 1 декабря 2020 г. Проверено 7 апреля 2018 г.