Шрифт:
? Примеры: ADSP-21 хх, ADSP-21К
Рис. 7.2
Микропроцессоры, такие как Pentium компании Intel, обычно представляют собой ЦПУ, выполненное на одном кристалле, которому требуются дополнительные микросхемы для выполнения всех вычислительных функций. Система команд микропроцессора может быть как усложненной (типа CISC), так и редуцированной (типа RISC). В усложненную систему команд (архитектура CISC) входят команды для выполнения основных операций процессора, а также отдельные сильно специализированные команды (например, для вычисления полиномов высоких степеней). Но за выполнение сложных команд на процессоре, построенном по архитектуре CISC, приходится платить: многие команды реализованы в нем в микрокоде и требуют для своего выполнения нескольких машинных циклов и места на кристалле для хранения кода микропрограммы.
Напротив, в редуцированном наборе команд (RISC-архитектура) учитывается тот факт, что в большинстве программ основные команды, такие как ЗАГРУЗКА и СОХРАНЕНИЕ В ПАМЯТИ с простыми режимами адресации, используются гораздо чаще, чем сложные команды, и должны исполняться более эффективно. Эти простые команды реализованы в ЦПУ аппаратно для выполнения за один машинный цикл, благодаря чему уменьшаются затрачиваемое время работы и сложность ЦПУ.
Хотя RISC-архитектура имеет значительные преимущества при реализации вычислительных систем общего назначения, она недостаточно хорошо приспособлена к нуждам цифровой обработки сигналов. Например, большинство RISC процессоров не поддерживает реализацию операции умножения за один машинный цикл, которая является очень распространенной и часто используемой операцией при цифровой обработке сигналов. DSP-процессор оптимизирован для реализации таких инструкций со скоростью, достаточной для цифровой обработки сигналов в реальном масштабе времени, выполняя арифметические операции и накопление результата за один машинный цикл.
Требования, предъявляемые к цифровым процессорам обработки сигналов
Наиболее важная операция в цифровой обработке сигналов представлена на рис. 7.3: суммирование результатов умножения (операция, отмеченная точкой на диаграммах). Данная операция одинаково важна для цифровых фильтров, БПФ и для множества других алгоритмов цифровой обработки сигналов. Цифровой сигнальный процессор (DSP) оптимизирован для осуществления повторяющихся математических операций, таких как умножение с накоплением. Пять основных требований предъявляется к DSP, чтобы оптимизировать производительность процессора: быстрое выполнение арифметических операций, повышенная точность представления операндов, возможность одновременной выборки двух операндов, поддержка циклических буферов, организация циклов с автоматической проверкой условия завершения цикла.
НАИБОЛЕЕ ВАЖНАЯ МАТЕМАТИЧЕСКАЯ ОПЕРАЦИЯ В DSP: СУММА ПРОИЗВЕДЕНИЙ
y(n) = h(0)•x(n) + h(1)•х(n-1) +… + h(N-1)•x(n-N)
Пример: цифровая фильтрация
? Многократное умножение значений входных отсчетов на коэффициенты фильтра (или на поворотные множители при БПФ)
? Накопление результатов умножения в регистре-аккумуляторе
? Повторение этих действий N раз
Требования, предъявляемые к DSP:
? Быстрое выполнения умножения с накоплением
? Высокая точность представления результата (в аккумуляторе)
? Одновременная выборка двух операндов
? Наличие циклических буферов
? Реализация циклов с автоматической проверкой условий
При использовании ядра ADSP-21xx за один цикл возможно осуществить:
? Выборку значения отсчета из памяти данных
? Выборку значения коэффициента из памяти программ
? Выполнить умножение с накоплением
Рис. 7.3
Быстрое выполнение арифметических операций
Быстрое выполнение арифметических действий — наиболее простое для понимания требование. Так как возможность реализации цифровой обработки сигналов в реальном масштабе времени зависит от производительности процессора, быстрота выполнения операций умножения с накоплением является главным требованием; большая скорость выполнения данной операции означает возможность обработки большей полосы частот. Но необходимо помнить, что эффективность DSP определяется не только временем выполнения операции умножения с накоплением. Этот часто забываемый факт приводит к неадекватному подходу в оценке производительности процессора, когда скорость работы процессора оценивается количеством операций, выполняемых процессором за единицу времени (в MIPS — миллионах операций в секунду). Так как большинство DSP и других процессоров, имеющих сходную архитектуру, могут выполнять за один машинный цикл команду MAC (умножение с накоплением), для большинства процессоров при оценке производительности в MIPS подразумевается производительность процессора при выполнении команды умножения с накоплением (MAC). Эта величина не учитывает другие свойства процессора, которые на практике могут повлиять на его общую производительность. Если остальные четыре критерия производительности окажутся неудовлетворительными, то высокая производительность процессора при выполнении MAC мало что даст.
В дополнение к требованиям по быстрому выполнению арифметических действий, DSP должен эффективно выполнять другие математические функции общего назначения и должен иметь соответствующее арифметико-логическое устройство (АЛУ) и возможность программировать операции сдвига для манипуляции с битами.
Повышенная точность
Кроме очевидной необходимости быстрого выполнению операции умножения со сложением (MAC), от DSP требуется высокая точность представления результата в регистре-аккумуляторе. Например, когда перемножаются два 16-битных слова, результат представляется 32-битным словом. Ядро процессоров компании Analog Devices семейства ADSP-21xx с фиксированной точкой имеет встроенный 40-битный аккумулятор, который обеспечивает большой запас суммирования без переполнения. Хотя использование DSP с плавающей точкой автоматически устраняет большинство проблем, связанных с точностью и переполнением, процессоры с фиксированной точкой остаются очень популярными для многих приложений, и поэтому при их использовании нужно обращать достаточное внимание на возможное переполнение, потерю результатов (выход результата операции за пределы разрядной сетки) и масштабирование операндов.
Одновременная выборка двух операндов
Независимо от типа используемого микропроцессора, ограничения в его работе в основном связаны с пропускной способностью шины. В случае микропроцессоров общего назначения или микроконтроллеров, программа в основном состоит из команд, подразумевающих однократное обращение к памяти, обычно адресуемых при помощи сдвига относительно базового адреса. Это заставляет разработчиков микропроцессоров так проектировать систему команд, чтобы фиксированные данные встраивались в код, поскольку такой тип получения операндов является быстрым и эффективным с точки зрения использования памяти. С другой стороны, в DSP преобладают команды, требующие двух независимых обращений к памяти. Данное требование вытекает из самой сути операции свертки (перемножение с суммированием) Eh(i)-x(i). Целью быстрой одновременной выборки двух операндов является необходимость непрерывной загрузки накапливающего умножителя (MAC). При описании MAC мы видели, что быстродействие DSP в основном определяется скоростью MAC. Если мы считаем, что MAC выполняется за приемлемое время, то очевидно, что для каждой операции требуется с той же скоростью подавать на MAC два операнда. Увеличение времени выборки операндов из памяти соответствующим образом отразится на скорости работы MAC. В идеале обращение происходит одновременно с выполнением операции в MAC в одном и том же машинном цикле.