Архитектура микроконтроллеров: основные типы и архитектура

Архитектура, устройство и типы микроконтроллеров

Микроконтроллеры являются ядром любой системы – от простейших датчиков, до сложных и автоматизированных проектов. Именно он отдаёт определённые команды остальным датчикам и принимает от них сигналы, переводя их в соответствующий программный код и выполняя заложенный алгоритм.

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

Основные типы микроконтроллеров и их архитектура

Для начала следует выяснить, какие, в принципе, разновидности МК сейчас актуальны на рынке. Ведь производителей тысячи, моделей девайсов – миллионы, но если систематизировать весь этот массив информации, то найти подходящее устройство будет значительно проще. В основном, выделяют три разновидности микроконтроллеров, среди которых:

  1. Встраиваемый 8-разрядный микроконтроллер.
  2. 16 и 32-х битные контроллеры соответственно. Их выделяют в отдельный класс, но в интернет-магазинах, зачастую, объединяют, для удобства поиска.
  3. Цифровые процессоры на основе сигнальной системы.

Уже по названиям можно понять, что это за устройства и для каких систем их лучше применять. Но на деле определиться не так просто, ведь номенклатура микроконтроллеров, выпускаемых промышленностью, исчисляется тысячами. А большая их часть, если мы берём одну разновидность, имеет одинаковый набор из постоянной памяти, устройства ввода и кристалла с процессором.

Сложнее всего выбирать, когда перед вами стоит два устройства с одинаковым ценником и даже наполнением. При выборе основы вашего проекта всегда опирайтесь на бренд и не скупитесь, ведь, как известно, конечное изделие – это среднее статистическое всех его компонентов.

Для «оживления» любого МК достаточно подать ток определённой частоты на соответствующие контакты, после чего устройство будет доступно для работы. Если разбирать, каким образом выглядит информация для микроконтроллеров в простой аналогии, то это будет двоичный код. То есть, в зависимости от того, подаётся ли напряжение на пин или нет, процессор трактует это, как 1 и 0 соответственно.

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

Микроконтроллер ATmega32

Качественный микроконтроллер будет универсальным, и его можно вставить в любую систему. Но стоит понимать, что намного лучше иметь что-то хорошее в конкретной сфере, чем неплохое – во всех. Если у вас есть возможность, старайтесь выбирать специализированные устройства и разновидности приборов, которые больше всего будут подходить для конкретных целей вашего проекта. Это позволит оптимизировать последующие расходы, упростить пайку и настройку, а также программирование. На сегодняшний день универсальным решением на рынке является Ардуино.

Это микроконтроллеры, которые представлены в сразу трех основных классах и нацелены на создание простых проектов, без использования низкоуровневого программирования. Возможно подобное, благодаря общей прошивке и уже заготовленным разработчиками, а также самими пользователями, библиотекам. В хорошем микроконтроллере обязательно должны быть:

  1. Схемы для стартовых запусков процессора.
  2. Специальные генераторы, способные отображать информацию в цифровом сигнале – тактовых импульсах.
  3. Главный компьютер – процессор, построенный вокруг кристалла.
  4. Постоянная память. И, по-хорошему, в ней уже должна находиться какая-то заготовленная или оптимальная прошивка под конкретные задачи. Ведь производитель должен был как-то протестировать свой девайс, прежде чем выставлять его на продажу.
  5. Пины, которые послужат для ввода и вывода данных.
  6. Таймер, как условный, так и цифровой. Он необходим для фиксирования количества выполняемых командных циклов. Но, в случае необходимости, всегда можно создать свой, через функции и методы ООП.

Всё вышеописанное – джентельменский набор хорошего микроконтроллера, но для специализированных систем его будет недостаточно. В таком случае, к инструментарию устройств добавляют:

  1. Устройство вывода – монитор или отладчик для программ, который упростит последующее программирование микроконтроллера. Подойдёт для сложных проектов, где программных отладчиков уже не хватает, или же языков, вроде С-подобных, где они, в принципе, отсутствуют, как инструмент.
  2. Дополнительные блоки памяти, которую можно выделить под буфер обмена, или оперативную память в программах.
  3. Датчик для обработки прерываний, исходящих от других девайсов.
  4. Аналоговые вводы и выводы, которые пригодятся в работе со старой техникой.
  5. Синхронные и асинхронные пины, а также параллельные и последовательные. Наличие позволит улучшить эргономику конечного устройства, например, установить несколько аккумуляторов в параллельном подключении. Такая находка, к тому же, уменьшит минимальное значение заряда на них, увеличив общую емкость.
  6. Дополнительный модуль для внешней памяти. Это будет крайне удобно, если в системе планируется применять тяжелые медиафайлы. Например, для разговаривающих нейросетей и проигрывания музыки.

Пример схемы микроконтроллера

Дополнительные «надстройки» позволяют увеличить гибкость микроконтроллера и приспособить его к конкретным задачам, но естественно, если их нет – ничего плохого не будет. В первую очередь потому, что вы всегда можете докупить специальные модули, в которых будут присутствовать все необходимые возможности. А во-вторых, ибо всё вышеописанное является просто удобством, и без него можно вполне обойтись при создании проектов любой сложности, разница будет лишь в скорости программирования и отладки конечного продукта, но всё зависит от конкретного инженера.

Архитектура ядра микропроцессора

В отличие от прошлого пункта, здесь не удастся расписать общие сведенья об архитектуре ядра, ведь она различается в зависимости от каждой конкретной разновидности. Стандартная AVR архитектура считается предпочтительной, ведь в ней соединяются достоинства Гарвардской и Принстонской соответственно, поэтому задачи выполняются не только быстро, но и, что куда важнее, с высоким КПД. Эти параметры считаются взаимосвязанными, но не стоит искать прямую корреляцию между ними, они важны и по-отдельности.

Внутри Intel 8742 (8-разрядный микроконтроллер с процессором, работающим на частоте 12 МГц, 128 байт ОЗУ, 2048 байт EPROM и I / O в одном чипе)

Соответственно, большая часть команд для процессоров, если операнды не применяются 16-разрядным кодом, упаковываются по ячейкам в постоянной памяти программы. И добиться такого эффекта смогли благодаря тому, что расширили саму ячейку процессора, а не уменьшили общее количество операнд, доступных к выполнению, как это бывает.

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

Аппаратные средства

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

Это крайне удобно, когда ваш проект подсоединяется напрямую к источникам питания, зависящим от общей электроники дома. И если у вас отключат электроэнергию, устройство сможет проработать ещё немного.
Другой важной аппаратной составляющей МК являются таймеры и прочие устройства, упрощающие обработку данных. Таймер необходим для самых разнообразных задач, но, в основном, его применяют, как средство отсчета заданных задержек между командами.

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

Архитектура микроконтроллера

Что нужно для того, чтобы стать профессиональным разработчиком программ для микроконтроллеров и выйти на такой уровень мастерства, который позволит с лёгкостью найти и устроиться на работу с высокой зарплатой (средняя зарплата программиста микроконтроллеров по России на начало 2017 года составляет 80 000 рублей). Подробнее.

Архитектура микроконтроллера – это, говоря простым языком, его внутреннее устройство. Можно сказать, что это некая структурная схема, которая содержит основные элементы, из которых состоит микроконтроллер.

Архитектура микроконтроллера позволяет понять, как устроен микроконтроллер конкретного семейства на уровне основных функциональных узлов. То есть архитектура описывает устройство микроконтроллера на уровне “железа”.

Если попробовать “завернуть” чуть более научно, то архитектура – это некий набор свойств, присущих семейству микроконтроллеров (микропроцессоров), или внутренняя организация этих устройств.

Имеются различные классификации архитектур по разным параметрам. Например, по количеству и скорости выполнения команд. Или по назначению (графические, математические, обработки сигналов и т.п.).

Кроме того, существует такое понятие, как архитектура команд микроконтроллера (микропроцессора). Это совместимость с определённым набором команд (например, с набором инструкций Intel x86), а также структура команд и способ выполнения команд.

Как вы понимаете, на сегодняшний день существует довольно много различных архитектур (как аппаратных, так и программных). Рассказать о всех в одной статье невозможно (да и не нужно). С учётом того, что практически все мои статьи и книги рассчитаны на начинающих, я буду пытаться рассказывать об архитектуре (и не только) как можно более простым и понятным языком (пусть даже иногда в ущерб точности и правильности).

Моя задача – объяснить сложные предметы далёким от темы людям, чтобы они хотя бы в общих чертах их поняли. Поэтому все дальнейшие материалы будут на примере одного из самых дешёвых и относительно простых микроконтроллеров ATtiny13A-SSU производства компании Atmel, который на момент написания этой статьи стоит всего 38 рублей (то есть примерно 0,7$). Этот микроконтроллер принадлежит к семейству AVR и имеет соответствующую архитектуру.

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

Ну а пока см. рисунок ниже, где показана архитектура ядра AVR в целом. То есть это относится ко всему семейству AVR, а не только к микроконтроллеру ATtiny13A.

Не пугайтесь непонятных слов и аббревиатур на английском языке, которые вы увидели на рисунке. Также не бойтесь, если что-то из того, что будет сказано далее, вам будет непонятно. В следующих статьях мы будем всё это подробно изучать. А пока самые общие сведения об архитектуре.

Ядро процессора

Основное назначение ядра процессора – это обеспечение правильного выполнения программы. Поэтому процессор должен быть в состоянии получать доступ к памяти, выполнять расчёты, управлять периферией и обрабатывать прерывания.

То, что вы видите на рисунке, это и есть ядро процессора.

Для достижения максимальной производительности и возможности параллельного выполнения команд AVR использует Гарвардскую архитектуру с раздельными памятью и шинами программ и данных.

Инструкции программы в памяти (блок Flash Program Memory, далее – FPM) выполняются с одноуровневой конвейеризацией. Пока одна инструкция выполняется, следующая инструкция программы предварительно считывается из памяти (из FPM). Эта концепция позволяет инструкции выполняться за один такт. Память программы (блок FPM) в системе – это перепрограммируемая флэш-память.

Блок регистров содержит 32 восьмиразрядных регистра общего назначения (далее – РОН) с быстрым доступом (на рисунке это 32 х 8 General Purpose Registrers). Доступ к регистру выполняется за один такт. Это позволяет арифметико-логическому устройству (АЛУ) – Arithmetic Logic Unit (ALU) также выполнять операции за один такт. В общем случае при выполнении операции АЛУ два операнда берутся из файлового регистра (Register File), выполняется операция, а результат записывается обратно в файловый регистр. И всё это за один такт.

Шесть из 32 регистров могут использоваться как 16-разрядные регистры косвенной адресации для указания на область адресов данных, обеспечивая эффективное вычисление адреса.

На рисунке это показано стрелкой с надписью Indirect address (косвенная адресация). То есть 6 из 32 регистров общего назначения можно использовать как указатели адреса для доступа к данным в области Data SRAM.

Один из этих указателей адреса можно также использовать как указатель адреса для просмотра таблиц в программной памяти (FPM). Эти дополнительные функциональные регистры, которые являются 16-разрядными регистрами X-, Y- и Z-, будут описаны далее.

АЛУ поддерживает арифметические и логические операции между регистрами или между константой и регистром. Операция с одним регистром также может быть выполнена в АЛУ. Операции с одним регистром также могут выполняться в ALU. После арифметической операции регистр состояния (Status Register) обновляется для отображения сведений о результате операции.

Выполнение программы обеспечивается условными и безусловными переходами и вызовами инструкций, способными непосредственно обращаться ко всему пространству адресов. Большинство инструкций AVR имеют формат одиночного 16-разрядного слова. Каждый адрес памяти программы содержит 16-или 32-разрядную инструкцию.

При генерации прерывания и вызове подпрограмм адрес возврата счетчика команд (Program Counter, сокращённо PC) сохраняется в стеке. Стек эффективно распределяется среди общих данных в SRAM, и, следовательно, размер стека ограничивается только общим размером SRAM и использованием SRAM. Все пользовательские программы должны инициализировать SP в подпрограмме сброса (перед выполнением подпрограмм или прерываний). Указатель стека (Stack Pointer, сокращённо SP) доступен для чтения и записи в пространстве ввода-вывода. К статическому ОЗУ данных (SRAM) можно легко получить доступ через пять различных режимов адресации архитектуры AVR.

Всё пространство памяти в архитектуре AVR является линейным и представляет собой обычные таблицы памяти.

Гибкий модуль прерываний содержит свои управляющие регистры в пространстве ввода-вывода (I/O space) с дополнительным битом глобального разрешения прерываний (Global Interrupt Enable) в регистре статуса (Status Register). Все прерывания имеют отдельный вектор прерываний (Interrupt Vector) в таблице векторов прерываний (Interrupt Vector table). Прерывания имеют приоритет в соответствии с их положением в таблице векторов прерываний. Чем ниже адрес вектора прерывания, тем выше приоритет.

Пространство памяти ввода-вывода содержит 64 адреса для периферийных функций центрального процессора (CPU) в качестве регистров управления (Control Registers), SPI и других функций ввода-вывода. Память ввода-вывода может быть доступна непосредственно, или как размещение пространства данных (Data Space), находящееся за регистром файла (Register File), 0x20 – 0x5F.

В следующих статьях я расскажу о некоторых частях ядра более подробно.

Введение

Можно считать что микроконтроллер (МК) – это компьютер, разместившийся в одной микросхеме. Отсюда и его основные привлекательные качества: малые габариты; высокие производительность, надежность и способность быть адаптированным для выполнения самых различных задач.

Микроконтроллер помимо центрального процессора (ЦП) содержит память и многочисленные устройства ввода/вывода: аналого-цифровые преобразователи, последовательные и параллельные каналы передачи информации, таймеры реального времени, широтно-импульсные модуляторы (ШИМ), генераторы программируемых импульсов и т.д. Его основное назначение – использование в системах автоматического управления, встроенных в самые различные устройства: кредитные карточки, фотоаппараты, сотовые телефоны, музыкальные центры, телевизоры, видеомагнитофоны и видеокамеры, стиральные машины, микроволновые печи, системы охранной сигнализации, системы зажигания бензиновых двигателей, электроприводы локомотивов, ядерные реакторы и многое, многое другое. Встраиваемые системы управления стали настолько массовым явлением, что фактически сформировалась новая отрасль экономики, получившая название Embedded Systems (встраиваемые системы).

Достаточно широкое распространение имеют МК фирмы ATMEL, функциональные возможности которых охватывают все перечисленные задачи [1,2].

Применение МК можно разделить на два этапа: первый – программирование, когда пользователь разрабатывает программу и прошивает ее непосредственно в кристалл, и второй – согласование спроектированных исполнительных устройств с запрограммируемым МК. Значительно облегчают отладку программы на первом этапе – симулятор, который наглядно моделирует работу микропроцессора. На втором этапе для отладки используется внутрисхемный эмулятор, который является сложным и дорогим устройством, зачастую недоступным рядовому пользователю.

В тоже время в литературе мало уделено внимания вопросам обучения программированию некоторых недорогих МК, в сочетании с реальными исполнительными устройствами.

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

1. Основы архитектуры микроконтроллеров

1.1. Основные типы микроконтроллеров и их архитектура

Если представить все типы современных микроконтроллеров (МК), то можно поразиться огромным количеством разнообразных приборов этого класса, доступных потребителю. Однако все эти приоры можно разделить на следующие основные типы:

Встраиваемые (embedded) 8-разрядные МК;

16- и 32-разрядные МК;

Цифровые сигнальные процессоры.

Промышленностью выпускаются очень широкая номенклатура встраиваемых МК. В них все необходимые ресурсы (память, устройства ввода-вывода и т.д.) располагаются на одном кристалле с процессорным ядром [3]. Если подать питание и тактовые импульсы на соответствующие входы МК, то можно сказать, что он как бы «оживет» и с ним можно будет работать. Обычно МК содержат значительное число вспомогательных устройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количества дополнительных компонентов. В состав этих МК входят:

Схема начального запуска процессора (Reset);

Генератор тактовых импульсов;

Память программ (E(E)PROM) и программный интерфейс;

Средства ввода/вывода данных;

Таймеры, фиксирующие число командных циклов.

Общая структура МК показана на рис. 1.1. Эта структура дает представление о том, как МК связывается с внешним миром.

Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:

Встроенный монитор/отладчик программ;

Внутренние средства программирования памяти программ (ROM);

Обработка прерываний от различных источников;

Последовательный ввод/вывод (синхронный и асинхронный);

Параллельный ввод/вывод (включая интерфейс с компьютером);

Подключение внешней памяти (микропроцессорный режим).

Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.

Рис. 1.1. Структура микроконтроллера.

Некоторые МК (особенно 16- и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода. Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт). Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.

Цифровые сигнальные процессоры (DSP) – относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.

Основные типы микроконтроллеров и их архитектура

Если представить все типы современных микроконтроллеров (МК), то можно поразиться огромным количеством разнообразных приборов этого класса, доступных потребителю. Однако все эти приоры можно разделить на следующие основные типы:

  • Встраиваемые (embedded) 8-разрядные МК;
  • 16- и 32-разрядные МК;
  • Цифровые сигнальные процессоры.

Промышленностью выпускаются очень широкая номенклатура встраиваемых МК. В них все необходимые ресурсы (память, устройства ввода-вывода и т.д.) располагаются на одном кристалле с процессорным ядром. Если подать питание и тактовые импульсы на соответствующие входы МК, то можно сказать, что он как бы «оживет» и с ним можно будет работать. Обычно МК содержат значительное число вспомогательных устройств, благодаря чему обеспечивается их включение в реальную систему с использованием минимального количества дополнительных компонентов. В состав этих МК входят:

  • Схема начального запуска процессора (Reset);
  • Генератор тактовых импульсов;
  • Центральный процессор;
  • Память программ (E(E)PROM) и программный интерфейс;
  • Средства ввода/вывода данных;
  • Таймеры, фиксирующие число командных циклов.

Общая структура МК показана на рис. 1.1. Эта структура дает представление о том, как МК связывается с внешним миром.

Более сложные встраиваемые МК могут дополнительно реализовывать следующие возможности:

  • Встроенный монитор/отладчик программ;
  • Внутренние средства программирования памяти программ (ROM);
  • Обработка прерываний от различных источников;
  • Аналоговый ввод/вывод;
  • Последовательный ввод/вывод (синхронный и асинхронный);
  • Параллельный ввод/вывод (включая интерфейс с компьютером);
  • Подключение внешней памяти (микропроцессорный режим).

Все эти возможности значительно увеличивают гибкость применения МК и делают более простым процесс разработки систем на и основе.
Некоторые МК (особенно 16- и 32-разрядные) используют только внешнюю память, которая включает в себя как память программ (ROM), так и некоторый объем памяти данных (RAM), требуемый для данного применения. Они применяются в системах, где требуется большой объем памяти и относительное не большое количество устройств (портов) ввода/вывода. Типичным примером применения такого МК с внешней памятью является котроллер жесткого диска (HDD) с буферной кэш-памятью, который обеспечивает промежуточное хранение и распределение больших объемов данных (порядка нескольких мегабайт). Внешняя память дает возможность такому микроконтроллеру работать с более высокой скоростью, чем встраиваемый МК.
Цифровые сигнальные процессоры (DSP) – относительно новая категория процессоров. Назначение DSP состоит в том, чтобы получать текущие данные от аналоговой системы, обрабатывать данные и формировать соответствующий отклик в реальном масштабе времени. Они обычно входят в состав систем, используясь в качестве устройств управления внешним оборудованием, и не предназначены для автономного применения.

Система команд

В зависимости от числа используемых кодов операций системы команд МК можно разделить на две группы: CISC и RISC. Термин CISC означает сложную систему команд и является аббревиатурой английского определения Complex Instruction Set Computer. Аналогично термин RISC означает сокращенную систему команд и происходит от английского Reduce Instruction Set Computer. Систему команд МК 8051 можно отнести к типу CISC. Однако, не смотря на широкую распространенность этих понятий, необходимо признать, что сами названия не отражают главного различия между системами команд CISC и RISC. Основная идея RISC архитектуры – это тщательный подбор таких комбинаций кодов операций, которые можно было бы выполнить за один такт тактового генератора. Основной выигрыш от такого подхода – резкое упрощение аппаратной реализации ЦП и возможность значительно повысить его производительность.
Очевидно, что в общем случае одной команде CISC соответствует несколько команд RISC. Однако обычно выигрыш от повышения быстродействия в рамках RISC перекрывает потери от менее эффективной системы команд, что приводит к более высокой эффективности RISC систем в целом по сравнению с CISC.
Однако в настоящее время грань между CISC и RISC архитектурой стремительно стирается. Например, МК семейства AVR фирмы Atmel имеют систему команд из 120 инструкций, что соответствует типу CISC. Однако большинство из них выполняется за один такт, что является признаком RISC архитектуры. Сегодня принято считать, что признаком RISC архитектуры является выполнение команд за один такт тактового генератора. Число команд само по себе значения уже не имеет.

Типы памяти МК

Можно выделить три основных вида памяти, используемой в МК:
а) память программ;
б) память данных;
в) регистры МК.
Память программ представляет собой постоянную память, предназначенную для хранения программного кода и констант. Эта память не изменяет содержимого в процессе выполнения программы.
Память данных предназначена для хранения переменных в ходе выполнения программы.
Регистры МК – этот вид памяти включает внутренние регистры процессора и регистры, которые служат для управления периферийными устройствами.
Для хранения программ обычно служит один из видов постоянной памяти: ROM (масочные ПЗУ), PROM (однократно программируемые ПЗУ), EPROM (электрически программируемые ПЗУ с ультрафиолетовым стиранием) или EEPROM (ПЗУ с электрической записью и стиранием, к этому виду также относятся современные микросхемы Flash-памяти). Все эти виды памяти являются энергонезависимыми – это означает, что содержимое памяти сохраняется после выключения питания МК.
Многократно программируемые ПЗУ – EPROM и EEPROM (Electrically Erasable Programmable Memory) подразделяются на ПЗУ со стиранием ультрафиолетовым (УФ) облучением (выпускаются в корпусах с окном), и МК с электрически перепрограммируемой памятью, соответственно.
В настоящее время протоколы программирования современной EEPROM памяти позволяют выполнять программирование МК непосредственно в составе системы, где он работает. Такой способ программирования получил название – ISP (In System Programming). И теперь можно периодически обновлять программное обеспечение МК без удаления из платы. Это дает огромный выигрыш на начальных этапах разработки систем на базе МК или в процессе их изучения, когда масса времени уходит на многократный поиск причин неработоспособности системы и выполнение последующих циклов стирания-программирования памяти программ.
Функционально Flash-память мало отличается от EEPROM. Основное различие состоит в способности стирания записанной информации. В памяти EEPROM стирание производится отдельно для каждой ячейки, а во Flash-памяти стирание осуществляется целыми блоками.
ОЗУ (RAM) – оперативное запоминающее устройство, используется для хранения данных. Эту память называют еще памятью данных. Число циклов чтения и записи в ОЗУ неограниченно, но при отключение питания вся информация теряется.

Источники:

http://www.av-assembler.ru/mc/architecture-of-microcontroller.php

http://studfile.net/preview/729754/page:2/

http://life-prog.ru/view_arhitektura.php

http://digitrode.ru/computing-devices/mcu_cpu/1253-mikrokontrollery-8051-pic-avr-i-arm-otlichiya-i-osobennosti.html

Ссылка на основную публикацию