русс | укр

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

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

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

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


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

Организация системы прерывания современных ЭВМ. Контроллер прерывания, назначение, решаемые задачи, алгоритм работы, расширение системы прерывания.


Дата добавления: 2013-12-24; просмотров: 1815; Нарушение авторских прав


Прерывание (англ. interrupt) — сигнал, сообщающий процессору о наступлении какого-либо события. При этом выполнение текущей последовательности команд приостанавливается и управление передаётся обработчику прерывания, который реагирует на событие и обслуживает его, после чего возвращает управление в прерванный код.

 

В зависимости от источника возникновения сигнала прерывания делятся на:

  • асинхронные или внешние (аппаратные) — события, которые исходят от внешних источников (например, периферийных устройств) и могут произойти в любой произвольный момент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши;
  • синхронные или внутренние — события в самом процессоре как результат нарушения каких-то условий при исполнении машинного кода: деление на ноль или переполнение, обращение к недопустимым адресам или недопустимый код операции;
  • программные (частный случай внутреннего прерывания) — инициируются исполнением специальной инструкции в коде программы. Программные прерывания как правило используются для обращения к функциям встроенного программного обеспечения (firmware), драйверов и операционной системы.

 

 

В зависимости от возможности запрета внешние прерывания делятся на:

  • маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);
  • немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может быть вызвано сбоем в микросхеме памяти.

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



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

Рассмотрим назначение основных блоков системы прерывания.

 
 

 

 


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

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний, содержащую адреса обработчиков прерываний. Местоположение таблицы зависит от типа и режима работы процессора. В большинстве случаев векторная система прерываний реализуется в виде специализированной СБИС – программируемого контроллера прерываний(ПКП), содержащего логику для назначения приоритетов поступающим запросам. Приоритеты могут обслуживаться как относительные и абсолютные. Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания. Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.

Рассмотрим каскадное включение контроллеров прерываний. ПКП обеспечивает обработку до 8 запросов прерываний от различных источников. При необходимости обслуживания большего числа источников запросов несколько ПКП могут быть объединены в систему, состоящую из ведущего ПКП и одного или нескольких ведомых (до 64 входов запросов прерываний). Чтобы ПКП действовали согласовано, каждый из них должен знать, какую функцию он выполняет. Сигнал SP/EN в блоке управления каскадным соединением сообщает контроллеру, является он ведущим или ведомым. В регистре команд инициализации ведущего контроллера фиксируется, к каким входам запросов прерывания этого ПКП подсоединены ведомые, а в регистре команд инициализации ведомого контроллера хранится номер входа ведущего ПКП, к которому он подсоединен. ЦП, реагируя на запрос прерывания, формирует два цикла шины подтверждения прерывания. В течение первого цикла ведущий ПКП подтверждает запрос прерывания ведомого ПКП. Такое подтверждение необходимо, т.к. запросить прерывание могут одновременно несколько ведомых ПКП. Во втором цикле шины выбранный ведомый ПКП помещает номер устройства, запросившего прерывание на системную шину данных, чтобы его мог считать ЦП.

В системах с процессорами Pentium и шиной PCI в дополнение к традиционному механизму обработки запросов прерываний используется другой механизм реакции на внешние запросы, при этом в каждый момент времени может работать только один из механизмов обработки прерываний.

В ПК с ЦП Pentium может использоваться усовершенствованный контроллер прерываний APIC (Advanced PIC), который встроен в процессор. APIC поддерживает работу систем прерываний для ВМ, которые могут содержать несколько процессоров. APIC имеет несколько режимов работы. В одном из них он реализует логику работы системы прерываний стандартного ПК. В режиме, основанном на «передаче сообщений», APIC обслуживает устройства, подключенные к шине PCI. При необходимости устройство PCI запрашивает управление шиной и после его получения записывает в соответствующий регистр APIC код запроса. После этого всю работу по переходу к обработке запроса выполняет APIC.



<== предыдущая лекция | следующая лекция ==>
Организация ввода вывода в режиме ПДП. | Организация системы ПДП современных ЭВМ. Контроллер ПДП, назначение, решаемые задачи, алгоритм работы.


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


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

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

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


 


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

 
 

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

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