Программные прерывания. Принцип работы.
Программы могут сами вызывать прерывания с заданным номером. Для этого они используют команду INT. По этой команде процессор осуществляет практически те же действия, что и при обычных прерываниях, но только это происходит в предсказуемой точке программы – там, где программист поместил данную команду. Поэтому программные прерывания не являются асинхронными (программа «знает», когда она вызывает прерывание).
Программные прерывания в прямом смысле прерываниями не являются, поскольку представляют собой лишь специфический способ вызова процедур — не по адресу, а по номеру в таблице.
Механизмпрограммных прерываний был специально введен для того, чтобы:
1. переключение на системные программные модули происходило не просто как переход в подпрограмму, а точно таким же образом, как и обычные прерывания. Этим обеспечивается автоматическое переключение процессора в привилегированный режим с возможностью исполнения любых команд.
Системные прерывания грузят процессор? Разгрузи проц и дай ПК нормально работать!
2. использование программных прерываний приводит к более компактному коду программ по сравнению с использованием стандартных команд выполнения процедур.
Пример (программные прерывания):
· привилегированная команда в режиме пользователя.
· адрес вне диапазона.
· нарушение защиты памяти.
· арифметическое переполнение, отсутствует страница.
· нарушение защиты сегмента.
· выход за границу сегмента.
В упрощенном виде схему обработки различных видов прерываний можно представить следующим образом:
КП – контроллер прерываний, имеет несколько уровней (линий) для подключения контроллеров устройств (на схеме обозначены КУ). Возможно каскадное подключение контролеров, когда на один из его входов подключается еще одни контроллер прерываний. ЦП – центральный процессор.
Аппаратные прерывания вырабатываются устройствами компьютера, когда возникает необходимость их обслуживания. В отличие от программных прерываний, вызываемых запланировано самой прикладной программой, аппаратные прерывания всегда происходят асинхронно по отношению к выполняющимся программам. Кроме того, может возникнуть одновременно несколько прерываний. Выбор одного из них для обработки осуществляется на основе приоритетов, приписанных каждому типу прерывания.
Каждому прерыванию назначается свой уникальный приоритет. Если происходит одновременно несколько прерываний, то система отдает предпочтение самому высокоприоритетному, откладывая на время обработку остальных прерываний.
В случае о прерывании самой программы обработки прерывания говорят о вложенном прерывании. Уровни приоритетов обозначаются сокращенно IRQ0 — IRQ15 или IRQ0 – IRQ23 (в зависимости от микросхемой реализации).
Пpepывaнию вpeмeни cутoк дан мaкcимaльный пpиopитeт, пocкoльку ecли oнo будет пocтoяннo тepятьcя, то будут нeвepными пoкaзaния cиcтeмныx чacoв. Пpepывaниe от клaвиaтуpы вызывaeтcя при нaжaтии или oтпуcкaнии клавиши; oнo вызывaeт цепь coбытий, кoтopaя oбычнo зaкaнчивaeтcя тем, что код клавиши пoмeщaeтcя в буфep клaвиaтуpы (oткудa он зaтeм мoжeт быть пoлучeн пpoгpaммными пpepывaниями).
#6. Что такое регистры и прерывания / 2. Введение в ассемблер / Программирование с нуля
BIOS (basic input/output system) — базовая система ввода-вывода. Она представляет собой микропрограмму, необходимую для простейшего управления компьютером и его узлами. BIOS содержат материнские платы, контроллеры, видеокарты и некоторые другие устройства.
BIOS системных плат служит для управления основными функциями клавиатуры, видеосистемы, портов, дисков, ОЗУ, разнообразных других устройств и контроллеров. Именно с BIOS начинается первичная загрузка компьютера. Для этого он размещается в специальной микросхеме – ПЗУ (ROM) на материнской плате.
Микрокод BIOS может быть рассчитан на неизменное существование в течение всего срока службы платы, но большинство (почти все современные) BIOS поддерживают смену программы, то есть подлежат перепрошивке (Flash ROM). Это делается для того, чтобы в дальнейшем можно было исправить ошибки и внести дополнительные функции для работы с новыми устройствами без замены оборудования. Все более менее современные BIOS стандартизированы. Максимальный размер микрокода в них составляет 1, 2 или 4Мбит. Поэтому в случае выхода из строя микросхемы Flash ROM ее всегда можно легко заменить, предварительно прошив соответствующей прошивкой.
Все прерывания в компьютере делятся на аппаратные, программные и исключения. Аппаратные прерывания могут быть маскируемыми и немаскируемыми. Маскируемые прерывания могут быть запрещены установкой флага IF, немаскируемые прерывания не могут быть запрещены и возникают при сбоях и ошибках аппаратуры (например, ошибка паритета памяти).
Аппаратные прерывания — это запросы от периферийных устройств на обработку данных. Программные прерывания — это, как правило, вызов каких-либо функций DOS или BIOS, а также вызов пользовательских функций. Исключения возникают при возникновении какой-либо критической ошибки (например, деление на 0, отсутствие сопроцессора и т.д.) или при пошаговом выполнении программы (трассировка).
Каждому прерыванию сопоставляется некоторая программа — обработчик прерывания, которая выполняет те или иные действия при возникновении прерывания. Для аппаратных прерываний обработчики, помимо всего прочего, выполняют управление аппаратурой.
Обработчики программных прерываний обычно выполняют некоторые функции, в зависимости от входных параметров, заданных в регистрах, и могут возвращать результаты в регистрах или иным образом. Обработчики исключений выполняют специфические задачи, зависящие от конкретного случая (например, обработчик прерывания «деление на 0» обычно выдаёт сообщение об ошибке на экран).
Для привязки каждого прерывания к его обработчику существует специальная таблица — так называемая таблица векторов прерываний, в которой для каждого прерывания хранится адрес обработчика в формате сегмент:смещение. Таблица располагается в памяти по абсолютному адресу 0x00000000 и собержит 256 ячеек — столько прерываний может быть в компьютере IBM PC.
Сюда включены аппаратные и программные прерывания, а также исключения. Размер таблицы — 1024 байта, а размер ячейки — 4 байта (2 байта на сегмент и 2 на смещение). Некоторые ячейки в таблице векторов прерываний зарезервированы и не должны использоваться. Некоторые являются свободными и предназначены для установки пользовательских обработчиков.
Ниже представлены таблицы с описанием прерываний DOS, BIOS и некоторых других прерываний.
Прерывания BIOS
Прерывания DOS
Источник: zdamsam.ru
АВС_Лек7_2013 / Система прерываний программ в ЭВМ
Важнейшая роль в реализации сложных режимов работы отводится системе прерывания программ.
Прерывание — это приостановка выполнения в процессоре программы с целью выполнения какой-то более важной или нужной в данный момент другой программы или процедуры, после завершения которой продолжается выполнение прерванной программы с момента ее прерывания. Прерывание позволяет компьютеру приостановить любое свое действие и временно переключиться на другое, как заранее запланированное, так и неожиданное, вызванное непредсказуемой ситуацией в работе машины или ее компонента. Каждое прерывание влечет за собой загрузку определенной программы, предназначенной для обработки возникшей ситуации — программы обработки прерывания.
Организация и управление прерываниями функционально во многом смыкается с управлением задачами. — одной из базовых функций операционных систем. Основой для управления процессом одновременного решения нескольких задач (равно как и управления прерываниями) являются процедуры:
- выбора очередной задачи или определения приоритета задачи;
- сохранения информации о статусе задачи при ее прерывании (формирование слова состояния программы);
- упреждения и устранения конфликтов между задачами (координации и синхронизации выполнения задач).
Последовательность действий процессора при реализации прерывания такова. При появлении запроса на прерывание, запланированное заранее или неожиданное, процессор, как правило, после завершения выполнения текущей команды программы анализирует допустимость (разрещенность и приоритетность) данного вида прерывания. Если оно разрешено, Процессор производит следующие Действия: запоминает в стековой памяти текущее состояние прерываемой программы (состояние некоторых регистров МПП, в частности, регистров FL, CS, IP, а в микропроцессорах МП80286 и выше — и слова состояния программы, хранящегося в другом регистре МПП); посылает источнику запроса на прерывание запрос о причине (коде) прерывания; □ анализирует код запрошенного прерывания (номер прерывания — Ni) и фор» мирует адрес ячейки (AV), хранящей вектор прерывания (вектор-адрес про граммы обработки прерывания) по формуле AV= 4Ni (векторы прерываний; занимают начальную 1024-байтовую область ОП с адресами ячеек от 00000 ■ до 00400h (шестнадцатеричный код) так, что адрес вектора вычисляется про етым умножением номера прерывания на четыре, так как CS и IP занимают по два байта каждый);
- считывает из ОП и записывает в регистры МПП (в регистры FL, CS, IP и т. д.) вектор прерывания и его атрибуты;
- сбрасывает (устанавливает в 0) флаги прерывания (IF) и трассировки (TF);
- выполняет программу обработки прерывания (которую иногда называют драйвером прерывания);
- после выполнения программы обработки прерывания возвращает из стековой памяти параметры прерванной программы в регистры МПП и восстанавливает процесс выполнения прерванной программы.
Видов (номеров) прерывания может быть всего 256, и, соответственно, векторов прерывания (адресов CS:IP программ обработки прерываний) в ОП насчитывается до 256. Классификация видов прерываний показана на рис. 17.2.
- базовой системы ввода-вывода — прерывания BIOS;
- операционной системы — прерывания DOS.
Программы обработки прерываний DOS, в отличие от программ обработки прерываний BIOS, не встроены в ПЗУ и для разных операционных систем могут быть разными. К программным прерываниям можно отнести также прерывания при пошаговом исполнении программы, при работе с контрольным остановом и т. д. Технические прерывания (или, иначе, прерывания от схем контроля) возникают при появлении отказов и сбоев в работе технических средств (аппаратуре) ПК. Большинство технических прерываний не маскируются, то есть они разрешаются всегда, а некоторые из них относятся к категории «аварийных» (например, отключение питания), и при их возникновении даже не запрашивается причина прерывания, а просто по возможности спасаются важные промежуточные результаты — записываются в безопасное место, в НЖМД, например. Логические прерывания возникают при появлении ошибок в выполняемых программах (деление на 0, потеря точности мантиссы, нарушение защиты памяти и т. п.). Многие из логических прерываний также относятся к категории немаскируемых. Прерывания обслуживаются базовой системой ввода-вывода — модулем расширения BIOS и модулем обработки прерываний DOS. BIOS и блок расширения BIOS имеют дело в основном с непланируемыми техническими и логическими прерываниями, пользовательскими прикладными прерываниями, а также со многими планируемыми прерываниями, обслуживающими систему ввода-вывода, детализированными и не’очень детализированными (прерывания, обслуживаемые BIOS, часто называют прерываниями нижнего уровня). Модуль обработки прерываний DOS обслуживает в большинстве планируемые прерывания, в том числе и прерывания системы ввода-вывода. Прерывания DOS часто называют прерываниями верхнего уровня, так как, с одной стороны, в этих прерываниях меньше учитываются технические особенности элементов ПК, с другой стороны, при обработке этих прерываний часто случаются обращения к программам прерываний системы BIOS. Большинство прерываний BIOS имеют близкие аналоги среди прерываний DOS. Следует сказать, что использование прерываний BIOS позволяет, как правило, более детально выполнять обращения к различным системным ресурсам ПК, к элементам информационных структур и их атрибутам. Однако прерывания DOS более просты в использовании при программировании. Поэтому начинающим программистам можно рекомендовать работать с прерываниями DOS, особенно с расширенными функциями DOS для работы с файлами. Схема организации приема запросов на прерывания показана на рис. 17.3. Для приема внешних прерываний имеются порты двух типов: NMI (None Masked Interrupt) для приема немаскируемых прерываний и INTR (Interrupt) — для приема прочих прерываний (INTR обычно используется для подсоединения контроллера прерываний). Если запрос на прерывание поступает по входу NMI, то прерывание не маскируется (имеет абсолютный приоритет) и сразу выполняется; по входу INTR прерывание разрешается, если в регистре флагов МПП флаг IF-1. Всего предусмотрено 256 типов (0-255) прерываний. Из них только первые пять жестко закреплены в МП, остальные используются системами BIOS и DOS:
- Тип 0 — прерывание возникает при делении на 0 или если частное от деления переполняет разрядную сетку МП.
- Тип 1 — в режиме «трассировка» (при TF = 1) после выполнения каждой команды программы происходит останов.
- Тип 2 — немаскируемое техническое прерывание.
□ Тип 3 — прерывание по команде INT, включенной в программу: останов и ото- бражение содержимого регистров МПП. оизо □ Тип 4 — прерывание по команде INTO, включенной в программу, но только если при выполнении предыдущей команды пр шло переполнение разрядной сетки.
- Типы 8-15 — аппаратные прерывания, инициируемые внешними устройствами, поступают на входы IRQ0-IRQ7 контроллера прерываний (вход IRQ0 имеет высший приоритет, и прерывание, поступившее по этому входу, обрабатывается первым; всего уровней приоритета 8 и вход IRQ7 имеет низший приоритет).
- Типы 16-31 — планируемые программные прерывания BIOS.
- Типы 32-255 — программные прерывания DOS (жестко задействовано около 10, а вообще в разных версиях DOS их разное количество).
Прерывания с 0 по 31 и прерывание 64 относятся к прерываниям нижнего уровня, обслуживаемым BIOS; прерывания, начиная с 32, являются прерываниями верхнего уровня (за исключением прерывания 64), причем прерывание 33 (21h) — это комплексное, чаще всего используемое в программах пользователя прерывание, имеющее около 100 разновидностей (служебных функций DOS). В некоторых типах прерываний BIOS и DOS имеется много разновидностей, иногда более 10. Так, прерывание 10 (Ah) включает в себя 15 разновидностей, прерывание 33 (21h) — около 100 разновидностей: в DOS 1.0 — 47, в DOS 2.0 — 88, в DOS 3.0 и выше — 99 разновидностей (вид действия в рамках каждого прерывания определяется содержимым регистра АН). В работе [10] приведен список прерываний нижнего и верхнего уровней, а также служебных функций DOS для наиболее часто используемого программистами прерывания 21h. Вопросы для самопроверки
- Дайте определения алгоритма и программы решения задачи.
- Сформулируйте основные необходимые свойства алгоритма и способы его записи.
- Назовите основные классы алгоритмических языков и разновидности трансляторов.
- Приведите и поясните типовой состав машинных команд и возможные их структуры.
- Рассмотрите программу расчета квадратов чисел, приведенную в учебнике, и сформулируйте основное ее функциональные особенности.
- Назовите виды и особенности адресации ячеек памяти в ПК.
- Назовите основные режимы работы компьютеров и дайте им краткую характеристику.
- Что такое прерывание работы программы и каково назначение прерываний?
9. Назовите и поясните основные виды прерываний.
- Как по номеру прерывания определить адрес программы его обработки?
- Укажите, последовательность действий машины при выполнении прерывания.
12. Подробно разберите функции стековой памяти, используемые при прерыва- ниях. http://do.gendocs.ru/docs/index-223844.htmlУпрощенная структурная схема PICОписание схемы Структура PIC включает в себя следующие байтные регистры: • IRR – регистр запросов прерываний — связан с внешними входами запросов (IRQ0 – IRQ7); • IMR – регистр маски запросов; • ISR – Interrupt Service Register – регистр обслуживаемых запросов; • ICW1-ICW3 – Initialization Control Word – управляющее слово инициализации (приказы инициализации); • OCW1-OCW3 — Operation Control Word – операционное управляющее слово (рабочие приказы); OCW1 = IMR Кроме регистров в состав PIC входят: блок управления и схема анализа приоритетов (арбитр). Назначением блока управления является выработка внутренних и внешних сигналов управления, с помощью которых осуществляются те или иные элементарные действия (микрооперации) внутри микросхемы. Например, запись байта из внешней шины данных в один из регистров контроллера. Сигналы CAS0-CAS2 используются для реализации каскадирования микросхемы. Входной сигнал CS (Chip Select – выбор кристалла) генерируется в том случае, если на внешней шине адреса (АВ) зафиксированы адреса, относящиеся к контроллеру прерываний. Программирование контроллера осуществляется по стандартным адресам портов ввода / вывода.
Источник: studfile.net
Система прерывания программ что это
Прерывание — это прекращение выполнения текущей команды или текущей последовательности команд для обработки некоторого события специальной программой — обработчиком прерывания, с последующим возвратом к выполнению прерванной программы. Событие может быть вызвано особой ситуацией, сложившейся при выполнении программы, или сигналом от внешнего устройства. Прерывание используется для быстрой реакции процессора на особые ситуации, возникающие при выполнении программы и взаимодействии с внешними устройствами. Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера.
Назначение: Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП). Запросы прерываний от внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора.
Аппаратные прерывания используются для организации взаимодействия с внешними устройствами:
· маскируемые, которые могут быть замаскированы программными средствами компьютера;
· немаскируемые, запрос от которых таким образом замаскирован быть не может.
Программные прерывания вызываются следующими ситуациями:
· (переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.);
· специальной команды прерывания INT n, используемой обычно программистом при обращениях к специальным функциям операционной системы для ввода-вывода информации.
Рисунок. Выполнение прерывания в компьютере: t р — время реакции процессора на запрос прерывания; t с — время сохранения состояния прерываемой программы и вызова обработчика прерывания; t в — время восстановления прерванной программы.
После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы — обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Например, такой ситуацией может быть нажатие клавиши на клавиатуре компьютера. Тогда обработчик должен передать код нажатой клавиши из контроллера клавиатуры в процессор и, возможно, проанализировать этот код. По окончании работы обработчика управление передается прерванной программе.
1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов);
2. определение типа выбранного запроса;
3. сохранение текущего состояния счетчика команд и регистра флагов;
4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика;
5. выполнение программы — обработчика прерывания;
6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы;
7. продолжение выполнения прерванной программы.
Источник: www.sites.google.com
Система прерывания программ
Система прерывания программ. Основные функции системы прерывания программ. Вложение прерываний. Во время выполнения ЭВМ текущей программы внутри машины и в связанной с ней внешней среде (технологический процесс, управляемый ЭВМ) могут возникать события, требующие немедленной реакции на них со стороны машины.
Реакция состоит в том, что машина прерывает обработку текущей программы и переходит к выполнению некоторой другой программы, специально предназначенной для данного события. По завершению этой программы ЭВМ возвращается к выполнению прерванной программы.
Принципиально важным является то, что моменты возникновения событий, требующих прерывания программ, заранее не известны и поэтому не могут быть учтены при программировании. Каждое событие, требующее прерывания, сопровождается сигналом, который называют запросом прерывания.
Программу, затребованную запросом прерывания, называют прерывающей программой, противопоставляя ее прерываемой программе, выполнявшейся в ЭВМ до появления запроса. Запросы на прерывания могут возникать внутри самой ЭВМ и в ее внешней среде.
К первым относятся, например, запросы при возникновении в ЭВМ таких событий, как появление ошибки в работе ее аппаратуры, переполнение разрядной сетки, попытка деления на 0, выход из установленной для данной программы области памяти, затребование периферийным устройством операции ввода-вывода, завершение операции ввода-вывода периферийным устройством или возникновение при этой операции особой ситуации и др. Хотя некоторые из указанных событий порождаются самой программой, моменты их появления, как правило, невозможно предусмотреть. Запросы во внешней среде могут возникать от других ЭВМ, от аварийных и некоторых других датчиков технологического процесса и т.п. Таким образом, запросы прерывания генерируются несколькими развивающимися параллельно во времени процессами, которые в некоторые моменты требуют вмешательства процессора. К этим процессам, в частности, относится процесс выполнения самой программы, процесс контроля правильности работы ЭВМ, операции ввода-вывода, технологический процесс в управляемом машиной объекте и др.
Рекомендуемые материалы
Тест 1. Основы программирования Си — 85,19%
Программирование и алгоритмизация
Задаются N прямоугольников, заданных двумя точками. Для описания объектов использовать структуры (записи): Tpoint двумя полями x,y, Trect с полями t1,t2 – типа Tpoint вычисляемые поля a,b, s – стороны и площадь Разработать следующие подпрограммы:
Информатика
Тест — Основы программирования Си; Функции и многофайловые программы в Си- 2022
Программирование и алгоритмизация
Вариант 5 — ЛР №8 — Программирование с использованием динамической памяти
Информатика
Вариант 4 — ЛР №9 — Программирование с использованием файлов
Информатика
Какая-то программка с лабораторных работ
Информатика
Возможность прерывания программ — важное архитектурное свойство ЭВМ, позволяющее эффективно использовать производительность процессора при наличии нескольких, протекающих параллельно во времени, процессов, требующих в произвольные моменты времени управления и обслуживания со стороны процессора. В первую очередь это относится к организации параллельной во времени работы процессора и периферийных устройств машины, а также к использованию ЭВМ для управления в реальном времени технологическими процессами, Чтобы ЭВМ могла, не требуя больших усилий от программиста, реализовывать с высоким быстродействием прерывания программ, машине необходимо придать соответствующие аппаратурные и программные средства, совокупность которых получила название системы прерывания программ.
В качестве аппаратных средств используется контроллер прерывания (блок прерывания). Основными функциями системы прерывания являются: — запоминание состояния прерываемой программы и осуществление перехода к прерывающей программе; — восстановление состояния прерванной программы и возврат к ней.
При наличии нескольких источников запросов прерывания между ними должны быть установлены приоритетные соотношения, определяющие, какой из нескольких поступивших запросов подлежит обработке в первую очередь, и устанавливающие: имеет право или нет данный запрос (прерывающая программа) прерывать ту или иную программу. Характеристики системы прерывания Для оценки эффективности систем прерывания могут быть использованы следующие характеристики.
1. Общее число запросов прерывания (входов в систему прерывания). 2. Время реакции — время между появлением запроса прерывания и моментом прерывания текущей программы. На рис. 3.11 приведена упрощенная временная диаграмма процесса прерывания. Рис.3.11.
Упрощенная временная диаграмма процесса прерывания Для одного и того же запроса задержки в исполнении прерывающей программы зависят от того, сколько программ со старшим приоритетом ждут обслуживания, поэтому время реакции определяют для запроса с наивысшим приоритетом (tр). Время реакции зависит от того, в какой момент допустимо прерывание.
Большей частью прерывание допускается после окончания текущей команды. В этом случае время реакции определяется в основном длительностью выполнения команды. Это время реакции может оказаться недопустимо большим для ЭВМ, предназначенных для работы в реальном масштабе времени. В таких машинах часто допускается прерывание после любого такта выполнения команды (микрокоманды).
Однако при этом возрастает количество информации, подлежащей запоминанию и восстановлению при переключении программ, так как в этом случае необходимо сохранять также и состояние в момент прерывания счетчика тактов, регистра кода операции и некоторых других узлов, поэтому такая организация прерывания возможна только в машинах с быстродействующей сверхоперативной памятью. Имеются ситуации, в которых желательно немедленное прерывание.
Если аппаратура контроля обнаружила ошибку, то целесообразно сразу же прервать операцию, пока ошибка не оказала влияние на следующие такты работы программы. 3. Затраты времени на переключение программ (издержки прерывания) равны суммарному расходу времени на запоминание и восстановление состояния программы 4.
Глубина прерывания — максимальное число программ, которые могут прерывать друг друга. Если после перехода к прерывающей программе и вплоть до ее окончания прием запросов прекращается, то говорят, что система имеет глубину прерывания, равную 1. Глубина равна n, если допускается последовательное прерывание до n программ.
Если запрос окажется не обслуженным к моменту прихода нового запроса от того же источника, то возникает так называемое насыщение системы прерывания. В этом случае предыдущий запрос от данного источника будет машинально утерян, что недопустимо. Рис.3.12.
Процессы прерывания с различной глубиной прерывания и дисциплиной обслуживания 5. Число классов (уровней) прерывания. В ЭВМ число различных запросов (причин) прерывания может достигать нескольких десятков или сотен. В таких случаях часть запросов разделяют на отдельные классы или уровни.
Совокупность запросов, инициирующих одну и ту же прерывающую программу, образует класс или уровень прерывания (рис. 3.13). Рис.3.13.
Разделение запросов на классы прерывания Запросы всех источников прерывания поступают на регистр запросов прерывания РгЗП, устанавливая соответствующие его разряды в состояние 1, указывающее на наличие запроса прерывания определенного источника. Запросы классов прерывания ЗПК1-ЗПКk формируются элементами ИЛИ, объединяющими разряды РгЗП, относящиеся к соответствующим классам (уровням).
Еще одна схема ИЛИ формирует общий сигнал прерывания ОСП, поступающий в устройство управления процессора. Информация о действительной причине прерывания, породившей запрос данного класса, содержится в коде прерывания, который отражает состояние разрядов РгЗП, относящихся к данному классу прерывания.
После принятия запроса прерывания на исполнение и передачу управления прерывающей программе соответствующий триггер РгЗП сбрасывается. Объединение запросов в классы прерывания позволяет уменьшить объем аппаратуры. но приводит к замедлению работы системы прерывания.
Программно-управляемый приоритет прерывающих программ Относительная степень важности программ, их частота повторения, относительная степень срочности в ходе вычислительного процесса могут меняться, требуя установления новых приоритетных отношений. Поэтому во многих случаях приоритет между прерывающими программами не может быть зафиксирован раз и навсегда.
Необходимо иметь возможность изменять по мере необходимости приоритетные соотношения программным путем. Приоритет между прерывающими программами должен быть динамичным, т.е. программно управляемым.
В ЭВМ широко применяются два способа программно-управляемого приоритета прерывающих программ: Люди также интересуются этой лекцией: 4 — Гидроцилиндры. — использование порога прерывания; — использование маски прерывания. Порог прерывания.
Этот способ позволяет в ходе вычислительного процесса программным путем изменить уровень приоритета процессора (а следовательно, и обрабатываемой в данный момент на процессоре программы) относительно приоритетов запросов источников прерывания (периферийных устройств), другими словами, задавать порог прерывания, т. е. минимальный уровень приоритета запросов, которым разрешается прерывать программу, идущую на процессоре. Порог прерывания задается командой программы, устанавливающей в регистре порога прерывания код порога прерывания.
Специальная схема выделяет наиболее приоритетный запрос, сравнивает его приоритет с порогом прерывания и, если он оказывается выше порога, вырабатывает общий сигнал прерывания, и начинается процедура прерывания. Маска прерывания представляет собой двоичный код, разряды которого поставлены в соответствие запросам или классам (уровням) прерываний. Маска загружается командой программы в регистр маски (рис. 3.14).
Поделитесь ссылкой:
Рекомендуемые лекции
- 4 — Гидроцилиндры
- 5 лекция
- Лекция 5. Архитектура ПЛИС фирмы Xilinx
- 14. Служба маркетинга
- 39. Классификация травмирующих факторов
Источник: studizba.com