Сигнализация прерываний и управление энергопотреблением в компьютерах с интерфейсом PCI Express
Основной метод сигнализации прерыванийот внешних устройств, подключенных через последовательный интерфейс PCI Express — передача сообщений (MSI), причем с 64-разрядной адресацией (32-разрядная адресация разрешена только для «наследных» устройств). Однако ради обеспечения программной совместимости внешнее устройство может использовать и эмуляцию прерываний через команду INTx#, передавая эти запросы с помощью специальных пакетов. Получателем пакетов сигнализации прерываний (как MSI, так и эмуляции INTx#) обычно является контроллер прерываний, расположенный в корневом комплексе.
Сигнализация событий управления энергопотреблениемвозможна в двух вариантах: пакетная эмуляция сигнала РМЕ# (аналогично эмуляции INTx#) и естественная сигнализация PCI Express с помощью соответствующих сообщений. При эмуляции РМЕ# идентификация источника сигнала выполняется последовательным чтением конфигурационных регистров устройств, способных генерировать этот сигнал. Естественная сигнализация гораздо удобнее: идентификатор устройства-источника присутствует в сообщении.
Выводы
Система прерываний позволяет операционной системе реагировать на внешние события, происходящие асинхронно вычислительному процессу: сигналы готовности устройств ввода-вывода, аварийные сигналы аппаратуры компьютера и т. п.
В зависимости от источника прерывания делятся на три больших класса:
· внешние прерывания, связанные с сигналами от внешних устройств;
· внутренние прерывания, возникающие в результате ошибок в работе компьютера;
· программные прерывания, представляющие собой удобный способ вызова процедур операционной системы.
Механизм прерываний поддерживается аппаратными средствами компьютера и программными средствами операционной системы.
Для упорядочивания процессов обработки прерываний всем источникам запросов на прерывание присваиваются определенные приоритеты.
Высший приоритет имеют внутренние запросы прерываний.
Все внешние устройства имеют маски прерывания, с помощью которых можно разрешать или запрещать прерывания от конкретного внешнего устройства.
Существует также маска прерываний общая для всех внешних прерываний.
Системные вызовы, с помощью которых приложения получают обслуживание со стороны операционной системы, реализуются на основе механизма программных прерываний. Системные вызовы могут выполняться синхронно, когда поток приостанавливается до завершения системного вызова, или асинхронно, когда поток продолжает работу параллельно с системной процедурой, реализующей системный вызов.
Контрольные вопросы
1. Типы прерываний
2. Что является источником внешних прерываний?
3. Что является источником внутренних прерываний?
4. Программные прерывания
5. Как выполняется переход к процедуре обработки прерывания?
6. Чем отличается прерывание от вызова процедуры?
7. Какие запросы на прерывание маскируются?
8. Зачем нужна маска запроса на прерывание?
9. Что такое приоритет прерывания и как он определяется?
Дата добавления: 2015-09-28; просмотров: 841;