Отправка прерывания на процессор с оборудования
Блоксеть/память SoC
Блок канала прерывания принимает запросы прерывания от логики FPGA или блока канала памяти, разрешает запросы и запускает управляемую событиями задачу программного обеспечения для блока диспетчера задач. К контроллеру прерываний можно подключить до 16 устройств с одним прерыванием на устройство. Блок состоит из следующих трех частей:
Контроллер прерываний - эта часть принимает запросы прерываний (IRQ) и разрешает их в соответствии с заданным пользователем приоритетом. Когда параллельные запросы к контроллеру прерываний существуют, запросы с более высоким приоритетом обрабатываются перед запросами с более низким приоритетом.
Подпрограмма обслуживания прерываний ядра (ISR) - эта часть принимает запрос прерывания от контроллера прерываний, обслуживает прерывание и посылает сигнал подтверждения обратно контроллеру прерываний, чтобы он мог обработать следующий IRQ.
Драйвер IPCore (по одному на прерывание) - эта часть получает запрос от ISR ядра и запускает управляемую событиями задачу в процессоре.
Даже если канал прерывания может иметь более одного выходного сигнала прерывания к процессору, он посылает в процессор не более одного активного события прерывания в любой данный момент времени.
На этом рисунке показано концептуальное представление блока канала прерывания, который принимает запросы прерывания от алгоритма FPGA. После арбитража ядро обслуживает запрос и запускает событие для алгоритма процессора.
