Сопроцессор
Сопроцессор используемый — это компьютерный процессор, для дополнения функций основного процессора ( ЦП ). Операции, выполняемые сопроцессором, могут быть арифметическими операциями с плавающей запятой , графикой , обработкой сигналов , обработкой строк , криптографией или взаимодействием ввода-вывода с периферийными устройствами. Снимая ресурсоемкие задачи с главного процессора , сопроцессоры могут повысить производительность системы. Сопроцессоры позволяют настраивать линейку компьютеров так, чтобы клиентам, которым не нужна дополнительная производительность, не приходилось за нее платить.
Функциональность
[ редактировать ]Сопроцессоры различаются по степени автономности. Некоторые из них (например, FPU ) полагаются на прямое управление с помощью инструкций сопроцессора , встроенных в ЦП команд поток . Другие являются независимыми процессорами, способными работать асинхронно; они до сих пор не оптимизированы для кода общего назначения или неспособны на это из-за ограниченного набора инструкций, ориентированных на ускорение конкретных задач . Обычно они управляются прямым доступом к памяти (DMA), когда главный процессор (ЦП) формирует список команд . 2 содержал PlayStation Emotion Engine необычный DSP, , похожий на SIMD векторный блок способный работать в обоих режимах.
История
[ редактировать ]Чтобы наилучшим образом использовать время процессора мэйнфрейма , задачи ввода/вывода были делегированы отдельным системам, называемым 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-графику в компьютерных играх .
Интел
[ редактировать ]Оригинальный IBM PC включал разъем для сопроцессора Intel 8087 с плавающей запятой (он же FPU ), который был популярным вариантом для людей, использующих ПК для автоматизированного проектирования или математических вычислений. В этой архитектуре сопроцессор ускоряет арифметику с плавающей запятой примерно в пятьдесят раз. Например, пользователи, которые использовали ПК только для обработки текста, сэкономили на высокой стоимости сопроцессора, который не ускорил бы выполнение операций по манипулированию текстом.
8087 был тесно интегрирован с 8086/8088 с плавающей запятой, и реагировал на коды операций машинного кода вставленные в поток команд 8088. Процессор 8088 без 8087 не мог интерпретировать эти инструкции, требуя отдельных версий программ для систем с FPU и без FPU или, по крайней мере, теста во время выполнения для обнаружения FPU и выбора соответствующих функций математической библиотеки.
Еще одним сопроцессором для центрального процессора 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 год [update], выделенные графические процессоры ( 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 год [update]Различные компании разрабатывают сопроцессоры, направленные на ускорение искусственных нейронных сетей для зрения и других когнитивных задач (например, блоки обработки зрения , TrueNorth и Zeroth ), а по состоянию на 2018 год такие AI-чипы есть в смартфонах, например, от Apple, и нескольких телефонах Android. продавцы.
Другие сопроцессоры
[ редактировать ]- Архитектура MIPS поддерживает до четырех сопроцессоров, используемых для управления памятью, арифметики с плавающей запятой, и двух неопределенных сопроцессоров для других задач, таких как графические ускорители. [5]
- Используя FPGA (программируемые пользователем вентильные матрицы), можно создавать специальные сопроцессоры для ускорения конкретных задач обработки, таких как обработка цифровых сигналов (например , Zynq объединяет ядра ARM с FPGA на одном кристалле).
- Ускорители TLS/SSL , используемые на серверах ; такими ускорителями раньше были карты, но в наше время это инструкции для шифрования в основных процессорах.
- Некоторые многоядерные микросхемы можно запрограммировать так, что один из их процессоров является основным процессором, а другие процессоры поддерживают сопроцессоры.
- Китайский 128-ядерный сопроцессор PCI-e Matrix 2000 представляет собой запатентованный ускоритель, для работы которого требуется центральный процессор. Он использовался при модернизации суперкомпьютера Tianhe-2 с 17 792 узлами (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 ; и даже графические процессоры интегрированы в кристаллы процессоров. Тем не менее, специализированные устройства остаются популярными вне настольных компьютеров, а также для обеспечения дополнительной мощности и позволяют продолжать развитие независимо от основных линеек процессоров.
См. также
[ редактировать ]- Многопроцессорность — использование двух или более процессоров в одной компьютерной системе.
- Torrenza — инициатива по реализации поддержки сопроцессора для процессоров AMD.
- Фреймворк OpenCL для написания программ, которые выполняются на гетерогенных платформах.
- Асимметричная многопроцессорная обработка
- ИИ-ускоритель
Ссылки
[ редактировать ]- ^ Скотт Мюллер, Обновление и ремонт компьютеров , 15-е издание, Que Publishing, 2003 г. ISBN 0-7897-2974-1 , страницы 108–110.
- ^ Скотт Мюллер, Модернизация и ремонт компьютеров, второе издание , Que Publishing, 1992 г. ISBN 0-88022-856-3 , стр. 412-413
- ^ Уильям Форд, Уильям Р. Топп Язык ассемблера и системное программирование для семейства M68000 Jones & Bartlett Learning, 1992 г. ISBN 0-7637-0357-5, стр. 892 и далее.
- ^ «Intel предлагает новую архитектуру для обнаружения с помощью сопроцессоров Intel® Xeon Phi™» . Newsroom.intel.com. 12 ноября 2012 г. Архивировано из оригинала 3 июня 2013 г. Проверено 16 июня 2013 г.
- ^ Эрин Фаркуар, Филип Банс, Справочник программиста MIPS , Морган Кауфманн, 1994 г. ISBN 1-55860-297-6 , приложение А3, стр. 330
- ^ «Китайский Tianhe-2A будет использовать собственный ускоритель и иметь пиковую мощность 95 петафлопс» . hpcwire.com . 25 сентября 2017 г. Архивировано из оригинала 1 декабря 2020 г. Проверено 7 апреля 2018 г.