Микроконтроллеры имеют гарвардскую архитектуру, поэтому дальше мы будем рассматривать только ее. Взяв за основу ЦПУ, показанный наРис. 3.18 (стр.22), и добавив к нему память программ, память данных, а также схемы управления и дешифрации, мы получим примитивный компьютер с гарвардской архитектурой(Рис. 4.4). Серым цветом на рисунке выделены элементы исходной схемы Рис. 4.7, приведенного на стр. 30.
Благодаря подключению шины данных АЛУ к памяти данных, мы получаем возможность считывать из памяти первый операнд, а также при необходимости помещать в нее результат операции. Адрес этого операнда является частью кода команды, считанного из памяти программ и дешифрованного устройством управления.
Рис.6.3. Структура элементарного гарвардского компьютера на системном уровне
Это же устройство управления формирует сигналы выбора режима АЛУ, который зависит от текущей команды. Результат, получаемый на выходе АЛУ, может быть загружен либо в рабочий регистр (устройство управления формирует импульс на линии W), либо обратно в ту же ячейку памяти, откуда был считан операнд (устройство управления формирует импульс на линии F). Информация об адресате результата операции также содержится в коде команды.
Команды обычно располагаются в памяти программ последовательно. Для поочередной адресации каждой команды используется двоичный суммирующий счетчик. Если, предположим, при сбросе компьютера счетчик команд (Ргоgгаm Соunter — РС) обнуляется, то первая команда будет расположена по адресу H'000' памяти программ, вторая — по адресу Н'001 и т.д.
Устройство управления просто инкрементирует счетчик после выборки каждой команды. Непосредственно загружая новый адрес в счетчик команд, можно осуществить переход к другому участку кода. Последовательность операций «выборка команды/ее дешифрация/исполнение», т.е. так называемый цикл выборки — исполнения команды, является фундаментальным понятием, необходимым для понимания работы компьютера.