Добавил:
Студент, если у тебя есть завалявшиеся работы, то не стесняйся, загрузи их на СтудентФайлс! Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МИУС .docx
Скачиваний:
5
Добавлен:
16.07.2022
Размер:
756.18 Кб
Скачать

2.9. Типы программ

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

Линейные программы содержат только операторные блоки.

начало

начало

конец

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

начало

?

да нет

конец

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

начало

?

нет

да

конец

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

  1. на любом свободном регистре общего назначения.

  2. в отдельной ячейке памяти, если имеется свободная регистровая пара для ее адресации.

    1. Принципы организации системы прерываний

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

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

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

Основные функции системы прерываний:

1) запоминание состояния прерванной программы (т.е. формирование слова состояния процессора);

2) переход к программе, обрабатывающей прерывание;

3) восстановление состояния прерванной программы и возврат к ней.

Каждое событие, требующее прерывания, называется запросом прерывания.

Все прерывания делятся на классы:

  1. прерывания от схем контроля (прерывания по сбою)

  2. программные прерывания (по ошибкам программ)

  3. прерывания от внешних источников

  4. прерывания от устройств ввода-вывода.

Каждый запрос прерывания имеет свой код. Код запроса прерывания в каждом отдельном случае запоминается в ОЗУ. Код запроса необходимо хранить, т.к.:

1) одновременно могут выдать запросы несколько источников, а к обслуживанию принимается только один;

2) во время выполнения прерывающей программы могут поступить запросы от других источников.

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

Характеристики системы прерываний

1.Общее число запросов прерывания (число входов в систему прерывания).

2. время реакции – время между появлением запроса прерывания и началом выполнения прерывающей программы.

Упрощенная временная диаграмма процесса прерывания:

П рерываемая

программа

з апрос

прерывания

п рерывающая

программа

tзапр tpsw tc tв tp

tp – время реакции

tзапр – время формирования сигнала запроса

tpsw время формирования слова состояния процессора

tc – собственно время выполнения прерывающей программы

tв – время восстановления прерванной программы

3. затраты времени на переключение программ (издержки прерывания)

tизд = tp + tв

4. глубина прерывания – максимальное число программ, которые могут прерывать друг друга.

5. число классов (уровней) прерываний.

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

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

Графически это можно представить следующей иллюстрацией:

Внеш-няя

среда

О

1

2

Зап.1

Зап.2

О - основная (текущая) программа

1, 2 – программы, обслуживающие события Зап.1 и Зап.2 (программы- обработчики запросов 1 и 2).

Запрос прерывания – это сигнал, поступающий в процессор.

МП имеет пять входов аппаратного прерывания – TRAP, RST 7.5, RST 6.5, RST 5.5, INTR.Обслуживание прерываний осуществляется по приоритету. B таблице прерывания расположены в порядке возрастания приоритета.

Выводы

Приоритет

Начальный адрес обрабатывающей программы

TRAP

RST 7.5

RST 6.5

RST 5.5

INTR

1

2

3

4

5

24H

3CH

34H

2CH

(*) – процессор извлекает команду из спец. внешнего источника

TRAP соответствует немаскируемому системному прерыванию, т.е. его нельзя заблокировать с помощью какой-либо команды. Входы RST являются входами маскируемых прерываний. Это означает, что их можно разрешить или запретить специальной командой SIM (загрузить маску прерываний).

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

При поступлении запроса прерывания МП выполняет следующие действия:

  1. Определение наиболее приоритетного незамаскированного запроса на прерывание

  2. Определение типа выбранного запроса.

  3. Сохранение текущего состояния регистра-аккумулятора, счетчика команд и регистра флагов (формирование слова-состояния процессора).

  4. Определение адреса программы-обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика.

  5. Выполнение программы-обработчика прерывания.

  6. Восстановление состояния прерванной программы.

  7. Продолжение выполнения прерванной программы.

Соседние файлы в предмете Основы микропроцессорной техники