Ядро 16-разрядных DSP с фиксированной точкой семейства ADSP-21xx


СОДЕРЖАНИЕ:

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ (2 стр.)

На этом развитие сигнальных процессоров не остановилось, и уже в конце 1980-х годов на рынке появились процессоры третьего поколения от перечисленных выше фирм. Отличительной особенностью этого поколения стало появление двоичной плавающей арифметики, увеличение разрядности шины данных, емкости памяти и программ. К этому числу процессоров можно отнести TMS320C30 фирмы Texas Instruments, DSP96002 фирмы Motorola, DSP32C фирмы AT&T Microelectronics и ADSP21020 фирмы Analog Devices.

Впоследствии на рынке появились сигнальные процессоры других фирм. Однако в настоящее время, лидирующее положение в этой области занимают фирмы Texas Instruments, Motorola, AT&T Microelectronics и Analog Devices.

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

Глава 2. Архитектура

В этой главе описывается внутренняя архитектура одного из сигнальных процессоров фирмы Analog Devices ADSP-2181 и примеры его подключения.

Фирма Analog Devices разработала целые семейства сигнальных процессоров и постоянно продолжает выпускать на рынок новые модели. В настоящее время существуют следующие семейства: ADSP-21XX, Shark DSP, BlackFin DSP и др. Но, несмотря на все многообразие этих групп, все они имеют похожую друг на друга архитектуру. Отличие семейств друг от друга заключается, например, в арифметических блоках, которые поддерживают вычисления с фиксированной или плавающей запятой. Кроме того, семейства отличаются производительностью, разрядностью шин данных, структурой внутренних регистров, интерфейсами и т.п. Отличие процессоров друг от друга внутри семейства состоит в основном в объеме и организации внутренней памяти и типе встроенных интерфейсов. В состав каждого из процессоров этого семейства входят следующие функциональные устройства.

• Арифметико-логическое устройство АЛУ.

• Два генератора адреса данных.

• Последовательный многоканальный порт.

Ниже приведена табл. 2.1 с отличительными характеристиками сигнальных процессоров семейства ADSP-21XX.

Таблица 2.1. Характеристики сигнальных процессоров семейства ADSP-21XX

Ресурсы 2101 2103 2105 2111 2115 21msp58 2171 2173 2181 2183
Объем оперативной памяти программ (слов) 2K 2K 1K 2K 1K 2K 2K 2K 16K 16K
Объем оперативной памяти данных (слов) 1K 1K 512 1K 512 2K 2K 2K 16K 16K
Второй последовательный порт + +
Порт хост-интерфейса + + + +
Порт прямого доступа к памяти + +
Максимальная внешняя тактовая частота, МГц 20 10,24 13,82 20 20 16,67 16,67 16,67 20 20
Аналого-цифровые преобразователи и фильтры +
Режим малого потребления + + + + +
Напряжение питания, В 5 3,3 5 5 5 5 5 3,3 5 3,3
Количество сигнальных выводов 68 68 68 100 68 100 128 128 128 128

Остановимся на рассмотрении архитектуры одного из самых распространенных на сегодняшний день процессоров семейства ADSP-21XX, а именно на процессоре ADSP-2181. Этот компонент является самым развитым в своем семействе и включает в себя наибольший объем памяти и множество встроенных интерфейсов.

Сигнальный процессор ADSP-2181 представляет собой однокристальный чип, выпускаемый в 128 выводных корпусах типа PQFP-128 или TQFP-128. Из вышеприведенной информации уже можно составить общее представление о возможностях, заложенных в данный процессор. Но для полноты картины рассмотрим структурную схему внутренней архитектуры этого чипа, приведенную на рис. 2.1.

Рис. 2.1. Структурная схема внутренней архитектуры чипа

Процессор имеет сильно развитую структуру внутренних шин адреса и данных. К их числу относятся шина адреса памяти программ PROGRAM MEMORY ADDRESS, шина адреса памяти данных DATA MEMORY ADDRESS, шина данных памяти программ PROGRAM MEMORY DATA и шина данных памяти данных DATA MEMORY DATA.

Слева на схеме изображен базовый блок архитектуры всего семейства ADSP-2100 BASE ARCHITECTURE включаемый в состав любого из процессоров данного семейства. Он состоит из блока генераторов адреса данных DATA ADDRESS GENERATORS, программного автомата PROGRAM SEQUENCER и арифметического блока ARITHMETIC UNITS.

Блок генераторов адреса данных содержит два генератора: DAG1 и DAG2, предназначенных для инвертирования бит адреса во время выполнения процессором операций быстрого преобразования Фурье (БПФ).

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

Арифметический блок включает в себя арифметико-логическое устройство ALU, умножитель с накопителем MAC и устройство сдвига SHIFTER. Первый из этих блоков предназначен для выполнения арифметических и логических операций над данными, а второй для выполнения арифметического умножения чисел. SHIFTER позволяет нормировать числа после выполнения арифметических операций.

Рассмотрим блоки, расположенные справа вверху по схеме. Блок управления пониженным питанием POWER DOWN CONTROL обеспечивает управление процессором для перехода в режим пониженного потребления после выполнения соответствующей инструкции и возврат из этого режима после возникновения прерывания или после перезапуска. Блок памяти MEMORY состоит из памяти данных DATA MEMORY и памяти программ PROGRAM MEMORY. Таким образом, оперативная память всего процессора разделена на две независимых части в соответствии с Гарвардской архитектурой построения процессоров. Тем не менее, система команд этого процессора позволяет использовать память программ для хранения данных. Блок программируемых входов-выходов PROGRAMMABLE I/O позволяет запрограммировать несколько выводов по усмотрению разработчика на ввод или на вывод битовых сигналов, что обеспечивает возможность гибкого применения этих выводов. Блок флагов FLAGS управляет тремя битовыми выводами, организованными как сигнальные выходы. Наконец, блок байтового контроллера прямого доступа к памяти BYTE DMA CONTROLLER, сокращенное и часто употребляемое в дальнейшем название которого BDMA, обеспечивает быстрый аппаратный ввод и вывод байтовых данных через внешнюю шину данных процессора.

Теперь рассмотрим блоки, расположенные справа внизу по схеме. Одним из самых популярных и полезных является блок последовательных многофункциональных портов SERIAL PORTS, который включает в себя два последовательных порта SPORT1 и SPORT2. Отличительной особенностью этих портов является то, что они программируемые, синхронные и многоканальные. Т.е. каждый из этих портов способен принимать и передавать информацию от однословного до тридцатидвухсловного последовательного потока бит. Каждое слово в потоке может иметь длину от трех до шестнадцати бит. Этот формат передачи данных часто применяется при построении телекоммуникационных систем. К такому порту можно подключить одновременно до 32 кодеков и получить на их выходе соответственно 32 аналоговых канала ввода-вывода. Согласитесь — это мощный инструмент, который можно применить во многих областях. Кроме того, порты могут программироваться на внешнюю или внутреннюю синхронизацию. Управляющие выводы портов также могут быть запрограммированы на ввод или вывод.

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

И, наконец, блок внутреннего порта INTERNAL DMA PORT IDMA, сокращенное название которого IDMA, предназначен для организации прямого доступа к памяти данных и памяти программ процессора по шестнадцатиразрядной внешней шине. Этот порт играет важную роль при работе с процессором, поскольку позволяет загружать программу и данные непосредственно в память процессора до его старта, стартовать процессор и производить операции чтения и записи данных в память во время его работы, незначительно влияя при этом на производительность процессора.

Классификация микропроцессорных систем 5 Универсальные процессоры 8

Название Классификация микропроцессорных систем 5 Универсальные процессоры 8
страница 28/32
Дата конвертации 27.05.2013
Размер 1.53 Mb.
Тип Реферат

Архитектура ядра 16-разрядных цифровых сигнальных процессоров с фиксированной точкой семейства ADSP-21XX

В традиционных микропроцессорах используется архитектура Фон Неймана (названную так в честь американского математика Джона Фон Неймана), показанная на рис. 7.4, A. Эта архитектура состоит из единого блока памяти, в котором хранятся и команды, и данные, и общей шины для передачи данных и команд в ЦПУ и от него. При такой архитектуре перемножение двух чисел требует по меньшей мере трех циклов: двух циклов для передачи двух чисел в ЦПУ, и одного – для передачи команды. Данная архитектура приемлема в том случае, когда все действия могут выполняться последовательно. По сути говоря, в большинстве компьютеров общего назначения используется сегодня такая архитектура.

Однако для быстрой обработки сигналов больше подходит гарвардская архитектура, показанная на рис. 17.4, B. Данная архитектура получила свое название в связи с работами, проведенными в Гарвардском университете под руководством Ховарда Айкена. Данные и код программы хранятся в различных блоках памяти и доступ к ним осуществляется через разные шины, как показано на схеме. Т.к. шины работают независимо, выборка команд программы и данных может осуществляться одновременно, повышая таким образом скорость по сравнению со случаем использования одной шины в архитектуре Фон Неймана. При выполнении умножения с последующим суммированием в КИХ-фильтре за один цикл происходит выборка команды из памяти программ и коэффициента из памяти данных. Второй цикл требуется для выбора слова данных из памяти данных.

На рис.17.4, C представлена модифицированная гарвардская архитектура, используемая компанией Analog Devices Inc., где и команды, и данные могут храниться в памяти программ. Например, в случае с цифровым фильтром коэффициенты могут храниться в памяти программы, а значения данных – в памяти данных. Поэтому коэффициент и значение данных могут выбираться в одном машинном цикле. Помимо выборки коэффициента из памяти программ и значения отсчета из памяти данных, естественно, должна быть выбрана команда из памяти программы. Цифровые сигнальные процессоры компании Analog Devices решают эту задачу двумя способами. В первом случае к памяти программ обращаются дважды за время цикла. Этот метод использует процессоры семейства ADSP-218x. Во втором случае используется кэш-память программ. В алгоритмах, требующих одновременной выборки двух операндов, программист один массив помещает в память программ, а другой – в память данных. Когда процессор в первый раз выполняет команду, требующую двойного обращения к памяти программ, используется один дополнительный машинный цикл, т.к. необходимо выбрать и команду, и коэффициент с помощью шины данных памяти программ. Однако когда возникает такая проблема, процессор помещает команду в кэш, и в следующий раз, когда требуется эта команда, секвенсер программ извлекает ее из кэш-памяти, в то время как коэффициент поступает по шине данных памяти программ. Кэш программ используется как в семействе процессоров ADSP-219x компании Analog Devices, так и в процессорах семейства

Архитектура DSP семейства ADSP-21xx (рис.17.7) оптимизирована для цифровой обработки сигнала и других высокоскоростных приложений. Данное семейство DSP включает ядро семейства ADSP-2100 (три вычислительных блока, адресные генераторы, устройство управления выполнением команд), два синхронных последовательных порта, программируемый таймер, развитую систему обработки прерываний, встроенную статическую память программ и данных. Существуют также версии с встроенным ПЗУ.

Гибкая архитектура процессоров семейства ADSP-21xx и соответствующий набор команд позволяют достичь высочайшей степени параллелизма при выполнении операций. За один цикл DSP семейства ADSP-21xx может сгенерировать адрес следующей команды программы, выбрать следующую команду, выполнить 1 или 2 перемещения данных, обновить 1 или 2 указателя адреса, выполнить вычислительную операцию, передать или принять данные от двух последовательных портов и обновить регистр таймера.

Процессоры семейства ADSP-21xx имеют пять внутренних шин для повышения эффективности передачи данных. Шины адреса памяти программы (PMA) и адреса памяти данных (DMA) используются одновременно для адресации в пределах адресных пространств памяти программ и памяти данных. Шины данных памяти программ (PMD) и шина данных памяти данных (DMD) используются для передачи данных из соответствующих областей памяти. При выводе шин на корпус за пределы кристалла они объединяются в одну внешнюю шину адреса и в одну внешнюю шину данных; области памяти выбираются соответствующими сигналами управления. Шина результата (R) используется для пересылки промежуточных результатов напрямую между различными вычислительными блоками.

14-разрядная шина PMA позволяет получить прямой доступ к 16К слов памяти программ. Шина DMD является 16-разрядной. Она обеспечивает доступ к содержимому любого регистра процессора для передачи его в любой другой регистр или любую ячейку памяти данных за один цикл. Адрес памяти данных может поступать от двух источников: абсолютное значение, содержится в коде команды (прямая адресация) или на выходе адресного генератора (косвенная адресация). Для выборки данных из памяти программ используется только косвенная адресация.

Шина данных памяти программы (PMD) может также использоваться для передачи данных между вычислительными блоками напрямую или через блок обмена между шинами PMD-DMD. Блок обмена между шинами PMD-DMD позволяет передавать данные от одной шины к другой. Он содержит технические средства, которые позволяют, когда это необходимо, преодолевать разницу в 8 бит между двумя шинами.

В памяти программ могут храниться как команды, так и данные, позволяя DSP семейства ADSP-21xx одновременно осуществлять выборку двух операндов в одном цикле, один из памяти программы, а другой из памяти данных. Команды поступают либо прямо из памяти программ путем осуществления двойного доступа в одном машинном цикле (процессоры серии ADSP-218x), либо из кэш-памяти программ (в процессоре серии ADSP-219x и SHARC).

Вычислительные блоки (АЛУ, МАС, регистр сдвига)

Процессор содержит три независимых вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель с накоплением (МАС) и устройство сдвига. Вычислительные блоки способны обрабатывать 16-разрядные данные и могут поддерживать вычисления с повышенной точностью. АЛУ обладает флагом переноса CI, который позволяет поддерживать 32-разрядные арифметические действия.

АЛУ обеспечивает стандартный набор арифметических и логических функций: сложение, вычитание, смену арифметического знака, инкремент, декремент, получение абсолютного значения, логическое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсию. Также поддерживаются примитивы деления.

МАС способен выполнить за один машинный цикл операцию умножения, умножения/сложения или умножения/вычитания. Он также содержит 40-разрядный аккумулятор, который обеспечивает дополнительные 8 разрядов для накопления результата без потери информации; данное решение допускает возникновение 256-ти переполнений, прежде чем произойдет потеря данных. Специальные команды обеспечивают поддержку блочной плавающей точки, при которой одна экспонента приписывается некоторому набору данных. Для ускорения обработки прерываний в МАС также может использоваться набор вспомогательных регистров. Если после окончания процедуры обработки сигнала установлен флаг МV, это означает, что регистр результата содержит слово, длина которого больше 32 разрядов. В этом случае значение, содержащееся в регистре, может быть заменено максимально или минимально возможной величиной, представимой в пределах 32-хразрядной сетки формате 1.32, в зависимости от природы переполнения.

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

Вычислительные блоки располагаются параллельно, а не последовательно, так что результат работы любого блока может использоваться как исходное данное для другого блока в следующем машинном цикле. Для обеспечения такой возможности используется шина промежуточных результатов (R).

Адресные генераторы и устройство управления последовательностью выполнения команд (секвенсер)

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

DAG1 может осуществлять адресацию только в памяти данных. DAG2 может осуществлять адресацию и в памяти данных, и в памяти программ. Когда в конфигурационном регистре (MSTAT) установлен соответствующий управляющий бит, адресный генератор DAG1 осуществляет бит-реверсивную адресацию. Бит-реверсивная адресация существенно упрощает реализацию алгоритма БПФ по основанию 2.

Программный секвенсер осуществляет вычисление адреса инструкции, выборка которой должна осуществляться по мере исполнения программы. Ключевым компонентом устройства является регистр команд, который хранит информацию о выполняемой в текущее время команде. Регистр команд образует одноуровневый конвейер в потоке обрабатываемых команд. Команды выбираются и загружаются в регистр команд в одном цикле шины процессора и выполняются в следующем цикле, в то время как осуществляется выборка следующей команды. Чтобы уменьшить количество дополнительных циклов, устройство поддерживает выполнение переходов по условию, вызовов подпрограмм и возвращений к выполнению главной программы за один машинный цикл. Используя внутренний счетчик цикла и стек цикла процессор может выполнять программу цикла с автоматической проверкой условия завершения, без дополнительных затрат процессорного времени на организацию цикла. Таким образом, чтобы организовать цикл, команды явного перехода не требуются. Устройство также способно с минимальной задержкой реагировать на прерывания, поступающие от контроллера прерываний. Появление прерывания вызывает переход к определенной ячейке памяти, где хранится подпрограмма обработки прерывания. Короткая подпрограмма обработки прерывания может располагаться непосредственно в таблице векторов прерываний, где для этих целей зарезервировано четыре ячейки памяти. Для выполнения более сложной подпрограммы обработки прерывания приходится осуществлять переход с помощью команды JUMP в область памяти программ, где может быть размещена более длинная программа.

Встроенные периферийные устройства цифровых сигнальных процессоров семейства ADSP-21xx

В предыдущих разделах мы обсуждали архитектуру ядра процессоров семейства ADSP-21xx с фиксированной точкой, которая является одинаковой для всех представителей семейства. Следующий раздел посвящен встроенным периферийным устройствам, которые имеют различную конфигурацию и разные возможности в зависимости от конкретного исполнения представителя семейства. Архитектура процессора семейства ADSP-218x показана на рис. 17.14.

Семейство 21xx имеет множество различных вариантов процессоров с разным объемом встроенной памяти; в более новом семействе 218x имеются представители, включающие до 48К слов памяти программ и 56К слов памяти данных. Все представители семейства используют модифицированную гарвардскую архитектуру, которая предполагает раздельные адресные пространства памяти программы и памяти данных и позволяет хранить данные в памяти программы. Интерфейс внешней памяти поддерживает как быструю, так и медленную память с программируемыми состояниями ожидания.

Процессоры семейства ADSP-218x также поддерживают отдельное адресное пространство портов ввода-вывода.

Все представители семейства 21xx (кроме сигнальных процессоров ADSP-2105) имеют два последовательных порта с двойной буферизацией (SPORT) для приема и передачи последовательных данных. Каждый SPORT является двунаправленным и имеет свой собственный программируемый генератор битовой и фреймовой синхронизации. Длина слова SPORT может изменяться от 3 до 16 разрядов. Данные могут передаваться с использованием фреймовой синхронизации или без нее. Каждый SPORT способен генерировать прерывания и поддерживает логарифмическое сжатие данных по законам А и u.

IDMA-порт процессоров семейства ADSP-218xx поддерживает возможность начальной загрузки процессора от хост-компьютера и возможность доступа со стороны хост-компьютера во внутреннюю память DSP для чтения и записи «на лету», когда DSP занимается выполнением своей программы. Порт IDMA позволяет главному процессору осуществлять доступ ко всей внутренней памяти DSP без использования почтовых регистров. Порт IDMA поддерживает передачу 16- и 24- разрядных слов, при этом передача 24-разрядных слов происходит за два машинных цикла.

Процессоры семейства ADSP-218xx обладают также интерфейсом для взаимодействия с памятью, которая имеет байтовую организацию. Данный интерфейс может использоваться для начальной загрузки процессора и для передачи данных из внутренней памяти и во внутренюю память «на лету». Максимальный размер адресуемой внешней восьмибитовой памяти составляет 4МВ. Данное адресное пространство играет роль загрузочной области (boot memory), характерной для представителей семейства 21хх. Байтовая память имеет организацию 256 страниц по 16Кх8 бит. Передача данных в байтовую память и из нее может осуществляться с упаковкой или распаковкой 24-разрядного, 16-разрядного и 8-разрядного (с выравниванием по младшему или старшему байту) форматов. При доступе к внутренней памяти DSP контроллер DMA занимает один машинный цикл, во время которого ядро не может осуществлять доступ в память.

Процессоры ADSP-21xx, ADSP-218x и ADSP-21msp5x имеют специальный режим работы с низкой потребляемой мощностью, который позволяет достигнуть потребления меньше 1 мВт. Переход в данный режим может осуществляться аппаратно или программно. Это особенно важно для устройств, работающих от автономных источников питания. В некоторых режимах работы с низкой потребляемой мощностью отключается внутренний тактовый сигнал, но содержимое памяти и регистров при этом сохраняется.

Из предыдущего обсуждения должно быть ясно, что цифровые сигнальные процессоры ADI разработаны таким образом, что выполнение типичных функций ЦОС, таких как БПФ или цифровая фильтрация, происходит с максимальной эффективностью. Процессоры могут выполнять несколько операций за один цикл, как уже было показано для приведенного выше примера с фильтром. Эффективность DSP обычно оценивается в MIPS (миллионах команд в секунду). Однако, количество MIPS не является исчерпывающей характеристикой процессора. Например, если процессор А имеет скорость выполнения команд 50 MIPS и может производить одну операцию за одну команду, то он сможет выполнять 50 миллионов операций в секунду, развивая производительность 50 MOPS. Теперь представим, что процессор В имеет скорость выполнения команд 20 MIPS, но может выполнять 4 операции за одну команду. Процессор В сможет выполнить 80 миллионов операций в секунду и развить производительность 80 MOPS, что гораздо более эффективно, чем в случае с процессором А. Еще более эффективный способ оценивания работы ЦСП состоит в использовании хорошо зарекомендовавшего себя эталонного тестера, такого как КИХ-фильтр с определенным числом звеньев или БПФ известного размера. Сравнение с эталонами, которые рассматриваются в следующей главе, позволит избежать ошибок, связанных с характеристиками, выраженными в MIPS и MOPS. Но даже применение эталона не позволяет дать правильную оценку при сравнении производительности двух процессоров. Нужно производить глубокий анализ системных требований, архитектуры процессора, требований к наличию памяти и других факторов.

Процессоры семейства ADSP-219x поддерживает программную совместимость с семейством ADSP-218x. Для улучшения производительности и повышения эффективности С-компилятора это семейство должно включать DSP со скоростями в диапазоне от 100 до 300 MIPS и потребляемым током менее 0,4 мА/MIPS. Процессоры данного семейства поддерживают интерфейс JTAG, что приводит к улучшению отладочных свойств семейства. Блок-схема DSP данного семейства показана на рис. 17.20.

По сравнению с процессорами семейства ADSP-218x, имеющими 14- разрядную шину адреса, в семействе ADSP-219x используется 24-разрядная шина адреса, что позволяет осуществлять прямую адресацию в пределах 64К слов или страничную адресацию в пределах 16М слов. Адресный генератор процессоров семейства 219х поддерживает все известные режимы адресации, а также пять новых режимов адресации.

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

Процессорное ядро семейства ADSP-219x является ключевой технологией компании Analog Devices в области 16-разрядных DSP-процессоров общего назначения и в области встроенных решений. Специальные схемотехнические решения и программное обеспечение разрабатываются непосредственно для заказчика под конкретно заданные требования и характеристики. Для приложений, требующих высокой производительности, будут создаваться процессоры, содержащие несколько ядер на одном кристалле. В будущем предполагается создание семейства, включающего 4 ядра на одном кристалле и обладающего производительностью 1,2 миллиарда MAC в секунду на 1 квадратный дюйм площади кристалла. Проектировщикам, создающим системы, критичные к потребляемой мощности, понравятся рабочие токи процессоров данного семейства, составляющие порядка 0,15мА/MIPS.

История развития семейства 16-разрядных DSP с фиксированной точкой компании Analog Devices показана на рис. 17.22. Обратите внимание на улучшение производительности, геометрических размеров и характеристик по потребляемой мощности при постоянном обеспечении кодовой совместимости различных устройств. Появляющиеся новые семейства имеют напряжения питания 3,3 В (L-серия) и 2,5 В (М-серия), что способствует дальнейшему повышению эффективности использования данных процессоров. Ранние представители семейства помещались в дорогие корпуса типа PGA или PLCC, которые теперь заменяются PQFP и (в последнее время) TQFP толщиной 1,6 мм. Обратите внимание, что в 1998 году поменялась спецификация JEDEC для толщины TQFP, доведя ее до значения 1,0 мм. Корпуса, ранее обозначавшиеся TQFP (1,6 мм толщиной), теперь называются LQFP в соответствии с квалификацией JEDEC.

Корпус мини-BGA со 144 выводами (см. рис. 17.23) представляет собой новый тип корпуса, обеспечивающий производительность 75 MIPS при более 2М бит внутренней памяти в 1см2 корпуса, толщина которого составляет 1,35 мм, в сочетании с низкой потребляемой мощностью (0,4 мА на MIPS). Например, процессор ADSP-2188M, обладающий производительностью 75 MIPS, имеет 48К 24-разрядной памяти программ и 56К 16-разрядной памяти данных, что составляет в общей сложности 2028К бит. Потребляемая мощность данного процессора составляет менее 100 мВт.

«a ГЛАВА 1 ВВЕДЕНИЕ 1 a РАЗДЕЛ 1 ВВЕДЕНИЕ Уолт Кестер ПРОИСХОЖДЕНИЕ ФИЗИЧЕСКИХ СИГНАЛОВ И ЕДИНИЦЫ ИХ ИЗМЕРЕНИЯ В этой книге мы будем прежде всего иметь дело с обработкой физических . »

a 4-ТОЧЕЧНЫЙ ФИЛЬТР СКОЛЬЗЯЩЕГО СРЕДНЕГО x(n) x(n–2) x(n–3) x(n–1) Z –1 Z –1 Z – h(0) h(1) h(2) h(3) = 1 = 1 = 1 = 4 4 4 y(n) y(n) = h(0) x(n) + h(1) x(n – 1) + h(2) x(n – 2) + h(3) x(n – 3) 1 1 1 = x(n) + x(n – 1) + x(n – 2) + x(n – 3) 4 4 4 = x(n) + x(n – 1) + x(n – 2) + x(n – 3) Для N-точечного N– фильтра скользящего среднего y(n) = N k = 0 x(n – k) Рис. 6. С учетом равенства коэффициентов, наиболее простой путь исполнения фильтра скользящего среднего представлен на рис.6.7. Обратите внимание, что первым шагом является запоминание первых четырех отсчетов x (0), x (1), x (2), x (3) в регистрах. Эти величины суммируются и затем умножаются на 0,25 для получения первого выхода y(3).

Обратите внимание, что начальные значения выходов y(0), y(1) и y(2) некорректны, потому что, пока отсчет x(3) не получен, не все регистры заполнены.

Когда получен отсчет x(4), он суммируется с результатом, а отсчет x(0) вычитается из результата. Затем новый результат должен быть умножен на 0,25. Поэтому вычисления, требуемые для получения нового значения на выходе, состоят из одного суммирования, одного вычитания и одного умножения, независимо от длины фильтра скользящего среднего.

a ВЫЧИСЛЕНИЕ ВЫХОДНОГО СИГНАЛА 4-ТОЧЕЧНОГО ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО y(3) = 0.25 x(3) + x(2) + x(1) + x(0) y(4) = 0.25 x(4) + x(3) + x(2) + x(1) y(5) = 0. x(5) + x(4) + x(3) + x(2) x(6) + x(5) + x(4) + x(3) y(6) = 0. y(7) = 0.25 x(7) + x(6) + x(5) + x(4) Вычисление каждого выходного значения требует 1 умножения, 1 сложения и 1 вычитания Рис. 6. Реакция 4-точечного фильтра скользящего среднего на ступенчатое воздействие представлена на рис.6.8. Обратите внимание, что фильтр скользящего среднего не имеет выброса по фронту входного сигнала. Это делает его полезным в приложениях обработки сигналов, где требуется фильтрация случайного белого шума при сохранении характера входного импульса. Из всех возможных линейных фильтров фильтр скользящего среднего дает самый низкий уровень шума при заданной крутизне фронта импульса. Это показано на рис.6.9, где уровень шума понижается по мере увеличения числа точек. Существенно, что время реакции фильтра на ступенчатое воздействие от 0 % до 100 % равно произведению общего количества точек фильтра на период дискретизации.

a РЕАКЦИЯ 4-ТОЧЕЧНОГО ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО НА СТУПЕНЧАТОЕ ВОЗДЕЙСТВИЕ = Вход x(n) = Выход y(n) n 0 1 2 3 4 5 6 7 8 9 10 11 N– y(n) = В общем:

N k = 0 x(n – k) Для N = 4: y(n) = x(n – k) k = Рис. 6. РЕАКЦИЯ ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО НА ВОЗДЕЙСТВИЕ В ВИДЕ СМЕСИ ШУМА И СТУПЕНЧАТОГО СИГНАЛА 0 Номер отсчета 0 Номер отсчета 500 0 Номер отсчета Рис. 6. a Частотная характеристика простого фильтра скользящего среднего выражается функцией sin(x)/x. Она представлена в линейном масштабе на рис.6.10. Увеличение числа точек при реализации фильтра сужает основной лепесток, но существенно не уменьшает амплитуду боковых лепестков частотной характеристики, которая равна приблизительно -14 дБ для фильтра с 11 и с 31 отводами (длиной буфера). Естественно, эти фильтры не подходят в том случае, где требуется большое ослабление в полосе задержания.

ЧАСТОТНАЯ ХАРАКТЕРИСТИКА ФИЛЬТРА СКОЛЬЗЯЩЕГО СРЕДНЕГО 1, 0, 3 отсчета 0, |Амплитуда| 11 отсчетов 0, 31 отсчет 0, 0 0,1 0,2 0,3 0, 0, Частота ( в долях F ) s Рис. 6. Можно существенно улучшить эффективность простого КИХ-фильтра скользящего среднего, выбирая разные веса или значения коэффициентов вместо равных значений.

Крутизна спада может быть увеличена добавлением большего количества звеньев в фильтр, а характеристики полосы затухания улучшаются выбором надлежащих коэффициентов фильтра. Обратите внимание, что, в отличие от фильтра скользящего среднего, для реализации каждой ступени обобщенного КИХ-фильтра требуется цикл умножения с накоплением. Сущность проектирования КИХ-фильтра сводится к выбору соответствующих коэффициентов и необходимого числа звеньев при формировании желаемой частотной характеристики фильтра H(f). Для включения необходимой частотной характеристики H(f) в набор КИХ-коэффициентов имеются различные алгоритмы и программные пакеты. Большинство этого программного обеспечения разработано для персональных компьютеров и доступно на рынке. Ключевой теоремой проектирования КИХ-фильтра является утверждение, что коэффициенты h(n) КИХ фильтра являются просто квантованными значениями импульсной характеристики этого фильтра. Соответственно, импульсная характеристика является дискретным преобразованием Фурье от H(f).

a ФИЛЬТР С КОНЕЧНОЙ ИМПУЛЬСНОЙ ХАРАКТИЕРИСТИКОЙ ПОРЯДКА N x(n) x(n–1) x(n–N+2) x(n–N+1) Z –1 Z –1 Z – h(0) h(1) h(N–2) h(N–1) y(n) N– y(n) = h(n) x(n) = h(k) x(n – k) k = = символ свертки Требуется N операций умножения с накоплением для каждого выходного отсчета Рис. 6. Обобщенная форма КИХ-фильтра с числом звеньев N представлена на рис.6.11. Как было сказано, КИХ-фильтр должен работать в соответствии с уравнением, задающим свертку:

N — Y (n) = h (k) *x (n) = h(k)x(n — k), k= где h(k) – массив коэффициентов фильтра и x(n-k) – входной массив данных фильтра.

Число N в уравнении представляет собой число звеньев и определяет эффективность фильтра, как было сказано выше. КИХ-фильтр с числом звеньев N требует N циклов (операций) умножения с накоплением.

Согласно рис.6.12, диаграммы КИХ-фильтров часто изображаются в упрощенном виде.

Операции суммирования представляются стрелками, указывающими в точки, а операции умножения обозначают, помещая коэффициенты h(k) рядом со стрелками на линиях.

Элемент задержки z-1 показывают, помещая его обозначение выше или рядом с соответствующей линией.

a УПРОЩЕННАЯ СХЕМА ФИЛЬТРА x(n–N+2) x(n–N+1) x(n) x(n–1) Z –1 Z –1 Z – h(N–2) h(0) h(1) h(N–1) y(n) x(n) Z –1 x(n–N+2) Z –1 x(n–N+1) Z –1 x(n–1) h(N–2) h(0) h(1) h(N–1) y(n) Рис. 6. РЕАЛИЗАЦИЯ КИХ-ФИЛЬТРА НА ПРОЦЕССОРЕ DSP С ИСПОЛЬЗОВАНИЕМ ЦИКЛИЧЕСКИХ БУФЕРОВ В рядах, задаваемых уравнениями КИХ-фильтров, предполагается последовательное обращение к N коэффициентам от h(0) до h(N-1). Соответствующие точки данных циркулируют в памяти. При этом добавляются новые отсчеты данных, заменяя самые старые, и каждый раз производится вычисление выходного значения фильтра. Для реализации циклического буфера может использоваться фиксированный объем оперативной памяти, как показано на рис.6.13 для КИХ-фильтра с 4 звеньями. Самый старый отсчет данных заменяется новым после каждой операции вычисления свертки.

Выборка из четырех последних отсчетов данных всегда сохраняется в оперативной памяти.

Чтобы упростить адресацию, чтение из памяти старых значений начинается с адреса, который следует непосредственно за адресом только что записанного нового элемента выборки. Например, если значение x(4) только что записано в ячейку памяти 0, то значения данных читаются из ячеек 1, 2, 3 и 0. Этот пример может быть расширен применительно к любому числу звеньев фильтра. Используя адресацию ячеек памяти таким способом, адресный генератор должен лишь вычислять последовательные адреса, независимо от того, является ли данная операция чтением памяти или записью. Такой буфер в памяти данных называется циклическим, потому что, когда достигается его последняя ячейка, указатель автоматически позиционируется на начало буфера.

a ВЫЧИСЛЕНИЕ ВЫХОДНОГО СИГНАЛА КИХ-ФИЛЬТРА 4 ПОРЯДКА С ИСПОЛЬЗОВАНИЕМ ЦИКЛИЧЕСКОГО БУФЕРА Ячейка памяти Чтение Запись Чтение Запись Чтение 0 x(0) x(4) x(4) x(4) x(1) x(1) x(5) x(5) 2 x(2) x(2) x(2) x(3) x(3) x(3) y(3) = h(0) x(3) + h(1) x(2) + h(2) x(1) + h(3) x(0) y(4) = h(0) x(4) + h(1) x(3) + h(2) x(2) + h(3) x(1) y(5) = h(0) x(5) + h(1) x(4) + h(2) x(3) + h(3) x(2) Рис. 6. Выборка коэффициентов из памяти осуществляется одновременно с выборкой данных. В соответствии с описанной схемой адресации, самый старый отсчет данных выбирается первым. Поэтому сначала должна осуществляться выборка из памяти последнего коэффициента. При использовании адресного генератора, поддерживающего инкрементную адресацию, коэффициенты могут быть сохранены в памяти в обратном порядке: h(N-1) помещается в первую ячейку, а h(0) – в последнюю. И наоборот, коэффициенты могут быть сохранены в порядке возрастания их номеров, если использовать адресный генератор, поддерживающий декрементную адресацию. В примере, показанном на рис.6.13, коэффициенты сохранены в обратном порядке.

Простая итоговая блок-схема для этих операций представлена на рис.6.14. Для DSP процессоров компании Analog Devices все операции, выполняемые за один цикл фильтра, производятся за один командный цикл процессора, благодаря чему существенно увеличивается эффективность вычислений. Данное преимущество известно как реализация циклов без дополнительных операций. Ассемблерный код КИХ-фильтра для семейства процессоров ЦОС ADSP-21XX с фиксированной точкой представлен на рис.6.15. Стрелками в тексте помечены исполняемые команды, остальная часть кода – просто комментарии, добавленные для пояснения.

Первая команда (помеченная меткой fir:) инициирует вычисления, очищая регистр MR и заполняя регистры MX0 и MY0 первым значением данных и первым значением коэффициентов из памяти программ и памяти данных. Затем, для вычисления суммы первых N-1 слагаемых, N-1 раз в N циклах выполняется операция умножения с накоплением, реализуя свертку выборки следующего набора данных и коэффициентов.

Заключительная команда умножения с накоплением выполняется с включенным режимом округления для округления результата до старших 24 разрядов регистра MR. Затем регистр MR1 условно насыщается до своего наибольшего положительного или a отрицательного значения, в зависимости от состояния флага переполнения в регистре MV.

Благодаря такому подходу, при накоплении результата используются преимущества регистра MR 40-разрядной точности. Насыщение происходит только в том случае, если вычисление заключительного результата привело к переполнению 32 младших значащих разрядов регистра MR.

Ограничение на число звеньев фильтра, реализующего подпрограммы КИХ-фильтрации в реальном масштабе времени, определяется, прежде всего, длительностью процессорного цикла, частотой дискретизации и требуемым объемом других вычислений. Подпрограмма КИХ-фильтра, представленная в примере, требует общего количества циклов N+5 для фильтра с числом звеньев N. Для DSP-процессора ADSP-2189M, обладающего быстродействием 75 MIPS, один цикл команды выполняется за 13,3 нс, так что фильтр с числом звеньев 100 требует 13,3 нс*100 + 5*13,3 нс = 1330 нс + 66,5 нс = 1396,5 нс = 1, мкс.

ПСЕВДОКОД ПРОГРАММЫ ФИЛЬТРА, ИСПОЛЬЗУЮЩЕЙ DSP-ПРОЦЕССОР С ЦИКЛИЧЕСКОЙ БУФЕРИЗАЦИЕЙ 1. Получение отсчета от АЦП (обычно по прерыванию) 2. Помещение отсчета в циклический буфер входного сигнала 3. Обновление указателя циклического буфера входного сигнала 4. Обнуление аккумулятора 5. Осуществление фильтрации (цикл по всем коэффициентам) 6. Выборка коэффициента из циклического буфера коэффициентов 7. Обновление указателя циклического буфера коэффициентов 8. Выборка отсчета из циклического буфера входного сигнала 9. Обновление указателя циклического буфера входного сигнала 10. Умножение коэффициента на отсчет 11. Добавление нового слагаемого к промежуточному результату 12. Выдача отфильтрованного отсчета на ЦАП ADSP-21xx Пример кода:

DO convolution UNTIL CE;

MR = MR + MX0 * MY0(SS), MX0 = DM(I0,M1), MY0 = PM(I4,M5);

Рис. 6. a АССЕМБЛЕРНЫЙ КОД КИХ-ФИЛЬТРА НА БАЗЕ ADSP-21XX (ОДИНАРНАЯ ТОЧНОСТЬ).MODULE fir_sub;

< FIR Filter Subroutine Calling Parameters I0 Oldest input data value in delay line I4 Beginning of filter coefficient table L0 = Filter length (N) L4 = Filter length (N) M1,M5 = CNTR = Filter length - 1 (N-1) Return Values MR1 = Sum of products (rounded and saturated) I0 Oldest input data value in delay line I4 Beginning of filter coefficient table Altered Registers MX0,MY0,MR Computation Time (N - 1) + 6 cycles = N + 5 cycles All coefficients are assumed to be in 1.15 format. >.ENTRY fir;

fir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5) CNTR = N-1;

DO convolution UNTIL CE;

convolution: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);

Рис. 6. ПРОЕКТИРОВАНИЕ КИХ-ФИЛЬТРОВ Благодаря современным средствам САПР, проектирование КИХ-фильтров выполняется относительно просто. На рис.6.16 представлены некоторые характеристики КИХ фильтров и наиболее популярные методы их проектирования. Проектирование КИХ фильтров базируется, в первую очередь, на том, что частотная характеристика фильтра определяется импульсной характеристикой, а во-вторых, на том, что коэффициенты фильтра определяются его квантованной импульсной характеристикой.

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

Полезно сделать некоторое отступление и исследовать соотношения между временным и частотным представлениями для лучшего понимания принципов, лежащих в основе цифровых фильтров, в частности – КИХ-фильтров. В дискретной системе операция свертки может быть представлена рядом операций умножения с накоплением. Операция свертки во временной или частотной области эквивалентна умножению «точки на точку» в соответствующей дуальной области. Например, свертка во временной области эквивалентна умножению в частотной области. Это изображено графически на рис.6.18.

Очевидно, что фильтрация в частотной области может быть выполнена умножением на всех частотных компонентов в полосе пропускания и умножением на 0 всех частотных компонентов в полосе задержки. И наоборот, свертка в частотной области эквивалентна умножению «точки на точку» во временной области.

a ХАРАКТЕРИСТИКИ КИХ-ФИЛЬТРОВ Импульсная характеристика имеет конечную длительность (N циклов) Линейная фаза, постоянная групповая задержка (N должно быть нечетным) Нет аналогового эквивалента Безусловная устойчивость Может быть адаптивным Вычислительные преимущества при децимации на выходе Легкое понимание принципов и проектирование Оконный метод sin(x)/x (Windowed-Sinc) Разложение в ряд Фурье со взвешиванием (Windowing) Синтез произвольной частотной характеристики и использование обратного БПФ Программа Паркса-Макклиллана (Parks-McClellan) с алгоритмом обмена Ремеза (Remez) Рис. 6. ИМПУЛЬСНАЯ ХАРАКТЕРИСТИКА КИХ ФИЛЬТРА ОПРЕДЕЛЯЕТ КОЭФФИЦИЕНТЫ ФИЛЬТРА x(n) x(n–1) x(n–7) x(n–8) Z–1 Z–1 Z– N = h(0) h(1) h(7) h(8) y(n) y(n) x(n) h(4) h(2) h(6) h(8) h(0) n n h(1) h(7) h(3) h(5) Рис. 6. a ДВОЙСТВЕННОСТЬ (ДУАЛЬНОСТЬ) ВРЕМЕНИ И ЧАСТОТЫ ВРЕМЕННАЯ ОБЛАСТЬ ЧАСТОТНАЯ ОБЛАСТЬ x(n) X(k) Вход t f БПФ H(k) Характеристика h(k) фильтра f t x(n) h(k) X(k) • H(k) Выход t f Рис. 6. Функция передачи в частотной области (1 или 0) может быть отображена во временную область с использованием дискретного преобразованием Фурье (ДПФ) (на практике используется БПФ). Во временной области это дает импульсную характеристику фильтра.

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

Математический аппарат, применяемый при проектировании фильтров (аналоговых или цифровых), в основном базируется на преобразованиях Фурье. В непрерывных по времени системах в качестве обобщенного преобразования Фурье может рассматриваться преобразование Лапласа. Подобным способом можно обобщить преобразование Фурье для дискретных по времени систем, и результат такого обобщения известен как z преобразование. Детальное описание использования z-преобразования при проектировании цифровых фильтров дано в приложениях 1, 2, 3, 4, 5 и 6, хотя для понимания дальнейшего материала и нет необходимости в глубоких теоретических изысканиях.

a Проектирование КИХ-фильтра по методу sin(x)/x со взвешиванием Частотная характеристика идеального ФНЧ представлена на рис.6.19, A.

Соответствующая импульсная характеристика во временной области представлена на рис.6.19, B и является функцией sin(x)/x (sinc). Если для реализации этой частотной характеристики использовать КИХ- фильтр, то он должен иметь бесконечное число звеньев. Метод sin(x)/x со взвешиванием заключается в следующем. Сначала импульсная характеристика обрезается до разумного числа точек N, как на рис.6.19, C. Как было обсуждено в разделе 5, частотная характеристика, соответствующая рис.6.19, C, имеет слишком большое влияние боковых лепестков из-за разрывов в области конечных точек в усеченной импульсной характеристике. Следующий шаг в процессе проектирования состоит в применении к усеченному импульсу соответствующей весовой функции, как показано на рис.6.19, D, обнуляющей конечные точки. Выбранная таким образом весовая функция определяет спад и характеристики боковых лепестков фильтра. Весовые оконные функции были подробно обсуждены в разделе 5. Как правило, существует несколько приемлемлемых вариантов в зависимости от желаемой частотной характеристики.

Частотная характеристика фильтра с усеченной импульсной характеристикой sin(x)/x (рис.6.19, E) представлена на рис.6.19, F.

ПРОЕКТИРОВАНИЕ КИХ-ФИЛЬТРА ПО МЕТОДУ SIN(X)/X СО ВЗВЕШИВАНИЕМ (WINDOWED-SINC) Частотная характерис- Импульсная характерис- Усеченная импульс- тика идеального ФНЧ тика идеального ФНЧ ная характеристика (A) (B) (C) sin x x (sinc функция) t t f fc N Оконная Взвешенная импульс- Окончательная частотная весовая ная характеристика характеристика фильтра функция (D) (E) (F) fc t t f N N Рис. 6. a Проектирование КИХ-фильтра по методу рядов Фурье со взвешиванием.

Метод рядов Фурье со взвешиванием (рис.6.20) заключается в начальном математическом опреденении функции передачи H(f) и последующем разложении ее в ряд Фурье.

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

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

ПРОЕКТИРОВАНИЕ КИХ-ФИЛЬТРА ПО МЕТОДУ РЯДОВ ФУРЬЕ СО ВЗВЕШИВАНИЕМ Точное определение передаточной характеристики H(f) Раложение H(f) в ряд Фурье: коэффициенты ряда Фурье являются коэффициентами КИХ-фильтра h(k) и его импульсной характеристикой Усечение импульсной характеристики до N точек Взвешивание h(k) с соответствующей оконной функцией для сглаживания эффекта усечения Отсутствует точное управление частотой среза;

сильная зависимость от оконной функции Рис. 6. Проектирование КИХ-фильтра по методу частотной дискретизации Этот метод чрезвычайно полезен при генерации КИХ-фильтра с произвольной частотной характеристикой. H(f) определяется как набор точек амплитудной и фазовой характеристик в частотной области. Затем точки преобразуются в вещественные и мнимые составляющие комплексного спектра. Следующим шагом является получение импульсной характеристики путем взятия комплексного обратного БПФ от частотной характеристики. Далее импульсная характеристика обрезается до N точек и применяется взвешивание с функцией окна для минимизации эффекта усечения. Затем результат проектирования фильтра должен быть провере путем вычисления БПФ от ипульсной характеристики и оценки получившейся частотной характеристики. Для получения желаемой характеристики может потребоваться несколько итераций.

a МЕТОД ЧАСТОТНОЙ ДИСКРЕТИЗАЦИИ ДЛЯ КИХ ФИЛЬТРА С ПРОИЗВОЛЬНОЙ ЧАСТОТНОЙ ХАРАКТЕРИСТИКОЙ Определение H(k) как конечного числа спектральных точек, равномерно распределенных между 0 и 0,5 fs (обычно достаточно 512) Определение фазовых точек (можно делать равными 0) Преобразование в алгебраическую форму (вещ. + мнимая части) Комплексное обратное БПФ массива H(f) для получения импульсной характеристики Усечение импульсной характеристики до N точек Взвешивание h(k) с подходящей функцией окна для сглаживания эффектов усечения Проверка результата и при необходимости коррекция Методы САПР больше подходят для ФНЧ, ФВЧ, полосовых и режекторных фильтров Рис. 6. Проектирование КИХ-фильтров с использованием программы Паркса Макклиллана (Parks-McClellan) Метод проектирования, основанный на использовании окон для усечения импульсной характеристики и получения желаемой частотной характеристики, исторически был первым методом проектирования КИХ-фильтров. Метод частотной дискретизации был разработан в 70-ых годах и до сих пор популярен в тех случаях, где частотная характеристика является произвольной функцией.

Сегодня доступны современные программы САПР, которые существенно упрощают проектирование НЧ, ВЧ, полосовых и режекторных КИХ-фильтров. Популярная программа была разработана Парксом (Parks) и Макклилланом (McClellan) и использует алгоритм обмена Ремеза (Remez). Проектирование фильтра начинается с определения параметров, представленных на рис.6.22: неравномерности полосы пропускания, неравномерности полосы задержки (то же, что ослабление) и области перехода. Для этого примера проектирования была использована программа QED1000 фирмы Momentum Data Systems (демонстрационная версия свободно доступна по адресу http://www.mds.com).

В этом примере мы будем проектировать звуковой НЧ фильтр, который работает при частоте дискретизации 44,1 кГц. Фильтр определен согласно рис.6.22. Граничная частота полосы пропускания составляет 18 кГц. Полоса задержки начинается при 21 кГц, неравномерность полосы пропускания равна 0,01 дБ, а неравномерность полосы задержки (ослабление) – 96 дБ. Мы также должны определить длину слова (разрядность) коэффициентов, которая в данном случае составляет 16 разрядов, принимая во внимание, что используется 16-разрядный процессор DSP с фиксированной точкой.

a САПР-МЕТОДЫ ПРОЕКТИРОВАНИЯ КИХ-ФИЛЬТРОВ:

ПРОГРАММА ПАРКСА-МАККЛИЛЛАНА С АЛГОРИТМОМ РЕМЕЗА = неравномерность в полосе пропускания |Усиление| f c Частота начала полосы задержки f p Частота окончания 2 Неравномерность в = полосы пропускания полосе задержки (ослабление) Частота Коэффициент неравномерности = Рис. 6. ВХОДНЫЕ ДАННЫЕ ДЛЯ ПРОГРАММЫ ПРОЕКТИРОВАНИЯ КИХ-ФИЛЬТРОВ С ФИКСИРОВАННОЙ НЕРАВНОМЕРНОСТЬЮ ПОЛОСЫ ПРОПУСКАНИЯ ПОЛОСЫ ЗАДЕРЖКИ Тип фильтра:

НЧ ВЧ полосовой режекторный Дифференциатор Мультичастотный Частота дискретизации: 44 100 Гц Частота полосы пропускания: 18 000 Гц Частота полосы задержки: 21 000 Гц Неравномерность полосы пропускания : 0,01 дБ Неравномерность полосе задержки: 96 дБ Длина слова : 16 бит Рис. 6. a Программа позволяет нам выбирать между проектированием, основанным на взвешивании с использованием оконных функций, и проектированием КИХ-фильтров с фиксированной неравномерностью Паркса-Макклиллана. Если выбрать последний способ, то программа оценивает число звеньев фильтра, требуемое для его реализации с соблюдением сформулированных технических требований. В данном случае число звеньев равно 69. Можно принять это число и продолжить проектирование или уменьшить число звеньев и посмотреть, можно ли с меньшим числом достичь требуемой спецификации.

Примем это значение и дадим возможность программе закончить вычисления. Программа выдает частотную характеристику (рис.6.25), реакцию фильтра на ступенчатое воздействие (рис.6.26), данные анализа в s- и z- плоскостях и импульсную характеристику (рис.6.27). Затем программа QED1000 выдает квантованные коэффициенты фильтра, которые служат исходными данными для программы, генерирующей реальный ассемблерный код для ряда популярных DSP процессоров, включая процессоры Analog Devices. Программа обладает достаточной степенью гибкости и позволяет пользователю выполнять ряд сценариев оптимизации проектируемого фильтра.

ВЫХОДНЫЕ ДАННЫЕ ПРОГРАММЫ ПРОЕКТИРОВАНИЯ КИХ-ФИЛЬТРА Оценка требуемого порядка фильтра: Принять? Изменить? Принять Частотная характеристика (линейная и логарифмическая шкалы) Реакция на ступенчатое воздействие Анализ в S- и Z- плоскостях Импульсная реакция: коэффициенты фильтра (квантованные) Ассемблерный код DSP процессора для КИХ-фильтра Рис. 6. КИХ-фильтр с 69 звеньями требует 69+5=74 командных цикла процессора ADSP-2189M быстродействием 75MIPS, дает полное время вычисления на отсчет 74*13,3 нс = 984 нс.

Интервал дискретизации равен 1/44,1 кГц или 22,7 мкс. Это дает 22,7 мкс-0,984 мкс = 21, мкс для различных дополнительных операций и реализации других алгоритмов.

Вследствие избыточности вычислительной мощности процессора в данном случае появляется целый ряд возможностей, которые включают использование более медленного процессора для этого приложения (3,3 MIPS), реализацию более сложного фильтра, который требует большего времени вычисления (до N = 1700) или увеличения частоты дискретизации до 1 MSPS.

a ПРИМЕР ПРОЕКТИРОВАНИЯ КИХ ФИЛЬТРА:

ЧАСТОТНАЯ ХАРАКТЕРИСТИКА Неравномерность в полосе 18 кГц пропускания

Первая прямая форма биквадратного звена, представленная на рис.6.32, требует использования четырех регистров. Эта конфигурация может быть заменена эквивалентной схемой, представленной на рис.6.33, которая называется второй прямой формой реализации и требует использования только двух регистров. Можно показать, что уравнения, описывающие биквадратный БИХ-фильтр второй прямой формы реализации, такие же, как и уравнения первой прямой формы реализации. Как и в случае КИХ фильтра, система обозначений при изображении БИХ-фильтра часто упрощается, как показано на рис.6.34.

БИКВАДРАТНЫЙ БИХ-ФИЛЬТР ФОРМА b x(n) y(n) – z –a 1 b – z –a b Приводится к такому же уравнению, как для первой прямой формы:

y(n) = b 0x(n) + b1x(n–1) + b2x(n–2) – a 1y(n–1) – a 2y(n–2) Требует только 2 элемента задержки (регистра) Рис. 6. a УПРОЩЕННАЯ СХЕМА БИКВАДРАТНОГО БИХ-ФИЛЬТРА b x(n) y(n) – z –a 1 b – z –a b b x(n) y(n) – z –a 1 b – z –a b Рис. 6. МЕТОДЫ ПРОЕКТИРОВАНИЯ БИХ-ФИЛЬТРОВ Популярный метод проектирования БИХ-фильтра сводится к тому, что сначала проектируется эквивалентный аналоговый фильтр, а затем функция передачи H(s) преобразуется математически в z-область, H(z). Проектирование фильтров более высоких порядков выполняется каскадированием биквадратных звеньев. Наиболее популярными аналоговыми фильтрами являются фильтры Баттерворта, Чебышева, эллиптические и Бесселя (см. рис.6.35). Существует множество программ САПР, способных генерировать функцию передачи фильтра, заданную с помощью преобразования Лапласа.

Фильтр Баттерворта, не имеющий нулей частотной характеристики, (также называемый фильтром с максимально плоской характеристикой), не создает пульсаций (неравномерности) в полосе пропускания и в полосе задержки, то есть обладает монотонной характеристикой в обеих полосах. Фильтр Чебышева 1-го рода имеет более быстрый спад частотной характеристики, чем фильтр Баттерворта (при равном порядке), и создает пульсации (неравномерность) в полосе пропускания. Реже используются фильтры Чебышева 2-го рода, имеющие пульсации (неравномерность) в полосе задержки, а не в полосе пропускания.

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

Наконец, фильтр Бесселя (Томпсона), который не имеет нулей частотной характеристики, обладает оптимальной импульсной характеристикой и линейной фазовой характеристикой, но имеет худший спад частотной характеристики из всех типов обсуждавшихся фильтров при том же числе полюсов (порядке).

a ОБЗОР ПОПУЛЯРНЫХ АНАЛОГОВЫХ ФИЛЬТРОВ Баттерворта Нет нулей частотной характеристики, нет пульсаций в полосе пропускания и задержки Максимально плоская характеристика (быстрый спад без пульсаций) Чебышева 1-го рода Нет нулей частотной характеристики, пульсации в полосе пропускания, нет пульсаций в полосе задержки Более короткая область перехода, чем у фильтра Баттерворта для данного порядка Фильтр 2-го рода имеет пульсации в полосе задержки, нет пульсаций в полосе пропускания Эллиптический (Кауэра) Имеет полюса и нули, пульсации и в полосе пропускания, и в полосе задержки Более короткая область перехода, чем у фильтра Чебышева для данного порядка Фазовая характеристика хуже Бесселя (Томпсона) Нет нулей частотной характеристики, нет пульсаций в полосе пропускания и задержки Оптимизирован по линейной фазовой и импульсной характеристикам Самая длинная переходная характеристика из всех фильтров данного порядка Рис. 6. Все вышеперечисленные типы аналоговых фильтров описаны в литературе, их преобразования по Лапласу H(s) доступны либо из таблиц, либо могут быть получены с помощью средств САПР. Существует три метода преобразования изображения по Лапласу в z-изображение: метод инвариантности импульсной характеристики, билинейное преобразование и согласованное z-преобразование. Результирующее z изображение может быть преобразовано в коэффициенты биквадратного БИХ-фильтра.

Эти методы достаточно распространены в математике и в дальнейшем не будут обсуждаться.

Подход САПР при проектировании БИХ-фильтра подобен программе Паркса Макклиллана, используемой для КИХ-фильтров. Эта методика использует алгоритм Флетчера-Пауэла (Fletcher-Powell).

При вычислении производительности специального процессора DSP, предназначенного для реализации БИХ-фильтров, необходимо исследовать эталонные требования эффективности вычислений для биквадратного звена фильтра. Для получения выходного отсчета биквадратного фильтра при его реализации на базе семейства процессоров ADSP 21XX требуется семь командных циклов. Для DSP-процессора ADSP-2189M, обладающего быстродействием 75 MIPS, это соответствует 7*13,3 нс = 93 нс, что дает максимально возможную частоту дискретизации 10 MSPS (в пренебрежении дополнительными операциями).

Каждый электрик должен знать:  ГОСТ 21.607-82 статус на 2020 год, документ в PDF формате

a МЕТОДЫ ПРОЕКТИРОВАНИЯ БИХ-ФИЛЬТРОВ Метод инвариантности импульсной характеристики Начинается с определения H(s) для аналогового фильтра Взятие обратного преобразования Лапласа для получения импульсной характеристики Получение z-преобразования H(z) из дискретной импульсной характеристики z-преобразование выдает коэффициенты фильтра Должен быть учтен эффект наложения спектров Метод билинейного преобразования Другой метод для преобразования H(s) в H(z) Характеристики определяются дифференциальным уравнением, описывающим аналоговую систему Не важен эффект наложения спектра Метод согласованного z-преобразования Отображает H(s) в H(z) для фильтров и с полюсами, и с нулями Методы САПР Алгоритм Флетчера-Пауэла Осуществляются каскадированием биквадратных звеньев Рис. 6. СКОРОСТЬ ОБРАБОТКИ ДАННЫХ ПРИ РЕАЛИЗАЦИИ БИХ-ФИЛЬТРОВ Определение количества биквадратных звеньев, требуемых для реализации желаемой частотной характеристики Умножение этого количества на время выполнения одного биквадратного звена для DSP процессора (например, 7 командных циклов 13,3 нс = 93 нс для ADSP-2189M при скорости 75 MIPS) Результат (плюс дополнительные операции) является минимально допустимым периодом дискретизации (1/fs) для работы в реальном масштабе времени Рис. 6. Резюме: сравнение КИХ- и БИХ-фильтров Выбор между КИХ-и БИХ-фильтрами может быть своего рода состязанием в проектировании, но несколько основных руководящих принципов дать можно. Как правило, БИХ-фильтры более эффективны, чем КИХ-фильтры, потому что они требуют меньшего количества памяти и меньшего количества операций умножения с накоплением.

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

a С другой стороны, КИХ-фильтры требуют большего количества звеньев и, соответственно, операций умножения с накоплением для реализации частотной характеристики с заданной частотой среза, но при этом имеют линейную фазовую характеристику. КИХ-фильтры работают на конечном временном интервале данных, поэтому, если часть данных испорчена (например, в результате сбоев в работе АЦП), КИХ-фильтр будет «звенеть» только на временном интервале, соответствующем N- отсчетам. БИХ-фильтр, из-за наличия обратной связи, будет «звенеть» значительно более длительный период времени.

СРАВНЕНИЕ КИХ И БИХ ФИЛЬТРОВ БИХ-фильтры КИХ-фильтры Более эффективны Менее эффективны Есть аналоговый эквивалент Нет аналогового эквивалента Могут быть нестабильными Всегда стабильные Нелинейная фазовая Линейная фазовая характеристика характеристика Больше «звон» при наличии Меньше «звон» при наличии ложных сигналов ложных сигналов Доступны средства САПР Доступны средства САПР Децимация не влияет на Децимация увеличивает эффективность эффективность Рис. 6. Если необходимы фильтры с крутым спадом и испытывается дефицит во времени, отведенном для обработки, хорошим выбором являются эллиптические БИХ-фильтры.

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

ФИЛЬТРЫ С ИЗМЕНЯЕМОЙ ЧАСТОТОЙ ДИСКРЕТИЗАЦИИ Существует множество приложений, требующих изменения эффективной частоты дискретизации дискретной системы. Во многих случаях это требование может быть удовлетворено простым изменением частоты дискретизации АЦП или ЦАП. Однако часто желательно выполнить преобразование частоты дискретизации после того, как сигнал был оцифрован. Наиболее общими методами такого преобразования являются децимация (уменьшение частоты дискретизации с коэффициентом M) и интерполяция (увеличение частоты дискретизации с коэффициентом L). Коэффициенты децимации и интерполяции (М и L) обычно являются целыми числами. В более общем случае может потребоваться a дискретизация с дробным коэффициентом. В частности, для преобразования частоты дискретизации 44,1 кГц, используемой в проигрывателях компакт-дисков, в частоту дискретизации 48 кГц, используемую в цифровой звукозаписи в формате DAT, осуществляется интерполяция с коэффициентом L=160, сопровождаемая децимацией с коэффициентом М=147.

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

Обратите внимание, что полоса между частотами fa и fs-fa, не содержит никакой полезной информации. Нижняя диаграмма показывает тот же самый сигнал, но частота дискретизации его уменьшена с коэффициентом М. Несмотря на сниженную частоту дискретизации, эффект наложения спектров отсутствует и потерь информации нет.

Децимация с большим коэффициентом, чем показано на рис.6.39, вызовет наложение спектров.


ДЕЦИМАЦИЯ ДИСКРЕТНОГО СИГНАЛА С КОЭФФИЦИЕНТОМ М A) ИСХОДНЫЙ ИЗБЫТОЧНО ДИСКРЕТИЗИРОВАННЫЙ СИГНАЛ 1 fs t fa f f s- fa fs f s B) СИГНАЛ ПОСЛЕ ДЕЦИМАЦИИ С КОЭФФИЦИЕНТОМ M f fs M s t f 2M M f s Рис. 6. Рис.6.40, а показывает процесс децимации выходного сигнала КИХ-фильтра. Данные y(n) с выхода фильтра сохраняются в регистре данных, который стробируется с частотой fs/M, соответствующей частоте дискретизации после децимации. В данном случае децимация не изменяет объема вычислений, требуемых для реализации цифрового фильтра, то есть фильтр должен вычислять каждый выходной отсчет y(n).

a ДЕЦИМАЦИЯ, СОВМЕЩЕННАЯ С КИХ-ФИЛЬТРАЦИЕЙ A) нет изменений в требуемом объеме вычислений x(n) z–1 z–1 z– fs Такт = M h(0) h(1) h(2) h(N–1) y(n) M y(m) Регистр данных B) требуемый объем вычислений уменьшается пропорционально коэффициенту M x(n) z–1 z–1 z– fs Такт = N регистров данных M h(0) h(1) h(2) h(N–1) M y(m) Рис. 6. На рис.6.40, б представлен метод, который может использоваться для увеличения с коэффициентом М вычислительной эффективности КИХ-фильтра.. Данные из регистров задержки сохраняются в N регистрах данных, которые стробируются частотой, соответствующей частоте дискретизации после децимации fs /M. Операции умножения с накоплением в КИХ-фильтре теперь должны выполняться только в каждом М-ом тактовом цикле. Этот выигрыш в эффективности может быть использован для реализации фильтра с большим количеством звеньев и для проведения дополнительных вычислений.

Данный выигрыш позволяет, также, использовать более медленный и дешевый процессор DSP.

На рис.6.41 представлена концепция интерполяции. Исходный сигнал на рис. 6.41, а дискретизирован с частотой fs. На рис. 6.41, б частота дискретизации увеличена с коэффициентом L и добавлены нули для заполнения дополнительных отсчетов. Сигнал с добавленными нулями пропускают через фильтр интерполяции, который формирует дополнительные данные в точках, ранее заполненных нулями.

a ИНТЕРПОЛЯЦИЯ СИГНАЛА С КОЭФФИЦИЕНТОМ L ИСХОДНЫЙ ДИСКРЕТИЗИ- Частота A) РОВАННЫЙ СИГНАЛ дискретизации = fs t fs СИГНАЛ С ДОБАВЛЕННЫМИ B) НУЛЯМИ t Lfs СИГНАЛ ПОСЛЕ C) ИНТЕПОЛЯЦИОН Частота НОГО ФИЛЬТРА дискретизации = Lf s t Lfs Рис. 6. Иллюстрацию эффекта интерполяции в частотной области представляет рис.6.42.

Исходный сигнал, дискретизированный с частотой fs, показан на рис.6.42, а. На рис.6.42, б интерполированный сигнал имеет частоту дискретизации L fs. Примером использования интерполяции является ЦАП проигрывателя компакт-дисков, где данные генерируются с частотой 44,1 кГц. Если эти данные, спектр которых показан на рис. 6.42, а, поступают непосредственно на ЦАП, то требования, предъявляемые к ФНЧ на выходе ЦАП, чрезвычайно высоки. Обычно используется интерполирующий ЦАП с избыточной дискретизацией, дающий спектр, показанный на рис.6.42, б. Обратите внимание на упрощение требований к аналоговому ФНЧ. Это важно для реализации фильтра с относительно линейной фазовой характеристикой и для сокращения стоимости фильтра.

Цифровая реализация интерполяции представлена на рис.6.43. Исходный сигнал x(n) сначала пропускают через экспандер частоты, который увеличивает частоту дискретизации с коэффициентом L и вставляет дополнительные нули. Затем данные проходят через интерполяционный фильтр, который сглаживает данные и интерполирует промежуточные значения между исходными точками данных. Эффективность этого фильтра можно улучшить, используя алгоритм фильтрации, в котором входные отсчеты с нулевым значением не требуют операций умножения с накоплением. Использование DSP процессора, поддерживающего циклические буферы и циклы, реализуемые без дополнительных операций проверки условия завершения цикла, также улучшает эффективность реализации фильтров.

a ЭФФЕКТ ИНТЕРПОЛЯЦИИ В ЧАСТОТНОЙ ОБЛАСТИ ИСХОДНЫЙ СИГНАЛ 1 f s f s 2fs 3fs 4fs f t f s СИГНАЛ ПОСЛЕ ИНТЕРПОЛЯЦИИ С КОЭФФИЦИЕНТОМ L 1 Lf s f t Lf s Lf s Рис. 6. ТИПИЧНАЯ РЕАЛИЗАЦИЯ ИНТЕРПОЛЯЦИИ Такт. частота = Lfs Интерполяционный фильтр x(n) L z–1 z–1 z– h(0) h(1) h(2) h(N–1) y(m) L Экспандер частоты увеличивает частоту отсчетов и вставляет нули Эффективные алгоритмы ЦОС используют:

Умножение на Циклические буферы Реализацию циклов с автоматической проверкой условий Рис. 6. Интерполяторы и дециматоры могут совместно использоваться для выполнения преобразования частоты дискретизации с дробным коэффициентом, как показано на рис.6.44. Сначала входной сигнал x(n) интерполируется с коэффициентом L, а затем a подвергается децимации с коэффициентом М. Результирующая выходная частота дискретизации равна Lfs/M. Чтобы сохранить максимально возможную полосу частот в сигнале, являющемся промежуточным результатом, интерполяция должна быть осуществлена перед децимацией. В противном случае часть полосы исходного сигнала была бы отфильтрована дециматором.

Характерным примером является преобразование частоты дискретизации проигрывателя компакт-дисков, которая равна 44,1 кГц, в частоту дискретизации, используемую при цифровой звукозаписи в формате DAT, которая равна 48,0 кГц. Коэффициент интерполяции при этом равен 160, а коэффициент децимации – 147. На практике, интерполяционный фильтр h'(k) и прореживающий фильтр h»(k) объединяются в один фильтр h(k).

КОНВЕРТОРЫ ЧАСТОТЫ ДИСКРЕТИЗАЦИИ ИНТЕРПОЛЯТОР ДЕЦИМАТОР x(n) y(m) h'(k) h»(k) L M Выходная частота f s L fs дискретизации = M x(n) y(m) h(k) L M Пример: преобразование частоты дискретизации CD = 44,1 кГц в частоту дискретизации DAT = 48,0 кГц используем L = 160, M = L f out f s = = 44,1 кГц = 48,0 кГц M AD189X — семейство преобразователей частоты дискретизации Рис. 6. Полная функция преобразования частоты дискретизации интегрирована в микросхемах семейства AD1890, AD1891, AD1892, и AD1893, которые работают на частотах от 8 кГц до 56 кГц (48 кГц для AD1892). Новая модель AD1896 работает на частотах до 196 кГц.

АДАПТИВНЫЕ ФИЛЬТРЫ В отличие от аналоговых фильтров, характеристики цифровых фильтров могут быть легко изменены путем изменения коэффициентов. Это делает цифровые фильтры привлекательными в коммуникационных приложениях, таких как адаптивный эквалайзинг, компенсация эха, подавление шума, анализ и синтез речи и т.д. Основная идея адаптивной фильтрации представлена на рис.6.45. Ее цель состоит в том, чтобы так отфильтровать входной сигнал x(n), чтобы он соответствовал опорному сигналу d(n). Для генерации сигнала ошибки опорный сигнал d(n) вычитается из фильтруемого сигнала y(n).

Сигнал ошибки управляет алгоритмом адаптации, который генерирует коэффициенты фильтра, минимизирующие сигнал ошибки. Наиболее популярными алгоритмами a являются метод наименьших квадратов (least-mean-square) и рекурсивный метод наименьших квадратов (recursive-least-squares).

АДАПТИВНЫЙ ФИЛЬТР d(n) Опорный сигнал – Адаптивный x(n) y(n) КИХ-фильтр Входной сигнал + N звеньев h(k), N Коэффициенты Сигнал фильтра Ошибки Алгоритм адаптации (LMS, RLS) Рис. 6. На рис.6.46 показано применение адаптивного фильтра для компенсации эффектов амплитудных и фазовых искажений в канале передачи. Коэффициенты фильтра определяются в процессе передачи обучающей последовательности, представляющей известный образец данных. Алгоритм адаптации корректирует коэффициенты фильтра для получения соответствия между принимаемыми данными и данными обучающей последовательности. При связи через модем обучающая последовательность передается после установления первоначального соединения. После передачи обучающей последовательности коммутаторы переключаются в другую позицию, и начинается передача реальных данных. В течение этого времени генерируется сигнал ошибки, равный разности входных и выходных данных адаптивного фильтра.

Сжатие и синтез речи также подразумевают активное использование адаптивной фильтрации для уменьшения требуемых объемов передачи данных. Модель системы линейного кодирования с предсказанием (linear predictive coding, LPC), представленная на рис.6.47 моделирует голосовой тракт, как импульсный генератор переменной частоты для гласных звуков и генератор случайного шума для согласных звуков. Сигнал от этих генераторов подается на цифровой фильтр, который, в свою очередь, генерирует реальный звуковой сигнал.

a ЦИФРОВАЯ ПЕРЕДАЧА С ИСПОЛЬЗОВАНИЕМ АДАПТИВНОГО ЭКВАЛАЙЗИНГА АНАЛОГО КОДЕР, ПЕРЕДАВАЕМЫЕ -ВЫЙ МОДУЛЯТОР, ЦАП ДАННЫЕ ФИЛЬТР ФИЛЬТР КАНАЛ ОБУЧАЮЩАЯ ПЕРЕДАЧИ ПОСЛЕДОВАТЕЛЬ Добавляет шум, НОСТЬ амплитудные и фазовые ПРИНИМАЕМЫЕ искажения ДАННЫЕ АНАЛОГО ДЕКОДЕР, АДАПТИВНЫЙ -ВЫЙ ДЕМОДУЛЯТОР, АЦП ФИЛЬТР ФИЛЬТР ФИЛЬТР N h(k) ОШИБКА АЛГОРИТМ АДАПТАЦИИ ОБУЧАЮЩАЯ ПОСЛЕДОВАТЕЛЬ НОСТЬ + – Рис. 6. МОДЕЛЬ ЛИНЕЙНОГО КОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ (LINEAR PREDICTIVE CODING, LPC) НОС РОТ ГЛОТКА (ЯЗЫК И ГУБЫ) НЁБНАЯ ЗАНАВЕСКА ГОРТАНЬ (ГОЛОСОВЫЕ СВЯЗКИ) ЛЁГКИЕ Сигнал ГЕНЕРАТОР Гласные ИМПУЛЬСНОЙ возбуждения ПОСЛЕДОВАТЕЛЬ НЕСТАЦИОНАР НОСТИ НЫЙ ЦИФРОВОЙ ФИЛЬТР ГЕНЕРАТОР СЛУЧАЙНОГО Соглас ШУМА УСИЛ.

ные Рис. 6. a На рис.6.48 дан пример применения линейного кодирования с предсказанием (LPC) в системе мобильной связи GSM. Входной голосовой сигнал оцифровывается 16-разрядным АЦП с частотой дискретизации 8 kSPS. Этим создается поток данных со скоростью kBPS, слишком высокой для непосредственной передачи. DSP-процессор на передающем конце использует LPC-алгоритм для того, чтобы разбить передаваемый сигнал на набор коэффициентов фильтра и сигнал возбуждения. Такое кодирование проводится в интервал сигнала 20 мс, который считается оптимальной для большинства голосовых приложений.

Реальная скорость передачи данных составляет всего 2,4 kBPS, что соответствует коэффициенту сжатия 53,3. Принимающий DSP-процессор использует LPC-модель для восстановления речи из принятых коэффициентов фильтра и сигнала возбуждения. В результате выходные данные поступают со скоростью 128 kBPS на 16-разрядный ЦАП для окончательного восстановления голосового сигнала.

КОМПАНДЕР РЕЧИ НА ОСНОВЕ ЛИНЕЙНОГО КОДИРОВАНИЯ С ПРЕДСКАЗАНИЕМ = 8 kSPS f s Передающая DSP-система Входной голосовой сигнал 16-разр. Коэффициенты Взвешивание Предыскажение АЦП и тембры (20 мс) 128 kBPS 2,4 kBPS = 8 kSPS f s Принимающая DSP-система Выходной голосовой P сигнал 16-разр. a k s(n – k) s(n) = + G • x(n) ЦАП k = Выходной Фильтр Усил. Возбуждение сигнал 128 kBPS Коэффициент сжатия данных = 53, Рис. 6. Цифровые фильтры, используемые в приложениях линейного кодирования речи с предсказанием, могут быть либо КИХ-, либо БИХ-фильтрами, хотя БИХ-фильтры без нулей частотной характеристики используются наиболее широко. И КИХ- и БИХ фильтры могут быть реализованы в виде лестничной структур, как показано на рис.6. для рекурсивного фильтра без нулей частотной характеристики. Данная структура может быть выведена из традиционной структуры БИХ-фильтра, но преимущество лестничного фильтра состоит в том, что его коэффициенты более связаны с результатами работы алгоритмов, которые используют модель голосового тракта, показанную на рис.6.47, чем коэффициенты эквивалентного БИХ-фильтра.

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

Вследствие нестационарного характера голосовых сигналов, эта модель применяется только к коротким сегментам (обычно 20 мс). Новый набор параметров обычно a определяется для каждого временного сегмента, если между сегментами нет разрывов, которые принудительно сглаживают данные.

РЕШЕТЧАТЫЙ ФИЛЬТР БЕЗ НУЛЕЙ ЧАСТОТНОЙ ХАРАКТЕРИСТИКИ СИГНАЛ ВЫХОДНОЙ ГОЛО СОВОЙ СИГНАЛ ВОЗБУЖДЕНИЯ X M y(n) (n) k –k M k M –k 2 k 2 –k z–1 z–1 z– u M u2(n) u1(n) (n) Рис. 6. ОЦЕНИВАНИЕ КОЭФФИЦИЕНТОВ ЛЕСТНИЧНОГО ФИЛЬТРА В ПЕРЕДАЮЩЕЙ DSP-СИСТЕМЕ ГОЛОСОВЫЕ СИГНАЛ ОТСЧЕТЫ ОШИБКИ + – АДАПТИВНЫЙ КИХ-ЭКСТРА Z – ПОЛЯТОР АЛГОРИТМ КОЭФФИЦИЕНТЫ АДАПТАЦИИ Рис. 6. a СПИСОК ЛИТЕРАТУРЫ 1. Steven W. Smith, The Scientist and Engineer’s Guide to Digital Signal Processing, Second Edition, 1999, California Technical Publishing, P.O. Box 502407, San Diego, CA 92150. Also available for free download at:

http://www.dspguide.com or http://www.analog.com 2. C. Britton Rorabaugh, DSP Primer, McGraw-Hill, 1999.

3. Richard J. Higgins, Digital Signal Processing in VLSI, Prentice-Hall, 1990.

4. A. V. Oppenheim and R. W. Schafer, Digital Signal Processing, Prentice- Hall, 1975.

5. L. R. Rabiner and B. Gold, Theory and Application of Digital Signal Processing, Prentice-Hall, 1975.

6. John G. Proakis and Dimitris G. Manolakis, Introduction to Digital Signal Processing, MacMillian, 1988.

7. J.H. McClellan, T.W. Parks, and L.R. Rabiner, A Computer Program for Designing Optimum FIR Linear Phase Digital Filters, IEEE Trasactions on Audio and Electroacoustics, Vol. AU-21, No. 6, December, 1973.

8. Fredrick J. Harris, On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform, Proc. IEEE, Vol. 66, No. 1, 1978 pp. 51-83.

9. Momentum Data Systems, Inc., 17330 Brookhurst St., Suite 140, Fountain Valley, CA 92708, http://www.mds.com 10. Digital Signal Processing Applications Using the ADSP- Family, Vol. 1 and Vol. 2, Analog Devices, Free Download at:

http://www.analog.com 11. ADSP-21000 Family Application Handbook, Vol. 1, Analog Devices, Free Download at: http://www.analog.com 12. B. Widrow and S.D. Stearns, Adaptive Signal Processing, Prentice-Hall, 1985.

13. S. Haykin, Adaptive Filter Theory, 3rd Edition, Prentice-Hall, 1996.

14. Michael L. Honig and David G. Messerschmitt, Adaptive Filters — Structures, Algorithms, and Applications, Kluwer Academic Publishers, Hingham, MA 1984.

15. J.D. Markel and A.H. Gray, Jr., Linear Prediction of Speech, Springer- Verlag, New York, NY, 1976.

16. L.R. Rabiner and R.W. Schafer, Digital Processing of Speech Signals, Prentice-Hall, 1978.

a ГЛАВА АППАРАТУРА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ Микроконтроллеры, микропроцессоры и цифровые сигнальные процессоры (DSP) Требования, предъявляемые к цифровым сигнальным процессорам Архитектура ядра 16-разрядных DSP с фиксированной точкой семейства ADSP-21xx Сравнение DSP c фиксированной точкой и DSP c плавающей точкой DSP с плавающей точкой SHARC® компании Analog Devices DSP ADSP-2116x c архитектурой типа SIMD (одна инструкция, много данных) Архитектура процессора ADSP-TS001 семейства TigerSHARC™ – статический суперскалярный цифровой сигнальный процессор Тесты на производительность для цифровых сигнальных процессоров Средства для оценки возможностей цифровых сигнальных процессоров;

средства для отладки и проектирования a ГЛАВА АППАРАТУРА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ Дан Кинг, Грег Гирлинг, Кен Воурин, Ноам Левин, Джесс Моррис, Уолт Кестер МИКРОКОНТРОЛЛЕРЫ, МИКРОПРОЦЕССОРЫ И ЦИФРОВЫЕ ПРОЦЕССОРЫ ОБРАБОТКИ СИГНАЛОВ (DSP) Традиционные компьютеры особенно хороши для применения в двух областях деятельности: (1) манипуляция данными, например, подготовка текстов и управление базами данных;

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

ОСНОВНЫЕ ОБЛАСТИ ПРИМЕНЕНИЯ КОМПЬЮТЕРОВ РАБОТА С ДАННЫМИ МАТЕМАТИЧЕСКИЕ ВЫЧИСЛЕНИЯ Работа с текстом Цифровая обработка сигналов Управление базами данных Управление двигателями Электронные таблицы Техническое моделирование Операционные системы Обработка сигналов в реальном времени Пересылка данных (A–>B) Сложение (C = A + B) Сравнение величин (Если A = B, Умножение (C = A B) то…) Время исполнения не критично, Время исполнения критично, заранее не нормируется нормируется заранее Рис. 7. a С другой стороны, для цифровой обработки сигналов важно, чтобы математические операции выполнялись быстро, и время, требуемое на выполнение команд, должно быть известно точно и заранее. Для этого и программа, и аппаратура должны быть очень эффективными. Как было показано в последних двух главах этой книги, наиболее важной математической операцией и ядром всех алгоритмов цифровой обработки сигналов является умножение с последующим суммированием (эта операция обозначена точкой на всех схемах алгоритмов в предыдущих главах). Быстрое выполнение операции умножения с последующим суммированием очень важно для реализации быстрого преобразования Фурье, цифровых фильтров реального времени, умножения матриц, манипуляции с графическими изображениями и т.д.

Проведенное предварительное обсуждение требований, предъявляемых к цифровым сигнальным процессорам, важно для понимания различий между микроконтроллерами, микропроцессорами и цифровыми сигнальными процессорами. Хотя микроконтроллеры при использовании в промышленных устройствах управления процессами могут выполнять такие функции как умножение, сложение, деление, они лучше подходят для приложений, где возможности процессора по реализации ввода-вывода и управления важнее, чем скорость. Микроконтроллеры, например семейства 8051, обычно содержат ЦПУ, ПЗУ, ОЗУ, последовательный и параллельный интерфейсы, счетчики и схемы прерываний. Микроконвертеры MicroConverter™ компании Analog Devices содержат не только ядро, построенное по архитектуре 8051, но также высококачественные ЦАП, АЦП и блок энергонезависимой памяти, реализованной по технологии FLASH.

МИКРОКОНТРОЛЛЕРЫ, МИКРОПРОЦЕССОРЫ И ЦИФРОВЫЕ СИГНАЛЬНЫЕ ПРОЦЕССОРЫ Микроконтроллеры:

ЦПУ, ОЗУ, ПЗУ, последовательный/параллельный интерфейс, таймер, схемы прерываний Хорошо подходят как для тостеров, так и для управления промышленными процессами Скорость не является главным требованием Компактная система команд Примеры: 8051, 68HC11, PIC Микропроцессоры:

На одном кристалле находится только ЦПУ – требуются дополнительные внешние устройства Процессоры с упрощенной системой команд (RISC) Процессоры со сложной системой команд (CISC) Примеры: серия Pentium, PowerPC, МIPS Цифровые Сигнальные Процессоры (DSP):

ОЗУ, ПЗУ, последовательный/параллельный интерфейсы, схема обработки прерываний ЦПУ оптимизировано для многократно повторяющихся математических операций в реальном масштабе времени Примеры: ADSP-21xx, ADSP-21K Рис. 7. a Микропроцессоры, такие как Pentium компании Intel, обычно представляют собой ЦПУ, выполненное на одном кристалле, которому требуются дополнительные микросхемы для выполнения всех вычислительных функций. Система команд микропроцессора может быть как усложненной (типа CISC), так и редуцированной (типа RISC). В усложненную систему команд (архитектура СISC) входят команды для выполнения основных операций процессора, а также отдельные сильно специализированные команды (например, для вычисления полиномов высоких степеней). Но за выполнение сложных команд на процессоре, построенном по архитектуре CISC, приходится платить: многие команды реализованы в нем в микрокоде и требуют для своего выполнения нескольких машинных циклов и места на кристалле для хранения кода микропрограммы.

Напротив, в редуцированном наборе команд (RISC-архитектура) учитывается тот факт, что в большинстве программ основные команды, такие как ЗАГРУЗКА и СОХРАНЕНИЕ В ПАМЯТИ с простыми режимами адресации, используются гораздо чаще, чем сложные команды, и должны исполняться более эффективно. Эти простые команды реализованы в ЦПУ аппаратно для выполнения за один машинный цикл, благодаря чему уменьшаются затрачиваемое время работы и сложность ЦПУ.

Хотя RISC-архитектура имеет значительные преимущества при реализации вычислительных систем общего назначения, она недостаточно хорошо приспособлена к нуждам цифровой обработки сигналов. Например, большинство RISC процессоров не поддерживает реализацию операции умножения за один машинный цикл, которая является очень распространенной и часто используемой операцией при цифровой обработке сигналов. DSP-процессор оптимизирован для реализации таких инструкций со скоростью, достаточной для цифровой обработки сигналов в реальном масштабе времени, выполняя арифметические операции и накопление результата за один машинный цикл.

ТРЕБОВАНИЯ, ПРЕДЪЯВЛЯЕМЫЕ К ЦИФРОВЫМ ПРОЦЕССОРАМ ОБРАБОТКИ СИГНАЛОВ Наиболее важная операция в цифровой обработке сигналов представлена на рис. 7.3:

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

Данная операция одинаково важна для цифровых фильтров, БПФ и для множества других алгоритмов цифровой обработки сигналов. Цифровой сигнальный процессор (DSP) оптимизирован для осуществления повторяющихся математических операций, таких как умножение с накоплением. Пять основных требований предъявляется к DSP, чтобы оптимизировать производительность процессора: быстрое выполнение арифметических операций, повышенная точность представления операндов, возможность одновременной выборки двух операндов, поддержка циклических буферов, организация циклов с автоматической проверкой условия завершения цикла.

a НАИБОЛЕЕ ВАЖНАЯ МАТЕМАТИЧЕСКАЯ ОПЕРАЦИЯ В DSP: СУММА ПРОИЗВЕДЕНИЙ y(n) = h(0) · x(n) + h(1) · x(n-1) + … + h(N-1) · x(n-N) Пример: цифровая фильтрация Многократное умножение значений входных отсчетов на коэффициенты фильтра (или на поворотные множители при БПФ) Накопление результатов умножения в регистре-аккумуляторе Повторение этих действий N раз Требования, предъявляемые к DSP:

Быстрое выполнения умножения с накоплением Высокая точность представления результата (в аккумуляторе) Одновременная выборка двух операндов Наличие циклических буферов Реализация циклов с автоматической проверкой условий При использовании ядра ADSP-21xx за один цикл возможно осуществить:

Выборку значения отсчета из памяти данных Выборку значения коэффициента из памяти программ Выполнить умножение с накоплением Рис. 7. БЫСТРОЕ ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ Быстрое выполнение арифметических действий – наиболее простое для понимания требование. Так как возможность реализации цифровой обработки сигналов в реальном масштабе времени зависит от производительности процессора, быстрота выполнения операций умножения с накоплением является главным требованием;

большая скорость выполнения данной операции означает возможность обработки большей полосы частот.

Но необходимо помнить, что эффективность DSP определяется не только временем выполнения операции умножения с накоплением. Этот часто забываемый факт приводит к неадекватному подходу в оценке производительности процессора, когда скорость работы процессора оценивается количеством операций, выполняемых процессором за единицу времени (в MIPS – миллионах операций в секунду). Так как большинство DSP и других процессоров, имеющих сходную архитектуру, могут выполнять за один машинный цикл команду MAC (умножение с накоплением), для большинства процессоров при оценке производительности в MIPS подразумевается производительность процессора при выполнении команды умножения с накоплением (MAC). Эта величина не учитывает другие свойства процессора, которые на практике могут повлиять на его общую производительность. Если остальные четыре критерия производительности окажутся неудовлетворительными, то высокая производительность процессора при выполнении MAC мало что даст.

В дополнение к требованиям по быстрому выполнению арифметических действий, DSP должен эффективно выполнять другие математические функции общего назначения и должен иметь соответствующее арифметико-логическое устройство (АЛУ) и возможность программировать операции сдвига для манипуляции с битами.

a ПОВЫШЕННАЯ ТОЧНОСТЬ Кроме очевидной необходимости быстрого выполнению операции умножения со сложением (МАС), от DSP требуется высокая точность представления результата в регистре-аккумуляторе. Например, когда перемножаются два 16-битных слова, результат представляется 32-битным словом. Ядро процессоров компании Analog Devices семейства ADSP-21xx с фиксированной точкой имеет встроенный 40-битный аккумулятор, который обеспечивает большой запас суммирования без переполнения. Хотя использование DSP с плавающей точкой автоматически устраняет большинство проблем, связанных с точностью и переполнением, процессоры с фиксированной точкой остаются очень популярными для многих приложений, и поэтому при их использовании нужно обращать достаточное внимание на возможное переполнение, потерю результатов (выход результата операции за пределы разрядной сетки) и масштабирование операндов.

ОДНОВРЕМЕННАЯ ВЫБОРКА ДВУХ ОПЕРАНДОВ Независимо от типа используемого микропроцессора, ограничения в его работе в основном связаны с пропускной способностью шины. В случае микропроцессоров общего назначения или микроконтроллеров, программа в основном состоит из команд, подразумевающих однократное обращение к памяти, обычно адресуемых при помощи сдвига относительно базового адреса. Это заставляет разработчиков микропроцессоров так проектировать систему команд, чтобы фиксированные данные встраивались в код, поскольку такой тип получения операндов является быстрым и эффективным с точки зрения использования памяти. С другой стороны, в DSP преобладают команды, требующие двух независимых обращений к памяти. Данное требование вытекает из самой сути операции свертки (перемножение с суммированием) h(i)·x(i). Целью быстрой одновременной выборки двух операндов является необходимость непрерывной загрузки накапливающего умножителя (МАС). При описании МАС мы видели, что быстродействие DSP в основном определяется скоростью МАС. Если мы считаем, что МАС выполняется за приемлемое время, то очевидно, что для каждой операции требуется с той же скоростью подавать на МАС два операнда. Увеличение времени выборки операндов из памяти соответствующим образом отразится на скорости работы МАС. В идеале обращение происходит одновременно с выполнением операции в МАС в одном и том же машинном цикле.

Одновременная выборка двух операндов в DSP осуществляется по двум независимым шинам: шине данных памяти программ и шине данных памяти данных. Кроме того, имеются отдельные шина адреса памяти программ и шина адреса памяти данных. Таким образом, МАС может получать входные данные по каждой шине данных одновременно.

Такая архитектура обычно называется гарвардской.

ЦИКЛИЧЕСКИЕ БУФЕРЫ Если мы более внимательно исследуем самую распространенную при цифровой обработке сигналов операцию, то преимущества использования циклических буферов в DSP станут очевидными. Возьмем для примера фильтр с конечной импульсной характеристикой (КИХ). Во-первых, набор коэффициентов КИХ-фильтра по своей природе имеет периодический характер. Во-вторых, при каждом вычислении значения отсчета выходного сигнала КИХ-фильтр использует новый отсчет входного сигнала и отбрасывает самый старый отсчет.

При последовательных вычислениях произведений коэффициентов КИХ фильтра на отсчеты сигнала доступ к N коэффициентам фильтра осуществляется последовательно от h(0) до h(N-1). Набор отсчетов входного сигнала циркулирует в памяти следующим a образом: новый отсчет входного сигнала сохраняется в памяти вместо старого отсчета всякий раз, когда вычисляется выходное значение фильтра. Для такого циркулирующего буфера может использоваться фиксированная область в ОЗУ. Самое раннее значение в памяти заменяется новым после каждого вычисления операции свертки. При этом информация об N последних отсчетах сохраняется в ОЗУ.

В виде буфера в ОЗУ DSP-процессора может быть реализована задержка, если новые значения записываются в память на место старых. Для упрощения адресации памяти старые значения считываются из памяти, начиная со значения, расположенного сразу после того, которое было только что записано. Например, в КИХ-фильтре с четырьмя коэффициентами новый отсчет x(4) записывается в ячейку памяти с адресом 0. Далее чтение данных осуществляется из ячеек с адресами 1,2,3 и 0 в указанном порядке. Этот способ применяется при любом числе звеньев фильтра. При такой адресации ячеек памяти генератор адреса должен выдавать лишь последовательные значения адресов, вне зависимости от того, какая операция с памятью – чтение или запись – осуществляется в настоящий момент. Буфер такого типа называется циклическим, потому что когда при записи достигается последняя ячейка, указатель памяти устанавливается на начало буфера.

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

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

Коэффициенты могут заноситься в памяти в обратном порядке: h(N-1) – в первую ячейку, а h(0) – в последнюю, и генератор адреса в этом случае должен генерировать последовательно возрастающие адреса. И наоборот, коэффициенты могут быть записаны в памяти в нормальном порядке, но доступ к ним при этом должен осуществляться, начиная с конца буфера, а генератор адреса должен генерировать последовательно убывающие адреса.

Описанные выше механизмы позволяют реализовать задержку, требуемую при реализации КИХ-фильтра, без каких-либо дополнительных затрат процессорного времени.

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

ОРГАНИЗАЦИЯ ЦИКЛОВ С АВТОМАТИЧЕСКОЙ ПРОВЕРКОЙ УСЛОВИЙ Необходимость поддержки циклов с автоматической проверкой условий завершения вызвана циклическим характером алгоритмов ЦОС. Функция умножения с накоплением и выборка данных повторяются N раз при каждом вычислении типового алгоритма. В традиционных микропроцессорах организация цикла предполагает наличие в заголовке цикла команд для проверки условия окончания цикла. Архитектура DSP-процессоров компании Analog Devices обеспечивает аппаратную поддержку программных циклов без необходимости программной проверки условия продолжения или завершения в теле цикла. Для типичной DSP-архитектуры различие в производительности при аппаратной поддержке цикла с автоматической проверкой условия завершения и при программной проверке условия завершения цикла может превышать 20% времени выполнения цикла.

a ВЫВОДЫ Любой процессор может выполнить любой алгоритм при наличии достаточного времени.

Однако DSP процессоры оптимизированы под конкретные вычисления, связанные с обработкой реальных сигналов в реальном масштабе времени. Традиционные компьютеры больше подходят для вычислительных задач, не связанных с реальным временем. В следующем разделе мы исследуем архитектуру 16-разрядного цифрового сигнального процессора с фиксированной точкой семейства ADSP-21xx компании Analog Devices.

ЯДРО 16-РАЗРЯДНЫХ DSP С ФИКСИРОВАННОЙ ТОЧКОЙ СЕМЕЙСТВА ADSP-21XX В традиционных микропроцессорах используется архитектура Фон Неймана (названную так в честь американского математика Джона Фон Неймана), показанная на рис. 7.4, A.

Эта архитектура состоит из единого блока памяти, в котором хранятся и команды, и данные, и общей шины для передачи данных и команд в ЦПУ и от него. При такой архитектуре перемножение двух чисел требует по меньшей мере трех циклов: двух циклов для передачи двух чисел в ЦПУ, и одного – для передачи команды. Данная архитектура приемлема в том случае, когда все действия могут выполняться последовательно. По сути говоря, в большинстве компьютеров общего назначения используется сегодня такая архитектура.

МИКРОПРОЦЕССОРНЫЕ АРХИТЕКТУРЫ Шина адреса A: ПАМЯТЬ:

данные и ЦПУ Фон команды Шина данных Нейманна Шина адреса Шина адреса ПАМЯТЬ ПАМЯТЬ памяти программ памяти данных B:

только Только Шина данных Шина данных Гарвардская команды данные памяти программ памяти данных C:

ПАМЯТЬ Шина адреса Шина адреса ПАМЯТЬ памяти программ ЦПУ Гарвардская памяти данных ПРОГРАММ:

модифици- команды Только Шина данных Шина данных и данные Кэш рованная данные памяти программ памяти данных команд ADI Рис. 7. Однако для быстрой обработки сигналов больше подходит гарвардская архитектура, показанная на рис. 7.4, B. Данная архитектура получила свое название в связи с работами, проведенными в Гарвардском университете под руководством Ховарда Айкена. Данные и код программы хранятся в различных блоках памяти и доступ к ним осуществляется через a разные шины, как показано на схеме. Т.к. шины работают независимо, выборка команд программы и данных может осуществляться одновременно, повышая таким образом скорость по сравнению со случаем использования одной шины в архитектуре Фон Неймана. При выполнении умножения с последующим суммированием в КИХ-фильтре за один цикл происходит выборка команды из памяти программ и коэффициента из памяти данных. Второй цикл требуется для выбора слова данных из памяти данных.

На рис.7.4, C представлена модифицированная гарвардская архитектура, используемая компанией Analog Devices Inc., где и команды, и данные могут храниться в памяти программ. Например, в случае с цифровым фильтром коэффициенты могут храниться в памяти программы, а значения данных – в памяти данных. Поэтому коэффициент и значение данных могут выбираться в одном машинном цикле. Помимо выборки коэффициента из памяти программ и значения отсчета из памяти данных, естественно, должна быть выбрана команда из памяти программы. Цифровые сигнальные процессоры компании Analog Devices решают эту задачу двумя способами. В первом случае к памяти программ обращаются дважды за время цикла. Этот метод использует процессоры семейства ADSP-218x. Во втором случае используется кэш-память программ. В алгоритмах, требующих одновременной выборки двух операндов, программист один массив помещает в память программ, а другой – в память данных. Когда процессор в первый раз выполняет команду, требующую двойного обращения к памяти программ, используется один дополнительный машинный цикл, т.к. необходимо выбрать и команду, и коэффициент с помощью шины данных памяти программ. Однако когда возникает такая проблема, процессор помещает команду в кэш, и в следующий раз, когда требуется эта команда, секвенсер программ извлекает ее из кэш-памяти, в то время как коэффициент поступает по шине данных памяти программ. Кэш программ используется как в семействе процессоров ADSP-219x компании Analog Devices, так и в процессорах семейства SHARC.

ПРИМЕР РЕАЛИЗАЦИИ ЦИФРОВОГО ФИЛЬТРА После того, как мы представили основные принципы архитектуры процессоров семейства ADSP–21xx, проиллюстрируем простоту ее программирования на примере обычного КИХ-фильтра. Псевдокод программы проектируемого КИХ-фильтра показан на рис. 7.5.

Цифровые сигнальные процессоры компании Analog Devices выполняют все операции, связанные с реализацией звена фильтра, за один цикл, что существенно повышает эффективность реализации фильтра. Для выполнения цикла не требуется дополнительных команд по проверке условия завершения цикла. Это называется циклом с автоматической проверкой условия завершения цикла (zero-overhead looping). Программа реализации КИХ фильтра, написанная на языке ассемблера для семейства процессоров ADSP-21xx с фиксированной точкой показана на рис. 7.6. Стрелками отмечены непосредственно исполняемые команды (7 строк), остальная часть текста – дополнительные комментарии, введенные для ясности. Первая команда (на которой стоит метка fir:) инициализирует вычисления, очищая регистр MR и загружая первый элемент данных и значение коэффициента из памяти данных и памяти программ соответственно в регистры MX0 и MY0. Затем N-1 раз в N-1 циклах производится умножение с накоплением и автоматической проверкой условия завершения цикла для вычисления суммы первых N 1 произведений. Последняя команда умножения с накоплением производится с округлением с точностью до 24 старших разрядов регистра MR. Далее регистру MR может быть присвоено либо максимально возможное положительное, либо максимально возможное отрицательное значение в пределах разрядной сетки в зависимости от состояния флага переполнения, содержащегося в регистре MV. Таким образом, результат накапливается с точностью, соответствующей 40 разрядам регистра MR, при этом a насыщение возникает, если только конечный результат вызывает переполнение младших 32 разрядов регистра MR.

ПСЕВДОКОД ДЛЯ ПРОГРАММЫ КИХ-ФИЛЬТРА С ИСПОЛЬЗОВАНИЕМ DSP С ЦИКЛИЧЕСКИМ БУФЕРОМ 1. Получить значение от АЦП (обычно по прерыванию) 2. Поместить значение в циклический буфер отсчетов входного сигнала 3. Обновить указатель циклического буфера входного сигнала 4. Обнулить аккумулятор 5. Выполнить фильтрацию (один проход цикла для каждого коэффициента) 6. Получить коэффициент из циклического буфера коэффициентов 7. Обновить указатель циклического буфера коэффициентов 8. Получить значение отсчета из циклического буфера отсчетов входного сигнала 9. Обновить указатель циклического буфера отсчетов входного сигнала 10. Умножить коэффициент на значение отсчета 11. Результат сложить с результатом предыдущих вычислений, хранящимся в аккумуляторе 12. Полученный в результате фильтрации отсчет отправить в ЦАП Пример кода для ADSPxx:

DO convolution UNTIL CE;

MR = MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5) Рис. 7. a ФИЛЬТР С КИХ ПРОГРАММА НА ЯЗЫКЕ АССЕМБЛЕРА ДЛЯ ADSP-21XX (ОДИНАРНАЯ ТОЧНОСТЬ).MODULE fir_sub;

< FIR Filter Subroutine Calling Parameters I0 Oldest input data value in delay line I4 Beginning of filter coefficient table L0 = Filter length (N) L4 = Filter length (N) M1,M5 = CNTR = Filter length - 1 (N-1) Return Values MR1 = Sum of products (rounded and saturated) I0 Oldest input data value in delay line I4 Beginning of filter coefficient table Altered Registers MX0,MY0,MR Computation Time (N - 1) + 6 cycles = N + 5 cycles All coefficients are assumed to be in 1.15 format. >.ENTRY fir;

fir: MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5) CNTR = N-1;

DO convolution UNTIL CE;

convolution: MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5);

Рис. 7. Архитектура DSP семейства ADSP-21xx (рис.7.7) оптимизирована для цифровой обработки сигнала и других высокоскоростных приложений. Данное семейство DSP включает ядро семейства ADSP-2100 (три вычислительных блока, адресные генераторы, устройство управления выполнением команд), два синхронных последовательных порта, программируемый таймер, развитую систему обработки прерываний, встроенную статическую память программ и данных. Существуют также версии с встроенным ПЗУ.

a АРХИТЕКТУРА ЯДРА ПРОЦЕССОРА ADSP-21XX Регистр команд Генератор Генератор адреса адреса КЭШ Секвенсер данных данных Шина PMA (адреса памяти программ) Шина DMA (адреса памяти данных) Шина PMD (данных памяти программ) Обмен между Шина DMD (данных шинами памяти данных) Входные Входные Входные регистры регистры регистры MAC Регистр (умножение с АЛУ сдвига накоплением) Выходные Выходные Выходные регистры регистры регистры Шина R (результата) Рис. 7. Гибкая архитектура процессоров семейства ADSP-21xx и соответствующий набор команд позволяют достичь высочайшей степени параллелизма при выполнении операций. За один цикл DSP семейства ADSP-21xx может сгенерировать адрес следующей команды программы, выбрать следующую команду, выполнить 1 или 2 перемещения данных, обновить 1 или 2 указателя адреса, выполнить вычислительную операцию, передать или принять данные от двух последовательных портов и обновить регистр таймера.

a АРХИТЕКТУРА ЯДРА ПРОЦЕССОРА ADSP-21XX Шины Адреса памяти программ (PMA) Адреса памяти данных (DMA) Данных памяти программ (PMA) Данных памяти данных (PMA) Результата (R) Вычислительные блоки Арифметико-логическое устройство (ALU) Умножитель-накопитель (MAC) Сдвиговый регистр Генераторы адресов данных (DAG) Секвенсер программы (устройство управления последовательностью выполнения команд) Встроенные средства периферии Память программ в виде ОЗУ (RAM) или ПЗУ (ROM) ОЗУ памяти данных Последовательные порты Таймер Порт хост-интерфейса Порт прямого доступа к памяти (DMA) Рис. 7. ШИНЫ Процессоры семейства ADSP-21xx имеют пять внутренних шин для повышения эффективности передачи данных. Шины адреса памяти программы (PMA) и адреса памяти данных (DMA) используются одновременно для адресации в пределах адресных пространств памяти программ и памяти данных. Шины данных памяти программ (PMD) и шина данных памяти данных (DMD) используются для передачи данных из соответствующих областей памяти. При выводе шин на корпус за пределы кристалла они объединяются в одну внешнюю шину адреса и в одну внешнюю шину данных;

области памяти выбираются соответствующими сигналами управления. Шина результата (R) используется для пересылки промежуточных результатов напрямую между различными вычислительными блоками.

14-разрядная шина PMA позволяет получить прямой доступ к 16К слов памяти программ.

Шина DMD является 16-разрядной. Она обеспечивает доступ к содержимому любого регистра процессора для передачи его в любой другой регистр или любую ячейку памяти данных за один цикл. Адрес памяти данных может поступать от двух источников:

абсолютное значение, содержится в коде команды (прямая адресация) или на выходе адресного генератора (косвенная адресация). Для выборки данных из памяти программ используется только косвенная адресация.

Шина данных памяти программы (PMD) может также использоваться для передачи данных между вычислительными блоками напрямую или через блок обмена между шинами PMD-DMD. Блок обмена между шинами PMD-DMD позволяет передавать данные от одной шины к другой. Он содержит технические средства, которые позволяют, когда это необходимо, преодолевать разницу в 8 бит между двумя шинами.

a В памяти программ могут храниться как команды, так и данные, позволяя DSP семейства ADSP-21xx одновременно осуществлять выборку двух операндов в одном цикле, один из памяти программы, а другой из памяти данных. Команды поступают либо прямо из памяти программ путем осуществления двойного доступа в одном машинном цикле (процессоры серии ADSP-218x), либо из кэш-памяти программ (в процессоре серии ADSP-219x и SHARC).

ВЫЧИСЛИТЕЛЬНЫЕ БЛОКИ (АЛУ, МАС, РЕГИСТР СДВИГА) Процессор содержит три независимых вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель с накоплением (МАС) и устройство сдвига.

Вычислительные блоки способны обрабатывать 16-разрядные данные и могут поддерживать вычисления с повышенной точностью. АЛУ обладает флагом переноса CI, который позволяет поддерживать 32-разрядные арифметические действия.

АЛУ обеспечивает стандартный набор арифметических и логических функций: сложение, вычитание, смену арифметического знака, инкремент, декремент, получение абсолютного значения, логическое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсию. Также поддерживаются примитивы деления.

ОСОБЕННОСТИ АРИФМЕТИКО-ЛОГИЧЕСКОГО УСТРОЙСТВА (ALU) Сложение, вычитание, изменение знака, инкремент, декремент, получение абсолютного значения, логические операции И, ИЛИ, Исключающее ИЛИ, НЕ Операции для работы с битами, константами Средства для работы с математикой повышенной точности Примитивы деления Режим насыщения для работы при переполнении Вспомогательные регистры для сохранения контекста за один цикл Примеры команд:

IF EQ AR = AX0 + AY0;

AF = MR1 XOR AY1;

AR = TGLBIT 7 OF AX1;

Рис. 7. МАС способен выполнить за один машинный цикл операцию умножения, умножения/сложения или умножения/вычитания. Он также содержит 40-разрядный аккумулятор, который обеспечивает дополнительные 8 разрядов для накопления результата без потери информации;

данное решение допускает возникновение 256-ти переполнений, прежде чем произойдет потеря данных. Специальные команды обеспечивают поддержку блочной плавающей точки, при которой одна экспонента приписывается некоторому набору данных. Для ускорения обработки прерываний в МАС также может использоваться набор вспомогательных регистров. Если после окончания процедуры обработки сигнала установлен флаг МV, это означает, что регистр результата содержит слово, длина которого больше 32 разрядов. В этом случае значение, содержащееся в регистре, может быть заменено максимально или минимально возможной a величиной, представимой в пределах 32-хразрядной сетки формате 1.32, в зависимости от природы переполнения.

ОСОБЕННОСТИ УМНОЖИТЕЛЯ-НАКОПИТЕЛЯ (MAC) Выполнение умножения, умножения со сложением или умножения с вычитанием за один цикл 40-битный аккумулятор для защиты от переполнения (В процессорах семейства 219x имеется второй 40-битный аккумулятор) Команда насыщения выполняет обработку ситуации переполнения за один цикл Вспомогательные регистры для быстрого переключения контекста Примеры команд МАС:

MR = MR – AR * MY1(SS);

MR = MR + MX1 * MY0(RND);

IF LT MR = MX0 * MX0(UU);

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

ОСОБЕННОСТИ РЕГИСТРА СДВИГА Нормализация (преобразование из формата с фиксированной точкой в формат с плавающей точкой) Денормализация (преобразование из формата с плавающей точкой в формат с фиксированной точкой) Арифметические и логические сдвиги Поддержка блочной плавающей точки Получение экспоненты Вспомогательные регистры для быстрого переключения контекста Примеры команд регистра сдвига SR = ASHIFT SI BY –6(LO);

<Арифметический сдвиг>SR = SR OR LSHIFT SI BY 3(HI);

<Нормализация>Рис. 7. Вычислительные блоки располагаются параллельно, а не последовательно, так что результат работы любого блока может использоваться как исходное данное для другого блока в следующем машинном цикле. Для обеспечения такой возможности используется шина промежуточных результатов (R).

a АДРЕСНЫЕ ГЕНЕРАТОРЫ И УСТРОЙСТВО УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕР) Два специализированных адресных генератора и мощный секвенсер делают использование вычислительных блоков еще более эффективным. Адресные генераторы (DAG) вычисляют адреса при перемещении данных из памяти в регистры и обратно.

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

DAG1 может осуществлять адресацию только в памяти данных. DAG2 может осуществлять адресацию и в памяти данных, и в памяти программ. Когда в конфигурационном регистре (MSTAT) установлен соответствующий управляющий бит, адресный генератор DAG1 осуществляет бит-реверсивную адресацию. Бит-реверсивная адресация существенно упрощает реализацию алгоритма БПФ по основанию 2.

ОСОБЕННОСТИ ГЕНЕРАТОРА АДРЕСАЦИИ ДАННЫХ Автоматическая модульная адресация и работа с циклическими буферами Каждый DAG управляет четырьмя регистрами-указателями Поддержка одновременной выборки двух операндов Бит-реверсивная адресация (DAG1) для выполнения БПФ Вспомогательные регистры для быстрого переключения контекста Примеры команд регистра сдвига:

MR = MR + MX0 * MY0, MX0 = DM(I0,M1), MY0 = PM(I4,M4);

Получение из памяти данных слова данных, расположеного по адресу I0, увеличить указатель на величину M Получение из памяти программ слова данных, расположеного по адресу I4, увеличить указатель на величину M Рис. 7. Программный секвенсер осуществляет вычисление адреса инструкции, выборка которой должна осуществляться по мере исполнения программы. Ключевым компонентом устройства является регистр команд, который хранит информацию о выполняемой в текущее время команде. Регистр команд образует одноуровневый конвейер в потоке обрабатываемых команд. Команды выбираются и загружаются в регистр команд в одном цикле шины процессора и выполняются в следующем цикле, в то время как осуществляется выборка следующей команды. Чтобы уменьшить количество дополнительных циклов, устройство поддерживает выполнение переходов по условию, вызовов подпрограмм и возвращений к выполнению главной программы за один машинный цикл. Используя внутренний счетчик цикла и стек цикла процессор может выполнять программу цикла с автоматической проверкой условия завершения, без a дополнительных затрат процессорного времени на организацию цикла. Таким образом, чтобы организовать цикл, команды явного перехода не требуются. Устройство также способно с минимальной задержкой реагировать на прерывания, поступающие от контроллера прерываний. Появление прерывания вызывает переход к определенной ячейке памяти, где хранится подпрограмма обработки прерывания. Короткая подпрограмма обработки прерывания может располагаться непосредственно в таблице векторов прерываний, где для этих целей зарезервировано четыре ячейки памяти. Для выполнения более сложной подпрограммы обработки прерывания приходится осуществлять переход с помощью команды JUMP в область памяти программ, где может быть размещена более длинная программа.

ОСОБЕННОСТИ УСТРОЙСТВА УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕРА) Генерация адреса следующей команды Обработка прерываний с минимальной задержкой Поддержка аппаратного стека Условный переход осуществляется за один машинный цикл Поддерживает автоматическую проверку условия завершения цикла Пример программы для ADSP21xx:

DO endloop UNTIL CE;

MR = MR + MX0 * MY0(SS), MX(0) = DM(I0,M1), MY0 = PM(I4,M5);

IF EQ CALL mysubroutine;

Рис. 7. ВСТРОЕННЫЕ ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-21XX В предыдущих разделах мы обсуждали архитектуру ядра процессоров семейства ADSP 21xx с фиксированной точкой, которая является одинаковой для всех представителей семейства. Следующий раздел посвящен встроенным периферийным устройствам, которые имеют различную конфигурацию и разные возможности в зависимости от конкретного исполнения представителя семейства. Архитектура процессора семейства ADSP-218x показана на рис. 7.14.

a АРХИТЕКТУРА ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-218x Режим работы с • Совместимость по кодам • Совместимость по выводам расширенной УПРАВЛЕНИЕ памятью ЭНЕРГО ПОТРЕБЛЕНИЕМ Ядро ADSP- ПРОГРАММИРУЕМЫЕ Внешняя ПАМЯТЬ шина АДРЕСНЫЕ ВНЕШНИЕ ВХОДЫ, ПАМЯТЬ ПАМЯТЬ ВЫХОДЫ И ВЫВОДЫ адреса ГЕНЕРАТОРЫ СЕКВЕНСЕР ПРОГРАММ ДАННЫХ ФЛАГОВ DAG1 DAG Внешняя PMA шина дан.

DMA Контроллер BDMA PMD DMD или Внеш.

ПОСЛЕД. ПОРТЫ БЛОКИ АРИФМЕТИКИ ТАЙМЕР SPORT 0 SPORT Внутр.

АЛУ MAC СДВИГ.РЕГ.

Порт DMA Режим работы с хост процессором Функции шины мультиплексированы для 100-выводного корпуса. Все возможности шины доступны при использовании корпуса со 128 выводами.

Рис. 7. ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ИНТЕРФЕЙС ПАМЯТИ Все представители семейства используют модифицированную гарвардскую архитектуру Раздельные память программ и память данных Имеется доступ к данным, хранящимся в памяти программ Различные представители семейства имеют различную конфигурацию памяти Интерфейс внешней памяти поддерживает как быструю, так и медленную память с возможностью программирования времени ожидания Поддерживаются варианты начальной загрузки из 8-битной памяти через порт BDMA и через хост-интерфейс Поддерживает отображенную в память периферию Встроенные средства арбитража внешней шины (сигналы запроса и предоставления шины) Рис. 7. Семейство 21xx имеет множество различных вариантов процессоров с разным объемом встроенной памяти;

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

a Процессоры семейства ADSP-218x также поддерживают отдельное адресное пространство портов ввода-вывода.

Все представители семейства 21xx (кроме сигнальных процессоров ADSP-2105) имеют два последовательных порта с двойной буферизацией (SPORT) для приема и передачи последовательных данных. Каждый SPORT является двунаправленным и имеет свой собственный программируемый генератор битовой и фреймовой синхронизации. Длина слова SPORT может изменяться от 3 до 16 разрядов. Данные могут передаваться с использованием фреймовой синхронизации или без нее. Каждый SPORT способен генерировать прерывания и поддерживает логарифмическое сжатие данных по законам А и u.

ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ПОСЛЕДОВАТЕЛЬНЫЕ ПОРТЫ (SPORTs) Последовательные порты в ADSP-21xx используются для синхронной передачи данных Обеспечивают полнодуплексную связь Полностью программируемые Обладают возможностью автобуферирования и прямого доступа в память Поддерживают многоканальный режим с временным уплотнением каналов (TDM) Имеют встроенную опцию логарифмического сжатия данных с использованием законов А и µ Данные могут передаваться со скоростью от 25Мбит/с и более Широкий диапазон подключаемых устройств и процессоров с последовательным интерфейсом без дополнительной обвязки ЦСП семейства 219x имеют также последовательные порты SPI и UART с возможностью начальной загрузки процессора через них.

Рис. 7. IDMA-порт процессоров семейства ADSP-218xx поддерживает возможность начальной загрузки процессора от хост-компьютера и возможность доступа со стороны хост компьютера во внутреннюю память DSP для чтения и записи «на лету», когда DSP занимается выполнением своей программы. Порт IDMA позволяет главному процессору осуществлять доступ ко всей внутренней памяти DSP без использования почтовых регистров. Порт IDMA поддерживает передачу 16- и 24- разрядных слов, при этом передача 24-разрядных слов происходит за два машинных цикла.

a ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ПРЯМОЙ ДОСТУП К ВНУТРЕННЕЙ ПАМЯТИ ПРОЦЕССОРА (IDMA) Позволяет внешнему устройству обращаться к внутренней памяти DSP Внешнее устройство или процессор DSP может указывать внутренний начальный адрес для обмена данными Адрес автоматически инкрементируется для ускорения процесса передачи 16-разрядная шина поддерживает передачу данных и команд (семейство 219x поддерживает также 8-разрядную шину) Передача осуществляется за один цикл процессора ADSP-21xx Возможна начальная загрузка процессора через IDMA порт Рис. 7. Процессоры семейства ADSP-218xx обладают также интерфейсом для взаимодействия с памятью, которая имеет байтовую организацию. Данный интерфейс может использоваться для начальной загрузки процессора и для передачи данных из внутренней памяти и во внутренюю память «на лету». Максимальный размер адресуемой внешней восьмибитовой памяти составляет 4МВ. Данное адресное пространство играет роль загрузочной области (boot memory), характерной для представителей семейства 21хх. Байтовая память имеет организацию 256 страниц по 16Кх8 бит. Передача данных в байтовую память и из нее может осуществляться с упаковкой или распаковкой 24-разрядного, 16-разрядного и 8 разрядного (с выравниванием по младшему или старшему байту) форматов. При доступе к внутренней памяти DSP контроллер DMA занимает один машинный цикл, во время которого ядро не может осуществлять доступ в память.

a ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: 8-БИТНЫЙ ПОРТ ПРЯМОГО ДОСТУПА К ПАМЯТИ (BDMA) Обеспечивает большой объем памяти для хранения данных и кода программы Может обеспечить до 4 МБайт для хранения кода и данных Поддерживает различные форматы данных Автоматическая упаковка/распаковка данных в 16 и 24-битных словах Передача 8-разрядных данных с выравниванием по старшему или младшему байтам Обмен в фоновом режиме со внутренней памятью процессора DSP Передача слова за один цикл DSP определяет начальные адреса источника/получателя и количество слов Поддерживает начальную загрузку процесора при включении Позволяет иметь несколько программных сегментов DSP может загружать или выгружать сегменты кода (оверлей) Процессор может работать во время передачи или останавливаться и перезапускаться Рис. 7. Процессоры ADSP-21xx, ADSP-218x и ADSP-21msp5x имеют специальный режим работы с низкой потребляемой мощностью, который позволяет достигнуть потребления меньше мВт. Переход в данный режим может осуществляться аппаратно или программно. Это особенно важно для устройств, работающих от автономных источников питания. В некоторых режимах работы с низкой потребляемой мощностью отключается внутренний тактовый сигнал, но содержимое памяти и регистров при этом сохраняется.

Каждый электрик должен знать:  Новый способ защиты от потерь при перенапряжении в сети

ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: РЕЖИМ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ Немаскируемое прерывание Включается аппаратно (с помощью вывода PWD) или программно Переводит процессор в спящий режим Небольшое количество циклов тактового сигнала, требуемое для возвращения процессора в нормальный режим Имеется сигнал подтверждения входа в режим с малой потребляемой мощностью (PWDACK) Идеален для устройств, работающих от автономных источников питания Семейство 219x выполнено по полностью статической КМОП технологии Рис. 7. Из предыдущего обсуждения должно быть ясно, что цифровые сигнальные процессоры ADI разработаны таким образом, что выполнение типичных функций ЦОС, таких как a БПФ или цифровая фильтрация, происходит с максимальной эффективностью.

Процессоры могут выполнять несколько операций за один цикл, как уже было показано для приведенного выше примера с фильтром. Эффективность DSP обычно оценивается в MIPS (миллионах команд в секунду). Однако, количество MIPS не является исчерпывающей характеристикой процессора. Например, если процессор А имеет скорость выполнения команд 50 MIPS и может производить одну операцию за одну команду, то он сможет выполнять 50 миллионов операций в секунду, развивая производительность 50 MOPS. Теперь представим, что процессор В имеет скорость выполнения команд 20 MIPS, но может выполнять 4 операции за одну команду.

Процессор В сможет выполнить 80 миллионов операций в секунду и развить производительность 80 MOPS, что гораздо более эффективно, чем в случае с процессором А. Еще более эффективный способ оценивания работы ЦСП состоит в использовании хорошо зарекомендовавшего себя эталонного тестера, такого как КИХ-фильтр с определенным числом звеньев или БПФ известного размера. Сравнение с эталонами, которые рассматриваются в следующей главе, позволит избежать ошибок, связанных с характеристиками, выраженными в MIPS и MOPS. Но даже применение эталона не позволяет дать правильную оценку при сравнении производительности двух процессоров.


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

Процессоры семейства ADSP-219x поддерживает программную совместимость с семейством ADSP-218x. Для улучшения производительности и повышения эффективности С-компилятора это семейство должно включать DSP со скоростями в диапазоне от 100 до 300 MIPS и потребляемым током менее 0,4 мА/MIPS. Процессоры данного семейства поддерживают интерфейс JTAG, что приводит к улучшению отладочных свойств семейства. Блок-схема DSP данного семейства показана на рис. 7.20.

АРХИТЕКТУРА ПРОЦЕССОРОВ СЕРИИ ADSP-219x Внутреняя Ядро процессора Регистр память КЭШ команд ADSP-219x JTAG И Секв.

Секвенсер PM DM DAG1 DAG2 ЭМУЛЯЦИЯ PMA 24 ИНТЕРФЕЙС DMA 24 ВНЕШНЕЙ PMD ПАМЯТИ DMD Увеличена разрядность шины адреса (24-разрядные шины вместо 14 РЕГИСТРОВЫЙ ФАЙЛ разрядных) Конфигурация регистров данных эффективна при использовании компиляторов Секвенсер программ имеет кэш для Сдвиг АЛУ MAC быстрого выполнения кода Для облегчения отладки имеется Вычислительные блоки интерфейс JTAG Рис. 7. ПЕРИФЕРИЯ И ИНТЕРФЕЙС DMA a По сравнению с процессорами семейства ADSP-218x, имеющими 14- разрядную шину адреса, в семействе ADSP-219x используется 24-разрядная шина адреса, что позволяет осуществлять прямую адресацию в пределах 64К слов или страничную адресацию в пределах 16М слов. Адресный генератор процессоров семейства 219х поддерживает все известные режимы адресации, а также пять новых режимов адресации.

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

Процессорное ядро семейства ADSP-219x является ключевой технологией компании Analog Devices в области 16-разрядных DSP-процессоров общего назначения и в области встроенных решений. Специальные схемотехнические решения и программное обеспечение разрабатываются непосредственно для заказчика под конкретно заданные требования и характеристики. Для приложений, требующих высокой производительности, будут создаваться процессоры, содержащие несколько ядер на одном кристалле. В будущем предполагается создание семейства, включающего 4 ядра на одном кристалле и обладающего производительностью 1,2 миллиарда MAC в секунду на 1 квадратный дюйм площади кристалла. Проектировщикам, создающим системы, критичные к потребляемой мощности, понравятся рабочие токи процессоров данного семейства, составляющие порядка 0,15мА/MIPS.

ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-219x Совместимость по кодам Совместимость по кодам с процессорами семейства ADSP-218x Выполнение команд за один цикл, организация автоматической проверки условия завершения цикла, переключение контекста за один цикл Производительность Архитектура позволяет достичь производительности выше MIPS Полностью прозрачная кэш-память команд Возможность создания эффективного компилятора и отладочных средств Прямая адресация в пределах 64Кслов и страничная адресация в пределах 16М слов Адресные генераторы поддерживают 5 новых режимов адресации Доступ к регистровому файлу как к операнду Поддержка интерфейса JTAG Рис. 7. История развития семейства 16-разрядных DSP с фиксированной точкой компании Analog Devices показана на рис. 7.22. Обратите внимание на улучшение производительности, геометрических размеров и характеристик по потребляемой мощности при постоянном обеспечении кодовой совместимости различных устройств. Появляющиеся новые семейства имеют напряжения питания 3,3 В (L-серия) и 2,5 В (М-серия), что способствует a дальнейшему повышению эффективности использования данных процессоров. Ранние представители семейства помещались в дорогие корпуса типа PGA или PLCC, которые теперь заменяются PQFP и (в последнее время) TQFP толщиной 1,6 мм. Обратите внимание, что в 1998 году поменялась спецификация JEDEC для толщины TQFP, доведя ее до значения 1,0 мм. Корпуса, ранее обозначавшиеся TQFP (1,6 мм толщиной), теперь называются LQFP в соответствии с квалификацией JEDEC.

Корпус мини-BGA со 144 выводами (см. рис. 7.23) представляет собой новый тип корпуса, обеспечивающий производительность 75 MIPS при более 2М бит внутренней памяти в 1см2 корпуса, толщина которого составляет 1,35 мм, в сочетании с низкой потребляемой мощностью (0,4 мА на MIPS). Например, процессор ADSP-2188M, обладающий производительностью 75 MIPS, имеет 48К 24-разрядной памяти программ и 56К 16 разрядной памяти данных, что составляет в общей сложности 2028К бит. Потребляемая мощность данного процессора составляет менее 100 мВт.

ИСТОРИЯ РАЗВИТИЯ 16-РАЗРЯДНЫХ DSP – ИСТОРИЯ УСОВЕРШЕНСТВОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ, УМЕНЬШЕНИЯ ПОТРЕБЛЯЕМОЙ МОЩНОСТИ И РАЗМЕРОВ Производительность miniBGA miniBGA Толщина 1,6 мм 150-300 MIPS 0,4 mA/MIPs LQFP 219x Совместимы по выводам 2188M 100-выводные LQFP или 144 Толщина 4,45 мм 2189M выводные Mini-BGA 2187L/M PLC “L” = 3,3В 2185/L/M “M” = 2,5В 21msp 2186/L/M “N” = 1,8В 33 — 75 MIPS 2184/L 216x 0,4 mA/MIPS 20 MIPS 2181/ 2K/1K RAM PQFP 33 MIPS Толщина 2,45 мм 210x 2K/2K RAM Совместимость по кодам Рис. 7. a ПРОЦЕССОРЫ СЕРИИ ‘M’ ОБЕСПЕЧИВАЮТ САМЫЕ ВЫСОКИЕ ПОКАЗАТЕЛИ ПРОИЗВОДИТЕЛЬНОСТИ И ОБЪЕМА ПАМЯТИ В КОРПУСЕ miniBGA.

Толщина 1,35мм 75 MIPS и более 2 Мбит на 1 см Маленький 144-выводной корпус без потери производительности 10мм 10mm До 2 Мбит статической памяти на кристалле Новый корпус для портативных устройств Малый размер корпуса и потребление 10мм 10mm 0,4 мА на MIP нацелены на применение в устройствах с минимальным 0,8мм шаг потреблением энергии Включает всех представителей серии ‘M’ корпус Мини-BGA и популярные процессоры 2183, 2185L, со 144 выводами 2186 и 2186L Рис. 7. ПУТИ РАЗВИТИЯ 16-РАЗРЯДНЫХ DSP ADI Программная совместимость в течение 16 лет Ядро 219x 600 — 1200 MIPS 16M — 128MBits Ядро 218x Устройства с несколькими 312 — 600 MIPS • 0,5mW/MIPS 8M — 16MBits ядрами • 8MIPs/mm 0,7mW/MIPS • • 0,5MIP/mm Ядро 150-300 MIPS 640K — 32MBits 29-80 MIPS • 0,4mW/MIPS 160K — 2MBits • 3MIPs/mm 10 — 33 MIPS 32K — 80KBits Устройства 0,6mW/MIPS • • 0,8MIP/mm с одним ядром • 6mW/MIPS • 0,1MIP/mm 1985 2000+ Рис. 7. MMACs a ПУТИ РАЗВИТИЯ СЕМЕЙСТВА ADSP –218x 1,8 В Устройства 600 MIPS 2,5 В 16Мбит с несколькими SRAM ядрами 600 MIPS • 0,7 mW/MIPS 16Мбит • 0,5 MIPs/mm 5/3,3 В SRAM • 1 mW/MIPS 312 MIPS • 0,5 MIP/mm 8Мбит SRAM • 2,6 mW/MIPS • 0,3 MIP/mm 1,5 В 80 MIPS 640K -2MBits SRAM 75 MIPS 320K — 2MBits • 0,7 mW/MIPS 40 MIPS M SRAM 29-52 MIPS • 0,8 MIPs/mm 640K -2MBits 160K- 1.2MBits SRAM M SRAM • 1 mW/MIPS • 0,6 mW/MIPS • 0,75 MIP/mm Устройства A • 2.6mW/MIPS • 0,4 MIPs/mm • 0.5MIP/mm с одним ядром Cs 1994 2000+ Рис. 7. ПУТИ РАЗВИТИЯ СЕМЕЙСТВА ADSP-219X ADSP-219x 1200 MIPS Наиболее производительные процессоры с несколькими ядрами ADSP-219x 600 MIPS ADSP-219x ADSP-219x От 218x до 219x — 320 MIPS 300 MIPS 16 лет программной ADSP-219x Высокопроизводительные 200 MIPS процессоры с одним совместимости ядром ADSP- aрхитектур!

160 MIPS ADSP-219x 0.5 mW / MIPS 0.05 mW / MIPS ADSP-219x 2.5V 1.0V 0.1 mW / MIPS 1.5V ADSP-218X Малопотребляющие процессоры с одним ядром Pages: | 1 | 2 |

ГЛАВА 7 АППАРАТУРА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ

    Валентин Туманский 2 лет назад Просмотров:

1 ГЛАВА 7 АППАРАТУРА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ Микроконтроллеры, микропроцессоры и цифровые сигнальные процессоры (DSP) Требования, предъявляемые к цифровым сигнальным процессорам Архитектура ядра 16-разрядных DSP с фиксированной точкой семейства ADSP-21xx Сравнение DSP c фиксированной точкой и DSP c плавающей точкой DSP с плавающей точкой SHARC компании Analog Devices DSP ADSP-2116x c архитектурой типа SIMD (одна инструкция, много данных) Архитектура процессора ADSP-TS001 семейства TigerSHARC статический суперскалярный цифровой сигнальный процессор Тесты на производительность для цифровых сигнальных процессоров Средства для оценки возможностей цифровых сигнальных процессоров; средства для отладки и проектирования 1

2 ГЛАВА 7 АППАРАТУРА ЦИФРОВЫХ СИГНАЛЬНЫХ ПРОЦЕССОРОВ Дан Кинг, Грег Гирлинг, Кен Воурин, Ноам Левин, Джесс Моррис, Уолт Кестер МИКРОКОНТРОЛЛЕРЫ, МИКРОПРОЦЕССОРЫ И ЦИФРОВЫЕ ПРОЦЕССОРЫ ОБРАБОТКИ СИГНАЛОВ (DSP) Традиционные компьютеры особенно хороши для применения в двух областях деятельности: (1) манипуляция данными, например, подготовка текстов и управление базами данных; и (2) математические вычисления, используемые в науке, технике и цифровой обработке сигналов. Однако, большинство компьютеров не могут одинаково хорошо работать в обеих сферах. В компьютерных приложениях, таких как, например, подготовка текстов, данные запоминаются, сортируются, сравниваются, перемещаются и т.д., и время на выполнение этих операций не имеет большого значения до тех пор, пока оно удовлетворяет конечного пользователя. В приложениях, работающих с базами данных, периодически возникает необходимость реализации математических операций, но скорость их выполнения не является главным фактором. В большинстве случаев при проектировании приложений общего назначения компании производители не концентрируют внимания на создании более эффективных программ. Прикладные программы оказываются перегруженными различными дополнительными возможностями, для каждого обновления которых требуется все больше памяти и нужны все более быстрые процессоры. ОСНОВНЫЕ ОБЛАСТИ ПРИМЕНЕНИЯ КОМПЬЮТЕРОВ РАБОТА С ДАННЫМИ Работа с текстом Управление базами данных Электронные таблицы Операционные системы Пересылка данных (A >B) Сравнение величин (Если A = B, то ) Время исполнения не критично, заранее не нормируется МАТЕМАТИЧЕСКИЕ ВЫЧИСЛЕНИЯ Цифровая обработка сигналов Управление двигателями Техническое моделирование Обработка сигналов в реальном времени Сложение (C = A + B) Умножение (C = A B) Время исполнения критично, нормируется заранее Рис

3 С другой стороны, для цифровой обработки сигналов важно, чтобы математические операции выполнялись быстро, и время, требуемое на выполнение команд, должно быть известно точно и заранее. Для этого и программа, и аппаратура должны быть очень эффективными. Как было показано в последних двух главах этой книги, наиболее важной математической операцией и ядром всех алгоритмов цифровой обработки сигналов является умножение с последующим суммированием (эта операция обозначена точкой на всех схемах алгоритмов в предыдущих главах). Быстрое выполнение операции умножения с последующим суммированием очень важно для реализации быстрого преобразования Фурье, цифровых фильтров реального времени, умножения матриц, манипуляции с графическими изображениями и т.д. Проведенное предварительное обсуждение требований, предъявляемых к цифровым сигнальным процессорам, важно для понимания различий между микроконтроллерами, микропроцессорами и цифровыми сигнальными процессорами. Хотя микроконтроллеры при использовании в промышленных устройствах управления процессами могут выполнять такие функции как умножение, сложение, деление, они лучше подходят для приложений, где возможности процессора по реализации ввода-вывода и управления важнее, чем скорость. Микроконтроллеры, например семейства 8051, обычно содержат ЦПУ, ПЗУ, ОЗУ, последовательный и параллельный интерфейсы, счетчики и схемы прерываний. Микроконвертеры MicroConverter компании Analog Devices содержат не только ядро, построенное по архитектуре 8051, но также высококачественные ЦАП, АЦП и блок энергонезависимой памяти, реализованной по технологии FLASH. МИКРОКОНТРОЛЛЕРЫ, МИКРОПРОЦЕССОРЫ И ЦИФРОВЫЕ СИГНАЛЬНЫЕ ПРОЦЕССОРЫ Микроконтроллеры: ЦПУ, ОЗУ, ПЗУ, последовательный/параллельный интерфейс, таймер, схемы прерываний Хорошо подходят как для тостеров, так и для управления промышленными процессами Скорость не является главным требованием Компактная система команд Примеры: 8051, 68HC11, PIC Микропроцессоры: На одном кристалле находится только ЦПУ требуются дополнительные внешние устройства Процессоры с упрощенной системой команд (RISC) Процессоры со сложной системой команд (CISC) Примеры: серия Pentium, PowerPC, МIPS Цифровые Сигнальные Процессоры (DSP): ОЗУ, ПЗУ, последовательный/параллельный интерфейсы, схема обработки прерываний ЦПУ оптимизировано для многократно повторяющихся математических операций в реальном масштабе времени Примеры: ADSP-21xx, ADSP-21K Рис

4 Микропроцессоры, такие как Pentium компании Intel, обычно представляют собой ЦПУ, выполненное на одном кристалле, которому требуются дополнительные микросхемы для выполнения всех вычислительных функций. Система команд микропроцессора может быть как усложненной (типа CISC), так и редуцированной (типа RISC). В усложненную систему команд (архитектура СISC) входят команды для выполнения основных операций процессора, а также отдельные сильно специализированные команды (например, для вычисления полиномов высоких степеней). Но за выполнение сложных команд на процессоре, построенном по архитектуре CISC, приходится платить: многие команды реализованы в нем в микрокоде и требуют для своего выполнения нескольких машинных циклов и места на кристалле для хранения кода микропрограммы. Напротив, в редуцированном наборе команд (RISC-архитектура) учитывается тот факт, что в большинстве программ основные команды, такие как ЗАГРУЗКА и СОХРАНЕНИЕ В ПАМЯТИ с простыми режимами адресации, используются гораздо чаще, чем сложные команды, и должны исполняться более эффективно. Эти простые команды реализованы в ЦПУ аппаратно для выполнения за один машинный цикл, благодаря чему уменьшаются затрачиваемое время работы и сложность ЦПУ. Хотя RISC-архитектура имеет значительные преимущества при реализации вычислительных систем общего назначения, она недостаточно хорошо приспособлена к нуждам цифровой обработки сигналов. Например, большинство RISC процессоров не поддерживает реализацию операции умножения за один машинный цикл, которая является очень распространенной и часто используемой операцией при цифровой обработке сигналов. DSP-процессор оптимизирован для реализации таких инструкций со скоростью, достаточной для цифровой обработки сигналов в реальном масштабе времени, выполняя арифметические операции и накопление результата за один машинный цикл. ТРЕБОВАНИЯ, ПРЕДЪЯВЛЯЕМЫЕ К ЦИФРОВЫМ ПРОЦЕССОРАМ ОБРАБОТКИ СИГНАЛОВ Наиболее важная операция в цифровой обработке сигналов представлена на рис. 7.3: суммирование результатов умножения (операция, отмеченная точкой на диаграммах). Данная операция одинаково важна для цифровых фильтров, БПФ и для множества других алгоритмов цифровой обработки сигналов. Цифровой сигнальный процессор (DSP) оптимизирован для осуществления повторяющихся математических операций, таких как умножение с накоплением. Пять основных требований предъявляется к DSP, чтобы оптимизировать производительность процессора: быстрое выполнение арифметических операций, повышенная точность представления операндов, возможность одновременной выборки двух операндов, поддержка циклических буферов, организация циклов с автоматической проверкой условия завершения цикла. 4

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

6 ПОВЫШЕННАЯ ТОЧНОСТЬ Кроме очевидной необходимости быстрого выполнению операции умножения со сложением (МАС), от DSP требуется высокая точность представления результата в регистре-аккумуляторе. Например, когда перемножаются два 16-битных слова, результат представляется 32-битным словом. Ядро процессоров компании Analog Devices семейства ADSP-21xx с фиксированной точкой имеет встроенный 40-битный аккумулятор, который обеспечивает большой запас суммирования без переполнения. Хотя использование DSP с плавающей точкой автоматически устраняет большинство проблем, связанных с точностью и переполнением, процессоры с фиксированной точкой остаются очень популярными для многих приложений, и поэтому при их использовании нужно обращать достаточное внимание на возможное переполнение, потерю результатов (выход результата операции за пределы разрядной сетки) и масштабирование операндов. ОДНОВРЕМЕННАЯ ВЫБОРКА ДВУХ ОПЕРАНДОВ Независимо от типа используемого микропроцессора, ограничения в его работе в основном связаны с пропускной способностью шины. В случае микропроцессоров общего назначения или микроконтроллеров, программа в основном состоит из команд, подразумевающих однократное обращение к памяти, обычно адресуемых при помощи сдвига относительно базового адреса. Это заставляет разработчиков микропроцессоров так проектировать систему команд, чтобы фиксированные данные встраивались в код, поскольку такой тип получения операндов является быстрым и эффективным с точки зрения использования памяти. С другой стороны, в DSP преобладают команды, требующие двух независимых обращений к памяти. Данное требование вытекает из самой сути операции свертки (перемножение с суммированием) Σh(i) x(i). Целью быстрой одновременной выборки двух операндов является необходимость непрерывной загрузки накапливающего умножителя (МАС). При описании МАС мы видели, что быстродействие DSP в основном определяется скоростью МАС. Если мы считаем, что МАС выполняется за приемлемое время, то очевидно, что для каждой операции требуется с той же скоростью подавать на МАС два операнда. Увеличение времени выборки операндов из памяти соответствующим образом отразится на скорости работы МАС. В идеале обращение происходит одновременно с выполнением операции в МАС в одном и том же машинном цикле. Одновременная выборка двух операндов в DSP осуществляется по двум независимым шинам: шине данных памяти программ и шине данных памяти данных. Кроме того, имеются отдельные шина адреса памяти программ и шина адреса памяти данных. Таким образом, МАС может получать входные данные по каждой шине данных одновременно. Такая архитектура обычно называется гарвардской. ЦИКЛИЧЕСКИЕ БУФЕРЫ Если мы более внимательно исследуем самую распространенную при цифровой обработке сигналов операцию, то преимущества использования циклических буферов в DSP станут очевидными. Возьмем для примера фильтр с конечной импульсной характеристикой (КИХ). Во-первых, набор коэффициентов КИХ-фильтра по своей природе имеет периодический характер. Во-вторых, при каждом вычислении значения отсчета выходного сигнала КИХ-фильтр использует новый отсчет входного сигнала и отбрасывает самый старый отсчет. При последовательных вычислениях произведений коэффициентов КИХ фильтра на отсчеты сигнала доступ к N коэффициентам фильтра осуществляется последовательно от h(0) до h(n-1). Набор отсчетов входного сигнала циркулирует в памяти следующим 6

7 образом: новый отсчет входного сигнала сохраняется в памяти вместо старого отсчета всякий раз, когда вычисляется выходное значение фильтра. Для такого циркулирующего буфера может использоваться фиксированная область в ОЗУ. Самое раннее значение в памяти заменяется новым после каждого вычисления операции свертки. При этом информация об N последних отсчетах сохраняется в ОЗУ. В виде буфера в ОЗУ DSP-процессора может быть реализована задержка, если новые значения записываются в память на место старых. Для упрощения адресации памяти старые значения считываются из памяти, начиная со значения, расположенного сразу после того, которое было только что записано. Например, в КИХ-фильтре с четырьмя коэффициентами новый отсчет x(4) записывается в ячейку памяти с адресом 0. Далее чтение данных осуществляется из ячеек с адресами 1,2,3 и 0 в указанном порядке. Этот способ применяется при любом числе звеньев фильтра. При такой адресации ячеек памяти генератор адреса должен выдавать лишь последовательные значения адресов, вне зависимости от того, какая операция с памятью чтение или запись осуществляется в настоящий момент. Буфер такого типа называется циклическим, потому что когда при записи достигается последняя ячейка, указатель памяти устанавливается на начало буфера. Выборка коэффициентов из памяти осуществляется одновременно с выборкой данных. При рассмотренной схеме адресации самые старые отсчеты извлекаются из памяти первыми. Поэтому последний из коэффициентов должен выбираться из памяти первым. Коэффициенты могут заноситься в памяти в обратном порядке: h(n-1) в первую ячейку, а h(0) в последнюю, и генератор адреса в этом случае должен генерировать последовательно возрастающие адреса. И наоборот, коэффициенты могут быть записаны в памяти в нормальном порядке, но доступ к ним при этом должен осуществляться, начиная с конца буфера, а генератор адреса должен генерировать последовательно убывающие адреса. Описанные выше механизмы позволяют реализовать задержку, требуемую при реализации КИХ-фильтра, без каких-либо дополнительных затрат процессорного времени. Использование циклических буферов является специфическим для цифровой обработки сигналов и для достижения максимальной эффективности циклические буферы должны поддерживаться аппаратно. Аппаратная реализация циклических буферов позволяет установить параметры буфера (такие как адрес начала буфера, длина и т.д.) в программе вне тела цикла, непосредственно вычисляющего алгоритм. Это позволяет избежать включения дополнительных команд в тело цикла. Отсутствие аппаратной реализации циклических буферов может существенным образом ухудшить возможности DSPпроцессора по реализации алгоритмов цифровой обработки сигналов. ОРГАНИЗАЦИЯ ЦИКЛОВ С АВТОМАТИЧЕСКОЙ ПРОВЕРКОЙ УСЛОВИЙ Необходимость поддержки циклов с автоматической проверкой условий завершения вызвана циклическим характером алгоритмов ЦОС. Функция умножения с накоплением и выборка данных повторяются N раз при каждом вычислении типового алгоритма. В традиционных микропроцессорах организация цикла предполагает наличие в заголовке цикла команд для проверки условия окончания цикла. Архитектура DSP-процессоров компании Analog Devices обеспечивает аппаратную поддержку программных циклов без необходимости программной проверки условия продолжения или завершения в теле цикла. Для типичной DSP-архитектуры различие в производительности при аппаратной поддержке цикла с автоматической проверкой условия завершения и при программной проверке условия завершения цикла может превышать 20% времени выполнения цикла. 7

8 ВЫВОДЫ Любой процессор может выполнить любой алгоритм при наличии достаточного времени. Однако DSP процессоры оптимизированы под конкретные вычисления, связанные с обработкой реальных сигналов в реальном масштабе времени. Традиционные компьютеры больше подходят для вычислительных задач, не связанных с реальным временем. В следующем разделе мы исследуем архитектуру 16-разрядного цифрового сигнального процессора с фиксированной точкой семейства ADSP-21xx компании Analog Devices. ЯДРО 16-РАЗРЯДНЫХ DSP С ФИКСИРОВАННОЙ ТОЧКОЙ СЕМЕЙСТВА ADSP-21XX В традиционных микропроцессорах используется архитектура Фон Неймана (названную так в честь американского математика Джона Фон Неймана), показанная на рис. 7.4, A. Эта архитектура состоит из единого блока памяти, в котором хранятся и команды, и данные, и общей шины для передачи данных и команд в ЦПУ и от него. При такой архитектуре перемножение двух чисел требует по меньшей мере трех циклов: двух циклов для передачи двух чисел в ЦПУ, и одного для передачи команды. Данная архитектура приемлема в том случае, когда все действия могут выполняться последовательно. По сути говоря, в большинстве компьютеров общего назначения используется сегодня такая архитектура. МИКРОПРОЦЕССОРНЫЕ АРХИТЕКТУРЫ A: Фон Нейманна ПАМЯТЬ: данные и команды Шина адреса Шина данных ЦПУ B: Гарвардская ПАМЯТЬ ПРОГРАММ: только команды Шина адреса памяти программ Шина данных памяти программ ЦПУ Шина адреса памяти данных Шина данных памяти данных ПАМЯТЬ ДАННЫХ: Только данные C: Гарвардская модифицированная ADI ПАМЯТЬ ПРОГРАММ: команды и данные Шина адреса памяти программ Шина данных памяти программ ЦПУ Кэш команд Шина адреса памяти данных Шина данных памяти данных ПАМЯТЬ ДАННЫХ: Только данные Рис. 7.4 Однако для быстрой обработки сигналов больше подходит гарвардская архитектура, показанная на рис. 7.4, B. Данная архитектура получила свое название в связи с работами, проведенными в Гарвардском университете под руководством Ховарда Айкена. Данные и код программы хранятся в различных блоках памяти и доступ к ним осуществляется через 8

9 разные шины, как показано на схеме. Т.к. шины работают независимо, выборка команд программы и данных может осуществляться одновременно, повышая таким образом скорость по сравнению со случаем использования одной шины в архитектуре Фон Неймана. При выполнении умножения с последующим суммированием в КИХ-фильтре за один цикл происходит выборка команды из памяти программ и коэффициента из памяти данных. Второй цикл требуется для выбора слова данных из памяти данных. На рис.7.4, C представлена модифицированная гарвардская архитектура, используемая компанией Analog Devices Inc., где и команды, и данные могут храниться в памяти программ. Например, в случае с цифровым фильтром коэффициенты могут храниться в памяти программы, а значения данных в памяти данных. Поэтому коэффициент и значение данных могут выбираться в одном машинном цикле. Помимо выборки коэффициента из памяти программ и значения отсчета из памяти данных, естественно, должна быть выбрана команда из памяти программы. Цифровые сигнальные процессоры компании Analog Devices решают эту задачу двумя способами. В первом случае к памяти программ обращаются дважды за время цикла. Этот метод использует процессоры семейства ADSP-218x. Во втором случае используется кэш-память программ. В алгоритмах, требующих одновременной выборки двух операндов, программист один массив помещает в память программ, а другой в память данных. Когда процессор в первый раз выполняет команду, требующую двойного обращения к памяти программ, используется один дополнительный машинный цикл, т.к. необходимо выбрать и команду, и коэффициент с помощью шины данных памяти программ. Однако когда возникает такая проблема, процессор помещает команду в кэш, и в следующий раз, когда требуется эта команда, секвенсер программ извлекает ее из кэш-памяти, в то время как коэффициент поступает по шине данных памяти программ. Кэш программ используется как в семействе процессоров ADSP-219x компании Analog Devices, так и в процессорах семейства SHARC. ПРИМЕР РЕАЛИЗАЦИИ ЦИФРОВОГО ФИЛЬТРА После того, как мы представили основные принципы архитектуры процессоров семейства ADSP 21xx, проиллюстрируем простоту ее программирования на примере обычного КИХ-фильтра. Псевдокод программы проектируемого КИХ-фильтра показан на рис Цифровые сигнальные процессоры компании Analog Devices выполняют все операции, связанные с реализацией звена фильтра, за один цикл, что существенно повышает эффективность реализации фильтра. Для выполнения цикла не требуется дополнительных команд по проверке условия завершения цикла. Это называется циклом с автоматической проверкой условия завершения цикла (zero-overhead looping). Программа реализации КИХфильтра, написанная на языке ассемблера для семейства процессоров ADSP-21xx с фиксированной точкой показана на рис Стрелками отмечены непосредственно исполняемые команды (7 строк), остальная часть текста дополнительные комментарии, введенные для ясности. Первая команда (на которой стоит метка fir:) инициализирует вычисления, очищая регистр MR и загружая первый элемент данных и значение коэффициента из памяти данных и памяти программ соответственно в регистры MX0 и MY0. Затем N-1 раз в N-1 циклах производится умножение с накоплением и автоматической проверкой условия завершения цикла для вычисления суммы первых N- 1 произведений. Последняя команда умножения с накоплением производится с округлением с точностью до 24 старших разрядов регистра MR. Далее регистру MR1 может быть присвоено либо максимально возможное положительное, либо максимально возможное отрицательное значение в пределах разрядной сетки в зависимости от состояния флага переполнения, содержащегося в регистре MV. Таким образом, результат накапливается с точностью, соответствующей 40 разрядам регистра MR, при этом 9

10 насыщение возникает, если только конечный результат вызывает переполнение младших 32 разрядов регистра MR. ПСЕВДОКОД ДЛЯ ПРОГРАММЫ КИХ-ФИЛЬТРА С ИСПОЛЬЗОВАНИЕМ DSP С ЦИКЛИЧЕСКИМ БУФЕРОМ 1. Получить значение от АЦП (обычно по прерыванию) 2. Поместить значение в циклический буфер отсчетов входного сигнала 3. Обновить указатель циклического буфера входного сигнала 4. Обнулить аккумулятор 5. Выполнить фильтрацию (один проход цикла для каждого коэффициента) 6. Получить коэффициент из циклического буфера коэффициентов 7. Обновить указатель циклического буфера коэффициентов 8. Получить значение отсчета из циклического буфера отсчетов входного сигнала 9. Обновить указатель циклического буфера отсчетов входного сигнала 10. Умножить коэффициент на значение отсчета 11. Результат сложить с результатом предыдущих вычислений, хранящимся в аккумуляторе 12. Полученный в результате фильтрации отсчет отправить в ЦАП Пример кода для ADSPxx: CNTR = N-1; DO convolution UNTIL CE; convolution: MR = MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5) Рис

11 ФИЛЬТР С КИХ ПРОГРАММА НА ЯЗЫКЕ АССЕМБЛЕРА ДЛЯ ADSP-21XX (ОДИНАРНАЯ ТОЧНОСТЬ).MODULE fir_sub; < FIR Filter Subroutine Calling Parameters I0 Oldest input data value in delay line I4 Beginning of filter coefficient table L0 = Filter length (N) L4 = Filter length (N) M1,M5 = 1 CNTR = Filter length - 1 (N-1) Return Values MR1 = Sum of products (rounded and saturated) I0 Oldest input data value in delay line I4 Beginning of filter coefficient table Altered Registers MX0,MY0,MR Computation Time (N - 1) + 6 cycles = N + 5 cycles All coefficients are assumed to be in 1.15 format. >.ENTRY fir: convolution:.endmod; fir; MR=0, MX0=DM(I0,M1), MY0=PM(I4,M5) CNTR = N-1; DO convolution UNTIL CE; MR=MR+MX0*MY0(SS), MX0=DM(I0,M1), MY0=PM(I4,M5); MR=MR+MX0*MY0(RND); IF MV SAT MR; RTS; Рис. 7.6 Архитектура DSP семейства ADSP-21xx (рис.7.7) оптимизирована для цифровой обработки сигнала и других высокоскоростных приложений. Данное семейство DSP включает ядро семейства ADSP-2100 (три вычислительных блока, адресные генераторы, устройство управления выполнением команд), два синхронных последовательных порта, программируемый таймер, развитую систему обработки прерываний, встроенную статическую память программ и данных. Существуют также версии с встроенным ПЗУ. 11

12 АРХИТЕКТУРА ЯДРА ПРОЦЕССОРА ADSP-21XX Генератор адреса данных 1 Генератор адреса данных 2 КЭШ Регистр команд Секвенсер Шина PMA (адреса памяти программ) Шина DMA (адреса памяти данных) Шина PMD (данных памяти программ) Обмен между шинами Шина DMD (данных памяти данных) Входные регистры АЛУ Выходные регистры Входные регистры MAC (умножение с накоплением) Выходные регистры Входные регистры Регистр сдвига Выходные регистры Шина R (результата) Рис. 7.7 Гибкая архитектура процессоров семейства ADSP-21xx и соответствующий набор команд позволяют достичь высочайшей степени параллелизма при выполнении операций. За один цикл DSP семейства ADSP-21xx может сгенерировать адрес следующей команды программы, выбрать следующую команду, выполнить 1 или 2 перемещения данных, обновить 1 или 2 указателя адреса, выполнить вычислительную операцию, передать или принять данные от двух последовательных портов и обновить регистр таймера. 12

13 АРХИТЕКТУРА ЯДРА ПРОЦЕССОРА ADSP-21XX Шины Адреса памяти программ (PMA) Адреса памяти данных (DMA) Данных памяти программ (PMA) Данных памяти данных (PMA) Результата (R) Вычислительные блоки Арифметико-логическое устройство (ALU) Умножитель-накопитель (MAC) Сдвиговый регистр Генераторы адресов данных (DAG) Секвенсер программы (устройство управления последовательностью выполнения команд) Встроенные средства периферии Память программ в виде ОЗУ (RAM) или ПЗУ (ROM) ОЗУ памяти данных Последовательные порты Таймер Порт хост-интерфейса Порт прямого доступа к памяти (DMA) Рис. 7.8 ШИНЫ Процессоры семейства ADSP-21xx имеют пять внутренних шин для повышения эффективности передачи данных. Шины адреса памяти программы (PMA) и адреса памяти данных (DMA) используются одновременно для адресации в пределах адресных пространств памяти программ и памяти данных. Шины данных памяти программ (PMD) и шина данных памяти данных (DMD) используются для передачи данных из соответствующих областей памяти. При выводе шин на корпус за пределы кристалла они объединяются в одну внешнюю шину адреса и в одну внешнюю шину данных; области памяти выбираются соответствующими сигналами управления. Шина результата (R) используется для пересылки промежуточных результатов напрямую между различными вычислительными блоками. 14-разрядная шина PMA позволяет получить прямой доступ к 16К слов памяти программ. Шина DMD является 16-разрядной. Она обеспечивает доступ к содержимому любого регистра процессора для передачи его в любой другой регистр или любую ячейку памяти данных за один цикл. Адрес памяти данных может поступать от двух источников: абсолютное значение, содержится в коде команды (прямая адресация) или на выходе адресного генератора (косвенная адресация). Для выборки данных из памяти программ используется только косвенная адресация. Шина данных памяти программы (PMD) может также использоваться для передачи данных между вычислительными блоками напрямую или через блок обмена между шинами PMD-DMD. Блок обмена между шинами PMD-DMD позволяет передавать данные от одной шины к другой. Он содержит технические средства, которые позволяют, когда это необходимо, преодолевать разницу в 8 бит между двумя шинами. 13

14 В памяти программ могут храниться как команды, так и данные, позволяя DSP семейства ADSP-21xx одновременно осуществлять выборку двух операндов в одном цикле, один из памяти программы, а другой из памяти данных. Команды поступают либо прямо из памяти программ путем осуществления двойного доступа в одном машинном цикле (процессоры серии ADSP-218x), либо из кэш-памяти программ (в процессоре серии ADSP-219x и SHARC). ВЫЧИСЛИТЕЛЬНЫЕ БЛОКИ (АЛУ, МАС, РЕГИСТР СДВИГА) Процессор содержит три независимых вычислительных блока: арифметико-логическое устройство (АЛУ), умножитель с накоплением (МАС) и устройство сдвига. Вычислительные блоки способны обрабатывать 16-разрядные данные и могут поддерживать вычисления с повышенной точностью. АЛУ обладает флагом переноса CI, который позволяет поддерживать 32-разрядные арифметические действия. АЛУ обеспечивает стандартный набор арифметических и логических функций: сложение, вычитание, смену арифметического знака, инкремент, декремент, получение абсолютного значения, логическое И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсию. Также поддерживаются примитивы деления. ОСОБЕННОСТИ АРИФМЕТИКО-ЛОГИЧЕСКОГО УСТРОЙСТВА (ALU) Сложение, вычитание, изменение знака, инкремент, декремент, получение абсолютного значения, логические операции И, ИЛИ, Исключающее ИЛИ, НЕ Операции для работы с битами, константами Средства для работы с математикой повышенной точности Примитивы деления Режим насыщения для работы при переполнении Вспомогательные регистры для сохранения контекста за один цикл Примеры команд: IF EQ AR = AX0 + AY0; AF = MR1 XOR AY1; AR = TGLBIT 7 OF AX1; Рис. 7.9 МАС способен выполнить за один машинный цикл операцию умножения, умножения/сложения или умножения/вычитания. Он также содержит 40-разрядный аккумулятор, который обеспечивает дополнительные 8 разрядов для накопления результата без потери информации; данное решение допускает возникновение 256-ти переполнений, прежде чем произойдет потеря данных. Специальные команды обеспечивают поддержку блочной плавающей точки, при которой одна экспонента приписывается некоторому набору данных. Для ускорения обработки прерываний в МАС также может использоваться набор вспомогательных регистров. Если после окончания процедуры обработки сигнала установлен флаг МV, это означает, что регистр результата содержит слово, длина которого больше 32 разрядов. В этом случае значение, содержащееся в регистре, может быть заменено максимально или минимально возможной 14

15 величиной, представимой в пределах 32-хразрядной сетки формате 1.32, в зависимости от природы переполнения. ОСОБЕННОСТИ УМНОЖИТЕЛЯ-НАКОПИТЕЛЯ (MAC) Выполнение умножения, умножения со сложением или умножения с вычитанием за один цикл 40-битный аккумулятор для защиты от переполнения (В процессорах семейства 219x имеется второй 40-битный аккумулятор) Команда насыщения выполняет обработку ситуации переполнения за один цикл Вспомогательные регистры для быстрого переключения контекста Примеры команд МАС: MR = MX0 * MY0(US); IF MV SAT MR; MR = MR AR * MY1(SS); MR = MR + MX1 * MY0(RND); IF LT MR = MX0 * MX0(UU); Рис Устройство сдвига производит операции логического и арифметического сдвига, нормализации и денормализации, а также вычисления блочной экспоненты. Устройство может быть использовано для эффективного управления численными форматами, включая представление чисел в формате с плавающей точкой с повышенной точностью. ОСОБЕННОСТИ РЕГИСТРА СДВИГА Нормализация (преобразование из формата с фиксированной точкой в формат с плавающей точкой) Денормализация (преобразование из формата с плавающей точкой в формат с фиксированной точкой) Арифметические и логические сдвиги Поддержка блочной плавающей точки Получение экспоненты Вспомогательные регистры для быстрого переключения контекста Примеры команд регистра сдвига SR = ASHIFT SI BY 6(LO); <Арифметический сдвиг>SR = SR OR LSHIFT SI BY 3(HI); <Логический сдвиг>SR = NORM MR1(LO); <Нормализация>Рис Вычислительные блоки располагаются параллельно, а не последовательно, так что результат работы любого блока может использоваться как исходное данное для другого блока в следующем машинном цикле. Для обеспечения такой возможности используется шина промежуточных результатов (R). 15

16 АДРЕСНЫЕ ГЕНЕРАТОРЫ И УСТРОЙСТВО УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕР) Два специализированных адресных генератора и мощный секвенсер делают использование вычислительных блоков еще более эффективным. Адресные генераторы (DAG) вычисляют адреса при перемещении данных из памяти в регистры и обратно. Каждый генератор DAG обладает четырьмя регистрами-указателями. Всякий раз, когда указатель используется для адресации данных (косвенная адресация), он модифицируется значением, содержащимся в специализированном регистре-модификаторе. Для реализации автоматической циклической буферизации каждому регистру-указателю приписывается регистр, хранящий длину циклического буфера. При использовании двух независимых адресных генераторов DAG процессор может генерировать одновременно два адреса для обеспечения одновременной выборки двух операндов. DAG1 может осуществлять адресацию только в памяти данных. DAG2 может осуществлять адресацию и в памяти данных, и в памяти программ. Когда в конфигурационном регистре (MSTAT) установлен соответствующий управляющий бит, адресный генератор DAG1 осуществляет бит-реверсивную адресацию. Бит-реверсивная адресация существенно упрощает реализацию алгоритма БПФ по основанию 2. ОСОБЕННОСТИ ГЕНЕРАТОРА АДРЕСАЦИИ ДАННЫХ Автоматическая модульная адресация и работа с циклическими буферами Каждый DAG управляет четырьмя регистрами-указателями Поддержка одновременной выборки двух операндов Бит-реверсивная адресация (DAG1) для выполнения БПФ Вспомогательные регистры для быстрого переключения контекста Примеры команд регистра сдвига: AX0 = DM(I0,M3); MODIFY(I1,M2); MR = MR + MX0 * MY0, MX0 = DM(I0,M1), MY0 = PM(I4,M4); Получение из памяти данных слова данных, расположеного по адресу I0, увеличить указатель на величину M1 Получение из памяти программ слова данных, расположеного по адресу I4, увеличить указатель на величину M4 Рис Программный секвенсер осуществляет вычисление адреса инструкции, выборка которой должна осуществляться по мере исполнения программы. Ключевым компонентом устройства является регистр команд, который хранит информацию о выполняемой в текущее время команде. Регистр команд образует одноуровневый конвейер в потоке обрабатываемых команд. Команды выбираются и загружаются в регистр команд в одном цикле шины процессора и выполняются в следующем цикле, в то время как осуществляется выборка следующей команды. Чтобы уменьшить количество дополнительных циклов, устройство поддерживает выполнение переходов по условию, вызовов подпрограмм и возвращений к выполнению главной программы за один машинный цикл. Используя внутренний счетчик цикла и стек цикла процессор может выполнять программу цикла с автоматической проверкой условия завершения, без 16

17 дополнительных затрат процессорного времени на организацию цикла. Таким образом, чтобы организовать цикл, команды явного перехода не требуются. Устройство также способно с минимальной задержкой реагировать на прерывания, поступающие от контроллера прерываний. Появление прерывания вызывает переход к определенной ячейке памяти, где хранится подпрограмма обработки прерывания. Короткая подпрограмма обработки прерывания может располагаться непосредственно в таблице векторов прерываний, где для этих целей зарезервировано четыре ячейки памяти. Для выполнения более сложной подпрограммы обработки прерывания приходится осуществлять переход с помощью команды JUMP в область памяти программ, где может быть размещена более длинная программа. ОСОБЕННОСТИ УСТРОЙСТВА УПРАВЛЕНИЯ ПОСЛЕДОВАТЕЛЬНОСТЬЮ ВЫПОЛНЕНИЯ КОМАНД (СЕКВЕНСЕРА) Генерация адреса следующей команды Обработка прерываний с минимальной задержкой Поддержка аппаратного стека Условный переход осуществляется за один машинный цикл Поддерживает автоматическую проверку условия завершения цикла Пример программы для ADSP21xx: CNTR = 10; DO endloop UNTIL CE; IO(DACCONTROL) = AX0; MR = MR + MX0 * MY0(SS), MX(0) = DM(I0,M1), MY0 = PM(I4,M5); endloop: IF MV SET FL1; IF EQ CALL mysubroutine; Рис ВСТРОЕННЫЕ ПЕРИФЕРИЙНЫЕ УСТРОЙСТВА ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-21XX В предыдущих разделах мы обсуждали архитектуру ядра процессоров семейства ADSP- 21xx с фиксированной точкой, которая является одинаковой для всех представителей семейства. Следующий раздел посвящен встроенным периферийным устройствам, которые имеют различную конфигурацию и разные возможности в зависимости от конкретного исполнения представителя семейства. Архитектура процессора семейства ADSP-218x показана на рис

18 АРХИТЕКТУРА ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-218x Совместимость по кодам Совместимость по выводам АДРЕСНЫЕ ГЕНЕРАТОРЫ DAG1 Ядро ADSP-2100 DAG2 СЕКВЕНСЕР УПРАВЛЕНИЕ ЭНЕРГО- ПОТРЕБЛЕНИЕМ ПАМЯТЬ ПРОГРАММ ПАМЯТЬ ПАМЯТЬ ДАННЫХ ПРОГРАММИРУЕМЫЕ ВНЕШНИЕ ВХОДЫ, ВЫХОДЫ И ВЫВОДЫ ФЛАГОВ PMA Режим работы с расширенной памятью Внешняя шина адреса Внешняя шина дан. DMA PMD Контроллер BDMA DMD или БЛОКИ АРИФМЕТИКИ ПОСЛЕД. ПОРТЫ АЛУ MAC СДВИГ.РЕГ. SPORT 0 SPORT 1 ТАЙМЕР Внеш. шина дан. Внутр. Порт DMA Режим работы с хост процессором Функции шины мультиплексированы для 100-выводного корпуса. Все возможности шины доступны при использовании корпуса со 128 выводами. Рис ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ИНТЕРФЕЙС ПАМЯТИ Все представители семейства используют модифицированную гарвардскую архитектуру Раздельные память программ и память данных Имеется доступ к данным, хранящимся в памяти программ Различные представители семейства имеют различную конфигурацию памяти Интерфейс внешней памяти поддерживает как быструю, так и медленную память с возможностью программирования времени ожидания Поддерживаются варианты начальной загрузки из 8-битной памяти через порт BDMA и через хост-интерфейс Поддерживает отображенную в память периферию Встроенные средства арбитража внешней шины (сигналы запроса и предоставления шины) Рис Семейство 21xx имеет множество различных вариантов процессоров с разным объемом встроенной памяти; в более новом семействе 218x имеются представители, включающие до 48К слов памяти программ и 56К слов памяти данных. Все представители семейства используют модифицированную гарвардскую архитектуру, которая предполагает раздельные адресные пространства памяти программы и памяти данных и позволяет хранить данные в памяти программы. Интерфейс внешней памяти поддерживает как быструю, так и медленную память с программируемыми состояниями ожидания. 18

19 Процессоры семейства ADSP-218x также поддерживают отдельное адресное пространство портов ввода-вывода. Все представители семейства 21xx (кроме сигнальных процессоров ADSP-2105) имеют два последовательных порта с двойной буферизацией (SPORT) для приема и передачи последовательных данных. Каждый SPORT является двунаправленным и имеет свой собственный программируемый генератор битовой и фреймовой синхронизации. Длина слова SPORT может изменяться от 3 до 16 разрядов. Данные могут передаваться с использованием фреймовой синхронизации или без нее. Каждый SPORT способен генерировать прерывания и поддерживает логарифмическое сжатие данных по законам А и u. ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ПОСЛЕДОВАТЕЛЬНЫЕ ПОРТЫ (SPORTs) Последовательные порты в ADSP-21xx используются для синхронной передачи данных Обеспечивают полнодуплексную связь Полностью программируемые Обладают возможностью автобуферирования и прямого доступа в память Поддерживают многоканальный режим с временным уплотнением каналов (TDM) Имеют встроенную опцию логарифмического сжатия данных с использованием законов А и µ Данные могут передаваться со скоростью от 25Мбит/с и более Широкий диапазон подключаемых устройств и процессоров с последовательным интерфейсом без дополнительной обвязки ЦСП семейства 219x имеют также последовательные порты SPI и UART с возможностью начальной загрузки процессора через них. Рис IDMA-порт процессоров семейства ADSP-218xx поддерживает возможность начальной загрузки процессора от хост-компьютера и возможность доступа со стороны хосткомпьютера во внутреннюю память DSP для чтения и записи «на лету», когда DSP занимается выполнением своей программы. Порт IDMA позволяет главному процессору осуществлять доступ ко всей внутренней памяти DSP без использования почтовых регистров. Порт IDMA поддерживает передачу 16- и 24- разрядных слов, при этом передача 24-разрядных слов происходит за два машинных цикла. 19

20 ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: ПРЯМОЙ ДОСТУП К ВНУТРЕННЕЙ ПАМЯТИ ПРОЦЕССОРА (IDMA) Позволяет внешнему устройству обращаться к внутренней памяти DSP Внешнее устройство или процессор DSP может указывать внутренний начальный адрес для обмена данными Адрес автоматически инкрементируется для ускорения процесса передачи 16-разрядная шина поддерживает передачу данных и команд (семейство 219x поддерживает также 8-разрядную шину) Передача осуществляется за один цикл процессора ADSP-21xx Возможна начальная загрузка процессора через IDMA порт Рис Процессоры семейства ADSP-218xx обладают также интерфейсом для взаимодействия с памятью, которая имеет байтовую организацию. Данный интерфейс может использоваться для начальной загрузки процессора и для передачи данных из внутренней памяти и во внутренюю память «на лету». Максимальный размер адресуемой внешней восьмибитовой памяти составляет 4МВ. Данное адресное пространство играет роль загрузочной области (boot memory), характерной для представителей семейства 21хх. Байтовая память имеет организацию 256 страниц по 16Кх8 бит. Передача данных в байтовую память и из нее может осуществляться с упаковкой или распаковкой 24-разрядного, 16-разрядного и 8- разрядного (с выравниванием по младшему или старшему байту) форматов. При доступе к внутренней памяти DSP контроллер DMA занимает один машинный цикл, во время которого ядро не может осуществлять доступ в память. 20

21 ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: 8-БИТНЫЙ ПОРТ ПРЯМОГО ДОСТУПА К ПАМЯТИ (BDMA) Обеспечивает большой объем памяти для хранения данных и кода программы Может обеспечить до 4 МБайт для хранения кода и данных Поддерживает различные форматы данных Автоматическая упаковка/распаковка данных в 16 и 24-битных словах Передача 8-разрядных данных с выравниванием по старшему или младшему байтам Обмен в фоновом режиме со внутренней памятью процессора DSP Передача слова за один цикл DSP определяет начальные адреса источника/получателя и количество слов Поддерживает начальную загрузку процесора при включении Позволяет иметь несколько программных сегментов DSP может загружать или выгружать сегменты кода (оверлей) Процессор может работать во время передачи или останавливаться и перезапускаться Рис Процессоры ADSP-21xx, ADSP-218x и ADSP-21msp5x имеют специальный режим работы с низкой потребляемой мощностью, который позволяет достигнуть потребления меньше 1 мвт. Переход в данный режим может осуществляться аппаратно или программно. Это особенно важно для устройств, работающих от автономных источников питания. В некоторых режимах работы с низкой потребляемой мощностью отключается внутренний тактовый сигнал, но содержимое памяти и регистров при этом сохраняется. ВСТРОЕННЫЕ СРЕДСТВА ПЕРИФЕРИИ ПРОЦЕССОРА ADSP-21xx: РЕЖИМ ПОНИЖЕННОГО ЭНЕРГОПОТРЕБЛЕНИЯ Немаскируемое прерывание Включается аппаратно (с помощью вывода PWD) или программно Переводит процессор в спящий режим Небольшое количество циклов тактового сигнала, требуемое для возвращения процессора в нормальный режим Имеется сигнал подтверждения входа в режим с малой потребляемой мощностью (PWDACK) Идеален для устройств, работающих от автономных источников питания Семейство 219x выполнено по полностью статической КМОП технологии Рис Из предыдущего обсуждения должно быть ясно, что цифровые сигнальные процессоры ADI разработаны таким образом, что выполнение типичных функций ЦОС, таких как 21

22 БПФ или цифровая фильтрация, происходит с максимальной эффективностью. Процессоры могут выполнять несколько операций за один цикл, как уже было показано для приведенного выше примера с фильтром. Эффективность DSP обычно оценивается в MIPS (миллионах команд в секунду). Однако, количество MIPS не является исчерпывающей характеристикой процессора. Например, если процессор А имеет скорость выполнения команд 50 MIPS и может производить одну операцию за одну команду, то он сможет выполнять 50 миллионов операций в секунду, развивая производительность 50 MOPS. Теперь представим, что процессор В имеет скорость выполнения команд 20 MIPS, но может выполнять 4 операции за одну команду. Процессор В сможет выполнить 80 миллионов операций в секунду и развить производительность 80 MOPS, что гораздо более эффективно, чем в случае с процессором А. Еще более эффективный способ оценивания работы ЦСП состоит в использовании хорошо зарекомендовавшего себя эталонного тестера, такого как КИХ-фильтр с определенным числом звеньев или БПФ известного размера. Сравнение с эталонами, которые рассматриваются в следующей главе, позволит избежать ошибок, связанных с характеристиками, выраженными в MIPS и MOPS. Но даже применение эталона не позволяет дать правильную оценку при сравнении производительности двух процессоров. Нужно производить глубокий анализ системных требований, архитектуры процессора, требований к наличию памяти и других факторов. Процессоры семейства ADSP-219x поддерживает программную совместимость с семейством ADSP-218x. Для улучшения производительности и повышения эффективности С-компилятора это семейство должно включать DSP со скоростями в диапазоне от 100 до 300 MIPS и потребляемым током менее 0,4 ма/mips. Процессоры данного семейства поддерживают интерфейс JTAG, что приводит к улучшению отладочных свойств семейства. Блок-схема DSP данного семейства показана на рис АРХИТЕКТУРА ПРОЦЕССОРОВ СЕРИИ ADSP-219x Ядро процессора ADSP-219x DAG1 DAG2 Регистр команд Секв. КЭШ Внутреняя память Секвенсер PM DM JTAG И ЭМУЛЯЦИЯ PMA DMA PMD DMD ИНТЕРФЕЙС ВНЕШНЕЙ ПАМЯТИ РЕГИСТРОВЫЙ ФАЙЛ АЛУ MAC Сдвиг Вычислительные блоки ПЕРИФЕРИЯ И ИНТЕРФЕЙС DMA Увеличена разрядность шины адреса (24-разрядные шины вместо 14- разрядных) Конфигурация регистров данных эффективна при использовании компиляторов Секвенсер программ имеет кэш для быстрого выполнения кода Для облегчения отладки имеется интерфейс JTAG Рис

23 По сравнению с процессорами семейства ADSP-218x, имеющими 14- разрядную шину адреса, в семействе ADSP-219x используется 24-разрядная шина адреса, что позволяет осуществлять прямую адресацию в пределах 64К слов или страничную адресацию в пределах 16М слов. Адресный генератор процессоров семейства 219х поддерживает все известные режимы адресации, а также пять новых режимов адресации. Для повышения эффективности С-компилятора в архитектуру сигнальных процессоров семейства ADSP-219x введен целый ряд существенных улучшений. Используемый универсальный регистровый файл уменьшает риск потери данных при переключении контекста и уменьшает необходимость полагаться на аппаратный стек. Реализованный компилятор поддерживает форматы данных, свойственные DSP (дробный формат и комплексные числа) Кроме того, на кристалле реализована кэш-память программ. Процессорное ядро семейства ADSP-219x является ключевой технологией компании Analog Devices в области 16-разрядных DSP-процессоров общего назначения и в области встроенных решений. Специальные схемотехнические решения и программное обеспечение разрабатываются непосредственно для заказчика под конкретно заданные требования и характеристики. Для приложений, требующих высокой производительности, будут создаваться процессоры, содержащие несколько ядер на одном кристалле. В будущем предполагается создание семейства, включающего 4 ядра на одном кристалле и обладающего производительностью 1,2 миллиарда MAC в секунду на 1 квадратный дюйм площади кристалла. Проектировщикам, создающим системы, критичные к потребляемой мощности, понравятся рабочие токи процессоров данного семейства, составляющие порядка 0,15мА/MIPS. ОСНОВНЫЕ ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ ПРОЦЕССОРОВ СЕМЕЙСТВА ADSP-219x Совместимость по кодам Совместимость по кодам с процессорами семейства ADSP-218x Выполнение команд за один цикл, организация автоматической проверки условия завершения цикла, переключение контекста за один цикл Производительность Архитектура позволяет достичь производительности выше 300 MIPS Полностью прозрачная кэш-память команд Возможность создания эффективного компилятора и отладочных средств Прямая адресация в пределах 64Кслов и страничная адресация в пределах 16М слов Адресные генераторы поддерживают 5 новых режимов адресации Доступ к регистровому файлу как к операнду Поддержка интерфейса JTAG Рис История развития семейства 16-разрядных DSP с фиксированной точкой компании Analog Devices показана на рис Обратите внимание на улучшение производительности, геометрических размеров и характеристик по потребляемой мощности при постоянном обеспечении кодовой совместимости различных устройств. Появляющиеся новые семейства имеют напряжения питания 3,3 В (L-серия) и 2,5 В (М-серия), что способствует 23

24 дальнейшему повышению эффективности использования данных процессоров. Ранние представители семейства помещались в дорогие корпуса типа PGA или PLCC, которые теперь заменяются PQFP и (в последнее время) TQFP толщиной 1,6 мм. Обратите внимание, что в 1998 году поменялась спецификация JEDEC для толщины TQFP, доведя ее до значения 1,0 мм. Корпуса, ранее обозначавшиеся TQFP (1,6 мм толщиной), теперь называются LQFP в соответствии с квалификацией JEDEC. Корпус мини-bga со 144 выводами (см. рис. 7.23) представляет собой новый тип корпуса, обеспечивающий производительность 75 MIPS при более 2М бит внутренней памяти в 1см 2 корпуса, толщина которого составляет 1,35 мм, в сочетании с низкой потребляемой мощностью (0,4 ма на MIPS). Например, процессор ADSP-2188M, обладающий производительностью 75 MIPS, имеет 48К 24-разрядной памяти программ и 56К 16- разрядной памяти данных, что составляет в общей сложности 2028К бит. Потребляемая мощность данного процессора составляет менее 100 мвт. ИСТОРИЯ РАЗВИТИЯ 16-РАЗРЯДНЫХ DSP ИСТОРИЯ УСОВЕРШЕНСТВОВАНИЯ ПРОИЗВОДИТЕЛЬНОСТИ, УМЕНЬШЕНИЯ ПОТРЕБЛЯЕМОЙ МОЩНОСТИ И РАЗМЕРОВ Производительность Толщина 1,6 мм LQFP minibga MIPS 0,4 ma /MIPs 219x Толщина 4,45 мм PLC 216x 20 MIPS 2K/1K RAM 210x msp5 Совместимы по выводам 100-выводные LQFP или 144- выводные Mini-BGA 33 MIPS 2K/2K RAM 2187L/M 2185/L/M 2186/L/M 2184/L MIPS 0,4 ma /MIPS 2181/3 PQFP Толщина 2,45 мм Совместимость по кодам 2188M 2189M L = 3,3В M = 2,5В N = 1,8В Рис

Каждый электрик должен знать:  Сила тока в резисторе. Определить силу тока в резисторе.

ADSP-2192

ADSP-2192 является 16-разрядным DSP с фиксированной точкой, содержащий двухпроцессорное ядро. Изделие оптимизировано для приложений многоканальной обработки сигналов голоса/данных и другой информации. ADSP-2192 является первым изделием, основанным на новом высокопроизводительном ядре цифрового сигнального процессора семейства ADSP-219x, способным выполнять 320 миллионов инструкций в секунду (MIPS).

Дальнейшее развитие семейства ADSP-219x пойдет в двух направлениях, одно из которых относится к потребности в высокой производительности, предлагая скорости до 1200 MIPS, а другое к потребности наиболее низкого энергопотребления, менее 0.1 мВт/MIPS.

Построенный на полной совместимости по коду с DSP семейства ADSP-218x, ядро ADSP-2192 использует базовую архитектуру семейства ADSP-2100, состоящую из трех вычислительных модулей, генераторов адреса данных, контроллера выполнения программ. ADSP-2192 поддерживает также широкий диапазон интерфейсов, включающий: Peripheral Component Interconnect (PCI) с режимами CardBus и Sub-ISA для встроенных приложений и Universal Serial Bus (USB) для сопряжения с последовательными EPROM устройствами, AC’97 и DMA. Другие возможности ADSP-2192 включают программируемый таймер для каждого ядра, расширенные возможности прерываний и расположенные на кристалле память программ и память данных.

Расположенные на кристалле 132 Кслова памяти, распределены следующим образом. Первый процессор ADSP-2192 (P0) включает 64K x 16-разрядной памяти данных, 16K x 24-разрядной памяти программ и загружаемое ПЗУ. Второй процессор (P1) включает 32K x 16-разрядной памяти данных, 16K x 24-разрядной памяти программ и загружаемое ПЗУ. ADSP-2192 включает также 4K x 16-разрядных слов общей памяти, которая уменьшает время доступа к внешней памяти, позволяя еще больше повысить производительность процессора.

Основные характеристики:

  • 16-разрядное устройство с двухпроцессорной архитектурой: 160 МГц / 320 MIPS;
  • межпроцессорная связь;
  • совместимость по коду с семейством ADSP-218x;
  • расположенная на кристалле загружаемая память;
  • PCI 2.2 33 МГц / 32-разрядный совместимый интерфейс;
  • поддержка PCI режимов ведомого и ведущего;
  • интегрированный USB 1.1 совместимый интерфейс;
  • AC’97 Rev.2.1 совместимый интерфейс;
  • 14 каналов ПДП;
  • последовательный интерфейс для внешних EPROM/EEPROM устройств;
  • поддержка оптимизированными С и С++ компиляторами;
  • поддержка средствами разработки VisualDSP®.

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

Произведенный по высокопроизводительной, малопотребляющей КМОП технологии ADSP-2192 обладает 6.25 нс командным циклом (160 МГц / 320 MIPS). Архитектура ADSP-2192 позволяет процессорам выполнять инструкции параллельно, по две любых инструкции за один командный цикл.

Применять сигнальные процессоры так же просто, как и микроконтроллеры

Применять сигнальные процессоры так же просто, как и микроконтроллеры

Возрастающая производительность и простота применения цифровых сигнальных процессоров (DSP) вывели их на уровень серьёзной альтернативы микроконтроллерам. Чтобы эти процессоры можно было применять в устройствах управления они должны выполнять функции общего назначения. Для этого ядро должно выполнять функции микроконтроллера, а в состав микросхемы должен входить соответствующий набор периферийных устройств: таймеров, интерфейсов, аналого-цифровых преобразователей, модулей памяти.

В ответ на возросшие запросы потребителей фирма Motorola разработала новую архитектуру микросхемы, ориентированную как на выполнение сложных алгоритмов цифровой обработки сигналов, так и на решение задач управления. Семейство микросхем DSP568xx построено на базе ядра 16-разрядного процессора DSP56800 с фиксированной точкой. Это ядро предназначено для эффективного решения задач управления и цифровой обработки сигналов. Реализованный в нем набор команд обеспечивает цифровую обработку сигналов с эффективностью лучших DSP общего назначения и отвечает требованиям простоты создания компактных программ управления.

Ядро DSP56800

Ядро DSP56800 является программируемым 16-разрядным КМОП процессором, предназначенным для выполнения цифровой обработки сигналов в реальном масштабе времени и решения вычислительных задач. Ядро DSP56800 (рис. 1) состоит из четырех функциональных устройств: управления программой, генерации адресов, арифметико-логической обработки данных, обработки битов. Для увеличения производительности операции в устройствах выполняются параллельно. Каждое из устройств имеет свой набор регистров и логику управления и организовано таким образом, что может функционировать независимо и одновременно с тремя другими. Внутренние шины адресов и данных связывают между собой память, функциональные и периферийные устройства (регистры периферийных устройств расположены в области памяти). Таким образом, ядро реализует одновременное выполнение нескольких действий: устройство управления выбирает первую команду, устройство генерации адресов формирует до двух адресов второй команды, а АЛУ выполняет умножение третьей команды. Есть альтернативная возможность: в третьей команде операцию может выполнять не АЛУ, а устройство обработки битов. Конвейерная архитектура позволяет реализовать параллельную работу устройств, входящих в состав микросхемы, и существенно сократить время выполнения программы.

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

  • производительность 40 MIPS при тактовой частоте 80 МГц и напряжении питания 2.7…3.6 В
  • наличие набора команд совмещенной обработки, имеющих режимы адресации, характерные для программ цифровой обработки сигналов
  • однотактный параллельный 16х16 умножитель-сумматор
  • два 36-разрядных аккумулятора, включая биты расширения
  • однотактное 16-разрядное устройство циклического сдвига
  • аппаратная реализация команд DO и REP
  • три внутренние 16-разрядные шины данных и три 16-разрядные шины адреса
  • одна 16-разрядная шина внешнего интерфейса
  • набор команд управления и цифровой обработки
  • режимы адресации такие же, как в сигнальных процессорах, и команды, снижающие объем программы
  • эффективный компилятор языка С и поддержка локальных переменных
  • стек подпрограмм и прерываний, не имеющий ограничения по глубине.

Рис. 1. Структурная схема ядра DSP56800

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

Однократная совмещенная передача позволяет выполнить арифметическое действие и одну передачу данных (чтение или запись) за один командный цикл. Например, можно одной командой выполнить сложение двух чисел и одновременно данные из регистра АЛУ записать в память. Одновременно с этим в устройстве вычисления адресов производятся соответствующие вычисления.

Команда типа двойного совмещенного чтения допускает выполнение арифметической операции и чтения двух величин из Х-памяти данных в одной команде за один командный цикл. Например, можно в одной команде выполнить умножение двух чисел, просуммировать с третьим, округлить результат и одновременно выполнить пересылку двух чисел из Х-памяти данных в два регистра АЛУ.

Встроенная память

Обычные микроконтроллеры, как правило, имеют объем встроенной в микросхему памяти, достаточный для выполнения сложных алгоритмов управления без использования дополнительной внешней памяти. Многие микросхемы DSP содержат встроенную память небольшого объема и, как правило, им требуется внешняя память для хранения программы. Микросхемы же семейства DSP56F8хх имеют встроенную память большого объема. Гарвардская архитектура DSP обеспечивает наличие двух независимых областей памяти — данных и программ. Для хранения в микросхеме данных и программ используется встроенная оперативная память и флэш-память.

Объём памяти каждого типа для микросхем семейства DSP56F8хх приведен в табл. 1. Как память программ, так и память данных могут быть расширены путем подключения внешней памяти. Микросхемы DSP56F803, DSP56F805, DSP56F807 допускают расширение объема внешней памяти до 64 К слов.

Таблица 1. Объем встроенной памяти микросхем семейства DSP568xx


Встроенная память DSP56F801 DSP56F803 DSP56F805 DSP56F807
Флэш-память программы 8k x 16 32k x 16 32k x 16 60k x 16
Флэш-память данных 2k x 16 4k x 16 4k x 16 8k x 16
ОЗУ программ 1k x 16 512 x 16 512 x 16 2k x 16
ОЗУ данных 1k x 16 2k x 16 2k x 16 4k x 16
Флэш-память программы загрузки 2k x 16 2k x 16 2k x 16 2k x 16

Широкий набор периферийных устройств

Широкий набор периферийных устройств обычно являлся основной характеристикой микроконтроллеров, встраиваемых в устройства общего назначения. С другой стороны, обычные DSP были ориентированы на численную обработку сигналов и не содержали полного набора встроенных периферийных устройств, необходимых для решения задач управления. Использование внешних периферийных устройств приводит к увеличению числа микросхем, усложнению платы и существенному возрастанию стоимости изделия.

Микросхемы семейств DSP56F8хх (рис. 2, табл. 2) имеют широкий набор встроенных периферийных устройств, пригодных для использования в системах управления всех типов. Этот набор встроенных устройств существенно снижает цену системы по сравнению с реализацией устройств управления на основе традиционных DSP. Более того, так как встроенные устройства имеют заранее определенный интерфейс с ядром DSP (в отличие от внешних периферийных устройств), то упрощаются разработка системы, программирование и управление периферийными устройствами. Таким образом, время разработки программ сокращается.

Рис. 2. Структурная схема микросхемы DSP56F805


Таблица 2. Периферийные устройства микросхем семейства DSP568xx


DSP56824 DSP56F801 DSP56F803 DSP56F805 DSP56F80
Тактовая частота, МГц 70 80 80 80 80
Производительность, MIPS 35 40 40 40 40
Интерфейсы 2SPI, SCI, SSI SCI, SPI 2SCI, SPI,
CAN
2SCI, SPI,
CAN
2SCI, SPI,
CAN
АЦП 2 четырехкан.
12-разрядн.
2 четырехкан.
12-разрядн.
2 четырехкан.
12-разрядн.
4 четырехкан.
12-разрядн.
ШИМ-генераторы 6-канальн.
15-разр.
6-канальн.
15-разр.
2 6-канальн.
15-разр.
2 6-канальн.
15-разр.
Прочие функциональные особенности ФАПЧ, 3-кан. таймер НВИ*, ФАПЧ, 2-кан.таймер НВИ*, ФАПЧ, 5-кан.таймер НВИ*, ФАПЧ, 6-кан.таймер НВИ*, ФАПЧ, 6-кан.таймер
Наличие в продаже Выпускается С 1 кв. 2001 г. Образцы Образцы С 1 кв. 2001 г.

Микросхема DSP56F805 содержит следующие периферийные блоки:

  • два шестиканальных ШИМ-генератора (PWMA & PWMB) с привязкой импульсов к центру или краю временного интервала, программированием длительности «мертвого времени» и защитой в случае возникновения аварийных режимов работы; каждый генератор снабжен тремя сенсорами тока и четырьмя входами аварийного отключения
  • два 12-разрядных АЦП с одновременной выборкой, снабженные входными четырехканальными мультиплексорами
  • два квадратурных (синусно-косинусных) декодера (Quad Dec0 & Quad Dec1), каждый с четырьмя входами (или два дополнительных четырехканальных таймера A&B)
  • два четырехканальных таймера общего применения с шестью входами: таймер C с двумя входами и таймер D с четырьмя входами
  • контроллер CAN интерфейса A/B с двухвыводными портами приемопередатчиков
  • два двухпроводных последовательных коммуникационных интерфейса (SCI0 & SCI1) или 4 дополнительных линии GPIO
  • последовательный интерфейс периферии (SPI) с настраиваемым четырехпроводным портом или четыре дополнительные линии GPIO
  • сторожевой таймер контроля функционирования процессора
  • два программируемых входа внешних прерываний
  • четырнадцать программируемых и восемнадцать мультиплексированных универсальных портов ввода/вывода (GPIO)
  • вход принудительного сброса процессора
  • порт JTAG/OnCE™ (встроенного эмулятора) для отладки, не зависящей от тактовой частоты процессора
  • программируемый генератор с ФАПЧ для формирования тактовой частоты ядра DSP.

Обработка прерываний

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

Обычные DSP обрабатывают только небольшой набор прерываний, которые напрямую взаимодействуют с его ядром. В отличие от них, кристалл DSP56F80х поддерживает большое число прерываний. Хотя число адресуемых прерываний ядра DSP56F8хх мало в сравнении с общим число источников прерываний, многоуровневая встроенная схема мультиплексирования обеспечивает полную и гибкую поддержку 64 источников прерываний, каждый из которых может маскироваться и имеет программно устанавливаемый приоритет.

Средства разработки

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

Набор команд общего назначения, который используется в микропроцессорах с развитыми режимами адресации и командами обработки битов, дает разработчику возможность просто освоить программирование. Сложности, характерные для DSP с предшествующими архитектурами, не доставят ему беспокойства. Программный стек обеспечивает неограниченное число прерываний и вложений подпрограмм, а также поддержку передачи параметров и локальных переменных. Опытный программист найдет широкий набор команд арифметических операций и различные одинарные и двойные обращения к памяти, выполняющиеся совместно с арифметическими операциями. Эффективная работа трансляторов для микросхем с архитектурой DSP56800 обеспечивается использованием в микросхемах команд общего назначения.

Порт отладки JTAG позволяет отлаживать микросхему в составе законченной системы пользователя. Через порт можно задать точки останова программы, проверить и изменить содержимое регистров и ячеек памяти, выполнить другие действия по отладке системы.

Motorola предлагает полный набор программных и аппаратных средств быстрой разработки и отладки систем, реализованных на кристаллах семейства DSP568хх. Средства разработки включают:

  • оценочные платы для каждой модификации микросхемы
  • интегрированную среду отладки «Metrowerks Code Warrior» со встроенным крос-компилятором языка С.

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

Motorola разработала новый комплект для разработки встроенного программного обеспечения (Embedded Software Development Kit, SDK), дополняющий существующую среду разработки для DSP568xx. Он формирует программную инфраструктуру, обеспечивающую разработку высокоэффективных программ, полностью переносимых и допускающих повторное использование не только в процессорах семейства DSP568хх, но в будущем и в процессорах с другой архитектурой, поддерживаемой SDK. Этот программный продукт, выпускаемый для цифровых сигнальных процессоров фирмы Motorola, предназначен для ускорения разработки и более быстрого выхода изделий на рынок.

Заключение

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

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

Микросхемы семейства DSP568хх предназначены для применения в недорогих устройствах. Эти микросхемы ориентированы на применение в бытовой технике, для которой необходима низкая стоимость и не требуются высокие параметры. К таким изделиям относятся:

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

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

TECH EXTERNAL

Цифровой сигнальный процессор (DSP) — является основой нашего устройства. Алгоритм кодирования — декодирования информации, прием и передача сигнала из ЭВМ и обратно, выполняются с помощью DSP.

Существует много различных фирм — производителей DSP: Texas Instruments, Analog Devices, Motorola , Philips и т.п. Реализацию нашего устройства можно выполнить практически с помощью DSP любой из перечисленных фирм. Рассмотрим цифровые сигнальные процессоры фирмы Analog Devices, и в частности сигнальный процессор ADSP — 2181.

Процессор ADSP-2181, является развитием семейства ADSP-21xx, 16-разрядных сигнальных процессоров DSP фирмы Analog Devices с фикси-рованной точкой. В ADSP-2181 используется базовая архитектура ядра этого семейства. ADSP-2181 обладает полным объемом внутренней памяти адресуемой на кристалле, расширенным набором внутренних периферийных устройств, высокой производительностью.

Краткая характеристика ADSP — 2181:

• 16 К x 24 бит внутренней памяти программ PM (Program Memory)

• 16 К x 16 бит внутренней памяти данных DM (Data Memory)

• 2 программируемых скоростных последовательных порта

• 16-битный порт прямого доступа к внутренней памяти IDMA (Internal Direct Memory Access)

• 8-битный порт прямого доступа к внешней байтовой памяти BDMA (Byte Direct Memory Access) объемом до 4 Мбайт

• адресное пространство устройств ввода/вывода (2048 адресов)

• 4 сегмента по 8 К слов внешней оверлейной памяти

• внешние прерывания и программируемые выводы флагов

• режим пониженного энергопотребления (Pпот. Перейти на страницу: 1 2

Советуем почитать:

Исследование и разработка программ расчета источников вторичного электропитания на ЭВМ
Название темы дипломной работы «Исследование и разработка программ расчета источников вторичного электропитания (ИВЭ) на ЭВМ». Целью работы является исследование способов орган .

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

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

Цифровые сигнальные процессоры семейства adsp -21 xx обзор семейства adsp -21 xx общие сведения

ЦИФРОВЫЕ СИГНАЛЬНЫЕ ПРОЦЕССОРЫ

СЕМЕЙСТВА ADSP -21 XX

ОБЗОР СЕМЕЙСТВА ADSP -21 XX

Цифровые сигнальные процессоры, или DSP (Digital Signal Processors) представляют собой самостоятельный класс специализированных однокристальных микроЭВМ (процессоров) с RISC-архитектурой (см. § 1.1.5, сгр. 15), предназначенных для решения задач цифровой обработки сигналов, к которым относятся распознавание звука и речи, обработка звуковых сигналов, обработка изображений, цифровая фильтрация, спектральный анализ и др. Цифровая обработка сигналов требует большого объема вычислений, выполняемых, как правило, в реальном времени. Основными отличительными особенностями DSP oт обычных МП являются :

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

применение двух- или трехкаскадного конвейера, позволяющего одно временно обрабатывать две или три команды и сократить длительности командного цикла;

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

==>наличие специальных команд для цифровой обработки сигналов, умножение с накоплением и адресация к кольцевым буферам (для цифровых фильтров); изменение порядка бит адреса на обратный (для быстрого преобразования Фурье); битовые операции (для графики) и др.

В этом разделе рассмотрено семейство процессоров ADSP-21XX фирмы Analog Devices, которые являются наиболее оптимальными по со отношению цена/качество [19]. Кроме того, для семейства ADSP-21XXI имеется полный набор программных и аппаратных средств поддержки разработчика, включающий в себя:

построитель систем для определения архитектуры проектируемой циф ровой системы (размера внешней RAM/ROM памяти, расположения па мяти данных и команд, отображение портов ввода-вывода);

ассемблер, поддерживающий высокоуровневый набор команд и модульное программирование,

линкер, позволяющий оптимально расположить данные и команды по аппаратным узлам проектируемой системы;

эмулятор для проведения интерактивной покомандной эмуляции aппaратной конфигурации, описанной в построителе систем;

программатор ППЗУ для чтения вывода линкера и формирования фай

лов, совместимых с программаторами.

Высокая производительность процессоров достигается благодаря их способности параллельно выполнять большое число микроопераций. В течение одного цикла процессор способен:

сформировать адрес следующей команды;

загрузить из памяти следующую команду;

загрузить два операнда из внутренней и/или внешней памяти;

обновить два указателя на данные;

выполнить вычислительную операцию;

принять и/или передать данные через последовательный порт, через интерфейс ведущим процессором (при наличии) и аналоговый интерфейс (при наличии).

Начальные сведения о структурно-функциональной организации ADSP -21 XX

Для выявления особенностей структурно-функциональной организации процессоров семейства ADSP-21 XX воспользуемся обобщенной схемой, представленной на рис. 3.1.1.

В процессоре можно выделить следующие основные блоки:

=>блок генераторов адресов;

=>блок внутренней памяти;

=>блок последовательного интерфейса;

^устройство обмена между шинами данных;

=>блок интерфейса с ведущим процессором;

=>блок аналогового интерфейса


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

Рассмотрим назначение и состав отдельных блоков обобщенной схемной модели процессора.

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

^арифметическо-логическое устройство^ или ALU (Aritlmietic/Logic Unit),

выполняющее стандартный набор арифметических и логических опера ций, а также примитивы деления;

^умножитель-аккумулятор (накопитель), или MAC (Multiplier/Accumula— tor), обеспечивающий выполнение операции умножения двоичных чисел за один процессорный цикл, а также совмещенных операций сложения с умножением и вычитания с умножением;

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

Вычислительный блок непосредственно обрабатывает 16-разрядные данные следующих типов:

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

 знаковые числа, использующие для записи дополнительный код;

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

 дробный формат 1.15, в котором левый крайний бит числа обозначает его знак, а остальные 15 бит—значение числа. Ниже приведены пределы изменения положительных и отрицательных чисел в дробном формате и их десятичные значения.

Блок генераторов адресов. Этот блок имеется в каждом процессоре. В его состав входят:

 генератор адресов команд, или PS (Program Sequencer), формирующий адреса команд для памяти программ;

 два генератора адресов данных, или DAG1, DAG2 (Data Address Generators), обеспечивающих адресацию при пересылке данных в вычислительное устройство. При этом DAG1 формирует адреса только для памяти данных, позволяя изменять порядок следования бит в адресе. Генератор DAG2 способен формировать адреса как для памяти данных, так и для памяти программ. Оба генератора эффективно используются для адресации кольцевых буферов;

-генератор адреса загрузки, используемый для аппаратного формирования последовательности адресов при начальной загрузке внутренней RAM-памяти программ из внешней ROM-памяти.

Блок внутренней памяти. Этот блок содержат все процессоры, кроме ADSP-2100. В него входят расположенные на кристалле RАМ-память данных и RAM-память (в некоторых сериях микросхем ROM-память) программ, Внутренняя память отображается на часть общего адресного пространства памяти данных и программ. В микросхемах с RAM-памятью программ после включения питание необходимо выполнить начальную загрузку памяти из внешней загрузочной памяти. За один цикл процессор способен считать два операнда из памяти данных и одну команду из памя- ти программ

Таймер. Все процессоры семейства ADSP-21XX содержат програм­мируемый таймер/счетчик с 8-битовым масштабированием. После каждого процессорного цикла содержимое 16-разрядного регистра-счетчика декрементируется и по достижении нулевого значения таймер генерирует прерывание. Затем регистр-счетчик автоматически загружается из 16-разрядного регистра интервала, и процесс повторяется.

Блок последовательного интерфейса. Этот блок имеется в каждом процессоре семейства ADSP-21XX и содержит два двунаправленных последовательных порта SPORTO , SPORT 1 (за исключением ADSP-2105) с двойной буферизацией и устройство компрессии/декомпрессии данных. Порт SPORTO способен работать в многоканальном режиме с организации ей обмена по 24 или 32 управляемым (с возможностью блокировки) каналам. Порт SPORT1 допускает альтернативное использование четырех линий, которые помимо основного назначения могут быть сконфигурированы для приема внешних сигналов запроса прерываний IRQO, IRQ1 и входного флага FI (Flag In) для выдачи выходного флага FO (Flag Out). Каждый порт может тактироваться от собственного таймера или от внешнего источника тактовой частоты. При передаче слов может быть использована, кадровая синхронизация. С помощью устройства компрессии/декомпрессии могут быть реализованы алгоритмы сжатия/восстановления данных по А- и -законам. Различные режимы работы последовательных портов подробно изложены ниже.

Устройство обмена между шинами. Это устройство позволяет произвести обмен данными между шиной данных памяти данных DMD и шиной данных памяти программ PMD.

Блок интерфейса с ведущим процессором. Этот блок имеется в процессорах ADSP-2111, ADSP-21msp50, ADSP-21msp58/59, ADSP-2171, ADSP-2172, ADSP-2173. Блок интерфейса позволяет организовать обмен информацией между ведомым (содержащим этот блок) и внешним ведущим процессорами. Интерфейс с ведущим процессором или HIP (Host Interface Processor) представляет собой параллельный порт-ввода/вывода, к которому подсоединяется ведущий процессор. В качестве ведущего процессора может быть использован как процессор семейства ADSP-21XX, так и другой, например, Intel 8051. Интерфейс HIP состоит из блока управления и ряда регистров, имеет 16-разрядную шину для ввода/вывода данных и 11 управляющих выводов. Интерфейс может быть настроен на обмен 8- или 16-разрядными операндами; на мультиплексированную шину адреса/данных или раздельные шины; на раздельные строб-импульсы для чтения/записи или на строб-импульс чтения/записи и строб-импульс данных.

Блок аналогового интерфейса. Этот блок имеется только в процессорах ADSP-21msp50, ADSP-21msp58/59. Он обладает средствами для работы со смешанными аналого-цифровыми сигналами.

Шины микропроцессора. В микропроцессах семейства ADSP-21XX для связи между внутренними блоками используются пять шин (рис. 3.1.1):

=> 14-разрядные шина адреса памяти данных DMA (Data Memory Address) и шина адреса памяти программ РМА (Program Memory Address), обеспечивающие доступ соответственно к 16-разрядным ячейкам памяти данных и 24-разрядным ячейкам памяти программ. Адрес памяти данных можег быть задан непосредственно в команде (непосредственная адресация) или сформирован генератором адресов данных (косвенная адресация);

=> 16-разрядная шина данных памяти данных DMD (Data Memory Data) и 24-разрядная шина данных памяти программ PMD (Program Memory Date), предназначенные для пересылки из памяти или в память соответственно данных и команд/данных;

==> 16-разрядная шина результатов R (Result), предназначенная для обмена результатами между вычислительными устройствами блока вычислений.

С помощью мультиплексоров (рис. 3.1.1) линии четырех внутренних шин адреса и данных подключены к внешним выводам, образующим соответственно 24-разрядную внешнюю шину данных и 14-разрядную внешнюю шину адреса.

Синхронизация процессора. Для синхронизации процессора могут быть использованы внешние синхроимпульсы, подаваемые на его внешний вывод CLKIN. Однако в большинстве случаев для формирования синхро­импульсов CLKIN к выводам CLKIN и XTAL процессора подключается кварцевый резонатор. Период следования синхроимпульсов CLKIN (или тактовая частота) определяет длительность процессорного (командного)цикла. Для разделения последовательности выполняемых микроопераций в течение процессорного цикла используются внутренние фазовые циклы с частотой, в четыре раза превышающей тактовую частоту (рис. 3.1.2). Процессоры генерируют также внешние синхроимпульсы CLKOUT с периодом следования, равным длительности процессорного цикла.

___Сброс. Операция сброса, выполняемая под действием сигнала RESET == 0, предназначена для начальной загрузки или инициализации процессора, т. е. для приведения всех узлов процессора в исходное состоя ние, при котором возможно нормальное его функционирование. При включении питания на вывод RESET микросхемы должен быть подан сиг| нал RESET == 0. Сброс может осуществляться и при включенном питании.

Сигнал CLKOUT во время сброса генерируется процессором. Со стояние регистров после сброса приводится в графе «Сброс» при рассмот рении их функций по мере изучения структурно-функциональной органи зации процессоров семейства ADSP-21XX. Содержимое памяти программ и данных, задействованной под регистры, после сброса (если он происхо-дат при включенном питании) остается неизменным. Содержимое реги | стров вычислительных устройств после сброса может быть любым. Если состояние вывода управления картой памяти ММАР=0, после сброса происходит начальная загрузка внутренней памяти программ из внешней загрузочной памяти. Для процессоров, содержащих интерфейс с ведущим процессором, сброс может быть также выполнен установкой соответ ствующего бита в статусном регистре HSR7, о чем изложено ниже.

Программная начальная загрузка. Операция программной начальной загрузки, инициируемая установкой бита BFORCE==1 в позиции R^CH-* стемного регистра (табл. 3.12, стр. 187), очищает контекст (содержимое регистров) процессора и инициализирует некоторые регистры (ASTSAT^ SSTAT, IMASK, IFC, RBUF, TBUF). При выполнении этой операции все прерывания маскируются, автобуферизация выключается, последовательные порты и таймер остаются активными.

Внешние прерывания. В процессорах семейства ADSP-21XX пред усмотрены средства для обслуживания внешних запросов на прерывание Сигналы запроса прерывания подаются на отдельный вывод микросхемы IRQ2 и альтернативные выводы IRQO, IRQ1 порта SPORT 1. Запрос на1 прерывание обслуживается, если прерывание не замаскировано (соответ ствующий бит в регистре разрешения прерываний IMASK установлен в 1 и отсутствуют прерывания с более высоким приоритетом. Процессор не

распознает запрос, если он поступил во время исполнения команды, при которой происходит обращение к внешней памяти более одного раза. Прерывания фиксируются, но не обрабатываются в режиме предоставления внешних шин (BG==0) при отключенном режиме GO (см. стр. 189). Обслуживание прерывания состоит в передаче управления по адресу вектора прерывания.

Прерывания могут быть сконфигурированы как прерывания по уровню или как прерывания по спаду.

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

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

Выводы флагов. Входной флаг FI может использоваться в командах CALL и JUMP, характер выполнения которых зависит от состояния флага и определяется следующими условиями: IF FLAG„JN, IF NOT FLAG.JN. При этом учитывается последнее состояние флага. Например, условие IF » FLAG.JN выполнено, если последнее состояние флага FI^L

Выходные флаги FO и FLO, FL 1, FL2 (в процессорах ADSP-21mps50, adsp-2111) могут использоваться для различных целей как выходной сиг­нал.

Интерфейс с памятью

Семейство процессоров ADSP-21XX использует модифицированную гарвардскую архитектуру в которой память данных (RAM) хранит данные, а память программ (RAM и/или ROM) — команды и данные. Все версии кристаллов за исключением ADSP-2100, имеют внутреннюю память /данных и программ. При необходимости объем памяти данных и программ может быть увеличен путем подключения внешней памяти. Если в кристаллах внутренняя память программ выполнена в виде RAM, используется процедура ее начальной загрузки из внешней загрузочной памяти Схема процессора с внешней памятью приведена на рис. 31.3.

Интерфейс с загрузочной памятью. Если во время сброса сигнал управления картой памяти ММАР=0 (Memory Map Control Signal), начальная загрузка внутренней памяти начинается сразу после сброса из внешней загрузочной памяти. При ММАР=1 начальную загрузку следует активизировать программно. Объем загрузочной памяти может составлять до 64К слов. Поэтому при обращении к ней используется 16-разрядный адрес. Как видно из рис. 3.1.3, младшие 14 бит адреса выводятся с 14-разрядной шины адреса (А 13-АО), старшие 2 бита — со старших двух линий шины данных (D23-D22)* Байт данных считывается со средних восьми бит шины данных.

Загрузочная память состоит из восьми страниц длиной до 8К Четвертый байт страницы содержит информацию о длине страницы:

Интерфейс с памятью программ. В процессоре ADSP-21XX предусмотрены средства для обращения к внутренней и внешней памяти программ общим объемом 16К двадцатичетырехбитовых слов.

При обращении к внешней памяти программ используются:

=>выход PMS процессора, на который выставляется строб PMS = 0 для ак-

тивизации памяти программ;

=>выходы RD/WR процессора для чтения/записи памяти программ;

14-битовая внешняя шина адреса (ВША) для адресации;

24-битовая внешняя шина данных (ВШД) для вывода данных

При одновременном обращении к внешней памяти программ и памяти данных, данные из памяти программ считываются первыми. С помощью трех бит PWAITO-PWAIT2 в позициях SRO-SR2 системного регистра (табл. 3.1.2) задается число циклов ожидания для памяти программ. При обращении к внутренней памяти программ сигналы PMS, DMSj RD, WR имеют высокий уровень, исключающий возможность активизации микросхем внешней памяти, а внешние шины адреса и данных прини мают высокоомное состояние. В этом режиме процессор способен за один цикл загрузить два операнда и следующую команду. Отображение адресного пространства памяти программ зависит от состояния вывода управления картой памяти ММАР. При ММАР=0 в процессе начальной загрузки внутренней памяти программ внутренняя

память (например, объемом 2К) располагается по младшим адресам, а внешняя (14К) —- по старшим; при ММАР=1 — наоборот.

Интерфейс с памятью данных. В процессоре ADSP-21XX предусмотрены средства для обращения к внутренней и внешней памяти данных общим обьемом 16K шестнадцатибитовых слов.

При обращении к внешней памяти данных используются (рис. 3.1.3):

=>вывод DMS процессора, на который выставляется строб DMS == 0 для активизации памяти данных;

^выходы RD/WR процессора для чтения/записи памяти данных;

^14-битовая внешняя шина адреса (ВША) для адресации;

^24-бшовая внешняя шина данных (ВШД) для вывода 16 старших бит данных.

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

Предоставление внешних шин периферийным устройствам. Для получения контроля над внешними шинами периферийное устройство посылает сигнал запроса шины BR==0 (Bus Request), который в текущем или следующем цикле распознается процессором. В следующем цикле после распознавания процессор устанавливает сигнал предоставления шины BG== О (Bus Gram), переводит шины адреса и данных в высокоомное состояние, а выводы PMS, DMS, RD, WR — в единичное состояние. После этого правление шинами передается периферийному устройству. В режиме предоставления шин последовательные порты и интерфейс HIP остаются активными.

Разрешение режима GO (биг G„MODE==1 в позиции MSTAT.6 ре гистра режима и статуса процессора — стр. 208) позволяет процессору выполнить команды из внутренней памяти программ в то время, когда шина предоставлена другому устройству. Процессор перейдет в состояние ожидания только тогда, когда потребуется доступ к внешней памяти. При выключенном режиме GO процессор всегда переходит в состояние ожидания во время предоставления шины другому устройству. Внутреннее состояние процессора при этом не изменяется. После удовлетворения запроса процессор возобновляет работу с того места, где она была прервана.

После сброса периферийным устройством сигнала запроса шины (BR -= 3) процессор отвечает сбросом сигнала предоставления шины (BG== 1) и возвращает себе контроль над внешними шинами.

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

DSP (Digital Signal Processor)

DSP (Digital Signal Processor) (в переводе с английского языка, означает цифровой сигнальный процессор (ЦСП) или, его еще называют, как сигнальный микропроцессор (СМП) с его архитектурой, оптимизированной для оперативных потребностей цифровой обработки сигналов) — специализированный микропроцессор, особенностью работы которого является поточный характер обработки больших объемов данных в реальном масштабе времени и, обычно, с интенсивным обменом данных с другими внешними устройствами. (Нужен для преобразования сигналов, представленных в виде цифр, как правило, в режиме реального времени).

Реальный масштаб времени (реальное время работы, Real Time Scale) – это такой режим работы устройства, при котором регистрация и арифметическая обработка (а при необходимости и анализ, визуализация, сохранение, систематизация, синтез и передача по каналам связи) данных производится без потерь информации, поступающей от ее источника

Содержание

Описание

Цель DSP

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

Цифровая обработка

Алгоритмы цифровой обработки сигналов обычно требуют быстрое выполнение большого количество математических операций и неоднократность на ряде выборок данных. Сигналы (возможно, от аудио или видео) постоянно преобразовываются из аналогового в цифровой сигнал, используются в цифровой форме, и затем преобразовываются назад в аналоговую форму. У многих приложений DSP есть ограничения на задержку; т.е. для системы, чтобы функционировать, операция DSP должна быть завершена в некотором установленном времени и задержана, обработка не жизнеспособна.

Преимущества DSP

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

Архитектура

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

Архитектура и ее особенности

Архитектура ЦСП имеет ряд особенностей, в отличии от микропроцессоров общего применения. Она заключается в максимальном ускорении выполнения однотипных задач по цифровой обработке сигналов (поиск сигналов, преобразование Фурье и т.п.). В математике такие задачи приводятся к более простым по правилу «разделяй и властвуй». В нашем случае таким типом подзадач является поэлементное произведение элементов многокомпонентных векторов действительных чисел(это числа, которые могут быть записаны в виде конечной или бесконечной (периодической или непериодической) десятичной дроби.) и последующему суммированию результатов произведения.

Исходя из этого, процессоры специально оптимизируют под определенные операции(в нашем случае под перемножение и суммирование). В следствии чего растет производительность и быстродействие. Первоочередно ЦСП направлены на многократное умножение с очень быстрым расчетом адресов перемножаемых элементов массивов:

  1. «Умножение с накоплением»(как правило, реализована аппаратно и выполняется за один машинный цикл) (M = M + X × Y), где M, X и Y — элементы действительных массивов с автоматическим расчетом адресов элементов массивов. (MAC)
  2. Аппаратная реализация многократного повторения заданного набора команд.
  3. Использование нескольких портов обращения к памяти DSP для одновременного(за один машинный такт) выбора команд и двух аргументов операции для быстрого выполнения умножения с накоплением.
  4. Способность к векторно-конвейерной обработки при помощи генераторов адресных последовательностей.

Однако архитектура изменялась из-за ограниченности аппаратных ресурсов первых ЦСП. Память делилась на независимые сегменты, детерминированная работа команд(время выполнения известно) дала начало планированию работы в реальном времени, из-за маленького конвейера несанкционированные переходы происходят гораздо быстрее чем в универсальных, редкий набор регистров и инструкций.

Архитектура программного обеспечения

По стандартам процессоров общего назначения, системы команд DSP часто некорректны. Один смысл для архитектуры программного обеспечения — то, что оптимизированные руками подпрограммы ассемблерного кода, обычно, упаковываются в библиотеки для повторного использования, вместо того, чтобы полагаться на усовершенствованные технологии компилятора, чтобы обработать существенные алгоритмы.

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

Аппаратная архитектура

Архитектура памяти

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

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

Адресация и виртуальная память

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

  • Аппаратные средства адресации по модулю
    • Разрешает реализацию круговых буферов, без необходимости тестировать на упаковку
  • Бит-реверсная адресация, специальный способ адресации
    • Полезно для вычисления быстрого преобразования Фурье
  • Исключение блока управления памятью
  • Модуль вычисления адреса памяти

Примеры: TMS320Cхххх, ADSP-21XX

Особенности ЦСП

Характерные особенности ЦСП (DSP):

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

Основные параметры ЦСП

Основные параметры ЦСП:

  1. Тип арифметики(с фиксированной/плавающей точкой).
  2. Разрядность данных(для фиксированной/плавающей — 16/32 бита, соответственно).
  3. Быстродействие.
  4. Тактовая частота(внутренняя и/или внешняя) и Время командного цикла(время выполнения одного этапа команды).
  5. Количество выполняемых команд за единицу времени.
  6. Количество выполняемых операций за единицу времени (MIPS).
  7. Количество выполняемых операций с плавающей точкой за единицу времени.
  8. Количество выполняемых операций умножения с накоплением за единицу времени.
  9. Виды (RAM и флэш-память) и объём внутренней памяти(сколько данных ЦСП может обработать без обращения к внешней памяти).
  10. Адресуемый объём памяти.
  11. Количество и параметры портов ввода-вывода.
  12. Состав внутренних дополнительных устройств(таймеры, компрессоры и тд).
  13. Напряжение питания и потребляемая мощность.
  14. Состав и функциональность средств разработки и поддержки.
  15. Перечень языков программирования, для которых есть компиляторы под данную систему;
  16. Наличие и возможности средств отладки готовых программ;
  17. Доступность документации и технической поддержки;
  18. Наличие библиотек стандартных подпрограмм и математических функций;
  19. Наличие, доступность и возможности совместимых устройств — АЦП, ЦАП, контроллеры питания и т. д.
  20. Допустимые параметры окружающей среды.
  21. Другие, в зависимости от назначения.

Сферы применения

Выделяют достаточно много сфер применения ЦСП.

Сферы применения DSP:

  1. Коммуникации (Кодирование информации и/или уплотнение каналов(спектральное))
  2. Распознавание чего-либо
  3. Анализатор спектра (прибор для наблюдения и измерения относительного распределения энергии электрических (электромагнитных) колебаний в полосе частот) и т.д.

Зачастую, это сферы, где необходима быстродействующая обработка каких либо сигналов (информации).

История

До того, как появились микросхемы DSP, множество приложений DSP были реализованы, используя секционные микропроцессоры. BS Chip(разрядно-модульный кристалл) AMD 2901 со своим набором компонентов пользовался популярностью. AMD также создавала аналогичные модели, однако, очень часто обнаруживались характерные особенности конкретной разработки. Эти секционные архитектуры временами содержали периферийную микросхему множителя. Примерами этих множителей был ряд от TRW, включая TDC1008 и TDC1010, некоторые из которых включали аккумулятор, обеспечивая необходимую функцию умножения с накоплением (MAC) .

В 1976г. году Ричард Уиггинс предложил концепцию «Speak & Spell» Полу Бредлову, Ларри Брантингхаму, и Джину Францу в научно-исследовательском центре Texas Instruments (Даллас). Два года спустя, в 1978г., они создали первую «Speak & Spell» с технологической главной центральной частью, являющейся TMS5100, как первый цифровой сигнальный процессор отрасли. Это также влекло другие этапы, будучи первой микросхемой, для использования кодирования с линейным предсказанием, чтобы выполнить речевой синтез.

В свою очередь, Intel 1978г. производил «процессор аналогового сигнала»-2920. Он включал конвертер из аналогового сигнала в цифровой и обратно, на микросхеме с встроенным внутрь сигнальным процессором, но он не обладал аппаратным множителем и не пользовался спросом на рынке. В 1979г. AMI выпускал периферийный прибор обработки данных-S2811. Он создавался, как связующее устройство микропроцессора, со способностью настройки владельцем. S2811, аналогично, не пользовался спросом на рынке.

В 1980г. реализован первый автономный процессор: DSP – NEC µPD7720 и AT&T DSP1 – были представлены на МК(Международной Конференци) Твердотельных схем ’80. Эти два процессора вдохновили исследование в телекоммуникациях PSTN.

АльтамираDX1 — другое раннее DSP, используемое квадрафонические целочисленные конвейеры с задержанными ответвлениями и предсказаниями ветвлений.

TMS32010 — еще один ЦСП, произведенный Texas Instruments (TI), и представленный в 1983г., обладал большим успехом. Он основывался на Гарвардской архитектуре, и так содержал индивидуальную инструкцию и память данных. Он обладал специальной системой команд с инструкциями: загрузка с накоплением или умножение с накоплением. Он умел работать над 16-ти разрядными числами и для умножения на это требовалось 390 нс. TI — теперь лидер рынка в ЦСП общего назначения.

Около пяти лет назад начало распространяться 2-е поколение ЦСП. У них было 3-и памяти для хранения 2-х операндов в одно и то же время, и включали аппаратные средства, для ускорения сложных циклов, а также существовал наименьший адресуемый элемент, способный к адресации цикла. Какие-то из них управляются на 24-х-разрядных переменных и похожей модели, но для MAC затратилось 21 нс. Это такие устройства, как: AT&T DSP16A, Motorola 56000.

Основное улучшение 3-го поколения — разработка специальных модулей и инструкций в канале передачи данных, или редкое использование в роли сопроцессоров. Эти модули позволили достаточно сильное прямое аппаратное ускорение, определенных, но тяжело решаемых математических проблем, как преобразование Фурье или операции над матрицами. Некоторые микросхемы, как Motorola MC68356, даже включали больше, чем одно ядро процессора, для параллельной работы.

Четвертое поколение лучше всего характеризуется изменениями в системе команд и кодировании/декодировании инструкции. Были добавлены расширения SIMD, VLIW и появились суперскалярная архитектура. Как всегда, тактовые частоты увеличились, MAC потребовал 3 нс.

SHARC — cемейство программно- и аппаратно- совместимых 32-разрядных процессоров обработки сигналов

32-разрядные процессоры семейства ADSP-2106x (SHARC — Super Harvard ARchitecture Computer) были представлены широкой публике в 1994 году, практически одновременно с описанными выше 16-разрядными процессорами семейства ADSP-218x. Именно в это время достижения технологии позволили реализовать в кремнии новую высокопроизводительную архитектуру, гармонично сочетающую в себе высокую скорость вычислений, большой объем внутренней памяти, богатые возможности обмена информацией с внешним миром, невысокое энергопотребление и удобство программирования. Скептики утверждали, что представленная на рынок архитектура будет неработоспособной из-за огромного количества транзисторов на кристалле (более 30 миллионов), которые будут естественным образом выходить из строя, однако практика показала иное. На сегодняшний день ANALOG DEVICES серийно выпускает более 50 модификаций этих процессоров, что позволило фирме по праву занять лидирующее положение на мировом рынке 32-разрядных цифровых процессоров для обработки сигналов.

Остановимся более подробно на архитектуре, хотя и она была предметом многих публикаций [1, 4, 5]. В отличие от ряда других существующих на мировом рынке 32-разрядных процессоров обработки сигналов, SHARC-архитектура практически не имеет «узких мест», ограничивающих ее производительность. Все процессоры этого семейства состоят из пяти основных частей — высокопроизводительного ядра, двупортового статического ОЗУ большого объема, мощного процессора ввода/вывода и порта связи с внешним миром, объединенных внутренними разделенными шинами команд и данных:

Ядро имеет в своем составе:

  • вычислительный блок, состоящий из трех независимых параллельно работающих вычислительных устройств, осуществляющих выполнение арифметических и логических операций над данными, хранящимися в специальном регистровом файле (организованном как 2 комплекта из 16-ти одинаковых 40-разрядных регистров), включая двойные операции умножения с накоплением, выполняемые за один машинный цикл, операции манипуляции битами, сдвига и т. д. Наличие регистрового файла с двумя равноправными переключаемыми комплектами регистров позволяет, с одной стороны, обеспечить быструю реакцию на прерывания, что необходимо в системах реального времени, а с другой стороны — реализовать эффективные компиляторы языков программирования высокого уровня, что существенно упрощает процесс программирования процессоров этого семейства;
  • два независимых генератора адреса данных, которые так же, как и в 16-разрядных процессорах, обеспечивают вычислительному блоку удобную работу и гибкие режимы адресации памяти, предоставляют одновременный доступ к двум указанным массивам блока внутренней памяти, имеют богатые возможности организации в памяти кольцевых буферов;
  • устройство управления, позволяющее вместе со встроенным кэшем команд глубиной 32х48 бит, осуществлять выборку и исполнение практически всех команд (включая многофунциональные) за один машинный цикл, быструю реакцию на прерывания и отработку передачи управления в циклах и подпрограммах без потерь машинного цикла.

Двупортовое ОЗУ состоит из двух блоков памяти, каждый из которых можно использовать как для хранения 48-разрядных команд, так и данных, допускающих организацию в виде 8-, 16- и 32-разрядных слов. Несомненным преимуществом архитектуры внутреннего ОЗУ является то, что доступ к информации, хранящейся в нем, может быть одновременно и с одинаковым успехом осуществлен как со стороны ядра процессора, так и из любого внешнего устройства (подключенного непосредственно к внешней шине процессора, либо к последовательному порту, либо к одному из линк-портов, либо к другому процессору).

Процессор ввода/вывода состоит из :

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

Порт связи с внешним миром состоит из:

  • мультиплексоров адреса/данных внутренних шин, выводящих «на свет» внутренние шины процессора и флаги ввода/вывода с поразрядным управлением;
  • хост-порта, позволяющего осуществить организацию многопроцессорной системы с архитектурой «ведущий-ведомый»;
  • мультипроцессорного интерфейса, позволяющего без дополнительных аппаратных затрат реализовать одновременную работу до шести процессоров семейства на одной шине. При этом все процессоры объединяются в единый массив памяти со сквозной адресацией.

Помимо вышеописанного в состав каждого процессора входит стандартный JTAG-порт, с помощью которого осуществляется отладка реальных систем в режиме внутрисхемной эмуляции.

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

Процессоры ADSP-21061, сохраняя аппаратную совместимость с процессорами ADSP-21060/62, имеют меньший объем памяти и не имеют линк-портов.

Процессоры модели ADSP-21065L стоят несколько особняком, поскольку имеют только программную совмесимость с другими процессорами семейства, наименьший объем памяти с некоторыми ограничениями гибкости организации. Однако эти ограничения с лихвой компенсируются самой высокой скоростью работы, наличием выхода ШИМ-модулятора, дополнительными аппаратными возможностями последовательных портов и очень привлекательной ценой — всего 10 долларов (при поставках в партии от 100 тыс. шт без учета стоимости доставки, таможенных пошлин и НДС).

Описанная выше архитектура получила название SISD SHARC — Single Instruction, Single Data. Иными словами, в рамках одной команды может быть обработан только один комплект данных — до трех операций с плавающей точкой. Однако даже с появлением новых технологий и переходом на изготовление кристаллов с меньшей геометрией, SISD-архитектура не позволяет существенно увеличить производительность вычислений, ограничиваясь величиной около 200 MFLOPS (миллионов операций с плавающей точкой в секунду). Поэтому в 1999 году ANALOG DEVICES представила 32-разрядные процессоры новых поколений.

32-разрядные SHARC-процессоры обработки сигналов новых поколений

ADSP-2116x — SIMD SHARC (Single Instruction, Multiple Data) — процессор производительностью 600–1200 MFLOPS. Такой рост производительности стал возможен как за счет применения новой технологии с меньшей геометрией кристаллов, так и за счет дополнения вычислительного блока еще тремя вычислителями и двумя наборами регистров. Это позволило процессору выполнять до шести операций с плавающей точкой в рамках машинного цикла. Процессоры строятся по новейшей технологии с питанием ядра напряжением 2,5 В. Первый процессор данного семейства, ADSP-21160M, должен выйти в серийное производство в 2000 году.

ADSP-TS-001 (TigerSHARC) — принципиально новое поколение процессоров обработки сигналов, позволяющее эффективно работать как с 8-ми, 16-ти и 32-разрядными данными в целочисленном формате, так и с 32-разрядными данными в формате с плавающей точкой. При этом максимальная производительность вычислений будет варьироваться в пределах от 1200 MFLOPS для 32-разрядных данных в «плавающем» формате (формате с плавающей точкой) до 8 миллиардов операций в секунду для 8-разрядных данных в целочисленном формате. Первые образцы этих процессоров ожидаются во второй половине 2000 года.

Добавить комментарий