Студопедия

КАТЕГОРИИ:


Архитектура-(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. Выполнение текущей программы прерывается. Прерывание осуществляется по завершении текущей i-й команды программы. Выполнение i+1 команды не начинается (блокируется).

2. Запоминается информация о состоянии процессора в виде ССП: адрес следующей команды, признаки результата, маски и т. п. информация.

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

Структура (типовая) обработчика прерывания:

1) сохранение используемых РОН (как части вектора состояния процесса) в ячейках ОП;

2) собственно обработка прерывания;

3) восстановление РОН (ОП→РОН) и возврат из прерывания.

Операция прерывания запускается (возбуждается) либо по сигналам прерывания, либо по командам прерывания (похожим на команду CАLL – вызов подпрограммы).

Причины, по которым формируются (вырабатываются) сигналы прерываний, различны и делятся на внутренние и внешние.

Внешние причины – это события, которые возникают вне ЭВМ: в ПУ (например, в клавиатуре и т.п.), в других ЭВМ ВК, сигналы времени от таймера и т.п.

Внутренние причины – это события, которые происходят внутри ЭВМ. Их можно разделить на два типа: 1) причины (события), при возникновении которых нормальное развитие (продолжение) вычислительного процесса становится невозможным, или бессмысленным; 2) причины (события) нормальные, естественные для вычислительного процесса.

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

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

Нормальные (естественные) причины прерываний: это процессы ввода/вывода информации, которые часто инициируются по сигналам прерываний от устройств ввода-вывода (УВВ) информации, а также обращение к различным ресурсам (программам) ОС.

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

Прерывания при обращениях к сервисным программам ОС обычно осуществляются по специальным командам прерываний. В IBM PC, например, для этих целей можно использовать специальную команду прерывания типа INT N, которая встраивается в пользовательскую программу в необходимых местах. Эту группу причин прерываний принято называть «командные прерывания».

Маскирование прерываний. ЭВМ должна иметь средства, позволяющие избирательно, гибко реагировать на различные сигналы (причины) прерывания. Например, если пришел сигнал прерывания от одной из схем контроля (которая обнаружила факт отказа аппаратуры), то в этом случае нет необходимости (бессмысленно) реагировать на другие сигналы прерываний (например, на переполнение разрядной сетки) до тех пор, пока неисправность аппаратуры не будет устранена. Для этих целей используется маска прерываний – двоичный код М=m1…mk, , в котором каждой причине прерывания ставится в соответствие бит маски mi. Если, например, бит маски mi=0, то прерывание по i-й причине запрещено, т.е. замаскировано. Если mi=1, то разрешено, т.е. не замаскировано. Таким образом, операция прерывания инициализируется (возбуждается) только незамаскированным сигналом прерывания.

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

 
 

Для реализации назначенных приоритетов в ЭВМ используется т.н. система приоритетов, которая является составной частью системы прерываний ЭВМ. Простейшая схема системы приоритетов представлена на рисунке 2.4.

Как работает эта схема? При поступлении хотя бы одного незамаскированного сигнала прерывания λ`i в цепь запросов процессор прерывает выполнение текущей программы, а арбитр приступает к поиску источника (устройства), пославшего запрос (сигнал) на прерывание. Поиск осуществляется в порядке установленных приоритетов, т.е. начинается с источника (устройства), имеющего наивысший приоритет и ведется в порядке убывания приоритетов. Поиск продолжается до тех пор, пока не обнаружится устройство, пославшее сигнал прерывания (например, λ`5 =1). Другими словами, арбитр осуществляет поиск устройства с наивысшим в данный момент времени приоритетом. После этого запускается подпрограмма, обслуживающая данную причину прерывания.

Как быть, если в процессе обслуживания причины прерывания вырабатывается другой сигнал прерывания? Здесь возможны две схемы поведения – две дисциплины обслуживания. Первая - обслуживание по схеме с относительными приоритетами (ОПР). Вторая – обслуживание по схеме с абсолютными приоритетами (АПР).

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

В случае с АПР приоритет абсолютен, т.е. действует всегда (на временной оси) и вызывает прерывание подпрограмм прерывания с более низкими приоритетами. Обслуживание по схеме с относительными и абсолютными приоритетами можно проиллюстрировать временной диаграммой (рисунок 2.5).

Дисциплина с ОПР имеет глубину прерываний 1, с АПР – глубину прерываний больше 1: 2,3,… (вложенные прерывания). Чем отличаются еще? Временем ответа (реакции) – как видно из временной диаграммы в случае АПР обслуживание запросов 2 и 3 завершается раньше, чем для случая ОПР.

 
 

Способы реализации функций арбитра. Применяются два основных способа: программная и аппаратная реализация.

При программном способе функции арбитра выполняет специальная программа, которую, естественно, реализует процессор – «программа-арбитр». Ее структура представлена на рисунке 2.6. Достоинство способа: минимальные затраты оборудования. Недостаток: существенные (большие) затраты времени на арбитраж, т.е. на поиск устройства, пославшего запрос на прерывание с наивысшим в данный момент времени приоритетом.

Для уменьшения этого времени естественно использовать второй способ – аппаратную реализацию функций арбитра. Простейшая схема: в состав системы прерывания вводится еще одна цепь – разрешение прерывания РП (дейзи-цепочка), которая последовательно подключается ко всем устройствам в порядке установленных приоритетов (рисунок 2.7).

Порядок функционирования: устройство, посылая сигнал прерывания в цепь запросов прерываний ЗП, размыкает ключ в цепи РП. Такую цепь называют дейзи-цепь. Арбитр, получив хотя бы один незамаскированный запрос на прерывание, ждет завершения текущей команды в процессоре, ЦП прерывает выполнение текущей программы, т.е. не переключается на выполнение следующей команды программы, а арбитр запоминает информацию о состоянии ЦП (обычно путем заталкивания в стек содержимого счетчика команд СК и регистра флагов). После этого арбитр вырабатывает ответный сигнал (импульс) «разрешение прерывания» и посылает его в цепь РП. Этот сигнал распространяется до ближайшего к арбитру устройства, пославшего запрос на прерывание (т.е. до устройства с наивысшим в данный момент времени приоритетом). Получив сигнал по цепи РП, это устройство выставляет на ШД процессора (и арбитра) свой индивидуальный адрес вектора прерываний АВП. Этот адрес используется ЦП для извлечения из ОП т.н. вектора прерываний ВП. ВП – это обычно пара слов: адрес программы- обработчика и новые значения для регистра флагов. ВП обычно хранится в фиксированных ячейках ОП. Назначается ВП индивидуально для каждого устройства. По АВП ЦП извлекает адрес обработчика из ОП и загружает его в СК, а значения флагов - в регистр состояния. Тем самым запускается программа обслуживания данного устройства.

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

 

Рисунок 2.6

 

 
 

Рисунок 2.7 - Одноуровневая система приоритетов

 
 

Рисунок 2.8 – Многоуровневая система приоритетов

Система прерываний ПЭВМ IBM PC. В IBM PC используется т.н. векторная система прерываний, в составе которой используется двухуровневая система приоритетов (рисунок 2.9).

 

 
 

Рисунок 2.9 – Система прерываний IBM PC

Здесь арбитр системы прерываний имеет два входа для приема сигналов прерываний от устройств ВК и других источников. Вход NMI имеет более высокий приоритет, чем вход INTR. Кроме того, вход NMI не маскируется, а маскируемый вход INTR маскируется маской прерываний IF из регистра флагов ЦП. Таким образом, аппаратные (внешние) прерывания делятся на два типа: маскируемые и немаскируемые.

Кроме аппаратных прерываний есть и внутренние прерывания. Это прерывания типа отказ (fault) – такого рода прерывание наступает в случаях, когда в результате различных некорректностей невозможно нормальное выполнение команды – прерывание наступает до выполнения команды. Прерывание «ловушка» (trap) – прерывание наступает в результате выполнения команды, например, команды прерывания INT N. Прерывание «аварийное завершение команды» (abort) из-за ошибки аппаратуры. Этот тип прерываний не маскируется.

Обслуживание прерываний: сначала в стек заталкивается адрес следующей команды: CS, IP (2 слова) и регистр флагов RF (третье слово), кроме того, сбрасываются биты IF=0, TF=0 в RF ЦП. После этого по номеру ВП N, полученному от внешнего устройства или сгенерированному внутри ЦП, из ОП извлекается ВП. Адрес ВП формируется следующим образом: АВП=4N. По нему из ОП извлекаются два слова адреса обработчика, которые загружаются в регистр CS (базовый адрес) и IP (смещение). По ним выбирается первая команда программы обработки прерывания. В конце программы-обработчика ставится команда iret – возврат из прерывания, по которой из стека выталкиваются 2 слова адреса возврата к прерванной программе и загружаются в CS и IP, и третье слово - в RF.

В PC каждой причине прерывания ставится в соответствие свой номер ВП (тип прерывания). Например, деление на 0 имеет ВП с номером 0 (тип 0). Всего в IBM PC можно использовать 256 ВП с номерами от 0 до 255 (от 0 до FFh).Все ВП располагаются в сегменте данных, начиная с 0 адреса, АВП кратен 4. Запросом на прерывание является положительный перепад сигнала на входе NMI.Запрос по входу NMI обслуживается ВП с номером 2 (тип 2). Этот номер генерируется (формируется) внутри ЦП автоматически. Обслуживание прерывания по входу NMI осуществляется без прерывания обработчика, т.е. по схеме с ОПР, т.к. сигнал запроса сбрасывается только после выполнения команды IRET.

 

На входе INTR сигналом запроса является сигнал высокого уровня. По этому сигналу арбитр заталкивает в стек IP, CS, RF и вырабатывает два ответных сигнала (импульса) INTA1, INTA2. Получив второй из них, программируемый контроллер прерываний ПКП сбрасывает сигнал на входе INTR и посылает по ШД в ЦП номер ВП, соответствующий причине прерывания с наивысшим в данный момент времени приоритетом (IRQi). По ВП запускается программа-обработчик, которая не может быть прервана (т.к. IF=0) до тех пор, пока сама не установит маску IF=1 (по команде STI). Отметим еще раз, что эта п/п может быть прервана сигналом прерывания на входе NMI, т.к. на него флаг IF не действует (АПР). Кроме того, эта п/п может быть прервана и некоторыми внутренними причинами прерывания – например, делением на 0.

Рекомендуемая структура программы-обработчика для IBM PC представлена на рисунке 2.10.

Противоречия (недостатки). Фирма Intel зафиксировала векторы с номерами от 0 до 31 для обслуживания исключений (внутренних прерываний процессора): тип 0 – деление на 0 и т.д. Однако фирма IBM при разработке ПЭВМ типа PC часть из них использовала под системные прерывания BIOS и DOS. Возникает конфликтная ситуация, которую разрешить не просто!

 

<== предыдущая лекция | следующая лекция ==>
Средства мультипрограммирования | Многоуровневая организация памяти электронных вычислительных машин
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 3307; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




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