Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы.docx
Скачиваний:
29
Добавлен:
30.03.2015
Размер:
507.37 Кб
Скачать

15. Программный счётчик. Его назначение, основные характеристики, особенности использования.

Программный счётчик (РС – Program Counter) используется для указания следующей команды выполняемой программы. Это счётчик с параллельным вводом и параллельным выводом. В процессорах с принстонской архитектурой содержимое РС поступает по шине данных в схему управления памятью, указывая адрес считываемой команды. Программные счётчики часто входят в состав схемы управления памятью – это позволяет избежать передачи адреса по внутренней шине данных.

Основные характерные особенности программного счётчика следующие:

– параллельная загрузка нового содержимого с шины данных;

– возможность возврата к адресу первой команды программы (возможность сброса);

– реализация счёта на увеличение (инкремента) для адресации следующей команды.

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

Параллельная загрузка используется для записи в программный счётчик адреса перехода при выполнении команды безусловного перехода («jump») или вызова подпрограммы («call»).

Начальное содержимое программного счётчика после запуска МП-устройства может иметь любое значение. Часто используется значение начального адреса 0000016, но ряд устройств начинают выполнение программы с других адресов. Аналогичная ситуация возникает с адресами прерываний (векторами прерываний). Обслуживание прерывания начинается с адреса (вектора прерывания), отличного от адреса, загружаемого при начальном запуске устройства. Но для реализации прерывания или запуска устройства используются обычно одни и те же аппаратные средства.

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

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

16) Арифметико-логическое устройство (АЛУ). Его назначение, схема работы, особенности использования.

АЛУ процессора используется для выполнения всех математических операций в программе (сложение, вычитание, логическое И, логическое ИЛИ, сдвиг содержимого регистров и установку содержимого регистра состояния в соответствии с полученными результатами. АЛУ не используется при чтении или записи данных или команд – оно служит только для обработки данных. АЛУ можно представить как аппаратный блок, который обрабатывает два слова данных (операнды) и сохраняет полученный результат.

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

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

Обычно различные представители одного семейства микроконтроллеров имеют одинаковые АЛУ. В некоторых семействах АЛУ реализуют определённые операции, которые не выполняются МК других семейств (например, умножение). Дополнительные функции различных МК одного семейства реализуются путём включения в их структуру дополнительных аппаратных средств, но при этом структура и функции АЛУ сохраняются, так как вводимые в МК дополнительные устройства используют свои регистры, не связанные с регистром состояния и аккумулятором (например, семейство 8-разрядных МК 68НС05 ф. Motorola).

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

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

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

18)Особенности использования подпрограмм и функций при программировании МК.

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

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

а) Автоматически, как часть команды САLL (вызов), путём сохранения адреса возврата в стеке. При возврате к исходной программе адрес извлекается из стека и загружается в программный счётчик.

б) В архитектурах, не имеющих стека или других регистров для сохранения содержимого программного счётчика, при выполнении команды GOTO (переход к ...) – переход к подпрограмме – адрес возврата сохраняется в регистре, причём ответственность за сохранение адреса возврата возлагается на программиста. Для этого только имитируется команда CALL, т. е. адрес возврата сохраняется в каком-либо регистре (если подпрограмма не вызывает другие подпрограммы. Иначе это ведёт к усложнению работы программиста). При возврате из подпрограммы содержимое этого регистра загружается в программный счётчик

в) В устройствах, где адрес возврата вообще нигде не сохраняется при выполнении команды GOTO, – для имитации вызова подпрограммы адрес возврата необходимо сохранить в виде переменной.

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

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

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

в) Для передачи параметров, их можно сохранить в регистрах процессора или в памяти данных в качестве специальных переменных. Но передача параметров через регистры процессора сокращает число регистров, доступных для выполнения функции, а сохранение параметров в виде специальных переменных также уменьшает объём памяти, доступной для использования программой.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]