Сопроцессор - Coprocessor

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

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

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

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

История

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

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

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

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

Intel

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

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

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

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

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

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

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

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

В SpursEngine это медиа-ориентированная надстройка с сопроцессором на основе Ячейка микроархитектура. В SPU сами являются векторными сопроцессорами.

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

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

В 2012, Intel объявил о Intel Xeon Phi сопроцессор.[4]

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

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

  • В Архитектура MIPS поддерживает до четырех блоков сопроцессоров, используемых для управления памятью, арифметики с плавающей запятой, и два сопроцессора undefined для других задач, таких как графические ускорители.[5]
  • С помощью FPGA (программируемые пользователем вентильные матрицы), пользовательские сопроцессоры могут быть созданы для ускорения конкретных задач обработки, таких как обработка цифровых сигналов (например, Zynq, сочетает РУКА ядра с ПЛИС на одном кристалле).
  • Ускорители TLS / SSL, используется на серверы; раньше такими ускорителями были карты, но в наше время это инструкции для криптографии в основных процессорах.
  • Немного многоядерный микросхемы могут быть запрограммированы так, чтобы один из их процессоров был основным, а другие процессоры поддерживали сопроцессоры.
  • Китая Матрица 2000 128-ядерный сопроцессор PCI-e - это запатентованный ускоритель, для работы которого требуется центральный процессор, и он был использован при обновлении 17792 узла. Тяньхэ-2 суперкомпьютер (2 Intel Knights Bridge + 2 Matrix 2000 каждый), теперь получивший название 2A, что примерно вдвое увеличивает его скорость до 95 петафлопс, что превышает самый быстрый суперкомпьютер в мире.[6]
  • Для Acorn был доступен ряд сопроцессоров. BBC Micro компьютеры. Это были не специализированные графические или арифметические устройства, это были процессоры общего назначения (например, 8086, Zilog Z80 или 6502), которым операционная система назначала определенные типы задач, выгружая их из основного процессора компьютера и что приводит к ускорению. Кроме того, BBC Micro, оснащенный сопроцессором, мог запускать программное обеспечение с машинным кодом, разработанное для других систем, таких как CP / M и DOS, которые написаны для процессоров 8086.

Тенденции

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

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

использованная литература

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