В соответствии со сказанным основной цикл работы процессора должен быть таким: выборка очередной команды (из памяти), при необходимости выборка исходных данных для нее, выполнение команды, размещение результатов в памяти (опять же если это необходимо). Вся работа в этом цикле должна происходить автоматически по командам некоторого устройства управления, содержащего тактовый генератор — системные часы, по которым все синхронизируется. Кроме того, где-то это все должно происходить — складирование данных, кода команды, выполнение действий и т. п., так что процессор должен содержать некий набор рабочих регистров (по сути — очень небольшую по объему сверхбыструю память), определенным образом связанных между собой, а также с устройством управления и АЛУ, которое неизбежно должно присутствовать.
Решающую роль в работе процессора играет счетчик команд. Он автоматически устанавливается на нуль в начале работы, что соответствует первой команде, и автоматически же инкрементируется (т. е. увеличивается на единицу) с каждой выполненной командой. Если по ходу дела порядок команд нарушается, например, встречается команда перехода (ветвления), то в счетчик загружается соответствующий адрес команды от начала программы. К счастью, нам самим фактически не придется иметь дело со счетчиком команд, потому что все указания на этот счет содержатся в самой команде, и процессор все делает автоматически.
Блок-схема типичного микропроцессора показана на рис. 11.2.
Рис. 11.2.
Здесь мы включили в состав процессора память программ, которая у ПК-процессоров находится всегда отдельно — сами знаете, программы какого объема бывают в персональных компьютерах. В то же время в большинстве современных микроконтроллеров постоянное запоминающее устройство (ПЗУ) для программ входит в состав чипа и обычно составляет от 1 до 8 кбайт (но есть модели и со 256 кбайтами встроенной памяти!), чего для подавляющего большинства применений вполне достаточно, а если вдруг не хватит, то всегда можно подключить внешнюю память. Впрочем, внутреннее оперативное запоминающее устройство (ОЗУ) того или иного объема имеется во всех современных процессорах, у процессоров для ПК это называется кэш-памятью (иногда — нескольких уровней). Типичный размер ОЗУ данных у микроконтроллеров — от 256 байт до 1 кбайта.