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 и Weitek FPU, рассматривались как периферийные устройства, в то время как другие, такие как 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 , а также Holographic Processing Unit для Microsoft HoloLens .

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

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

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

Тенденции

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

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

Ссылки

  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 Jones & Bartlett Learning, 1992 ISBN 0-7637-0357-5 стр. 892 и далее. 
  4. ^ "Intel представляет новую архитектуру для Discovery с сопроцессорами 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 г. Архивировано из оригинала 1 декабря 2020 г. Получено 7 апреля 2018 г.