Сопроцессор

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

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

Содержание
  • 1 Функциональность
  • 2 История
  • 3 Intel
  • 4 Motorola
  • 5 Современные сопроцессоры
  • 6 Другие сопроцессоры
  • 7 Тенденции
  • 8 См. Также
  • 9 Ссылки
Функциональные возможности

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

История

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

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

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

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

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 с другим набором контактов.

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

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

Motorola

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

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

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

В 2006 году AGEIA анонсировала дополнительную карту для компьютеров, которую она назвала PhysX PPU. PhysX был разработан для выполнения сложных физических вычислений, поэтому CPU и GPU не должны выполнять эти трудоемкие вычисления. Он был разработан для видеоигр, хотя теоретически для него могут быть разработаны другие математические применения. В 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.

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

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

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

См. Также
Викискладе есть носители, относящиеся к сопроцессорам.
Ссылки
Последняя правка сделана 2021-05-15 12:00:53
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте