Акселератор против сопроцессора в SoC или APU: различия и сходства

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

Ускоритель против сопроцессора в SoC или APU

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

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

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

Что такое сопроцессор?

Копроцессор x87

Хотя означающее самоочевидно, важно помнить, что если у нас есть несколько ядер, работающих вместе для решения одной и той же проблемы, общей для распределенных частей, то мы говорим о каждой из единиц процесса, действующих совместно с другими. . И да, мы знаем, что пришло вам в голову, но когда у нас есть несколько ядер ЦП, решающих конкретную проблему, мы говорим о тех, которые не выполняют основной процесс, действуют как сопроцессоры других.

Поддерживающие микросхемы традиционно назывались сопроцессорами, хотя самым известным сопроцессором в истории ПК является математический сопроцессор, который был не чем иным, как тем, что позже стало блоком с плавающей запятой или FPU, который был полностью отделен от основного процессора. Таким образом, в сопроцессоре обычно отсутствует процесс для захвата инструкций из памяти, а скорее требуется другой процессор для отправки инструкций и данных для обработки. Работа сопроцессора? Решите эту часть программы и как можно быстрее верните результат главному процессору.

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

Что такое ускоритель?

Оборудование Acelerador

Технически ускоритель - это сопроцессор, но с большей независимостью, чем они, поскольку они не отвечают за выполнение процесса в целом, а им назначают весь процесс, который полностью игнорируется ЦП, кроме как для получения конечного результата или для того, чтобы знать что задача выполнена.

Поскольку ускоритель полностью отделен от процессора, он полностью асинхронен с ним. Что мы имеем в виду? Дело в том, что ускоритель в отличие от сопроцессора не работает в сочетании с основным процессором системы. Это позволяет ускорить выполнение вашей части кода, что означает выполнение его с гораздо большей скоростью и, следовательно, за меньшее время. Конечно, это требует серьезных изменений в архитектуре.

Прежде всего, сопроцессор может совместно использовать части блока управления и даже регистры или доступ к общей памяти с ЦП. Когда все эти элементы являются общими, они могут создавать перегрузку при доступе к ним, в результате чего тот или иной блок будет остановлен в ожидании использования этих ресурсов. Как вы понимаете, этого не может произойти в ускорителе, поэтому его данные и инструкции, несмотря на то, что они предоставляются процессором, предназначены для того, чтобы быть доступными вам в 100% случаев, поэтому многие ускорители представляют собой законченные процессоры, у которых есть свои собственные локальные Оперативная память внутри.

Если ускоритель лучше, зачем сопроцессор?

Альтернативный портативный процессор

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

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

Примером являются тензорные ядра и NVIDIAоба блока NVDLA служат одной и той же цели, но в то время как первый является сопроцессором в блоке шейдера, который разделяет регистры и блок управления с остальной частью GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР шейдерный блок, в случае второго - это сам процессор. Неудивительно, что аббревиатура DLA означает Deep Learning Accelerator.