Задержка прерывания - Interrupt latency

В вычислениях задержка прерывания - это время, которое проходит от момента генерации прерывания до момента, когда источник прерывания обслуживается. Для многих операционных систем устройства обслуживаются сразу после выполнения обработчика прерывания устройства. Задержка прерывания может зависеть от микропроцессорной конструкции, контроллеров прерываний , прерываний маскирования , и операционной системы «s (OS) обработки прерываний методов.

Задний план

Обычно существует компромисс между задержкой прерывания, пропускной способностью и загрузкой процессора. Многие методы проектирования ЦП и ОС , улучшающие задержку прерывания, уменьшают пропускную способность и увеличивают загрузку процессора. Методы увеличения пропускной способности могут увеличить задержку прерывания и увеличить загрузку процессора. Наконец, попытка уменьшить использование процессора может увеличить задержку прерывания и снизить пропускную способность.

Минимальная задержка прерывания во многом определяется схемой контроллера прерывания и ее конфигурацией. Они также могут повлиять на дрожание в задержке прерывания, что может существенно повлиять на возможность планирования системы в реальном времени . Архитектура Intel APIC хорошо известна тем, что производит огромное количество джиттера задержки прерывания.

Максимальная задержка прерывания во многом определяется методами, которые ОС использует для обработки прерываний. Например, большинство процессоров позволяют программам отключать прерывания, откладывая выполнение обработчиков прерываний, чтобы защитить критические участки кода. Во время выполнения такого критического раздела все обработчики прерываний, которые не могут безопасно выполняться в критическом разделе, блокируются (они сохраняют минимальный объем информации, необходимый для перезапуска обработчика прерывания после выхода из всех критических разделов). Таким образом, задержка прерывания для заблокированного прерывания увеличивается до конца критического раздела, плюс все прерывания с равным и более высоким приоритетом, которые поступили, пока блок был на месте.

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

Соображения

Усовершенствованные контроллеры прерываний реализуют множество аппаратных функций, чтобы минимизировать накладные расходы при переключении контекста и эффективную задержку прерывания. К ним относятся такие функции, как:

  • Минимальный джиттер за счет непрерываемых инструкций
  • Состояния нулевого ожидания для системы памяти
  • Переключаемые банки регистров
  • Цепочка хвоста
  • Ленивая укладка
  • Позднее прибытие
  • Вытеснение поп-музыки
  • Функция сна при выходе

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

Современное оборудование также реализует ограничение частоты прерываний. Это помогает предотвратить « шторм» прерываний или « живые» блокировки , заставляя оборудование ждать программируемое минимальное время между каждым генерируемым прерыванием. Ограничение частоты прерываний сокращает время, затрачиваемое на обслуживание прерываний, позволяя процессору тратить больше времени на полезную работу. Превышение этого времени приведет к мягкой (исправимой) или жесткой (без возможности восстановления) ошибке.

Смотрите также

Ссылки