Введение
Выбор подходящего устройства, на котором будет основана ваша новая разработка, бывает не простым. Необходимо найти баланс между ценой, производительностью и энергопотреблением, а также учесть долгосрочные последствия этого выбора. Например, если используемое устройство, будь то микроконтроллер или микропроцессор, станет основой целого ряда новых продуктов.
Чем отличается микропроцессор и микроконтроллер?
Для начала давайте рассмотрим разницу между микроконтроллером (MCU) и микропроцессором (MPU). Обычно микроконтроллер использует встроенную флэш память, в которой хранятся и выполняется его программа. Благодаря этому, микроконтроллер имеет очень короткое время запуска и может выполнять код очень быстро. Единственное ограничение при использовании встроенной памяти — это ее конечный объем. Большинство микроконтроллеров, доступных на рынке, имеют максимальный объем флэш памяти ~2 мегабайта. Для некоторых приложений это может оказаться критическим фактором.
Микропроцессоры не имеют ограничений на размер памяти, поскольку для хранения программы и данных они используют внешнюю память. Программа обычно хранится в энергонезависимой памяти, такой как NAND или последовательная флэш память. При запуске программа загружается во внешнюю динамическую оперативную память и затем выполняется. Микропроцессор не способен запускаться так же быстро, как микроконтроллер, но объем оперативной и энергонезависимой памяти, которую можно подключить к процессору, может достигать сотен и даже тысяч мегабайт.
Другое отличие между микроконтроллером и микропроцессором — это система питания. Благодаря встроенному регулятору напряжения, микроконтроллеру необходимо только одно значение внешнего напряжения. Тогда как микропроцессору требуется несколько разных напряжений для ядра, периферии, портов ввода-вывода и т.д. О наличии этих напряжений на плате должен заботиться разработчик.
Что выбрать MPU или MCU?
Выбор микроконтроллера или микропроцессора определяется некоторыми аспектами спецификации разрабатываемого устройства. Например, требуется такое количество периферийный интерфейсных каналов, которое не может предоставить микроконтроллер. Или требования относительно пользовательского интерфейса невозможно выполнить, используя микроконтроллер, потому что у него не хватает памяти и быстродействия. Приступая к первой разработке, мы знаем, что продукт в дальнейшем может сильно измениться. В этом случае возможно лучшим решением будет использование какой-то готовой платформы. Так мы учтем запас вычислительной мощности и интерфейсных возможностей для будущих модификаций устройства.
Один из аспектов, которые сложно определить, это быстродействие, требуемое для работоспособности будущей системы. Количественно оценить этот критерий можно с помощью так называемой вычислительной мощности, которая измеряется в Dhrystone MIPS или DMIPS (Dhrystone — это синтетический тест производительности компьютеров, а MIPS — количество миллионов инструкций в секунду). Например, микроконтроллер Atmel SAM4 на базе ядра ARM Cortex-M4 обеспечивает 150 DMIPS, а микропроцессор на ядре ARM Cortex-A5, такой как Atmel SAM5AD3 может обеспечить до 850 DMIPS. Один из способов оценить требуемый DMIPS — это посмотреть какая производительность нужна для запуска части приложения. Запуск полноценной операционной системы (Linux, Android или Windows CE) для работы вашего приложения потребовал бы около 300 — 400 DMIPS. А если использовать для приложения RTOS, то достаточно всего 50 DMIPS. При использовании RTOS также требуется меньше памяти, поскольку ядро обычно занимает несколько килобайт. К сожалению полноценная операционная система требует для своего запуска блок управления памятью (MMU), что в свою очередь ограничивает тип процессорных ядер, которые могут быть использованы.
Для приложений, которые обрабатывают большие объемы чисел, требуется определенный запас DMIPS. Чем больше приложение ориентировано на числовую обработку, тем выше вероятность использования микропроцессора.
Серьезного обсуждения требует использование пользовательского интерфейса, будь то бытовая или промышленная электроника. Потребителям уже привычно пользоваться интуитивно понятными графическими интерфейсами, да и в промышленности все чаще используется этот метод взаимодействия с оператором.
Существует несколько факторов относительно пользовательского интерфейса. Во-первых, это дополнительная вычислительная нагрузка. Для такой интерфейсной библиотеки как Qt, которая широко используется на Linux`e, дополнительно потребуется 80-100 DMIPS. Во-вторых — это сложность пользовательского интерфейса. Чем больше вы используете анимации, эффектов и мультимедийного содержимого, чем выше разрешение изображения, тем большая производительность и память вам потребуется. Поэтому вероятнее всего здесь подойдет микропроцессор. С другой стороны, простой пользовательский интерфейс со статическим изображением на дисплее низкого разрешения может быть реализован и на микроконтроллере.
Другой аргумент в пользу микропроцессора — это наличие встроенного TFT LCD контроллера. Мало микроконтроллеров имеют в своем составе такой модуль. Можно поставить внешний TFT LCD контроллер и какие-то другие драйверы к микроконтроллеру, но нужно учитывать получаемую в итоге себестоимость изделия.
На рынке сейчас появляются флэш микроконтроллеры с TFT LCD контроллерами, но все же должно быть достаточное количество встроенной оперативной памяти для управления дисплеем. Например, 16-цветный QVGA 320х240 требует 150 кБ оперативной памяти чтобы выдавать изображение и обновлять дисплей. Это довольно большой объем ОЗУ и может потребоваться внешняя память, что тоже скажется на себестоимости.
Более сложные графические пользовательские интерфейсы, особенно использующие дисплеи размером больше 4,3 дюйма, требуют применения микропроцессоров. Если микропроцессоры доминируют в приложениях, где используется пользовательский интерфейс с цветным TFT экраном, то микроконтроллеры — короли сегментных или точечно-матричных LCD и других экранов с последовательным интерфейсом.
С точки зрения коммуникаций, большинство микроконтроллеров и микропроцессоров имеют в своем составе наиболее популярные периферийные интерфейсы. Но высокоскоростные интерфейсы, такие как HS USB 2.0, 10/100 Мбит/с Ethernet порты или гигабитные Ethernet порты, обычно есть только у микропроцессоров, потому что они лучше приспособлены к обработке больших объемов данных. Ключевой вопрос здесь — это наличие подходящих каналов и полосы пропускания для обработки потока данных. Приложения, использующие высокоскоростные подключения и ориентированные на операционную систему, требуют применения микропроцессоров.
Другой ключевой аспект, определяющий выбор между микроконтроллером и микропроцессором, это требование по детерминированному времени реакции приложения. Из-за процессорного ядра, встроенной флэш памяти и программного обеспечения в виде RTOS (операционной системы реального времени) или чистого Си кода, микроконтроллер будет определенно лидировать по этому критерию.
Заключительная часть нашего обсуждения будет касаться энергопотребления. Хотя у микропроцессора есть режимы пониженного энергопотребления, у типичного микроконтроллера их намного больше. Кроме того, внешнее аппаратное обеспечение микропроцессора осложняет его перевод в эти режимы. Фактическое потребление микроконтроллера значительно ниже, чем микропроцессора. Например, в режиме энергосбережения с сохранением регистров и оперативной памяти, микроконтроллер может потреблять в 10-100 раз меньше.
Заключение
Выбор между микроконтроллером и микропроцессором зависит от многих факторов, таких как производительность, возможности и бюджет разработки.
Вообще говоря, микроконтроллеры обычно используются в экономически оптимизированных решениях, где важное значение имеет стоимость изделия и энергосбережение. Они, например, широко используются в приложениях с ультра низким энергопотреблением, где требуется длительное время работы от батарей. Например, в пультах дистанционного управления, потребительских электросчетчиках, охранных системах и т.п. Также они используются там, где необходима высоко детерминированное поведение системы.
Микропроцессоры, как правило, применяются для создания функциональных и высокопроизводительных приложений. Они идеально подходят для промышленных и потребительских приложений на основе операционных систем, где интенсивно используются вычисления или требуется высокоскоростной обмен данными или дорогой пользовательский интерфейс.
И последнее. Выбирайте поставщика, предлагающего совместимые микроконтроллеры или микропроцессоры, чтобы иметь возможность мигрировать вверх или вниз, увеличивая повторное использование программного обеспечения.
Разница между микроконтроллером и микропроцессором
В составе многих современных цифровых устройств есть микроконтроллер и микропроцессор. Что представляют собой данные электронные компоненты?
Что такое микроконтроллер?
Под микроконтроллером понимается электронный компонент, содержащий в себе основные аппаратные модули, необходимые для выполнения им своих функций. Такие как, например:
- вычислительный чип;
- модуль ПЗУ;
- модуль ОЗУ;
- таймер;
- мосты;
- регулятор напряжения;
- порты ввода и вывода.
Таким образом, все соответствующие компоненты являются встроенными. Микроконтроллер, если он устанавливается в компьютере, чаще всего взаимодействует с другими аппаратными модулями ПК (например, жестким диском или оперативной памятью) напрямую и не применяет без особой надобности модули в ПК, аналогичные по назначению тем, что встроены в девайс.
Так, благодаря встроенному модулю, отвечающему за управление напряжением, микроконтроллер не требует адаптации внешнего напряжения к особенностям питания внутренних компонентов и в общем случае не использует внешних компонентов контроля над уровнем напряжения.
Микроконтроллеры, как правило, отвечают за какую-либо часть вычислительных операций. Например, если они стоят на ПК, это может быть чтение и запись данных, включение и выключение устройств, подключенных к ПК. Поэтому их производительность относительно невысока.
Часто микроконтроллер используется в приборах, в которых задействование микропроцессора не имеет особого смысла в силу его более высокой в большинстве случаев стоимости. Например, это может быть микроволновая печь, кондиционер или устройство, предназначенное для автоматического полива растений в саду. В составе отмеченных девайсов обычно присутствует самый простой по структуре микроконтроллер.
Что такое микропроцессор?
Под микропроцессором принято понимать микросхему, основным компонентом которой является кристалл из кремния или другого полупроводника. По сути, это в несколько раз более мощный, чем тот, что установлен в микроконтроллере, вычислительный чип. Но на этом сходства между рассматриваемыми типами электронных компонентов заканчиваются.
Микропроцессоры, как правило, не укомплектованы большим количеством дополнительных компонентов (как микроконтроллеры) и используют преимущественно внешние устройства в целях выполнения своих функций. Это могут быть модули ОЗУ, регуляторы напряжения или отдельные источники питания, порты ввода и вывода. В принципе, данные компоненты те же по назначению, что и в случае с контроллерами, но внешние. Однако, как и сам вычислительный чип микропроцессора, в большинстве случаев более производительные, чем те, что стоят в микроконтроллере.
Внутренних модулей у процессора немного. Как правило, современные модели электронных компонентов рассматриваемого типа содержат микросхему ОЗУ — из тех типов компонентов, что характерны для конструкции микроконтроллера. ПЗУ, регулятор напряжения, порты в структуре микропроцессора обычно отсутствуют.
Главное предназначение микропроцессора — сложные вычислительные операции. Поэтому он, как правило, обладает большой производительностью и инсталлируется в те девайсы, функционал которых ее требует. Например, в игровые приставки, ПК, мобильные устройства.
Сравнение
Основное отличие микроконтроллера от микропроцессора в том, что в первом компоненте основные модули, необходимые для выполнения им своих функций, — встроенные. Микропроцессор, в свою очередь, задействует по большей части внешние устройства. Вместе с тем микроконтроллер также способен обращаться к их ресурсам, если производительности тех, что являются встроенными, не хватает. Разумеется, это возможно, только если соответствующего типа внешние устройства предусмотрены в конструкции девайса, в котором используется микроконтроллер. Бывает, что их нет в принципе, — и тогда эффективность работы прибора зависит от производительности микроконтроллера.
Между двумя рассматриваемыми электронными компонентами, как правило, есть существенная разница по уровню скорости вычислений. Микроконтроллер в большинстве случаев менее производителен, чем микропроцессор аналогичного назначения (если, конечно, они взаимозаменяемы в конкретном устройстве), поскольку рассчитан на выполнение только части вычислительных операций или же тех, что имеют очень простую структуру.
Определив, в чем разница между микроконтроллером и микропроцессором, зафиксируем выводы в таблице.
Таблица
Микроконтроллер | Микропроцессор |
Что общего между ними? | |
Вычислительный чип, который входит в состав микроконтроллера, может выполнять функции, схожие с теми, что характерны для микропроцессора | |
В чем разница между ними? | |
Использует для выполнения функций главным образом встроенные аппаратные модули | Применяет в основном внешние аппаратные модули |
Имеет относительно невысокую производительность, отвечает, как правило, за часть вычислительных операций устройства, в котором установлен | Характеризуется высокой производительностью и потому в устройстве, в котором установлен, нередко является главной микросхемой |
Часто выступает более выгодной альтернативой процессору (если от микроконтроллера не требуется высокой производительности), но, в принципе, может быть им заменен | Считается более производительной альтернативой контроллеру, но, как правило, не может быть им заменен при выполнении своих функций — поскольку производительности второго может оказаться недостаточно |
Похожие статьи
(2 оценок, среднее: 3,50 из 5)
Чем микроконтроллер отличается от микропроцессора
Давайте разберемся, чем же на самом деле отличаются и в чем сходство этих двух типов цифровых радиоэлектронных устройств.
И микропроцессор и микроконтроллер предназначены для выполнения некоторых операций — они извлекают команды из памяти и выполняют эти инструкции (представляющие собой арифметические или логические операции) и результат используется для обслуживания выходных устройств. И микроконтроллер и микропроцессор способны непрерывно производить выборку команд из памяти и выполнять эти инструкции, пока на устройство подается питание. Инструкции представляют из себя наборы битов. Эти инструкции всегда извлекаются из места их хранения, которое называется памятью.
Что такое микропроцессор
Микропроцессор (в ангоязычной литературе MPU — Micro Processor Unit ) содержит функционал компьютерного центрального процессора, или ЦП (CPU — Central Processing Unit) на одном полупроводниковом кристалле (ИМС — интегральная микросхема или на западный манер — Integrated Circuit).
По своей сути — это микрокомпьютер, который используется для выполнения арифметических и логических операций, управления системами, хранения данных и прочих.
Микропроцессор обрабатывает данные, поступающие с входных периферийных устройств и передает обработанные данные на выходные периферийные устройства.
Существует четыре основных типа процессоров, различающихся своей архитектурой.
Микропроцессоры с полным набором команд (Complex Instruction Set Computer, CISC -архитектура). Характеризуются нефиксированным значением длины команды, кодированием арифметических действий одной командой, небольшим числом регистров, выполняющих строго определённые функции. Примером такого типа процессоров служит семейство x86.
Микропроцессоры с сокращенным набором команд (Reduced Instruction Set Computer, RISC -архитектура). Обладают, как правило, повышенным быстродействием за счёт упрощения инструкций, что позволяет упростить процесс декодирования и, соответственно, сократить время их выполнения. Большинство графических процессоров разрабатываются, используя этот тип архитектуры.
Микропроцессоры с минимальным набором команд (Minimal Instruction Set Computer, MISC -архитектура). В отличие от RISC-архитектуры, в них используются длинные командные слова, что позволяет выполнять достаточно сложные действия за один цикл работы устройства. Формирование длинных «командных слов» стало возможным благодаря увеличению разрядности микропроцессорных устройств.
В суперскалярных процессорах ( Superscalar Processors ) и спользуются несколько декодеров команд , которые загружают работой множество исполнительных блоков . Планирование исполнения потока команд происходит динамически и осуществляется самим вычислительным ядром. Примером процессора с таким типом архитектуры является, например Cortex A8.
Отдельно хочу выделить микропроцессоры специального назначения ( ASIC — Application S pecific I ntegrated C ircuit). Как следует из названия, предназначены для решения конкретной задачи. В отличие от микропроцессоров общего назначения, применяются в конкретном устройстве и выполняют определенные функции, характерные только для данного устройства. Специализация на выполнении узкого класса функций приводит к увеличению скорости работы устройства и, как правило, позволяет снизить стоимость такой интегральной схемы. Примерами таких микропроцессоров может быть микросхема, разработанная исключительно для управления мобильным телефоном , микросхемы аппаратного кодирования и декодирования аудио- и видеосигналов — так называемые цифровые сигнальные процессоры (Digital Signal Processing, DSP multiprocessors). Могут быть реализованы в виде ПЛИС (программируемая логическая интегральная схема). При разработке таких процессоров для описания их функциональности используют языки описания аппаратных устройств (HDL — Hardware D escription L anguage) , такие как Verilog и VHDL .
Системы на основе микропроцессоров строят примерно следующим образом.
Как видно, микропроцессор в этой системе имеет множество вспомогательных устройств , таких как постоянное запоминающее устройство, оперативная память, последовательный интерфейс, таймер, порты ввода/вывода и т.д. Все эти устройства обмениваются командами и данными с микропроцессором через системную шину. Все вспомогательные устройства в микропроцессорной системе являются внешними . Системная шина, в свою очередь, состоит из адресной шины, шины данных и шины управления.
Теперь, давайте, рассмотрим микроконтроллер.
Что такое микроконтроллер
Ниже представлена блок-схема микроконтроллера. Какого же его основное отличие от микропроцессора? Все опорные устройства, такие как постоянное запоминающее устройство, оперативная память, таймер, последовательный интерфейс, порты ввода/вывода являются встроенными. Поэтому не возникает необходимости создавать интерфейсы с этими вспомогательными устройствами, и это экономит много времени для разработчика системы.
Микроконтроллер не что иное, как микропроцессорная система со всеми опорными устройствами, интегрированными в одном чипе. Если вы хотите создать устройство, взаимодействующее с внешней памятью или блоком ЦАП/АЦП, вам нужно только подключить соответствующий источник питания постоянного напряжения, цепь сброса и кристалл кварца (источник тактовой частоты). Их просто проблематично интегрировать в полупроводниковый кристалл.
Ядро микроконтроллера (центральный процессор), как правило строится на основе RISC-архитектуры.
Программа, записанная в память микроконтроллера может быть защищена от возможности ее последующего чтения/записи, что обеспечивает защиту от ее несанкционированного использования.
Сравниваем микроконтроллер и микропроцессор
Микропроцессор | Микроконтроллер | |
Использование | Компьютерные системы | Встраиваемые системы |
Устройство | Содержит центральный процессор, регистры общего назначения, указатели стека, счетчики программы, таймер и цепи прерываний | Cодержит схему микропроцессора и имеет встроенные ПЗУ, ОЗУ, устройства ввода/вывода, таймеры и счетчики. |
Память данных | Имеет много инструкций для перемещения данных между памятью и процессором. | Имеет одну-две инструкции для перемещения данных между памятью и процессором. |
Электрические цепи | Высокая сложность | Достаточно простые |
Затраты | Стоимость всей системы увеличивается | Низкая стоимость системы |
Число регистров | Имеет меньшее количество регистров, операции в основном производятся в памяти. | Имеет большее число регистров, поэтому проще писать программы |
Запоминающее устройство | Основано на архитектуре фон Неймана. Программа и данные хранятся в том же модуле памяти. | Основано на Гарвардской архитектуре. Программы и данные хранятся в разных модулях памяти. |
Время доступа | Время доступа к памяти и устройствам ввода/вывода больше. | Меньшее время доступа для встроенной памяти и устройств ввода/вывода. |
Железо | Требует большее количество аппаратного обеспечения. | Требует меньшее количество аппаратного обеспечения. |
Контролер и процессор
Фундаментальное обучение по GDPR от сертифицированного эксперта в сфере приватности Сергей Воронкевича.
Контролер и процессор – это две роли, которые, в соответствие с GDPR, приписываются физическим и юридическим лицам, государственным органам, учреждениям и другим компаниям, которые обрабатывают данные либо принимают решения в отношении этого. Самая близкая метафора – корабль с капитаном и матросами. Капитан решает, куда корабль плывет (то есть цель обработки персональных данных) и какую команду нанять (то есть использовать Google Drive или Яндекс.Диск). А процессор – это тот, кто по вашему поручению обрабатывает данные, которые вы контролируете. Он не определяет цели обработки, а просто предоставляет сервис либо выполняет заказ.
Например
Вы устанавливаете на сайт счетчик Google-аналитики. Google является компанией, которая может сопоставить данные пользователя вашего сайта с хранимой у себя информацией и определить его имя и возраст. Только благодаря тому, что он пользуется Gmail. Информация с вашего сайта передается в Google, где ее обрабатывают и выдают в анонимизированном виде. И когда заходим в интерфейс Google-аналитики, не видим конкретного пользователя. Бизнес распорядился персональными данными, сказав: «Google, иди ко мне на сайт, бери персональные данные этих пользователей и отдавай мне отчет в анонимизированном виде». И в таком случае, бизнес является контролером, а Google — процессором, потому что действовал по поручению.
Контролер обязан предоставить информацию субъекту о том, как обрабатываются его данные, с помощью политики приватности. Необходимо указать среди обработчиков Google. Процессор действует по поручению и от имени контролера, который сам определяет цели и способы обработки. А вот защитить персональные данные обязаны оба, хоть и каждый по-своему. Контролер может быть один или их может быть несколько (со-контролеры), а также есть вариант с отдельными контролерами в одной обработке, которые индивидуально определяют свои цели и средства обработки. Joint controllers – со-контролеры – определены в 26 статье GDPR. Это те, кто совместно определяет цели и средства обработки. У со-контролеров такая же ответственность, как и контролеров.
Например
Туристическое агентство берет у вас деньги и покупает билет от вашего имени в авиакомпании. И для этого нужны паспортные данные, номер рейса, дата вылета и прочее. Таким образом, авиакомпания сама определила цели и средства обработки. Турагентство тоже само определило их и запросило у вас дату вылета, чтобы купить билет. У них не было договоренности, как у нас с ВШЭ, поэтому они являются не со-контролерами, а двумя отдельными контролерами. Со-контролеры совместно решают, какие данные нужны.
Кто больше несет ответственность?
Кто больше несет ответственность за защиту персональных данных и за выполнение Регламента? Контролер, потому что он определяет цели и средства обработок. Он главный здесь – у него больше и полномочий, и ответственности. Обязательства перед субъектами данных несёт контролер – он должен реализовывать их права и заставить процессора помочь в этом. Перед надзорными органами в первую очередь будет отвечать контролер. Через него пойдут с аудитами ко всем его процессорам, но сначала все же к нему самому. А для лучшего усвоения информации, делимся с вами полезной схемой, в которой наглядно показано, кто есть кто и за что несет ответственность. К слову, после завершения курса GDPR Data Privacy Professional, вы получите большое количество авторских схем и раздаток от автора и тренера Сергея Воронкевича, CIPP/E, CIPM, CIPT, FIP.