русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Режим прерывания программы


Дата добавления: 2015-08-06; просмотров: 970; Нарушение авторских прав


Используемый для обмена данными с ВУ режим ожидания имеет очевидный недостаток - снижение производительности МП за счет бесполезной траты времени на ожидание готовности ВУ. Режим прерывания программы не имеет этого недостатка и является особенно полезным для организации работы МС в реальном масштабе времени. Сущность режима прерывания заключается в том, что ВУ обращается с запросом на обмен данными тогда, когда оно готово обменяться данными. Инициатором обмена данными является ВУ, которое выдает сигнал запроса прерывания асинхронно по отношению к МП в виде сигнала ЗПР высокого уровня. Запрос на прерывание может быть воспринят МП не всегда и может быть удовлетворен только в том случае, если до поступления сигнала ЗПР триггер запроса прерывания установлен. Для установки триггера используется специальная команда EI (разрешение прерывания). Если же после режима начальной установки команда EI не была выполнена, то запросы ВУ на прерывания игнорируются.

Возможность восприятия прерываний сигнализируется МС сигналом РПР (разрешение прерываний). Если на этом выводе МП присутствует лог. "1", то прерывание программы возможно. В противном случае запросы на прерывание игнорируются.

Инициаторами на прерывание могут быть несколько ВУ одновременно. Поэтому, если МП находится в состоянии восприятия запроса прерывания, то должны выполняться следующие действия: идентификация источника запроса прерывания; сохранение состояния МП (содержание счетчика команд PC, аккумулятора, РОН, РП) с тем, чтобы обеспечить возможность возобновления вычислений по прерванной программе; выполнение программы обработки прерывания; восстановление состояния МП и возврат к выполнению прерванной программы. Для временного запоминания состояния МП используется стековая память.

В МС на базе МП К580 реализована так называемая векторная система прерываний. Асинхронный сигнал высокого уровня ЗПР может появиться в любой момент цикла выполняемой команды. Поэтому внутренняя схема управления должна синхронизировать внешний запрос и установить соответствие с сигналами системной синхронизации, обеспечивая завершение выполнения текущей команды. В последнем такте последнего машинного цикла всех команд, кроме команды EI, при действии сигналов ЗПР=1 и РПР=1 по нарастающему фронту сигнала Ф2 устанавливается внутренний триггер прерывания. Это приводит к тому, что следующим тактом оказывается такт Т1 машинного цикла М3 (подтверждение прерывания). Он напоминает цикл М1 - выбора кода операции, так как в байте состояния установлен бит D5, но одновременно устанавливается и бит прерывания DO, который подтверждает восприятие микропроцессором запроса на прерывание, а бит D7 - считывание из памяти - сбрасывается.



В такте Т1 (рис. 3) МП выдает на шину адреса содержимое счетчика команд PC, а на шину данных - байт состояния, соответствующий циклу М3. В том же такте по нарастающему фронту сигнала Ф2 с максимальной задержкой 200 нс формируется низкий уровень на выводе РПР.

 

Рис. 3 - Режим прерывания

Следовательно, МП будет игнорировать последующие запросы на прерывание до тех пор, пока триггер разрешения прерываний не будет установлен командой EI. В такте Т2 генерируется сигнал считывания ПМ, который в обычном цикле М1 вводит код операции из программной памяти в регистр команд. Но в цикле МЗ обращение к программной памяти запрещено (бит D7 равен 0), поэтому код операции должен быть сформирован подсистемой прерываний. Заметим, что в такте Т1 цикла МЗ инкремент PC не производится (формируется внутренний сигнал запрещения выхода схемы инкремента), поэтому в нем сохраняется адрес команды, которая выполнялась бы при отсутствии прерывания. Кроме того, в такте Т2 сбрасывается внутренний триггер прерывания.

Очевидно, что для загрузки содержимого PC в стек необходимо сформировать команду вызова подпрограммы прерывания. Стандартная команда вызова подпрограммы CALL является трехбайтовой и выполняется за пять машинных циклов. Чтобы ускорить реакцию микропроцессора на прерывание и упростить интерфейс подсистемы прерываний, в систему команд включена специальная однобайтовая команда рестарта RST с кодом операции ххАА Аххх.

Трехбитовое поле ААА, называемое вектором, должно быть сформировано периферийным устройством, на запрос которого реагирует микропроцессор. В такте ТЗ команда рестарта с шины данных загружается в регистр команд, а такты Т4 и Т5 отведены на дешифрирование команды RST.

Команда RST инициирует выполнение двух действий:

содержимое PC в циклах М2 и МЗ загружается в стековую память;

в PC передается код 0000000000ААА000, который сообщает микропроцессору начальный адрес обработчика прерываний.

Таким образом, биты ААА однозначно идентифицируют устройство, сформировавшее запрос на прерывание.

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



<== предыдущая лекция | следующая лекция ==>
Режим ожидания | Режим прямого доступа к памяти


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.043 сек.