Конвейерная обработка (реализация DSP)

редактировать

Конвейерная обработка - важный метод, используемый в нескольких приложениях, таких как обработка цифровых сигналов ( DSP), микропроцессоры и т. Д. Он основан на идее водопровода с непрерывной подачей воды, не дожидаясь выхода воды из трубы. Соответственно, это приводит к увеличению скорости критического пути в большинстве систем DSP. Например, он может либо увеличить тактовую частоту, либо снизить энергопотребление при той же скорости в системе DSP.

Содержание
  • 1 Концепция
  • 2 Затраты и недостатки
  • 3 Сравнение с параллельными подходами
  • 4 Конвейерная обработка в КИХ-фильтрах
  • 5 Конвейерная обработка в БИХ-фильтрах 1-го порядка
  • 6 Другие примеры Конвейерные системы DSP
  • 7 Ссылки
Концепция

Конвейерная обработка позволяет различным функциональным блокам системы работать одновременно. Рассмотрим неформальный пример на следующем рисунке. Система включает в себя три подфункции (F 0, F 1 и F 2). Предположим, что есть три независимых задачи (T 0, T 1 и T 2), выполняемые этими тремя функциональными блоками. Время для каждой функциональной единицы для выполнения задачи одинаково и будет занимать место в расписании.

Если мы разместим эти три юнита и задачи в последовательном порядке, время, необходимое для их выполнения, составит пять слотов.

Non-pipelined.png

Однако, если мы конвейерно передаем T 0 в T 2 одновременно, совокупное время сокращается до трех интервалов.

Конвейерная структура, функция units.png

Следовательно, для адекватной конвейерной конструкции можно добиться значительного увеличения скорости.

Затраты и недостатки

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

Применение слишком большого количества конвейерных функций может привести к увеличению задержки - то есть увеличивается время, необходимое для прохождения отдельной задачи по всему конвейеру. Конвейерная система также может потребовать больше ресурсов (буферы, схемы, блоки обработки, память и т. Д.), Если повторное использование ресурсов на разных этапах ограничено.

Сравнение с параллельными подходами

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

В предыдущем примере параллельный метод дублирует каждый функциональный блок в два других. Соответственно, все задачи могут одновременно выполняться дублированными функциональными блоками с одной и той же функцией. Время выполнения этих трех задач сокращено до трех слотов.

Конвейерная обработка в КИХ-фильтрах

Рассмотрим трехконтактный КИХ-фильтр:

y (n) = ax (n) + bx (n - 1) + cx (n - 2) {\ displaystyle y (n) = ax (n) + bx (n-1) + cx (n-2)}{\ displaystyle y (n) = ax (n) + bx (n-1) + cx (n-2)}

, как показано на следующем рисунке.

Предположим, что время вычисления для единиц умножения равно T m и T a для единиц сложения. Критический путь, представляющий минимальное время, необходимое для обработки нового образца, ограничен 1 функциональными блоками умножения и 2 сложения. Следовательно, период выборки определяется как

T sample ≥ T m + 2 T a {\ displaystyle T _ {\ text {sample}} \ geq T_ {m} + 2T_ {a}}{\ displaystyle T _ {\ text {sample}} \ geq T_ {m} + 2T_ {a}}
Конвейерные КИХ-фильтры.png

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

T выборки ≥ T m + T a. {\ displaystyle T _ {\ text {sample}} \ geq T_ {m} + T_ {a}.}{\ displaystyle T _ {\ text {sample}} \ geq T_ {m} + T_ {a}.}
Конвейерная КИХ-фильтры Filters2.png

.

Конвейерная таблица КИХ-фильтров table.png
Конвейерная обработка в IIR-фильтрах 1-го порядка

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

{z - 1,…, z - (M - 1)} {\ displaystyle \ {z ^ {- 1}, \ ldots, z ^ {- (M-1)} \}}{\ displaystyle \ {z ^ {- 1}, \ ldots, z ^ {- (M-1)} \}}

Тогда, выходной отсчет y (n) может быть вычислен в терминах входов и выходного отсчета y (n - M), так что в критическом цикле имеется M элементов задержки. Эти элементы затем используются для конвейерной обработки критического цикла по M ступеням, так что частота дискретизации может быть увеличена в M.

Рассмотрим передаточную функцию БИХ-фильтра 1-го порядка

H (z) = 1 1 - az - 1 {\ displaystyle H (z) = {\ frac {1} {1-az ^ {- 1}}}}{\ displaystyle H (z) = {\ frac {1} {1- az ^ {- 1}}}}

Выход y (n) может быть вычислен в терминах входа u ( n) и предыдущий вывод.

y (n) = ay (n - 1) + u (n) {\ displaystyle y (n) = ay (n-1) + u (n)}{\ displaystyle y (n) = ay (n-1) + u (n)}

В простой структуре для разработки такой функции, частота дискретизации этого рекурсивного фильтра ограничена временем вычисления одной операции умножения-сложения.

Чтобы построить такую ​​конструкцию, мы наблюдаем, что H имеет полюс в точке

z = a, a ≤ 1 {\ displaystyle z = a, a \ leq 1}{\ displaystyle z = a, a \ leq 1}

Следовательно, в 3- ступенчатый конвейерный эквивалентный стабильный фильтр, передаточная функция может быть получена путем добавления полюсов и нулей в

z = ae ± (2 j π 3) {\ displaystyle z = ae ^ {\ pm ({\ frac {2j \ pi} {3}})}}{\ displaystyle z = ae ^ {\ pm ({\ frac {2j \ pi} {3}})}}

и задается как

H (z) = 1 + az - 1 + a 2 z - 2 1 - a 3 z - 3 {\ displaystyle H (z) = {\ frac {1 + az ^ {- 1} + a ^ {2} z ^ {- 2}} {1-a ^ {3} z ^ {- 3}}}}{\ displaystyle H (z) = {\ frac {1 + az ^ {- 1} + a ^ {2} z ^ {- 2}} {1-a ^ {3} z ^ {- 3 }}}}

Следовательно, соответствующая частота дискретизации может можно увеличить в 3 раза.

Другие примеры конвейерных систем DSP
  • Конвейерное преобразование Уолша – Фурье
  • Конвейерные унитарные преобразования
  • Конвейерное ДПФ
  • Конвейерный БПФ
Ссылки
  1. ^KK Пархи, Системы цифровой обработки сигналов СБИС: разработка и реализация, Джон Вили, 1999
  2. ^Слайды для систем цифровой обработки сигналов СБИС: разработка и реализация John Wiley Sons, 1999 (номер ISBN: 0-471-24186-5): http://www.ece.umn.edu/users/parhi/slides.html
  3. ^М. Р. Ашури и Энтони Г. Константинидес, «Конвейерное быстрое преобразование Фурье Уолша», в Proc. IEEE Int. Конф. ASSP Hartford, CT, 9–11 мая), стр. 515-518, 1977.
  4. ^Fino, B.J.; Альгази, В.Р.;, "Параллельное и конвейерное вычисление быстрых унитарных преобразований", Electronics Letters, том 11, № 5, стр.93-94, 6 марта 1975 г.
  5. ^Tzou, K.-H.; Morgan, N.P.;, «Быстрый конвейерный процессор DFT и его соображения программирования», Электронные схемы и системы, IEE Proceedings G, том 132, № 6, стр. 273-276, декабрь 1985 г.
  6. ^H. Л. Горгинский и Г. А. Уоркс, "Конвейерное быстрое преобразование Фурье", IEEE Trans. Вычислит., Т. C-19, pp. 1015-1019, ноябрь 1970.
Последняя правка сделана 2021-06-02 06:38:05
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте