Конвейерная обработка - важный метод, используемый в нескольких приложениях, таких как обработка цифровых сигналов ( DSP), микропроцессоры и т. Д. Он основан на идее водопровода с непрерывной подачей воды, не дожидаясь выхода воды из трубы. Соответственно, это приводит к увеличению скорости критического пути в большинстве систем DSP. Например, он может либо увеличить тактовую частоту, либо снизить энергопотребление при той же скорости в системе DSP.
Конвейерная обработка позволяет различным функциональным блокам системы работать одновременно. Рассмотрим неформальный пример на следующем рисунке. Система включает в себя три подфункции (F 0, F 1 и F 2). Предположим, что есть три независимых задачи (T 0, T 1 и T 2), выполняемые этими тремя функциональными блоками. Время для каждой функциональной единицы для выполнения задачи одинаково и будет занимать место в расписании.
Если мы разместим эти три юнита и задачи в последовательном порядке, время, необходимое для их выполнения, составит пять слотов.
Однако, если мы конвейерно передаем T 0 в T 2 одновременно, совокупное время сокращается до трех интервалов.
Следовательно, для адекватной конвейерной конструкции можно добиться значительного увеличения скорости.
Конвейерная обработка не может уменьшить время обработки, необходимое для одной задачи. Преимущество конвейерной обработки заключается в том, что она увеличивает пропускную способность системы при обработке потока задач.
Применение слишком большого количества конвейерных функций может привести к увеличению задержки - то есть увеличивается время, необходимое для прохождения отдельной задачи по всему конвейеру. Конвейерная система также может потребовать больше ресурсов (буферы, схемы, блоки обработки, память и т. Д.), Если повторное использование ресурсов на разных этапах ограничено.
Еще одним методом повышения эффективности за счет параллелизма является параллельная обработка. Основное отличие состоит в том, что параллельные методы обычно дублируют функциональные блоки и распределяют между ними сразу несколько задач ввода. Следовательно, он может выполнять больше задач за единицу времени, но может понести более дорогие затраты на ресурсы.
В предыдущем примере параллельный метод дублирует каждый функциональный блок в два других. Соответственно, все задачи могут одновременно выполняться дублированными функциональными блоками с одной и той же функцией. Время выполнения этих трех задач сокращено до трех слотов.
Рассмотрим трехконтактный КИХ-фильтр:
, как показано на следующем рисунке.
Предположим, что время вычисления для единиц умножения равно T m и T a для единиц сложения. Критический путь, представляющий минимальное время, необходимое для обработки нового образца, ограничен 1 функциональными блоками умножения и 2 сложения. Следовательно, период выборки определяется как
Однако такая структура может не подходить для конструкции с требованием высокой скорости. Чтобы сократить период выборки, мы можем ввести дополнительные регистры конвейерной обработки вдоль критического пути данных. Затем структура разделяется на два этапа, и данные, полученные на первом этапе, будут сохранены во введенных регистрах, задерживая один такт до второго этапа. Данные первых трех часов записаны в следующей таблице. При такой конвейерной структуре период выборки сокращается до
.
Комбинируя методы упреждающего просмотра и конвейерную обработку, мы способны повысить частоту дискретизации целевой конструкции. Конвейерная обработка с опережением добавит полюсы и нули отмены к передаточной функции, так что коэффициенты следующих членов в знаменателе передаточной функции равны нулю.
Тогда, выходной отсчет y (n) может быть вычислен в терминах входов и выходного отсчета y (n - M), так что в критическом цикле имеется M элементов задержки. Эти элементы затем используются для конвейерной обработки критического цикла по M ступеням, так что частота дискретизации может быть увеличена в M.
Рассмотрим передаточную функцию БИХ-фильтра 1-го порядка
Выход y (n) может быть вычислен в терминах входа u ( n) и предыдущий вывод.
В простой структуре для разработки такой функции, частота дискретизации этого рекурсивного фильтра ограничена временем вычисления одной операции умножения-сложения.
Чтобы построить такую конструкцию, мы наблюдаем, что H имеет полюс в точке
Следовательно, в 3- ступенчатый конвейерный эквивалентный стабильный фильтр, передаточная функция может быть получена путем добавления полюсов и нулей в
и задается как
Следовательно, соответствующая частота дискретизации может можно увеличить в 3 раза.