Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЦУ_конспект_12.docx
Скачиваний:
68
Добавлен:
14.11.2019
Размер:
5.57 Mб
Скачать

1.6 Принцип работы микропроцессора.

1.6.1 Модель программирования микропроцессора.

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

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

Отметим, что команды перемещения на самом деле данные не перемещают, а копируют их, т.к. данные в источнике не уничтожаются, а остаются неизменными.

Логические операции реализуют переключательные функции, которые подразделяются на одно- и двух- местные. Одноместные реализуют переключательные функции одного аргумента; двухместные – функции двух аргументов. При одноместной операции аргументом функции является каждый бит операнда, т.е. одна и та же логическая операция, заданная командой производится над каждым битом операнда. При двухместных функциях одна и та же операция производится над каждой парой одноименных битов операндов. всего существует 4 переключательные функции одного аргумента и 16 - двух. Однако наиболее часто в микропроцессорах для одноместных операций используется только одна функция – инверсия, а для двух аргументов – три пары функций: конъюнкция (И), дизъюнкция (ИЛИ), штрих Шеффера (И-НЕ), стрелка Пирса (ИЛИ-НЕ), сумма по модулю два (исключительно ИЛИ), эквивалентность.

Таблицы истинности для одноместной логической операции "инверсия" и двухместных операций "исключительно ИЛИ" и "эквивалентность"

Инверсия

Входное слово

Выходное слово

Входное слово

Выходное слово

исключительно ИЛИ

эквивалентность

0

1

00

0

1

1

0

01

1

0

10

1

0

11

0

1

арифметические операции МП имеют ограниченный состав по сравнению с большими ЭВМ. Это определяется требованиями минимизации структуры МП и меньшим удельным весом чисто вычислительных операций (МП в основном используется в устройствах и алгоритмах управления). Типичными видами арифметических операций МП являются сложение, вычитание, добавление к числу единицы (инкремент) и вычитание из числа единицы (декремент).

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

  • логический сдвиг – на освобождающееся место заносится "0"

  • арифметический сдвиг – на освобождающееся место заносится бит переноса

  • циклический сдвиг – на освобождающееся место заносится "вытолкнутый" бит слова

Операции проверки условий обеспечивают придание МП возможности принятия решений, обеспечивают его интеллектуальность. Результатом выполнения операций проверки условий являются ответы "да" или "нет", идентифицируемые состояниями "0" и "1" триггеров условий как соответствующие флаги регистра состояния МП. Типичными запросами проверки условий в МП являются:

  • есть ли перенос?

  • Равно ли нулю содержимое аккумулятора?

  • Знак результата "плюс"?

  • Равны ли между собой два операнда (содержимое двух регистров)?

  • и т.д.

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

  • величина А равна величине В;

  • величина А не равна величине В;

  • величина А меньше величины В;

  • величина А больше величины В;

  • величина А меньше или равна величине В;

  • величина А больше или равна величины В.

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

Например, условный переход производится в результате сравнения кода нажатой клавиши с константой (если код клавиши равен 0, перейти к выполнению ветви 2). В случае невыполнения условия программа продолжит последовательное выполнение программы. В конце ветви 1 стоит команда безусловного перехода. Она нужна для того, чтобы программа не начала выполнять ветвь 2 сразу после выполнения ветви 1.

Технически переход выполняется путем записи в регистр адреса нового значения под действием команд передачи управления.

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

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

  • уменьшает параметр цикла на единицу;

  • проверяет, не равен ли параметр цикла после уменьшения нулю;

  • если не равен, то оператор производит переход к началу цикла;

  • если равен – переход не производится и выполнение программы продолжается в обычном порядке.

МОДЕЛЬ ВЫПОЛНЕНИЯ ПРОГРАММЫ МИКРОПРОЦЕССОРОМ

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

Работа микропроцессорной системы иллюстрируется рис. При запуске, в регистре адреса команд МП (см. Рис.) записан адрес первой команды программы. Этот адрес ядро МК посылает в память. По этому адресу из ячейки памяти извлекается команда и записывается в регистр команд ядра. Затем содержимое регистра адреса команд увеличивается на число, равное числу полей в формате данной команды. Т.е. устанавливается адрес следующей команды. Эта часть цикла называется выборкой. Затем команда расшифровывается устройством управления и исполняется. Эта часть цикла называется выполнением.

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

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

Модель микропроцессорной системы представляется совокупностью программно- доступных (РОН, программный счетчик, указатель стека, регистр статуса и др.), программно- недоступных устройств (устройство декодирования команд, АЛУ, адресный регистр, регистр команд), устройствами памяти: (область памяти для хранения программ, область памяти для хранения данных, стек).

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

Пусть разрядность МП – 8 бит, разрядность ША – 16 бит. Предположим, что рассматриваемая инструкция занимает три ячейки памяти. Первая ячейка содержит код операции (независимо от количества полей команды это всегда первая ячейка из занимаемых командой). Две других, например, содержат адрес (два байта) ячейки памяти, над содержимым которой производятся манипуляции. Данная команда выполняется в три этапа (рис). Сначала МП выдает содержимое регистра адреса команды на адресную шину. При этом в памяти запрашивается содержимое первой ячейки памяти, в которой хранится код операции. Устройство декодирования инструкций микропроцессора производит расшифровку кода операции и изменение режима устройства управления МП. операционный код содержит также информацию о числе полей (длине) команды, т.е. сведения о том, сколько ячеек памяти занимает данная команда. В данном примере МП определяет, что из памяти для чтения всей команды нужно прочесть еще 2 байта адреса. Затем МП увеличивает содержимое программного счетчика на 1 и готовится к загрузке адресного регистра. Первый байт адреса (адрес ячейки памяти, где он хранится, определяется новым содержимым программного счетчика) загружается в первые 8 битов адресного регистра. Содержимое программного счетчика снова увеличивается; в адресный регистр вводится второй байт адреса. Программный счетчик увеличивает содержимое на единицу и программный счетчик МП теперь содержит адрес ячейки памяти первого байта (КОП) следующей команды. Только теперь МП (после описанных трех шагов) начинает выполнение команды, посылая адреса данных и данные в АЛУ или просто считывая их в блок РОН.

Описанная процедура характерна для большинства типов универсальных МП. Индивидуальные отличия МП реализуются различиями в структуре блока РОН, способностями регистров выполнять существующие для данного МП инструкции. Отметим, все команды МП реализуются в АЛУ. Это также означает, что результат любой операции отражается в содержимом статусного регистра.

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

Рис. – Схема алгоритма выполнения команды простейших микроконтроллеров