КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Организация прерывания процессора
В процессе выполнения любой программы как внутри ЭВМ, так и во внешней среде (машины, используемые для управления некоторыми объектами), могут возникать некоторые события, которые требуют немедленной, определенной для этого события реакции, как со стороны ЭВМ, так и со стороны программы. ВМ временно прекращают выполнение текущей программы, переходит к выполнению некоторой другой программы, специально предусмотренной для этого случая, а по завершении специальной программы ЭВМ возвращается к выполнению исходной программы. Такой процесс перехода к специальным программам и обратно носит названия прерывание, причем исходная программа называется прерванной, а специальная программа - прерывающая. Различного рода сигналы, которые информируют ЭВМ о наступлении события, носят название запроса прерывания. Любое прерывание текущей программы заключается в том, что: 1) Процессор прекращает ее выполнение 2) Запоминает информацию, нужную для продолжения выполнения программы с точки прерывания. 3) Переходит к выполнению специальной программы. 4) После исполнения специальной программы, управление возвращается исходной программе. Запросы на прерывание могут возникнуть внутри компьютера (сбой в некотором устройстве, переполнение разрядной сетки, попытка деления на нуль, требование прерываний ввода - вывода и т. п.). Несмотря на программу источник, временной момент появления прерывания определить не возможно. То есть запросы прерывания асинхронны по отношению к программе. Моменты возникновения других событий можно заранее предсказать. При многократном использовании программы эти события будут возникать в одно время (операции обмена, переполнения) - синхронные события. Самые сложные события асинхронные. Для организации правильной работы основной и прерывающей программы нужно управление. Эта координация реализуется системами прерывания. Основными функциями являются следующие: - временной останов выполняющей программы и выбор запроса на обслуживание - запоминание состояния прерванной программы - инициирование программ - обработчиков прерывания - обслуживание - выполнение прерывающей программы - восстановление состояния прерывающей программы и возврат к выполнению исходной программы Эти функции также называют последовательностью обработки любого запроса на прерывание. Временная диаграмма: Любой запрос на прерывание формируется по соответствующей причине. Обычно: IR [0:n] - регистр прерывания. От момента выработки запроса до момента прерывания существует некоторое время, время реакции системы прерывания. Любой запрос фиксируется в фиксированном бите слова регистра прерывания. Время реакции в общем случае не постоянно. Оно зависит не только от того, как выпускаются допустимые моменты прерывания, но и от того, Сколько программ с более высоким приоритетом, чем прерывание ждет своего обслуживание в очереди. В ЭВМ используются различные способы определения допустимого момента прерывания. Самый простой способ заключается в том, что в формате команды ЭВМ вводится специальный бит - признак разрешения прерывания. Таким образом программист, составляя программу, может управлять разрешением прерывания. Это позволяет минимизировать объем информации, который запасается при переходе к прерывающей программе, что уменьшает общее время обработки прерывания, но само время реакции оказывается достаточно большим. Более распространенный способ предполагает, что прерывание возможно после окончания любой текущей команды. Но в этом случае нужно сохранять содержание всех программно доступных регистров. Это уменьшает время реакции, но увеличивает накладные расходы. В этом случае время реакции системы прерывания не превышает длительности выполнения самой длинной команды. Существует еще третий вариант - для машин, работающих в реальном времени. В таких ЭВМ прерывание может допускаться на любом шаге выполнения команды. Это характерно для компьютеров, имеющих микропрограммный уровень. Время реакции сводится к длительности одного такта. Но объем запоминаемой информации требует значительных временных затрат. Выбор запроса на обслуживание - вторая часть задачи. Запросы поступают в любой момент времени, следовательно, к моменту, когда может быть разрешено прерывание в регистре запроса может находиться несколько запросов (по крайней мере два). Возникает задача выбора запроса на обслуживание. Любой запрос в компьютере снабжается своим приоритетом. Обычно в качестве приоритета берут 0,1,... n. Степень важности обработчика пропорционален номеру (0 - самый высокий приоритет). Порядок выбора запросов определяется дисциплинами обслуживания. По способу исполнения приоритетов различаются дисциплины с абсолютными и относительными приоритетами. Если к моменту разрешения прерывания выбранный запрос оказывается выше приоритета текущей программы, то возможно два варианта действия: - текущая программа прерывается в тот момент, когда выбран приоритетный запрос (дисциплины с абсолютным приоритетом); - текущая программа не прерывается, продолжается до момента естественного прерывания (дисциплины с относительным приоритетом).
Функции могут реализовываться как программно, так и аппаратно. Программная реализация увеличивает время обслуживания прерывания. Максимальное время - выявление активного запроса в соответствии в соответствии с приоритетом нужно построить процедуру, которая должна из n запросов выявить приоритетный. Самый простой вариант анализа запросов - последовательный просмотр запросов слева направо (схема алгоритма - самостоятельно). Последовательный перебор характерен тем, что система прерывания имеет глубину прерывания 1 (прервать прерывающую программу нельзя). Результатом выявления активного запроса является формирование системного прерывания начального адреса прерывающей программы. В процессе работы ЭВМ важность выполняемых программ не является постоянной. Между различными прерывающими программами (запросами) не всегда можно установить фиксированное распространение приоритетов, следовательно, средства прерывания должны быть программно изменяемыми. Существует два способа программного управления приоритетами прерывающих программ: 1) Любая текущая, выполняемая в данный момент программа, характеризуется некоторым кодом (приоритетом программы). В этом случае система прерывания после выявления активного запроса сравнивает приоритет этого запроса с порогом приоритета, выполняемой программы. Если приоритет выделенного запроса ниже приоритета программы, то ее прерывание не происходит, но поскольку приоритет программы устанавливается пользователем, то при этом, запросом при смене приоритета программы может быть прерывание. При этом аппаратных изменений никаких нет, все включается в процедуру выявления. 2) Маскирование. В систему прерывание кроме индикатора (программно не доступен) вводится регистр маскирования, который доступен программно (т.е. можно загружать в него данные). Имеет аналогичную индикатору структуру. Любой запрос индикатора поставлен в соответствующий бит маски. Взаимодействие запросов прерывания и битов маскирования строятся по простой схеме: M [i] - маска IR [i] Если в бите маски 1, следовательно, соответствующее прерывание разрешено для обработки (для выявления), если 0, следовательно, соответствующее прерывание замаскировано (не разрешено). Изменяя маску, можем управлять приоритетом запросов на программном уровне. Схема взаимодействия:
Схема усложняется, если в качестве кода запроса на прерывание применяется позиционный код номера активного запроса. Эта процедура может реализовываться либо программно, либо аппаратно. Программная реализация резко увеличивает время обработки, в следствии чего, не применяется. Аппаратная реализация с точки зрения функционирования заключается в том, что схема решает уравнение:
Фактически управления нет
Если маски прерывания программистом фиксируются. Другой вариант: Перераспределены приоритеты
Поскольку запросу поступают асинхронно (не связаны с работой компьютера), то в некоторый момент времени в системе прерывания поступили 4 запроса. IR0 менее приоритетна чем IR2, переход к IR2 от IR2 переход к IR1 от IR1 переход к IR0 от IR0 переход к IR2, следовательно, зацикливание.
Дата добавления: 2013-12-12; Просмотров: 2921; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |