Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОЭВМиС 2012 все леккции.doc
Скачиваний:
4
Добавлен:
18.09.2019
Размер:
4.36 Mб
Скачать

Глава 3. 3.1 Система прерываний эвм

Система прерываний ЭВМ позволяет обеспечивать не только доступ к устройствам ввода/вывода для обмена данными, но и для управления ими в любой момент времени.

Причем система прерываний позволяет процессору не тратить время на циклические опросы и ожидания ответов устройств ввода/вывода.

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

Такое оповещение выполняется специальным сигналом со стороны внешнего устройства, который называют: прерыванием или запросом прерывания.

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

При получении такого запроса по выделенной линии процессор прерывает выполнения (приостанавливает) текущей программы и переходит к выполнению соответствующей запросу программы, а после ее реализации возвращается к прерванной программе для продолжения ее выполнения:

Запросы прерывания, как правило случайные во времени.

Определение: Совокупность аппаратных и программных средств, предназначенных для реализации обработки прерываний называют: системой прерывания ЭВМ или контроллером прерываний.

Прерывания условно можно разделить на классы:

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

  2. Внешние прерывания, вызванные сигналами запросов от внешних устройств.

  3. Программные прерывания, вызываемые особыми ситуациями, например, переполнением разрядной сетки, делением на «0» и т.д.

  4. Системные прерывания, порождаемые обращениями к операционной системы ЭВМ, например, возникла необходимость перераспределения памяти, организации обмена и т.д.

Функции системы прерываний

  1. Запоминание состояния прерываемой программы в специальных регистрах

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

  3. Восстановление состоянии прерванной программы после завершения прерывающей и возврат к дальнейшему выполнению прерванной программы

Основные характеристики системы прерываний

  1. Число запросов, которые ЭВМ способна обработать (i 486 – и выще – 256).

  2. Время реакции системы прерываний: это рис. 3.02

В большинстве случаев ЭВМ реагирует на запрос после выполнения текущей команды выполняемой программы.

Есть исключения, когда ЭВМ реагирует на запрос после выполнения текущего такта: например, обнаружение ошибки, которая может повлиять на вычислительный процесс, или при управлении опасным объектом, когда требуется немедленная реакция. (Исключения рассмотрим позже)

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

tп = tз + tв где tз – время запоминания состояния прерываемой программы.

tв – время её восстановления.

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

Определения:

  1. Если после перехода к прерывающей программе и до ее выполнения другие запросы не обслуживаются по п=1. Если допускается прерывание к-программ, то глубина прерывания п=к.

  2. Если запрос не обслужен до прихода нового запроса, то говорят возникло насыщение системы прерываний ЭВМ.

3.2 Слово состояния программы (процессора)

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

Определение:

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

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

Наиболее простым является вектор состояния для первых двух процессоров фирмы Intel: 80/85, 80/86, российских К580, К1821 и т.д. который формируется в регистрах:

СУ – флаг переноса, СУ=1 – переполнение в случае сложения или займа при вычитании.

Р-флаг четности, Р=1 – при четном числе единиц в коде результата.

АС – флаг дополнительного переноса, АС = 1 при переносе единицы из младшей тетрады в старшую (для операций десятичной арифметики).

S – флаг знака, S = 1 – старший разряд результата равен единице. Если старший разряд трактуется как знаковый, то S = 1 означает отрицательный.

Z (ZERO)– ноль, Z=1 означает что результат операции = 0.

С появлением процессоров i286, i386, i486 и IA-32 Pentium слово состояния процессора существенно расширилось, причем стало включать в ctmz и старое (8-битное), рассмотренное ранее.

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

Например, уже в процессоре i486 на одном кристалле находятся:

- центральный процессор

- сопроцессор 80387 для операций с плавающей точкой

- устройство управления

- диспетчер памяти

- блок предварительной выборки команд и данных

- магистральный интерфейс (многоразрядная шина) и т.д.

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

Ранее применялась линейная адресация, что позволяло при 20-разрядной шине адресовать до 1 Мбайта памяти.

Процессор имел 8 RG общего назначения, счетчик команд и RG – состояния.

В современной архитектуре IA-32 (IA Intel Architecture) содержится:

- 8-32 разрядных регистров общего назначения (R0 – R7)

- 8 – 64 разрядных регистров для операций с плавающей точкой (FPO – FP7)

- 6 – 16 разрядных регистров сегментов (CS, SS, DS, ES,FS,GS)

- 1 – указатель (счетчик) команд, содержащий адрес следующей команды (EIP) (32 разр.)

- 1 – RG состояния 32-разрядной RG EFLAGS

- 1 – RG состояния (32 разр.) для сопроцессора стали применяться 32, 64, 128, 256 разрядные шины, страничная организация памяти, что позволило адресовать до нескольких Гбайт памяти.

Процессоры стали работать в двух режимах:

- режиме реальной адресации, полностью совместимом с ранее наработанным программным обеспечением. Обычно управляется ОС MS DOS.

- защищенном режиме виртуальной адресации под управлениеv операционных систем UNIX, OS/2, WINDOWS и т.д.

В связи с вышеперечисленным и появилось новое слово состояния, полностью включившее в себя и старое.

RG EIP - содержит адрес следующей команды значение разрядов RG EFLAGS:

Разряды CF, PF, AF, ZF, SF – соответствуют значениям слова состояния, ранее рассмотренного (для процессоров до i286)/ (Разр. 1.3.5 – своб.).

Добавления разрядов:

8 – TF – флаг ловушки (используется при отладке программ). TF – еще называют флаг трассировки.

9 – IF – флаг разрешения прерывания по внешнему запросу.

11 – OF – переполнение разрядной сетки.

12-13 – TOPL – уровень привилегий (приоритетов) ввода/вывода, то есть может ли данный запрос на вводе/выводе прервать выполняемую в данное время программу.

Устанавливаются приоритеты для программ Операционной системы

14 – NT – указатель то, что текущая программа (выполняемая в данный момент) вложена в другую (то есть является сама прерывающей.) Используется при передаче управления программам.

16 – RF – флаг контроля ошибок при отладке программ.

17 – VM – флаг режима виртуального процессора 8086 (и других до i286), то есть когда процессор работает как 8086 но реализует одновременно защиту памяти и ее страничную организацию.

18 – 4С – флаг выравнивания операндов.

Таким образом, разряды 0-7 соответствую процессорам типа 8086

19-31 – резервные (могут быть в последующих модификациях IA-32 уже и некоторые и задействованы).

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

Слова состояния разных процессоров различаются, поскольку их состав зависит от архитектуры процессора и набора выполняемых ими команд.

Примерами могут служить процессоры типа ARM, Motorola 68000 и других.

    1. Типы прерываний

Современные процессоры способны обрабатывать до 256 прерываний, которые можно разделить на 2 группы:

  1. Прерывания/исключения используются для внутрисистемных целей. Число их может быть 32.

  2. Внешние прерывания (224), по запросам внешних устройства (Для пользователя ЭВМ).

Краткая их характеристика.

  1. Прерывания/исключения – возникают при запросах от внутренних блоков процессора. Свидетельствуют о возникновении исключительной ситуации: деление на «0», переполнение разрядной сетки, возникновении ошибки в команде и т.д.

Делятся на подгруппы:

а. отказы (faults), б.ловушки (traps), в. выход из процесса (aborts).

Отказы – возникают и обслуживаются перед выполнением команды. Например, процессор обратился к несуществующей в ОП странице или сегменту. Тогда вырабатывается сигнал прерывания, ОС обращается к странице или сегменты уже дисковой памяти, после чего процессор перезапускает команду.

Ловушка – возникает сразу после выполнения команды, например, в режиме отладки программы. В этом случае - после выполнения команды по запросу INT процесс останавливается и пользователь может проконтролировать результат выполнения, после чего продолжить процесс.

Выход из процесса: прерывание возникает при обнаружении крупных ошибок. Например, ошибка при чтении системных таблиц, неисправность какого-либо устройства ЭВМ и т.д.

Процессоры Intel IA-32 обрабатывают свыше 15 прерываний/исключений, остальные (под них отведено 32 типа) зарезервированы.