Мікроконтролери / мікропроцесори та різні бітові версії, в чому різниця?


20

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

Я використовую ATmega8 вже кілька місяців, і, здається, він чудово працює в моїх цілях. Я знаю, як такі речі, як тактова частота, пам’ять, кількість штифтів вводу-виводу, види шин зв'язку і т. Д., Відрізняють один мікроконтролер від іншого. Але я не зовсім розумію значення, скажімо, 8-бітного проти 16-бітного проти 32-бітного. Я розумію, що версія з більш високим розрядом дозволяє пристрою зберігати великі номери, але знову ж таки, як це впливає на моє рішення? Якщо я розробляю продукт, за гіпотетичним сценарієм я б вирішив, що 8-бітний процесор просто не буде робити, і мені потрібно щось вище.

Чи є підстави вважати, що теоретичний 32-розрядний варіант ATmega8 (всі інші рівні речі) був би кращим 8-бітній версії (якби такий пристрій був можливий)?

Я можу говорити дурниці, але, мабуть, це результат моєї плутанини.


Відповіді:


24

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

Сьогоднішні 32-бітні сердечники здебільшого перевершують 8-дизайни (гнучкість, модель плоскої пам’яті та, звичайно ж, продуктивність), основними винятками є застарілі системи, програми з надзвичайним обсягом та ціновим тиском (інакше ціноутворення краще співвідноситься з на розмір пам'яті чіпа, ніж при ширині ядра), і побічні ефекти процесу / щільності. Пізніші можуть забезпечити такі дії, як 5V операція, або, можливо, в деяких випадках більша випромінювальна твердість або простота, якщо спробувати довести, що сама конструкція процесора не має логічних помилок. Одним з остаточних ефектів, що мають значення для багатьох любителів, є те, що 8-бітні ядра в DIP-пакетах є загальними, тоді як 32-бітні пристрої в таких пакетах рідше (хоча вони існують).


3
Ширина, яку він може обробити за одну операцію, може бути важливою при синхронізації асинхронних частин програми. Якщо вам потрібно атомним чином прочитати 16-бітове значення на 8-бітовому мікро, вам, ймовірно, спочатку потрібно відключити переривання, яких, можливо, ви хочете уникнути, щоб час реакції ISR був низьким.
ndim

Ще одна особливість, де деякі 8-бітні мікросередовища можуть перевершувати ARM (найпопулярніша 32-розрядна архітектура) - це подвійне подвійне введення-виведення. PIC 18Fxx (8-бітний) може встановлювати або очищати будь-який біт у просторі вводу / виводу за допомогою однієї інструкції, незалежно від того, що містять будь-які регістри, тоді як ARM, як правило, вимагає багатоетапного процесу. ARM-чіпи можуть виконувати більше інструкцій в секунду, ніж доступні в даний час чіпи PIC (деякі невеликі мікросхеми, сумісні з PIC, що працюють в 100 МГц, раніше були доступні у Scenix, але я думаю, їх припинено), але навіть доступні PIC все ще можуть робити деякі види біт-ударів швидше.
supercat

1
Хоча менш універсальні, деякі пристрої ARM мають такі речі, як регістри GPIOx_BSRR / GPIOx_BRR, до яких можна записати, щоб встановити чи очистити окремі біти GPIO.
Кріс Страттон

8

Значення біта - це шина даних або розмір труби даних, тобто 8-бітний MCU може (здебільшого) працювати лише зі значеннями від 0 до 255 кожного тактового циклу. Подумайте про це, як у процесора паралельно 8 цифрових ліній. І 16-бітний має 16 рядків, а 32-розрядний має 32 рядки. Отже, для кожного тактового циклу він читає ці рядки даних, і чим більше рядків, тим вище значення, з яким можна працювати за тактовий цикл.

28256

21665,536

2324,294,967,296

Більша шина даних також дозволяє процесору отримати доступ до більшої адреси пам'яті.

Це робить велику різницю під час математичних операцій. 16-бітове число дає набагато більшу точність, ніж 8-бітні числа. 16-бітні мікроконтролери також ефективніші при обробці математичних операцій на числах, що перевищують 8 біт. 16-бітний мікроконтролер може автоматично працювати на двох 16-бітових числах, як звичайне визначення цілого числа. Але коли ви використовуєте 8-бітний мікроконтролер, процес не такий простий. Функції, реалізовані для роботи на таких номерах, займуть додаткові цикли. Залежно від інтенсивної обробки вашої програми та кількості обчислень, які ви робите, це може вплинути на продуктивність схеми.

Різниця між 8-бітовим та 16-бітним мікроконтролером

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