![]() ![]() ![]() ![]() ![]()
Раздел: Документация
0 ... 42 43 44 45 46 47 48 ... 78 [12] E. Deprettere and R. Udo, "The Pipeline CORDIC," Internal Rep. Network Theorv Section, Delft University of Technology, 1983. [13] S. Y. Kung, K. S. Arun, R. J. Gal-Ezer, and D. V. Bhaskar Rao, "Wavefront Arrav Processor: Language, Architecture, and Applications," IEEE Trans. Commit C-J/(ll):1054-1066 (Nov. 1982).comput., 16 АРХИТЕКТУРА АРИФМЕТИЧЕСКИХ УСТРОЙСТВ ДЛЯ ЦИФРОВЫХ ПРОЦЕССОРОВ СИГНАЛОВ НА СБИС X. Ахмед1 16.1. ВВЕДЕНИЕ Термин "цифровая обработка сигналов" обобщает методы и средства преобразования чисел, обычно цифровых отсчетов аналоговых сигналов, в отсчеты более желательных сигналов (сигналы могут быть одномерными, например человеческая речь; двумерными, как в случае изображений, или еще большей размерности). Цифровой процессор сигналов в общем виде может быть представлен, как показано на рис. 16.1. Входные устройства принимают цифровые отсчеты, а выходные выдают преобразованные значения. Поток данных проходит через арифметическое устройство (АУ), где и выполняются требуемые преобразования информации. Как эти преобразования (например, низкочастотная фильтрация, адаптивная фильтрация), так и прохождение данных управляются контроллером. Эта глава связана в основном с изучением арифметического устройства. Хотя такое изучение возможно без учета влияния остальных устройств, в дальнейшем будет видно, что производительность цифрового процессора сигналов существенно зависит от совокупности операций всех четырех блоков и, в частности, от действий АУ и контроллера. Не в каждом процессе обработки сигналов используются арифметические операции в обычном смысле. Например, многие алгоритмы цифрового кодирования могут быть выполнены только с помощью логических операций [1] (например, операции исключающее ИЛИ) и никогда не требуют традиционных арифметических операций умножения и сложения. (Очевидную связь между арифметическими и логическими операциями будем игнорировать.) В рамках этой главы ограничимся такими задачами обработки сигналов, которые действительно требуют традшшонных арифметических операций. К этим задачам относится анализ речи и цифровая фильтрация. Задачи обработки сигналов сильно различаются по характеру и цели; однако для получения очень высокого быстродействия при выполнении 1 Фирма Codex, Мансфилд, Массачусетс. 274 Путь данных
Арифметическое устройство Контроллер Рис. 16.1. Общий вид цифрового процессора сигналов большого числа операций необходим один общий элемент. В то время как быстродействующие, высокопроизводительные машины ассоциируются с большим физическим объемом и большой рассеиваемой мощностью, очень высокая степень интеграции способна обеспечить большую, чем когда бы то ни было, вычислительную мощность в заранее заданном объеме. Тем не менее типичная производительность, требуемая в машинах, выполняющих даже алгоритмы цифровой обработки сигналов звукового диапазона (например, анализ речи или цифровая связь в телефонных линиях), не обеспечивается большинством современных СБИС-микропроцессоров. Почти во всех существующих СБИС обработки сигналов, являющихся заказными, достигнута плотность компоновки и производительность, близкие к технологическому пределу. Несмотря на то, что производительность зависит от схемы, она также существенно зависит от архитектуры вычислителя. В этой главе будут показаны арифметические устройства разнообразной архитектуры, пригодные для реализации различных алгоритмов обработки сигналов, и этим будет подтверждена мысль о том, что хорошее соответствие архитектуры АУ задаче может повысить производительность без использования предельных возможностей, предоставляемых технологией. Наряду с алгоритмами традиционного умножения рассмотрим алгоритм CORDIC [3] и алгоритм последовательных приближений [4] для выполнения элементарных арифметических операций. Для каждого вида арифметических устройств, которые могут быть включены в библиотеку исходных элементов для цифровой обработки сигналов, представим несколько вариантов архитектуры. Выбор соответствующего элемента зависит от производительности и площади кристалла, а также от типа реализуемых алгоритмов. 16.2. ВЗАИМОЗАВИСИМОСТЬ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ И ОПЕРАЦИЙ УПРАВЛЕНИЯ Часто можно слышать утверждение, подобное следующему: "Для выполнения данного алгоритма в реальном масштабе времени требуется один миллион операций умножения в секунду". Влияние такого требования на быстродействие арифметического устройства существенно зависит от особенностей управления процессором сигналов. Хотя вопросы разработки контроллера лежат вне рамок настоящей главы, приведем простой при- 275 мер, показывающий, как контроллер влияет на производительность процессора. Дальнейшие исследования оставляются читателю. Рассмотрим программируемый цифровой процессор сигналов (рис. 16.2). Желательно определить максимально допустимую задержку умножителя для достижения производительности одного миллиона операций умножения в секунду в длинной последовательности операций умножения. Сначала рассмотрим простую стратегию управления (рис. 16.3,я), в которой каждая команда декодируется и затем вы- Поступление данных *
Выход данных Декодирование команд Регистр команд иолняется. Для простоты предположим, что время декодирования равно времени выполнения операции умножения. Тогда для достижения желаемой производительности умножитель должен выполнять одну операцию за 500 не. Теперь рассмотрим конвейерную стратегию управления (рис. 16.3, б), при которой декодирование команды происходит во время выполнения предьщущей команды. Желаемая производительность теперь до- Память программ Рис. 16.2. Программируемый цифровой процессор сигналов Команда 1 Команда ВетВление и декодирование Команда Команда Выполнение -Время а) Команда Команда КомандаВетВление и 1 1 J~з декодирование Команда, Команда Команда I :I :-1---1 Выполнение -----Время б) Рис. 16.3. Взаимодействие арифметического и управляющего устройств стигается при длительности такта работы умножителя 1000 не. Таким образом серьезное влияние на проектирование и разработку кристалла цифровой обработки сигналов реализуется простым изменением стратегии управления. Последняя стратегия имеет свои проблемы: например, читателю предлагается рассмотреть, как в такой конвейерной структуре могут быть выполнены операции условного ветвления. Этот простой пример показывает взаимное влияние арифметического устройства и устройства управления. Здесь имеется много более тонких моментов, таких как работа с адресами, которые ограничивают производительность процессора сигналов и устанавливают предел производительное™ в зависимости от скорости обработки в АУ. В оставшейся части этой главы будут обсуждаться схемы арифметических устройств. Аспекту управления не будем уделять большого внимания, однако предыдущий пример должен показать, что значительного повышения производительности можно нередко добиться с помощью искусных архитектурных изменений, а не прямым увеличением скорости работы устройства. С этих же позиций рассмотрим вопрос о том, как арифметические устройства хорошей архитектуры могут обеспечить высокую производительность. 16.3. ОСНОВНЫЕ ОПЕРАЦИИ, ИСПОЛЬЗУЕМЫЕ ПРИ ОБРАБОТКЕ СИГНАЛОВ В настоящее время имеется по меньшей мере четыре основных промыш-ленно выпускаемых СБИС, реализующих алгоритмы обработки сигналов: TMS 320 [5] фирмы Texas Instrument, DSP фирмы Bell Laboratories [6], NEC 7720 [7] и AMI 2811 [8]. Несколько процессоров в неинтегральном исполнении описано в литературе (см., например, [9-11]). В состав всех этих процессоров входят быстродействующие устройства умножения и накопления, которые составляют значительную часть арифметического устройства. Такое сходство появляется из-за того, что операции умножения и сложения являются основными для всех алгоритмов обработки сигналов, включая алгоритм фильтрации. В качестве примера на рис. 16.4 приведена структурная схема фильтра, определяемая соотношением и- 1 Yt - X Ск%т к, где Yj - выход фильтра в момент времени Т; Хт - вход фильтра в момент времени Т; Ск - коэффициенты фильтра. ![]() Ясно, что умножение и накопление являются основными операциями самом Деле, на языке ассемблера процессора сигналов программа для вы полнения фильтрации может быть записана в виде ; Очистить аккумулятор ; АСС «- АСС + С0 . X, ; АСС ♦- АСС + С, * Хт ,
, Xr„H.Теперь АСС = YT Однако умножение является просто одной из многих основных операций алгоритмов цифровой обработки сигналов. Тригонометрические величины, в особенности связанные с вращением векторов, являются основой некоторых алгоритмов фильтрации, включая алгоритм метода наименьших квадратов, алгоритмы матричной алгебры, а также другие алгоритмы, такие как дискретное преобразование Фурье. Рассмотрим, например, многозвенный фильтр лестничного типа (рис. 16.5) [2]. Каждый каскад этого фильтра описывается следующим образом: + т - ч/ь3 V1 ~ ии2, т 7 Рп, т + v„.t4„, т-1 . "«+1, т vn.t~ Рп+1,тПП. Г-1 - 1hb т~1 ~ Р"+ L т v"- т . >А -Р- + 1.Г \/1 - v2,T Действительно, для описания этих равенств необходимы операции умножения, однако, применяя некоторые преобразования, обсуждавшиеся в [12], эти равенства можно переписать как Рп+1,тV* sin О, и, Г I и*значение i L Чп, т безразлично] cos в K + i.r 4n + 1.TJ = V 0] sin0v -cos 0ЛТри,г О~Гяп0, -cos f?4] O.J L 0 iJLcose, sinoj, .Г sh 0P ch ep-rv.r <r-i L ch 0, sh f?JL 0 0 J, где fl„ - arccos vnJ- = arccos; 6p = arcth 1/ри+1 T. ![]()
![]() 278 Рис. 16.5. Многозвенный фильтр лестничного типа: Р"с = ч/Г1 -р2; р~с=1/рс Теперь ясно видно, что основная структура вычисления определяется двумерными вращениями. Удобные методы реализации вращения обеспечивают алгоритмы CORDIC [3], в то время как простой умножитель этого не дает. Подобным образом относительно просто можно показать, что другие известные алгоритмы, такие как БПФ, ДПФ, комплексной фильтрации, адаптивной коррекции методом минимума среднего квадратичного отклонения, легко описываются с помощью вращений. Подобное обсуждение приведено в [12,13]. Другим общим алгоритмом является алгоритм сжатия [14], используемый в телефонии. Несмотря на то, что умножитель (или устройства, выполняющие алгоритм CORDIC) может выполнить эти преобразования, проще их реализовать с помощью метода последовательных приближений Чена (convergence computation method) [4]. Этим кратким обсуждением хотелось показать, что, хотя быстродействующие умножители превалируют в цифровых процессорах сигналов, они не всегда необходимы для всех задач. Желательно иметь набор арифметических средств, включающий умножители, операции выполнения алгоритма CORDIC и операции метода последовательных приближений. В действительности операции алгоритма CORDIC и метода последовательных приближений тесно связаны друг с другом, а операция умножения является частным случаем их обоих, поэтому следует надеяться, что с помощью простой аппаратуры можно выполнить операции всех трех видов. Теперь рассмотрим схемы умножителей, устройств, выполняющих операции для алгоритмов CORDIC, и устройств, реализующих метод последовательных приближений, и сравним их по производительности. Рассматривать будем только операции с фиксированной запятой, так как нетрудно показать, что вычисления с плавающей запятой могут быть реализованы как вычисления с фиксированной запятой над мантиссами операндов и некоторые преобразования порядков. 16.4. АРХИТЕКТУРЫ УСТРОЙСТВ БЫСТРОГО УМНОЖЕНИЯ До недавних пор много внимания уделялось реализации быстродействующих умножителей. Приведем некоторые схемы параллельного поразрядного умножения и покажем, как их архитектура влияет на производительность. Для знакомства с методами последовательного поразрядного умножения, которые не рассматриваются в этой главе, советуем читателю обратиться к работам [15, 16]. Параллельные поразрядные операции часто обеспечивают лучшую производительность (при заданной площади кристалла), чем последовательные [15]. 16.4.1. Алгоритмы косвенного умножения Косвенное умножение напоминает школьный способ сдвига и сложения. Рассмотрим структурную схему, приведенную на рис. 16.6, в которой Хм У - два «-разрядных регистра операндов, содержащих значения множителя 0 ... 42 43 44 45 46 47 48 ... 78 |