Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






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





 

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

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

 

 

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

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

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

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

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

 

 

 
 

 

 


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

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

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

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

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

Date: 2015-07-27; view: 475; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию