Модели использования ускорителей
Как уже говорилось ранее, для разгрузки ядра, занятого FIR- и/или IIR-фильтрацией, в приложениях могут использоваться различные модели взаимодействия ускорителей FIRA/IIRA и ядра процессора. В общем случае данные модели можно разделить на три категории: полный перенос работы с FIR/IIR-фильтрами на ускорители, распределение задач между ядром и ускорителями и конвейерная обработка данных.
Полный перенос:
• Работа с FIR/IIR постностью переходит на ускорители, а ядро находится в режим ожидания, пока FIRA/IIRA не завершит работу.
• Данная модель эффективна только тогда, когда ускоритель способен работать с более высокой частотой, чем ядро, то есть при использовании блока FIRA.
Распределение задач:
• Работа с FIR/IIR распределена между ядром и ускорителями.
• Данная модель подходит для тех случаев, когда возможна работа сразу с несколькими каналами, что позволяет проводить параллельную обработку данных.
• Основываясь на предварительной оценке времени обработки, можно распределить задачи между ядром и ускорителями таким образом, чтобы оба заканчивали работу примерно в одно и то же время.
• Данная модель позволяет сэкономить большее количество времени на обработке, чем модель полного переноса (рис. 3).
Конвейерная обработка данных:
• Поток данных распределяется между ядром и ускорителями таким образом, что оба могут работать параллельно с разными фреймами данных.
• Ядро обрабатывает N‑й фрейм, а затем инициирует обработку данного фрейма ускорителем, после чего продолжает параллельно обрабатывать выходной (N-1)-й фрейм, созданный ускорителем на предыдущей итерации (рис. 3). Такая последовательность позволяет полностью перенаправить задачу обработки FIR/IIR на ускоритель за счет дополнительной за-
держки вывода.
• Длительность итераций на конвейере и, следовательно, задержка вывода могут увеличиваться в зависимости от общего количества этапов обработки FIR/IIR в системе.
На рис. 3 приведено сравнение описанных выше моделей на примере обработки потока
аудиоданных. Данные проходят три этапа: запись в память (DMA IN), обработка посредством ядра или ускорителей FIRA/IIRA и выгрузка из памяти (DMA OUT). На рисунке также приведено количество циклов работы ядра, освобожденное за счет полного или частичного переноса работы с FIR/IIR-фильтрами на ускорители.