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

В вычислениях задержка прерывания это время, которое проходит с того момента, когда прерывать генерируется, когда обслуживается источник прерывания.[1] Для многих операционных систем устройства обслуживаются сразу после их выхода. обработчик прерывания выполняется. На задержку прерывания может влиять микропроцессор дизайн, контроллеры прерываний, маскировка прерывания, а Операционная система (ОС) методы обработки прерываний.[2]

Фон

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

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

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

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

Соображения

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

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

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

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

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

Рекомендации

  1. ^ а б c d е ж грамм час я Ю, Джозеф (2016-04-01). "Руководство для начинающих по задержке прерывания - и задержке прерывания процессоров Arm Cortex-M". Арм Сообщество. В архиве из оригинала на 2019-06-15. Получено 2019-06-15.
  2. ^ Линь, Фэн; Эшли, Дэвид Т .; Берк, Майкл Дж .; Хейманн, Майкл (1999). «Гибридное системное решение проблемы совместимости с задержкой прерывания». Транзакции SAE. 108: 2112–2125. ISSN  0096-736X. JSTOR  44733861.