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


20

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

Я использую ATmega8 в течение нескольких месяцев, и он, кажется, отлично работает для моих целей. Я знаю, как такие вещи, как тактовая частота, память, количество выводов ввода-вывода, типы коммуникационных шин и т. Д., Отличают один микроконтроллер от другого. Но я не совсем понимаю значение, скажем, 8-разрядного по сравнению с 16-разрядным по сравнению с 32-разрядным. Я понимаю, что старшая версия позволяет устройству хранить большие числа, но опять же, как это влияет на мое решение? Если я разрабатываю продукт, по которому гипотетический сценарий решил бы, что 8-битный процессор просто не подойдет, и что мне нужно что-то более высокое.

Есть ли основания полагать, что теоретический 32-битный вариант ATmega8 (при прочих равных условиях) будет лучше 8-битной версии (если такое устройство возможно)?

Я могу говорить глупости, но я думаю, что это результат моего замешательства.


Ответы:


24

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

Современные 32-разрядные ядра в большинстве случаев превосходят 8-разрядные (гибкость, модель с плоской памятью и, конечно, производительность), за исключением основных систем, устаревших систем, приложений с чрезмерным объемом и ценовым давлением (в противном случае цены обычно лучше соотносятся с на размер памяти чипа, чем с шириной ядра), и побочные эффекты процесса / плотности. Последнее может обеспечить такие вещи, как работа 5 В, или, возможно, в некоторых случаях большую радиационную стойкость или преимущество простоты, если попытаться доказать, что сама конструкция ЦП не содержит логических ошибок. Одним из последних побочных эффектов процесса / возраста для многих любителей является то, что 8-разрядные ядра в DIP-пакетах являются общими, тогда как 32-разрядные устройства в таких пакетах встречаются реже (хотя они и существуют).


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

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

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.