60.3.2. PIC



THIS SECTION IS UNDER CONSTRUCTION



Собственно в чем цель контроллера прерываний? Управление прерываниями Глобально Разрешить соответсвующий IRQ Запретить соответсвующий IRQ Узнать разрешен ли соответсвующий IRQ Обработка прерываний Когда прерывание запускается то оно маскируется, что бы не вызваться тут же второй раз. Сигнализация о окончании прерывания Узнать обрабатывается ли сейчас соответсвующий IRQ Узнать ждет ли сейчас обработки соответсвующий IRQ Приоретизация прерываний Если в один и тот же момент пришло два прерывания с разным приоритетом, то запустить то которое с более высоким приоритетом Так же возможно локальное маскирование прерываний с меньшими приоритетами при возникновения прерывания с большим приоритетом. Режим прерываний edge-triggered level-triggered позволяет расшаривать прерывания Вектор прерывания для процессора Процессору передается: PIC to Processor: PIRQ, Vector Processor to PIC: PIRQACK Иногда функциональность PIC полностью или частично включена в микропроцессор. Для мультипроцессорных систем (или систем с несколькими ядрами) Распределение прерываний по процессорам Типичные модели работы: Все прерывания на одном процессоре На этапе загрузки это ставиться всегда Некоторые прерывания на конкретном процессоре или группе процессоров Удобно когда обработчик сидит на одном и том же процессоре (во первых данные могут жить в cache). Некоторые прерывания на всех процессорах Алгоритмы распределения: Round robin Межпроцессорные прерывания Как правило используется OS для scheduling Могут быть и переодическими Используются для инициализации вторичных процессов Могут быть broadcast включая процессор который посылал исключая процессор который посылал В этом случае на межпроцессорную шину кроме вектора прерывания еще передается и его тип (обычное или сброс процессора) а так же номер процессора который является приемником.


Что бы разделять прерывания между устройствами надо что бы запрос IRQ шел по уровню, а не по фронту. Устройство должно иметь бит состояния - который показывает, что оно требует IRQ (может быть неколько битов - которые показывают причину IRQ), и бит (биты) которые позволяют сбрасывать запрос IRQ у устройства.


8259A PIC



По фронту (ISA) По уровню (PCI) могут разделять одну линию IRQ

8259A


APIC



Local APIC - в процессорах I/O APIC - занимается внешними прерываниями и их рутингом между процессорами

Index Prev Next