Микроконтроллер и микропроцессор — в чём разница?
В составе разных электронных устройств часто встречаются как микроконтроллеры, так и микропроцессоры. Оба этих компонента берут из памяти команды и по ним выполняют логические и арифметические операции, работая при этом с устройствами ввода/вывода и прочей периферией. Так в чём тогда разница?
Микроконтроллер — (далее МК) это микросхема, предназначенная для программного управления электронными схемами. МК выполняется на одном кристалле. На нём расположено как вычислительное устройство, так и ПЗУ и ОЗУ. Кроме этого, в составе МК чаще всего находятся порты ввода/вывода, таймеры, АЦП, последовательные и параллельные интерфейсы. В некоторых даже можно заметить Wi-Fi-/Bluetooth-модуль и даже поддержку NFC.
Первый патент на микроконтроллер был выдан в 1971 году компании Texas Instruments. Инженеры этой компании предложили размещать на кристалле не только процессор, но и память с устройствами ввода/вывода.
Структурная схема микроконтроллера
Несмотря на то, что всё необходимое для работы микроконтроллера в нём уже есть, иногда они используются в паре с внешними периферийными устройствами. К примеру, когда внутренней ПЗУ не хватает (или она попросту отсутствует), подключают внешнюю. Именно так сделали с микроконтроллерами серии ESP. У ESP8266 встроенной памяти нет вообще, а у ESP32 есть незначительные 448 КБ. Поэтому к ним в корпус (точнее под радиатор) помещается flash-память ёмкостью 1–16 МБ.
Тогда почему бы не сделать какой-нибудь портативный компьютер на основе микроконтроллера? Дело в том, что вычислительной мощности у МК чаще всего достаточно мало. Её хватает на управление например, системой полива, микроволновкой или же каким-нибудь станком.
Например, одна из мощных плат платформы Arduino — Due. Она находится под управлением 32-битного AVR-микроконтроллера AT91SAM3X8E. Его тактовая частота 84 МГц. Постоянной памяти тут 512 КБ, а оперативной — 96 КБ. МК имеет 54 цифровых GPIO (12 из которых с поддержкой ШИМ), 12 аналоговых входов и 2 аналоговых выхода (ЦАП). Тут так же присутствуют различные интерфейсы, такие как UART, SPI, I2C.
Не смотря на такие незначительные характеристики, микроконтроллеры очень популярны. Они используются там, где не требуется большой вычислительной мощности — робототехника, контроллеры теплиц, бытовая техника.
Что такое микропроцессор
Микропроцессор (в ангоязычной литературе MPU — Micro Processor Unit ) содержит функционал компьютерного центрального процессора, или ЦП (CPU — Central Processing Unit) на одном полупроводниковом кристалле (ИМС — интегральная микросхема или на западный манер — Integrated Circuit).
Графический процессор NVIDIA
По своей сути — это микрокомпьютер, который используется для выполнения арифметических и логических операций, управления системами, хранения данных и прочих.
Микропроцессор обрабатывает данные, поступающие с входных периферийных устройств и передает обработанные данные на выходные периферийные устройства.
Существует четыре основных типа процессоров, различающихся своей архитектурой.
Микропроцессоры с полным набором команд (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 .
Системы на основе микропроцессоров строят примерно следующим образом.
Система, основанная на микропроцессоре
Как видно, микропроцессор в этой системе имеет множество вспомогательных устройств , таких как постоянное запоминающее устройство, оперативная память, последовательный интерфейс, таймер, порты ввода/вывода и т.д. Все эти устройства обмениваются командами и данными с микропроцессором через системную шину. Все вспомогательные устройства в микропроцессорной системе являются внешними . Системная шина, в свою очередь, состоит из адресной шины, шины данных и шины управления.
Теперь, давайте, рассмотрим микроконтроллер.
3 Функция реализации MPU
MPU может быть сконфигурирован для защиты 16 областей памяти (16 областей памяти конфигурируются независимо). Каждая область требует минимум 256 байтов. Каждая область также может быть сконфигурирована как 8 подобластей. Поскольку субрегионы обычно имеют одинаковый размер, размер каждого субрегиона составляет 32 байта, что в точности соответствует размеру строки кэша.
16 областей памяти, которые могут быть сконфигурированы MPU, имеют серийные номера в диапазоне от 0 до 15 и область по умолчанию, также известную как фоновая область, с серийным номером -1. Поскольку эти области памяти могут быть вложенными и перекрываться, возникает проблема приоритета, когда эти области являются вложенными или перекрываются. Серийный номер 15 имеет самый высокий приоритет, поэтому он уменьшается, а серийный номер -1, то есть фоновая область имеет самый низкий приоритет. Эти приоритеты фиксированы.
Вот конкретный пример, чтобы помочь всем понять. Как показано ниже, есть 7 областей, фоновая область и области с номерами 0-5. Область памяти 4 перекрывается с областями памяти 0 и 1, затем область перекрытия будет выполняться в соответствии с правилами конфигурации области памяти 4, область памяти 5 полностью содержится в области памяти 3, затем эта часть области памяти будет настроена в соответствии с областью памяти 5. Правило исполнения.
Принцип работы микроконтроллера
Несмотря на сложное устройство принцип работы микроконтроллера очень прост. Он основан на аналоговом принципе действия. Система понимает лишь две команды («есть сигнал», «нет сигнала»). Из этих сигналов в его память вписывается код определенной команды. Когда МК считывает команду, он ее выполняет.
В каждом из МК прописаны свои базовые наборы команд. И только их он способен принимать и выполнять. Сочетая отдельные команды между собой, можно написать уникальную программу, по которой будет работать любое электронное устройство именно так, как требуется.
В зависимости от содержащихся в МК набора программ, они делятся на:
Большинство контроллеров содержит RISC набор. Объясняется это тем, что такой МК проще изготовить, он дешевле и больше пользуется спросом у разработчиков электронной техники.
Архитектура гарварда
Особенность этой архитектуры является отдельная шина данных и инструкций. Дает большую производительность чем фон Нейман за счет возможности за один такт использовать обе шины (читать из шины инструкций и одновременно записывать в шинну данных), но осложняет архитектуру и имеет некоторые ограничения. В основном используется в микроконтроллерах.
Что такое конвейеры? Если сказать очень глупым языком это несколько параллельных действий за один такт. Это очень грубо, но при этом отображает суть. Конвейеры за счет усложнения архитектуры позволяют поднять производительность. Например конвейер позволяет прочитать инструкцию, исполнить предыдущую и записать в шину данных одновременно.
На картинке более понятно, не правда?
IF — получение инструкции,
ID — расшифровка инструкции,
EX — выполнение,
MEM — доступ к памяти,
WB — запись в регистр.
Вроде все просто? А вот и нет! Проблема в том что например прыжок (jmp/branch/etc) заставляют конвейер начать исполнение (получение след. инструкции) заново таким образом вызывая задержку в 2-4 такта перед исполнение следующей инструкции.
Майнинг других криптовалют
Начинающим крипто-претендентам следует взяться за какую-то из самых простых и новых монет, чтобы реально их добыть. В 2019-м году это:
- Monero,
- Aeon,
- DogeCoin,
- Vertcoin,
- ByteCoin,
- Steem,
- Electroneum…
Monero, признанный самой передовой монетой конфиденциальности, основан на алгоритме хеширования с проверкой работоспособности, известном как CryptoNight. Вы можете легко добывать Monero на обычном компьютере просто путем загрузки и установки программного обеспечения Monero добычи. Поэтому эта новая криптовалюта считается одним из лучших вариантов майнинга с GPU, по сравнению с другими.
Кто управляет материнской платой?
Возвращаясь к нервной системе в ней есть такая штука как гипоталамус.
В компьютерах — задачи фонового управления ресурсами имеют разделение на несколько разных, связанных друг с другом систем.
Разделить их можно на три составляющие. BIOS, чип Super i/o и контроллер питания.
BIOS — это по большей степени программная прослойка, она имеет и аппаратные части, но не вычислительные, а вычислительные это сам центральный процессор, а также чип Super I/O до того как не включен процессор.
Собственно с программной прослойкой биоса в момент инициализации взаимодействует Super I/O. Вместе они до штатного запуска занимаются конфигурированием системы. Что касается самого Super I/O — раньше его функции были более значительные. Он содержал контроллеры для мышки и клавиатуры, для аудио устройств, отвечал за питание компьютера в режимах низкого потребления и в целом — управлял питанием, также в состав супер i/o входит контроллер для COM порта и LPT порта, USB контроллер, сетевой контроллер. Сейчас этот чип подключается через чипсет через шину LPC. Из старых функций часть сейчас просто не востребованы, а часть утрачены, например за многи режимы питания сейчас процессоры отвечают сами, но за включение процессора сам процессор отвечать не может, так как он обесточен. Надо понимать, что когда компьютер выключен, если бы был выключен целиком и полностью — то включался бы он зафиксированным переключателем, а не просто кнопкой, и чтобы не держать процессор под питанием под питанием держат super i/o, который по нажатию кнопки включения проводит первичное тестирование системы, получает данные из раздела SPD оперативной памяти, который содержит конфигурации, опрашивает процессор и чипсет, опрашивает память БИОСа, получая конфигурации и из него, определяет оборудование компьютера, и, в конечном счёте разрешает его запуск. Кроме того у Super I/o есть возможность работы с датчиками. Думаю многие знают такую платформу как Arduino.
В ней есть куча цифровых и аналоговых входов и выходов, и к ней можно подключать разные датчики чтобы создавать те или иные устройства. В компьютере, если надо что-то такое подключить, допустим термодатчик, или вольтметр, это делается через чип Super i/o. Кроме того он поддерживает протокол i2C для работы с более сложными контроллерами. Этот чип формирует ШИМ сигнал и для управления вентиляторами, а так же получает импульсный сигнал тахометров вентиляторов. Кроме того именно в этом чипе идут системные часы.
Но, допустим, сетевые контроллеры выделены сейчас в чипсет, основная часть USB, кроме тех что для клавиатуры и мыши — это тоже только чипсетные USB, а есть платы где USB порты клавиатуры и мыши тоже не выведены, а выведены чипсетные. COM порт, порт для джойстиков, MIDI разъём, разъём для Флоппи дисков и LPT на платах как правило просто не распаивают. Да я в общем-то и не нашёл сведений о том — есть ли все эти порты в современных чипах Super I/o, потому что эти анахронизмы уже могли и выпилить за ненадобностью.
И вобщем-то этот чип ещё не включили в состав чипсета просто из-за необходимости его питания при выключенном компьютере, иначе бы приходилось под питанием оставлять весь чипсет.
Тут есть разница и между Intel и AMD. У AMD LPT порт для подключения к Super I/O встроен в процессор, соответственно и контроллер звука тоже выброшенный из Super I/O переместили во внеядерной части процессора. У Intel аналогично, но подключено это всё к чипсету.
Кроме того, так как Super I/O является средством взаимодействия с датчиками и контроллерами — именно этот чип отдаёт команды контроллеру питания процессора. А уже контроллер питания следит за исполнением команд, управляя мосфет транзисторами зоны VRM процессора. Про VRM материнских плат на ютуб канале было отдельное видео, там и про линии питания и про фазы питания и чем они друг от друга отличаются тоже всё было сказано, это тоже интересная тема, рекомендую посмотреть ещё и про VRM.
Текстовый вариант видео про VRM тоже есть на сайте: нажимать сюда.
И Есть ещё небольшие дополнения к этому видео в другом видео:
На материнской плате расположены и другие системы питания. Обычно под пред усилитель для звука, он же усилитель для наушников выводится отдельный стабилизатор питания. Иногда отдельные стабилизаторы питания делаются и для USB портов. Допустим если у вас USB звуковая карта или USB микрофон, то лучше использовать материнские платы с выделенным питанием на конкретный порт USB, обычно такие USB на задней панели выделяют другим цветом.
В будущем, возможно, будет принят новый стандарт для блоков питания — ATX12VO, тогда на материнских платах будут ещё преобразователи питания из 12 Вольт в 5 Вольт и в 3,3 Вольта, которые сейчас находятся в блоке питания.
Ну и сейчас, если какому-то контроллеру нужно напряжение, которого нет от блока питания, то для него распаивается свой личный преобразовать в нужное ему напряжение.
И того подведем краткие итоги того из чего состоит материнская плата.
Нажмите для увеличения
Состоит она из сокета, в который устанавливается процессор, в который встроен северный мост, то есть контроллер оперативной памяти, из слотов для оперативной памяти, и шины которая соединяет память и процессор, ещё на плате есть разъёмы, которые подключаются к процессору. Это 16 линий PCi-e для видеокарты и 4 линии для m.2 накопителя. Но большая часть разёъмов подключается через чипсет, который соединен с процессором шиной равной 4-м линиям PCi-e. К чипсету подключены как устройства напрямую, так и через внешние контроллеры, а часть линий от чипсета остаются свободными в слотах PCi-e на материнской плате. А за управление всей платой и питанием устройств на ней отвечает чип Super I/o. Кроме того на плате разведено питание компонентов и при необходимости преобразователи питания.