Таблица векторов прерываний

Таблица векторов прерываний ( IVT ) — это структура данных , которая связывает список обработчиков прерываний со списком запросов прерываний в таблице векторов прерываний. Каждая запись таблицы векторов прерываний, называемая вектором прерывания, представляет собой адрес обработчика прерываний (также известного как ISR ). Хотя эта концепция является общей для процессорных архитектур, IVT могут быть реализованы в зависимости от архитектуры. Например, таблица диспетчеризации — это один из методов реализации таблицы векторов прерываний.
Предыстория [ править ]
Таблицу векторов прерываний имеют большинство процессоров, включая чипы Intel , AMD , Infineon , Microchip. [1] Атмел , [2] НХП, АРМ [3] [4] и т. д.
Обработчики прерываний [ править ]
Методы обработки [ править ]
Таблица векторов прерываний используется в трех наиболее популярных методах поиска начального адреса программы обслуживания прерываний:
«Предопределенный» [ править ]
«Предопределенный» метод загружает в счетчик программ (ПК) непосредственно адрес некоторой записи внутри таблицы векторов прерываний. Сама таблица переходов содержит исполняемый код. Хотя в принципе чрезвычайно короткий обработчик прерываний может полностью храниться внутри таблицы векторов прерываний, на практике код в каждой записи представляет собой одну инструкцию перехода, которая переходит к полной процедуре обслуживания прерываний (ISR) для этого прерывания. Интел 8080 , [5] Атмел АВР [6] [7] и все микроконтроллеры 8051 и Microchip [8] используйте предопределенный подход.
«Принести» [ править ]
Метод «выборки» загружает ПК косвенно, используя адрес некоторой записи в таблице векторов прерываний, чтобы извлечь адрес из этой таблицы, а затем загружает ПК с этим адресом. [8] Каждая запись IVT является адресом процедуры обслуживания прерываний. Все микроконтроллеры Motorola/Freescale используют метод выборки. [8]
«Подтверждение прерывания» [ править ]
Для метода «подтверждения прерывания» внешнее устройство сообщает ЦП номер обработчика прерывания. Метод подтверждения прерывания используется Intel Pentium и многими старыми микропроцессорами. [8]
Когда на процессор воздействует прерывание , он ищет обработчик прерывания в таблице векторов прерываний и передает ему управление.
См. также [ править ]
- Таблица дескрипторов прерываний (реализация архитектуры x86)
Ссылки [ править ]
- ^ «Справочное руководство по семейству dsPIC33F» раздел 29.1.1 Таблица векторов прерываний
- ^ Раздел «Руководство пользователя AVR Libc» : Введение в обработку прерываний avr-libc.
- ^ «Документация — Arm Developer» . Developer.arm.com . Проверено 26 июля 2020 г.
- ^ «Документация – Arm Developer – Таблица векторов исключений AArch64» . Developer.arm.com . Проверено 26 июля 2020 г.
- ^ Руководство пользователя микрокомпьютерных систем Intel 8080 . Корпорация Интел. Сентябрь 1975 г., стр. 2–11. Последовательности прерываний. OCLC 2058546 . ОЛ 24210843М .
- ^ Роджер Л. Трейлор. «Прерывания: обслуживание прерываний AVR»
- ^ Гэри Хилл. «Подсистемы прерываний и синхронизации Atmel AVR: таблица векторов прерываний ATMEGA328P»
- ↑ Перейти обратно: Перейти обратно: а б с д Хуанг, Хан-Ват (2005). Pic Микроконтроллер: введение в интерфейс программного и аппаратного обеспечения . Cengage Обучение. п. 247. ИСБН 978-1-4018-3967-3 . Проверено 22 апреля 2013 г.
Внешние ссылки [ править ]
- Руководство разработчика программного обеспечения для архитектуры Intel®, том 3: Руководство по системному программированию
- Руководство разработчика программного обеспечения для архитектур Intel 64 и IA-32, том 3A: Руководство по системному программированию, часть 1 (см. ГЛАВУ 6, ОБРАБОТКА ПРЕРЫВАНИЙ И ИСКЛЮЧЕНИЙ, и ГЛАВУ 10, РАСШИРЕННЫЙ ПРОГРАММИРУЕМЫЙ КОНТРОЛЛЕР ПРЕРЫВАНИЙ)]
- Таблица исключений и векторов Motorola M68000 на Wayback Machine (архивировано 4 марта 2016 г.)