PIC-микроконтроллеры. Все, что вам необходимо знать | страница 35



Команды (в виде кодовых слов) обычно располагаются в памяти программ последовательно. Для поочередной адресации каждой команды используется двоичный суммирующий счетчик (см. Рис. 2.24 на стр. 53). Если, предположим, при сбросе компьютера счетчик команд (Program Counter — PC) обнуляется, то первая команда будет расположена по адресу h’000’ памяти программ, вторая — по адресу h’001’ и т. д. (см. Рис. 3.4). Устройство управления просто инкрементирует счетчик после выборки каждой команды. Непосредственно загружая новый адрес в счетчик команд, можно осуществить переход к другому участку кода.



Рис. 3.3.Структура элементарного гарвардского компьютера на системном уровне


Последовательность операций «выборка команды/ее дешифровка/исполнение», т. е. так называемый цикл выборки — исполнения команды, является фундаментальным понятием, необходимым для понимания работы компьютера. Чтобы проиллюстрировать этот рабочий ритм, рассмотрим простую программу, которая считывает переменную NUM_1, прибавляет к ней число 4 и записывает результат в переменную NUM_2. На языке высокого уровня Си эту операцию можно записать следующим образом[48]:

NUM_2 = NUM_1 + 4;

Несколько более подробно структура нашего компьютера, который я назвал BASIC (аббревиатура от Basic All-purpose Stored Instruction Computer — базовый универсальный компьютер с хранимой программой), изображена на Рис. 3.4. На этом рисунке показаны ЦПУ и обе области памяти со своими шинами данных и соответствующими шинами адреса.



Рис. 3.4.Состояние ЦПУ в момент выполнения первой команды при одновременной выборке второй команды. Все адреса/данные представлены в шестнадцатеричной системе


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

Сначала разберемся с процессом выборки команд.


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

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

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