Чому порівняно простіші пристрої, такі як мікроконтролери, набагато повільніше, ніж процесори?


25

Враховуючи однакову кількість ступенів трубопроводу та однаковий вузол виготовлення (скажімо, 65 нм) та однакову напругу, прості пристрої повинні працювати швидше, ніж більш складні. Крім того, об'єднання декількох ступенів трубопроводу в одну не повинно сповільнюватися на коефіцієнт, ніж кількість етапів.

Тепер візьміть п'ятирічний процесор, який працює на 14 конвеєрах на 2,8 ГГц. Припустимо, один зливає етапи; це сповільниться до рівня нижче 200 МГц. Тепер збільшуйте напругу і зменшуйте кількість біт на слово; це фактично пришвидшило б справи.

Ось чому я не розумію, чому багато виробляються в даний час мікроконтролери, такі як AVL, працюють з аномальною швидкістю (наприклад, 20 МГц при 5 В), навіть якщо набагато складніші процесори, виготовлені років тому, здатні працювати на 150 разів швидше або на 10 разів швидше якщо згорнути всі стадії трубопроводу в один, на 1,2 V-ish. Згідно з найбільш грубими підрахунками зворотної конвертики, мікроконтролери, навіть якщо вони виготовлені за допомогою застарілої застарілої технології, повинні працювати принаймні в 10 разів швидше на одну чверть напруги, на яку вони подаються.

Таким чином, питання: які причини повільних тактових частот мікроконтролера?


8
Хороший шматок мікроконтролерів виробляється за бордовою застарілою технологією, оскільки платформа оплачується.
Метт Янг

18
Потужність. Коефіцієнт споживання енергії обох процесорів, і вони будуть досить близькими до однакової продуктивності / Вт, або мікро виграє.
Брайан Драммонд

34
Думка, що простіше == швидше, просто неправильна. Велика складність сучасного процесора cisc входить до його функцій, щоб зробити його швидшим, як багаторівневі кеші, трубопроводи та передбачення гілок
PlasmaHH

1
що старий процесор не працює від маленького акумулятора протягом місяців / років. використана ріжуча (читається: дорога) технологія за свій день. не довелося чекати на повільному / дешевому спалаху для кожної інструкції. рідко виникає необхідність у швидкому запуску mcu, вони можуть взяти якийсь новий verilog заради розробників та застосувати його на будь-якому ливарному виробництві. Мені подобається, що велосипед проти формули 1 автомобіль коментує найкраще, я думаю, що це підсумовує.
old_timer

14
20 МГц зовсім не повільно. Нас просто балують швидкості ГГц для ПК, де більшість ресурсів використовується для візуалізації фантазійної графіки. Ви можете летіти на Місяць за допомогою процесора Кілогерц ...
vs

Відповіді:


66

Є й інші фактори, які сприяють швидкості.

  • Пам'ять: фактична продуктивність часто обмежена затримкою пам’яті. Процесори Intel мають великі кеші, щоб компенсувати це. Мікроконтролери зазвичай цього не роблять. Флеш-пам'ять набагато повільніше, ніж DRAM.

  • Споживання електроенергії: це часто велика справа у вбудованих додатках. Фактично 200 МГц процесори Intel споживають більше 10 Вт (часто набагато більше), і потрібен був великий тепловідвід і вентилятор. Це займає простір та гроші, і це навіть не рахуючи зовнішньої логіки та пам’яті, які йшли разом із цим. 20 МГц AVR займає близько 0,2 Вт, яка включає в себе всі , що вам потрібно. Це також пов’язано з процесом - швидші транзистори, як правило, більш протікають.

  • Умови роботи: Як в коментарі зазначає Дмитро, багато мікроконтролерів можуть працювати в широкому діапазоні напруги та температури. Цей ATMega, про який я згадував, працює від -40 ° C до 85 ° C і може зберігатися при будь-якій температурі від -65 ° C до 150 ° C. (Інші MCU працюють до 125C або навіть 155C.) Напруга VCC може бути будь-яким від 2,7 до 5,5 В (5 В +/- 10% для пікової продуктивності). Ця таблиця даних Core i7 важко читати, оскільки вони обробляють дозволений VCC під час виготовлення, але напруга та температурні допуски, безумовно, вужчі - ~ 3% допуску напруги та максимальна температура з'єднання 105C. (5C мінімум, але коли ви тягнете> 100 ампер, мінімальна температура насправді не є проблемою.)

  • Кількість воріт: Простіше не завжди швидше. Якби це було, Intel не потребував би архітекторів процесора! Це не просто трубопровід; вам також потрібні такі речі, як високоефективний FPU. Це піднімає ціну. З цієї причини багато MCU-модулів низького класу мають цілі процесори.

  • Бюджет площі загибелі: мікроконтролерам належить вкласти багато функціональних можливостей в одну матрицю, яка часто включає всю пам'ять, яка використовується для програми. (SRAM та надійний спалах NOR досить великі.) Процесорні ПК розмовляють із нечиповою пам'яттю та периферійними пристроями.

  • Процес: ці 5В AVR виготовлені за стародавнім процесом з низькими витратами. Пам'ятайте, вони були розроблені з нуля, щоб бути дешевим. Intel продає споживчі товари з високою націнкою, використовуючи найкращі гроші, які можна придбати за технології. Intel також продає чистий CMOS. Процеси MCU повинні виробляти флеш-пам'ять на мікросхемі, що складніше.

Багато з перерахованих вище факторів пов'язані між собою.

Ви можете придбати мікроконтролери 200 МГц сьогодні ( ось приклад ). Звичайно, вони коштують у десять разів дорожче, ніж ті 20 МГц ATMegas ...

Коротка версія полягає в тому, що швидкість складніша за простоту, а дешеві продукти оптимізовані під дешевизну, а не на швидкість.


11
Не забувайте про надійність: типовий процесор вийде з ладу, якщо напруга живлення зміниться більше ніж на 5%, а ATMega працює з будь-якого діапазону 1,8-5,5 В на частоті 4 МГц.
Дмитро Григор’єв

1
@DmitryGrigoryev Добрий момент! Я оновив свою відповідь.
Адам Хан

25

Основною технічною причиною низьких швидкостей є те, що дешеві / малі MCU використовують лише флеш-пам'ять на мікросхемі для зберігання програми (тобто вони не виконуються з ОЗУ).

Малі MCU, як правило, не кешують програмну пам’ять, тому їм завжди потрібно читати інструкцію із спалаху, перш ніж виконувати її, кожен цикл. Це дає детерміновану продуктивність та # цикли / операцію, просто дешевша / простіша і уникає проблем, подібних до ПК, де код і дані змішуються, створюючи новий набір загроз від переповнення буфера тощо.

Затримка зчитування з флеш-пам’яті (порядку 50-100сн) набагато повільніше, ніж читання з SRAM або DRAM (порядку 10ns або нижче), і затримка повинна виникати кожен цикл, обмежуючи тактову частоту частина.


4
Також потужність (і, отже, тепло) збільшується більш ніж лінійно з частотою.
Кімберлі Ш

1
Я не думаю, що читання з спалаху знаходиться десь близько 100 нс, чи не так? IIRC - це на два порядки більше. Однак якщо ваш флеш-контролер містить невеликий кеш-пам'ять DRAM, а код не надто гіллястий, частота показів кешу може бути дуже високою (90% +), тому середня затримка може бути значно нижчою.
MSalters

2
Ця таблиця даних AT91SAM7S, яку я відкрив, говорить про свій внутрішній спалах "Швидкий час доступу, одноциклічний доступ 30 МГц в гірших випадках" для його внутрішньої спалаху. Це 33нс. І в ньому є один буфер буфера попереднього вибору. Flash-вмикач, який не вмирає, дійсно може мати більшу затримку.
pjc50

1
@Jamil Я не пам'ятаю точної формули, але я вважаю, що це квадрат частоти.
Ян Дорняк

22

Чому люди їздять на велосипеді чи малому мотоциклі, коли у вас є автомобіль Формули-1? Напевно, треба краще проїхати, скажімо, 300 км / год і дістатися скрізь миттєво?

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

З іншого боку, вони мають інші важливі можливості, наприклад, низьке енергоспоживання, вони набагато простіші у програмі тощо. В основному вони не є процесорами і роблять різні речі.


12
@Michael Звідки ти ідея проста = швидка?
Метт Янг

3
@Michael Велосипед набагато простіше, ніж автомобіль, але все ж повільніше. У будь-якому випадку Метт правий. Щось просте - це не швидко. Тобто щось швидке буде складним, лише через міркування, необхідні для підвищення частоти.
AndrejaKo

2
Високопродуктивні процесори CISC, як правило, видають більше інструкцій, ніж прості вбудовані процесори. Паралельно вони роблять набагато більше роботи, тому вони і складніші, і швидші.
Kimberly W

2
@Michael $ 1 може бути дорого дорогим для деяких додатків, я читав, що мікроконтролери на мікро SD картах коштують близько 19 центів
Xen2050

2
@Michael "у цьому вся ідея архітектури RISC: прості завдання можна впоратися швидше, ніж складні" Ні! Сучасні архітектури RISC надзвичайно складні, оскільки їм доводиться вводити більше інструкцій (наприклад, SIMD) та підтримувати більше таких функцій, як надскалярний, гіперреагування, виконання поза замовленням ... Їх складність може легко перевищити архітектури CISC. У наші дні MIPS має сотні чи тисячі інструкцій. "CISC v RISC - це багато в чому історична дискусія"
phuclv

13

Є безліч контролерів ARM, які працюють на сотнях МГц і більше. Кому потрібен ПІК частотою 500 МГц і готовий платити достатньо за частину, щоб виправдати маски мільйонів доларів за наближення до найсучаснішого процесу?

Як повідомляється, популярний ATmega328 зроблений за технологією 350 нм, що значно відстає від останнього виробничого процесора Intel (14 нм для Skylake ).

Навіть найефективніші 8-бітові контролери повільно зростають у швидкості, і ви можете отримати контролери PIC 32 та 64 МГц (наприклад, PIC18F14K22), які все ще працюють на 5 В (останнє - це врахування загальної вартості системи).

Одне врахування полягає в тому, що ці контролери мають архітектуру, оптимізовану для малих просторів пам'яті та повільної тактової швидкості. Після того, як ви почнете отримувати високі тактові швидкості, вам доведеться перенаправляти речі за допомогою дошкільників тощо.

Знову (наприкінці 1990-х років) була спроба створити дуже швидкі PIC-подібні контролери з думкою, що мікропрограмне забезпечення може замінити периферійні пристрої, якщо мікроконтролер буде досить швидким. Наприклад, ви можете покусати UART. Я не думаю, що всі вони були комерційно успішними - Scenix-> Ubicom-> Qualcomm (гра закінчена).


350 нм? Це пояснило б це. Не знав, що хтось буде виготовляти щось, використовуючи 20-річну технологію.
Майкл

3
Деякі з нас досі розробляють CMOS (не просто використовуючи) 4000 серії, що є чимось на зразок 3000 нм.
Spehro Pefhany

6
Старіші процеси також можуть бути корисними для людей, що мають справу з радіаційним середовищем, або високонадійними системами, які вимагають відстеження.
Krunal Desai

5
Гра не закінчена - гвинт Parallax - це продовження цієї концепції.
Трейд Дейв

3
@Michael: Це не лише вік технології. Величина також має значення. Більший розмір процесу має менші коефіцієнти дефектів, що означає менші відхилення та, таким чином, більш високий вихід - що призводить до зниження вартості на мікросхему. Якщо ви готові заплатити 100 доларів за центральний процесор (наприклад, настільні комп’ютери), то вища вартість через меншу врожайність виправдана. Якщо ви готові платити лише 50 центів, то це не виправдано.
slebetman

3

Уявіть, що хочеться виробляти автомобілі. Одним із підходів було б використовувати купу одиниць обладнання на фабриці послідовно, будуючи по одній машині за один раз. Такий підхід можна здійснити зі скромною кількістю помірно складного обладнання, таку кількість одиниць обладнання можна використовувати для виконання більш ніж одного кроку. З іншого боку, значна частина обладнання на фабриці все ще сиділа без роботи велику частину часу.

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

Для таких речей, як DSP або GPU, можна досягти дуже високих швидкостей порівняно дешево, оскільки характер роботи, що виконується, є дуже послідовним. На жаль, багатьом процесорам потрібно вміти обробляти довільну помилку інструкцій різної складності. Це ефективно можливо, але це вимагає дуже складної логіки планування. У багатьох сучасних процесорах логіка, необхідна для "роботи", не є надто складною або дорогою, але логіка, необхідна для узгодження всього іншого, є.


2
Вибачте, якщо я пропустив це, але яке значення має це для процесорів проти "повільніших" мікроконтролерів? Схоже, це зосереджено лише на процесорах проти (як правило, навіть швидших) спеціалізованих процесорів.
підкреслюй_d

1
@underscore_d: Перший параграф стосується найпростіших мікроконтролерів - вони схожі на маленький магазин, який створює одну машину за один раз. У другому параграфі зазначається, що є деякі дешеві контролери, які можуть виконувати безліч операцій дуже швидко, але обмежені типом операцій, які вони можуть робити. Що важко - це можливість виконувати довільну суміш операцій, перекриваючи їх на значну (але дуже мінливу) ступінь. Якщо у вас є підсистема, яка на кожному циклі може прийняти два числа і виведе добуток з двох чисел, які були подані чотири цикли тому, і ...
supercat

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

Спасибі; що очищає це. Так, має сенс, що швидкі процесори загального призначення несуть більшу частину своїх витрат, як фінансових, так і енергетичних, на "будівельних лісах" - конвеєрному, кеш-пам’яті, плануванні, керуванні оперативною пам’яттю тощо. для мікро. Так само мене ніколи не перестає дивувати, що можна зробити з відносно крихітною тактовою частотою в процесорі, спеціально підібраному для одного додатку. Захоплюючі речі з обох сторін!
підкреслюй_d

@underscore_d: Архітектура MIPS була розроблена з урахуванням того, що компілятори будуть відповідати за деякі проблеми планування, таким чином дозволяючи спростити обладнання. Я думаю, що ця концепція ніколи насправді не сприймала, тому що новіші процесори часто вимагають більше конвеєрних стадій, ніж старіші, але код, написаний для процесора з більш короткими конвеєрами, не буде працювати на процесорі з більш довгими за відсутності апаратних блокувань.
supercat
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.