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


9

Актуальне запитання - наприкінці. Але одне лише читання може не показати вам, чому я плутаюся. Я написав цю публікацію, починаючи з деяких визначень, припущень та міркувань, а потім задаючи власне питання.

Я завжди думаю, що я знаю різницю, але коли у мене виникає запитання на кшталт: "Якщо я поставлю приймач з UC, це зараз SoC?" Я все підскочив і не знаю, як відповісти. Пригадую, одного разу мені сказали, що UC по суті є SoC . Але який я маю доказ? Але ардуїно не на жодному чіпі! Я можу будь-коли вийняти процесор Atmeg з "плати"!

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

Тому я вирішив шукати фундаментальне значення цих трьох термінів: uC, SoC та DSP. Тому що, наприклад, коли я плутаю напругу в ланцюгах, я завжди повертаюся до основ фізики, земля насправді не дорівнює нулю, це просто "еталон", а напруги не "абсолютні", вони "родичі". Це завжди вказує на мене в правильному напрямку. Але немає жодної основи звертатися, коли говорити про UC. "мікро" "контролер" - це контролер настільки малий, що знаходиться в масштабі мікролітра. Але у нас немає терміну наноконтролера, чи не так? Тож такий спосіб мислення не допоможе.

На що я намагаюся відповісти:

  • uC - це процесорний блок з іншими периферійними пристроями і пам'ять з ним для загального використання, правда?
  • SoC - це повна "система" на "чіпі". Отже, яка б система ви не поставили на один чіп, це SoC, правда?
  • DSP - це одиниця обробки для конкретного використання, в основному математичні операції, правда?

    Тепер

  • Чи означає це, що всі, що знаходяться в ОК, всі вони повинні бути в одному чіпі? тому що якщо так, то насправді uC є SoC. Можливо, маленький, але це так. Як щодо ардуїно. Можливо, uC "може" бути SoC, якщо він знаходиться на одній мікросхемі, але це не обов'язково (я широко використовую ардуїно як приклад тут).

  • Отже, ардуїно - це UC, якщо я беру всі його компоненти і кладу їх на іншу дошку, і я додаю XBEE до суміші, наприклад. Це все-таки uC, правда? То коли ми говоримо, що зараз це SoC? Тільки коли одні й ті ж речі розміщуються в одному чіпі, а не збираються в дошку?

До цього часу я думаю, що вищезазначені питання якось відповідають самі собі, але я просто хочу підтвердити, щоб я міг рухатись далі. Коли я намагаюся думати "принципово", чіп або плата "можуть" бути однаковими, це просто дроти, що з'єднують різні компоненти. і в цей момент, що ви визначаєте компонент? Це одиночний транзистор або схема, схожа на АЦП? Але я не хочу туди їхати.

Наступне питання - про що насправді йдеться у цій публікації:

  • Чи є UC по суті SoC? Особливий випадок SoC, однією з його вимог є те, що вся система використовується для загального призначення.
  • uC є загальним призначенням (за даними Інтернету), а DSP полягає в основному для математичного оброблення сигналів, зібраних з реального світу. Але DSP все ще є "процесором", а uC містить "процесор". Чи можу я просто поставити DSP з купою або периферійними пристроями (скажімо, АЦП та ЦАП, оскільки вони зазвичай використовуються з ним) і називати суміш UC? або це SoC (оскільки тепер суміш не є загальним призначенням, і тому ми не можемо назвати це UC, але це все-таки SoC)

Не важливо, як ви це називаєте, "троянда за будь-яким іншим ім'ям пахла б як солодка!" SoC - термін продажу, "інші люди продають вам деталі, але ми продаємо вам всю систему" - це те, що це означає. uC, як, наприклад, пам'ять uP +, а часто і АЦП. DSP оптимізовано для, як ви вважаєте, DSP, і незмінно має апаратний множник, але часто в ці дні програмна пам'ять, а іноді і АЦП / ЦАП, майже SoC. Але значною мірою більшість із них можна було б охарактеризувати як інші. Не потійте, звичайно, не б’йте людей над цим.
Neil_UK

2
Я знаю, що широко застосовується u, і немає жодної реальної проблеми з його використанням, але якщо ви хочете коли-небудь створити µ, натиснувши AltGr + Mабо ⌘ + Mслід виконати трюк.
Чарівний дим

1
"мікро" - історичний багаж; "мікро" контролер походить від "мікро" комп'ютера, який відрізняється від "міні" комп'ютерів розміром з холодильником і "" комп'ютерів, які займають цілі приміщення.
користувач253751

Відповіді:


11

uC = окрема мікросхема обробки: процесор, оперативна пам’ять, ROM, деякі периферійні пристрої.

DSP = мікросхема процесора (може бути окремим процесором, на сьогоднішній день здебільшого uC), оптимізована для обробки сигналів. Часто має швидкий MAC (множиться-накопичувати), насичує математику та кілька інтерфейсів пам'яті. Щоб отримати максимальну користь від цього, вам часто потрібно глибоко усвідомлювати його особливості, як, наприклад, який доступ до пам'яті можна зробити одночасно. (Отже, часто використовується з налагодженими збірними бібліотеками, наданими виробником.) Часто не застосовується для використання з великими пам’яттю (часто достатньо 16-бітної шини адреси).

SOC = процесорний чіп (здебільшого процесор, можливо, з деякою оперативною пам’яттю для кешування), який включає в себе периферійні пристрої, які раніше знаходилися за межами основного процесорного чіпа. Це за визначенням рухома ціль: функції в сьогоднішніх спеціалізованих СОЦ можна знайти в завтрашніх основних мережах. Нинішні SOC здебільшого призначені для роботи ОС на рівні Linux, і містять більшість речей, які знадобляться вам у такій системі, за винятком оперативної пам’яті та ПЗУ (хоча деякі ПЗУ часто включені, часто для читання зовнішнього FLASH).

Приклади периферійних пристроїв, які часто зустрічаються в сучасних СОЦ (але знаходяться в інтерфейсі!): Порти Ethernet, тканина комутації Ethernet, USB в т.ч. хост і OTG, графічні двигуни (и), декодування mpeg, криптовалюта, інтерфейси оперативної пам’яті та FLASH.

Arduino - продукт на рівні плати, тому він за визначенням не є uC, DSP або SOC, хоча може містити його. Основний Uno містить UC.

UC не є SOC (хоча можуть бути і кордонні випадки): uC є автономним, і (на сучасному рівні технології) не призначений для запуску ОС Linux-рівня. SOC не є окремим (потребує оперативної пам’яті та ПЗУ).

Межі не на 100%, а з часом зміщуються. Інтерфейси De CPU та пам'яті більшості поточних процесорів легко перевершують вчорашні DSP, навіть на їхній ділянці. Але сьогоднішні DSP є швидшими та / або дешевшими або меншими за потужність, ніж більш загальні процесори-purpsoe при обробці сигналу. Це гонка між виробниками зробити найпривабливіший чіп, використовуючи новітні технології та попит. На даний момент це призвело до появи вищезгаданих 3 сладких плям (плюс мікропроцесори загального призначення), але це з часом зміниться (DSP менш популярні, ніж 10 років тому, IMO, оскільки пропускна здатність рівня аудіо зараз легко досягається CPU загального призначення).

Конкретний тип мікросхем, який стає все більш поширеним в ці дні, - це UC (або SOC) з деяким бездротовим інтерфейсом. Перевірте ESP8266 та ESP32 на приклади WiFi та RN2483 на LoraWan.


2

UC та DSP мають досить прямого визначення.

UC - це процесорне ядро, яке має внутрішню пам'ять (летюча та нелетуча). Це порівняно з мікропроцесором, який, як правило, має деяку мінливу пам'ять всередині, але не енергонезалежну.

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

SoC - це скоріше маркетинговий термін. SoC - це термін, який вони намагаються використовувати, коли UC має достатньо функціональних можливостей, щоб зробити єдине чи близьке рішення для одного чіпа. Термін SoC, як правило, зустрічається тоді, коли в Інтернеті є інтегрована обробка графіки та графічних драйверів на борту. Подумайте про фішки ARM у стільникових телефонах. Вони містять графіку.


Так ви говорите, що DSP також містить ADC, наприклад?
himura

@himura uC мають АЦП, але DSP мають дуже хороші АЦП. Наприклад, Arduino здатний до 10 кГц частоти дискретизації при 10 бітах. DsPIC33, який є DSP, здатний до частоти дискретизації 1,1 МГц при 10 бітах. Це на два порядки швидше.
vini_i

Я думав, що DSP - це просто процесорний блок без будь-яких можливостей АЦП. Але зараз це здається більш повною системою. Спасибі
himura

1
Я думаю, що ця відповідь неправильна. Існує безліч мікросхем DSP, у яких немає перетворювачів. Основна відмінність DSP від ​​CPU загального призначення - це архітектура пам'яті. DSP мають декілька пам'яті, до яких можна отримати доступ паралельно. Дивіться en.wikipedia.org/wiki/Harvard_architecture
Гільмар

@Hilmar, чи можете ви надати деякі посилання DSP без перетворювачів? Мені подобається цей момент
himura

0

Те, що ми називаємо SOC, як правило, має набагато більш потужне процесорне ядро, ніж у UC. Зазвичай ви можете знайти ядро ​​ARM там. Майже всі «великі» ARM-процесори, як і серія Cortex A, що випускаються сьогодні, - це фактично СОЦ. Для роботи таких великих ОС, як Linux, вам потрібно багато оперативної пам’яті, тому у SOC є зовнішній контролер оперативної пам’яті, що підтримує сучасні мікросхеми SDRAM. Невелика кількість вбудованої статичної оперативної пам’яті, що використовується лише на фазі завантаження для запуску завантажувача та ініціалізації периферійних пристроїв та контролера SDRAM.

ЦК зазвичай є повноцінними рішеннями "все в одному" із вбудованою статичною ОЗП (досить невелика кількість). Невелика оперативна пам’ять та відсутність MMU заважає використовувати великі ОС на них. Сьогодні більшість UC мають 8 або 32-бітове ядро. 16-бітні UC, які використовуються лише в застарілих програмах. Епоха 32-бітного uSc почалася з ядер серії ARM M. Ці ядра розроблені спеціально для UC і мають дуже мало спільного з великими ARM, крім набору інструкцій (ARM M використовує інструкції THUMB, підмножину набору інструкцій ARM).

Термін DSP стосується основної архітектури. DSP мають більше одного ALU і мають так звані набори інструкцій VLIW (дуже довге слово інструкції). Інструкція VLIW складається з ряду підінструкцій (близько 4), спрямованих на різні підсистеми процесора. Наприклад, така довга інструкція може містити інструкцію попереднього вибору даних з пам'яті, інструкцію множення до спеціалізованого множника-АЛУ та арифметичну інструкцію до АЛУ загального призначення.

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

Сучасні ядра процесора зазвичай мають своєрідне „розширення DSP” у вигляді векторних інструкцій (ви можете виконувати ту саму арифметичну операцію на ряді, приблизно 8, оперантів). Це щось інше, ніж інструкції DSPs VLIW.


"Практично всі процесори ARM, що випускаються сьогодні, є насправді СОК"? чи вважаєте ви мікросхеми Cortex-M0, як SOC LPC810 ??
Wouter van Ooijen

Я окремо згадував серії Cortex M, коли говорив про UC. Очевидно, що Cortex M є ОК.
e_asphyx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.