- •2.2 Алгоритм выполнения свертки с применением метода разрядно-параллельных вычислений.
- •2.3 Приведение алгоритмов прямого и обратного преобразований Уолша к виду разрядно-параллельных вычислений.
- •Глава 3. Разработка структуры разрядно-ларалжльного процессора цифровой обработки сигналов.
- •Vи, Vпдк, Vбкн, Vбфкп - объем аппаратурных затрат составляющих блоков.
Алгоритм работы разрядно-параллельного умножителя N операндов аналогичен алгоритму работы умножителя двух операндов с той лишь разницей, что в качестве очередного сомножителя будет выступать произведение предыдущих сомножителей. Необходимо также рационально организовать загрузку конвейера.
2.2 Алгоритм выполнения свертки с применением метода разрядно-параллельных вычислений.
В цифровой обработке сигналов широко используются вычисления типа свертки. Задача одномерной свертки формулируется следующим образом [41]:
даны ядро в виде последовательности весовых коэффициентов (весов) (ω1, ω2,…, ωk) и входная последовательность (x1, x2,…, xn),требуется вычислить выходную последовательность (y1,y2,…,yn+1-k), определяемую в виде:
yi= ω1· xi+ ω2· xi+1+…+ ωk· xi+k-1 (2.11)
Результаты справедливы для любого целого положительного к.
В зависимости от типа ядра свертки можно раздавить на три класса:
фиксированные;
адаптивные;
выборочные.
Свертка с фиксированным ядром имеет единственный набор весов, применяется в устройствах, предназначенных для выполнения одной фиксированной функция. В этом случае веса аппаратно зашиты в устройстве. Этот способ применяется, когда надо минимизировать аппаратные затраты.
Свертки с адаптивными ядрами являются обобщением сверток с фиксированными ядрами и отличаются от них возможностью изменения весов. Они, в свою очередь, делятся на:
а) свертки с Фиксированными ядрами, но с возможностью начальной загрузки произвольных значений,
б) свертки с правильными адаптивными ядрами; когда веса могут изменяться от внешнего источника непосредственно в процессе вычислений.
Свертки с выборочными ядрами отличаются от сверток с адаптивными ядрами ограниченным выбором весов. Обычно выборочные ядра не вычисляются, а задаются в табличной Форме, выбор которой зависит от требуемых значений выходных величин, что позволяет менять веса со скоростью обработки данных [41].
Приведенную классификацию сверток необходимо учесть при проектировании процессора ЦОС, выбрав наиболее приемлемый вариант.
В общем виде выражение (2.11) можно переписать в следующем виде:
Операцию вычисления свертки можно реализовать на базе разрядно параллельного умножителя и разрядно-параллельного суммирующего устройства. В этом случае веса ωk предварительно загружаются в регистры РгВ умножителя, входные последовательности в регистры РгА. Промежуточные результаты формируются на выходах суммирующего устройства первого уровня, причем сформированные разряды, начиная с младшего поступают на разрядно -параллельное суммирующее устройство второго уровня. Результат вычисления одномерной свертки формируется последовательно по разрядам. Алгоритм вычисления свертки аналогичен алгоритму разрядно-параллельного умножения с той лишь разницей, что суммирование осуществляется в два уровня, на первом уровне просуммируются промежуточные результаты, а на втором - окончательные.
Рассмотрим алгоритм выполнения двумерной свертки. Задача двумерной свертки формулируется следующим образом: даны веса ωhl для h,l= , так что KхК - размер ядра, и входной массив данных Xij для i,j= . Требуется вычислить элементы Yij для i,j= ., определяемые в виде:
С точки зрения разрядно-параллельной интерпретации задача вычисления двумерной свертки сводится к тиражированию структуры одномерной свертки в горизонтальной плоскости. При этом количество входов разрядно-параллельного суммирующего устройства второго уровня увеличивается до КхК по числу формируемых произведений.