что на самом деле: микроконтроллер (uC), система на чипе (SoC) и процессор цифровых сигналов (DSP)?

9

Актуальный вопрос в конце. Но чтение этого само по себе может не показать вам, почему я запутался. Я написал этот пост, начав с некоторых определений, предположений и предположений, а затем задав реальный вопрос.

Я всегда думаю, что знаю разницу, но когда у меня возникает вопрос: «Если я поставлю трансивер с UC, это теперь SoC?» Я все перепутал и не знаю, как ответить. Я помню, как однажды мне сказали, что ОК по сути является SoC . Но какие у меня есть доказательства? Но Arduino не на одном чипе! Я могу снять процессор Atmeg с «платы» в любое время!

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

Поэтому я решил поискать фундаментальное значение этих трех терминов: uC, SoC и DSP. Потому что, например, когда я запутываюсь в напряжениях в цепях, я всегда возвращаюсь к основам физики, земля на самом деле не равна нулю, это просто «эталон», а напряжения не «абсолютны», они «родственники». Это всегда указывает мне правильное направление. Но нет никаких оснований, чтобы говорить о ОК. «Микро» «Контроллер» - это контроллер настолько мал, что он находится в масштабе микрометров. Но у нас нет термина наноконтроллер, не так ли? Так что такой способ мышления не поможет.

Я пытаюсь ответить на следующие вопросы:

  • ОК - это процессор с другими периферийными устройствами и памятью для общего пользования, верно?
  • SoC - это полная «система» на «чипе». Итак, какая бы система вы ни ставили на один чип, это SoC, верно?
  • DSP - это блок обработки данных для специального использования, в основном математических операций, верно?

    Сейчас же

  • Означает ли это, что все в ОК все они должны быть в одном чипе? потому что если да, то UC на самом деле является SoC. Может быть маленький, но это так. Как насчет Arduino. Вероятно, uC «может» быть SoC, если он находится на одном чипе, но не обязан (в качестве примера я в основном использую arduino).

  • Таким образом, arduino - это ОК, если я возьму все его компоненты и вставлю их в другую плату и добавлю, например, XBEE к миксу. Это все еще ОК, верно? Итак, когда мы говорим, что теперь это SoC? Только когда один и тот же материал помещается в один чип, а не собирается в плату?

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

Следующий вопрос - о чем этот пост на самом деле:

  • UC по сути является SoC? Особый случай SoC, одним из требований которого является то, что вся система предназначена для общего пользования.
  • ОК является универсальным (по данным интернета), а ЦОС в основном предназначен для математической обработки сигналов, собираемых в реальном мире. Но DSP по-прежнему является «процессором», а УК содержит «процессор». Могу ли я просто поставить DSP с кучей или периферийными устройствами (скажем, АЦП и ЦАП, так как они обычно используются с ним) и назвать микширование ОК? или это SoC (так как теперь микс не является универсальным, и поэтому мы не можем назвать его uC, но это все еще SoC)
Himura
источник
Неважно, как вы это называете: «роза под любым другим названием будет пахнуть так же сладко!» SoC - это термин продажи, «другие люди продают вам запчасти, а мы продаем вам всю систему» ​​- вот что он подразумевает. ОК обычно похож на память uP + и часто на АЦП. DSP оптимизирован для, как вы считаете, DSP, и всегда имеет аппаратный множитель, но часто в наши дни память программ, а иногда и АЦП / ЦАП, почти как SoC. Но в значительной степени большинство из них можно назвать другими. Не парься, конечно, не бей людей по этому поводу.
Neil_UK
2
Я знаю, что общепринятым является использование u, и нет никакой реальной проблемы с его использованием, но если вы когда-нибудь захотите создать µ, нажав AltGr + Mили ⌘ + Mсделайте свое дело.
Волшебный дым
1
«микро» - исторический багаж; «Микро» контроллер происходит от «микро» компьютера, который отличается от «мини» компьютеров размером с холодильник и «» компьютеров, занимающих целые комнаты.
user253751 30.10.16

Ответы:

11

UC = автономный чип обработки: процессор, оперативная память, ROM, некоторые периферийные устройства.

DSP = процессорная микросхема (может быть отдельным процессором, в настоящее время в основном это uC), который оптимизирован для обработки сигналов. Часто имеет быстрый MAC (многократное накопление), насыщающую математику и несколько интерфейсов памяти. Чтобы получить максимальную отдачу от этого, вам часто нужно глубоко осознавать его особенности, например, какой вид доступа к памяти может быть сделан в одно и то же время. (Следовательно, часто используется с тонко настроенными библиотеками сборок, предоставленными производителем.) Часто используется для больших объемов памяти (часто достаточно 16-битной адресной шины).

SOC = процессорная микросхема (в основном ЦП, возможно, с некоторым объемом оперативной памяти для кэширования), которая включает в себя периферийные устройства, которые раньше находились вне основной микросхемы процессора. Это по определению движущаяся цель: функции в современных специализированных SOC можно найти в будущих чипах. Текущие SOC в основном предназначены для запуска ОС уровня Linux и содержат большинство вещей, которые вам понадобятся в такой системе, за исключением ОЗУ и ПЗУ (хотя некоторые ПЗУ часто включены, часто для чтения внешней флэш-памяти).

Примеры периферийных устройств, которые распространены в современных SOC (но находят свой путь в UC!): Порты Ethernet, коммутационная матрица Ethernet, USB вкл. host & OTG, графический движок (ы), mpeg-декодирование, крипто-движок, RAM и FLASH интерфейсы.

Arduino - это продукт уровня платы, поэтому он по определению не является uC, DSP или SOC, хотя может содержать его. Основной Uno содержит ОК.

UC - это не SOC (хотя могут быть пограничные случаи): UC является автономным и (на современном уровне технологий) не предназначен для запуска ОС уровня Linux. SOC не является автономным (требуется RAM и ROM).

Границы не на 100%, а смещаются со временем. Интерфейсы De CPU и памяти большинства современных CPU легко превосходят DSP вчерашнего дня, даже если они находятся на своем месте. Но современные DSP быстрее и / или дешевле или требуют меньше энергии, чем процессоры общего назначения при обработке сигналов. Это гонка между производителями, чтобы сделать наиболее привлекательный чип с использованием новейших технологий и спроса. На данный момент это привело к вышеуказанным 3 положительным моментам (плюс микропроцессоры общего назначения), но это будет со временем меняться (ЦСП менее популярны, чем 10 лет назад, IMO, поскольку пропускная способность аудио уровня легко достигается за счет универсальный процессор).

Особый тип чипа, который становится все более распространенным в наши дни, это UC (или SOC) с некоторым беспроводным интерфейсом. Проверьте ESP8266 и ESP32 для примеров WiFi, и RN2483 для LoraWan.

Воутер ван Оойен
источник
2

UC и DSP имеют довольно прямое определение.

ОК представляет собой ядро ​​обработки, в котором внутренняя память (энергозависимая и энергонезависимая) встроена. Это по сравнению с микропроцессором, который обычно имеет некоторую энергозависимую память внутри, но не энергонезависимую.

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

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

vini_i
источник
Так вы говорите, что DSP также содержит АЦП, например?
химура
@himura UC имеют АЦП, но DSP имеют действительно хорошие АЦП. Например, Arduino поддерживает частоту дискретизации до 10 кГц при 10 битах. DsPIC33, который является DSP, способен с частотой дискретизации 1,1 МГц на 10 бит. Это на два порядка быстрее.
vini_i
Я думал, что DSP - это просто процессор без каких-либо возможностей АЦП. Но сейчас это больше похоже на законченную систему. Спасибо
himura
1
Я думаю, что этот ответ неверен. Существует множество DSP-чипов, у которых нет преобразователей. Основное различие между ЦСП и ЦП общего назначения заключается в архитектуре памяти. DSP имеют несколько запоминающих устройств, к которым можно обращаться параллельно. См. En.wikipedia.org/wiki/Harvard_architecture
Хильмар
@Hilmar, не могли бы вы предоставить некоторые ссылки на DSP без конвертеров? Мне нравится этот момент
химура
0

То, что мы называем SOC, обычно имеет гораздо более мощное процессорное ядро, чем uC. Обычно вы можете найти ядро ​​ARM там. Почти все "большие" ARM-процессоры, такие как серия Cortex A, производимые сегодня, на самом деле являются SOC. Для запуска больших ОС, таких как Linux, вам нужно много оперативной памяти, поэтому у SOC есть внешний контроллер RAM, поддерживающий современные чипы SDRAM. Небольшой объем встроенной статической памяти используется только на этапе загрузки для запуска загрузчика и инициализации периферийных устройств и контроллера SDRAM.

ОК обычно представляют собой комплексные решения «все в одном» со встроенным статическим ОЗУ (довольно небольшое количество). Небольшая оперативная память и отсутствие MMU не позволяют использовать на них большие ОС. Сегодня большинство СК имеют 8-битное или 32-битное ядро. 16-битные ОК используются только в устаревших приложениях. Эра 32-битных uSc началась с ядер ARM серии M. Эти ядра предназначены специально для UC и имеют очень мало общего с большими ARM, за исключением набора инструкций (ARM M использует инструкции THUMB, подмножество набора инструкций ARM).

Термин DSP относится к базовой архитектуре. DSP имеют более одного ALU и имеют так называемые наборы команд VLIW (очень длинное командное слово). Инструкция VLIW состоит из ряда подинструкций (около 4), предназначенных для разных подсистем ЦП. Например, такая длинная инструкция может содержать инструкцию для предварительной выборки данных из памяти, инструкцию умножения для специализированного множителя ALU и арифметическую инструкцию для ALU общего назначения.

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

Современные ядра ЦП обычно имеют своего рода «расширения DSP» в виде векторных инструкций (вы можете выполнять одну и ту же арифметическую операцию с числом оперантов, около 8). Это нечто отличное от инструкций DLs VLIW.

e_asphyx
источник
«Почти все процессоры ARM, производимые сегодня, на самом деле являются SOC»? Считаете ли вы чипы Cortex-M0 как SOCC LPC810 ??
Wouter van Ooijen
Я упомянул серию Cortex M отдельно, когда говорил о ОК. Кора M - это, очевидно, ОК.
e_asphyx