Трехшинная Гарвардская архитектура
Ее особенность состоит прежде всего в том, что в отличии от привычных нам двух шин: шины адреса и шины данных, а также одного банка памяти, DSP имеет как минимум 6-7 различных шин и 2-3 банка памяти. Эта особенность имеет своей целью максимально ускорить выполнение операции умножения с сохранением результата, которая, несомненно, является наиболее употребляемой и ресурсоемкой при цифровой обработке сигналов. Архитектура DSP позволяет за один машинный цикл произвести:
1. выборку команды посредством шины адреса программ и шины данных программ;
2. выборку двух операндов для операции умножения посредством двух шин адреса данных;
3. занесение операндов в аккумуляторы посредством двух шин данных;
4. операцию умножения;
5. сохранить результат в аккумуляторе.
Таким образом, трехшинная Гарвардская архитектура позволяет выполнить практически любую операцию за один машинный цикл.
B качестве примера эффективности использования DSP при реализации алгоритмов цифровой обработки сигналов можно привести следующий факт: время выполнения комплексного 1024-точечного преобразования Фурье составляет 20 мс для 486DX2 66 МГц (32-разрядный) и 3.23 mc для 24-разрядного 33 МГц DSP56001 фирмы Motorola или 3.1 мс для 32- разрядного 33 МГц DSP TMS320C30 с плавающей арифметикой фирмы Texas Instruments.
Однако, как уже упоминалось, процессоры цифровой обработки сигнала имеют отличием не только высокую производительность, измеряемую в быстроте выполнения операций умножения/аккумуляции (MIPS - миллионы команд в секунду), но и такие характеристики, как последовательность выполнения программ, арифметических операций и адресации памяти, позволяющие сократить до минимума непроизводительные затраты времени. В целом DSP отличается от других типов микропроцессоров и микроконтроллеров по следующим пяти основным признакам:
1. Быстрая арифметика.
DSP - процессор должен осуществлять выполнение за один цикл операций умножения, умножения с аккумуляцией, циклический сдвиг, а также стандартные арифметические и логические операции.
2. Расширенный динамический объем для операции умножения/аккумуляции.
Операция вычисления суммы некой последовательности значений является фундаментальной для алгоритмов, реализуемых на DSP. Защита от переполнения необходима для избежания потери данных.
3. Выборка двух операндов за один цикл.
Очевидно, что для большинства операций, выполняемых DSP, необходимы два операнда. Таким образом, для достижения максимального быстродействия процессор должен быть способен производить одновременную выборку двух операндов, что требует также наличия гибкой системы адресации.
4. Наличие аппаратно реализованных циклических буферов(встроенных и внешних).
Широкий класс алгоритмов, реализуемых на DSP требует использования циклических буферов. Аппаратная поддержка циклического возврата указателя адреса или модульная адресация уменьшает непроизводительные затраты процессорного времени и упрощает реализацию алгоритмов.
5. Организация циклов и ветвлений без потери в производительности.
Алгоритмы DSP включают очень много повторяющихся операций, которые могут быть реализованы в виде циклов. Возможность организации последовательности выполнения программы кодов в цикле без потери производительности отличают DSP от других процессоров. Аналогично, потеря времени при выполнении операции ветвления по условию также недопустима при цифровой обработке сигналов.
Не следует, однако, думать, что DSP могут полностью заменить процессоры общего назначения. Как правило, процессоры цифровых сигналов имеют упрощенную систему команд, не позволяющие выполнить операции, не связанные с математическими вычислениями с такой же эффективностью, как и процессоры общего назначения. Попытка же сочетания в одном процессоре мощность при математических вычислениях и гибкость при операциях другого рода приводит к неоправданному повышению себестоимости. Поэтому DSP используют чаще в виде сопроцессоров (математических, графических, акселераторов и т.д.) при главном процессоре либо в качестве самостоятельного процессора, если этого достаточно.
DSP фирмы Motorola
Фирмой Motorola в настоящее время выпускается три семейства Цифровых Процессоров Сигналов. Это серии DSP56100, DSP56000 и DSP96000. Все микросхемы приведенных серий основываются на архитектуре DSP56000 и различаются разрядностью (16, 24, 32 бит соответственно) и некоторыми встроенными устройствами. Таким образом достигается совместимость микросхем всех трех семейств снизу вверх. Все DSP фирмы Motorola построены по идентичной трехшинной Гарвардской архитектуре, описанной ранее, с большим количеством составных частей, портов, контроллеров, банков памяти и шин, работающих параллельно с целью достижения максимального быстродействия.
Передача данных происходит по двунаправленным шинам данных (одной для DSP56100 (XDB) и двум для DSP56000 и DSP96000 (XDB и YDB)), шине данных программ (PDB) и общей шине данных (GDB). Кроме того, у DSP96000 присутствует отдельная шина прямого доступа к памяти (DDB). Передача данных между шинами происходит через внутреннее устройство управления шинами.
Адресация осуществляется по двум однонаправленным шинам: шине адреса данных и шине адреса программ.
Блок манипуляции битами позволяет гибко управлять состоянием любого бита в регистрах и ячейках памяти. Наличие такой возможности является преимуществом по отношению к DSP других пользователей.
Арифметико-логическое устройство (АЛУ) выполняет все арифметические и логические операции и имеет в своем составе входные регистры, аккумуляторы, регистры расширения аккумуляторов (8-битные, допускающие 256 переполнений без потери точности), параллельный одноцикловой блок умножения с сохранением (МАС), а так же сдвиговые регистры.Гибкая система команд позволяет выполнить АЛУ за один цикл команды умножения, умножения с сохранением результата, суммирования, вычитания, сдвига и логические операции. Характерной особенностью DSP фирмы Motorola является возможность сдваивания входных регистров АЛУ и увеличения таким образом разрядности обрабатываемых чисел. Еще одной важной особенностью является наличие операции деления, зачастую отсутствующей у других производителей и заменяемой операцией умножения на обратное число, что приводит к потере точности.
Блок формирования адреса выполняет все вычисления, связанные с определением адресов в памяти. Этот блок работает независимо от остальных блоков процессора. За один цикл могут производиться две операции считывания из памяти или одна операция записи. DSP фирмы Motorola обладают чрезвычайно мощной мощной системой адресации, позволяющей производить практически любые манипуляции с данными за одну команду. Это важная особенность выгодно отличает DSP, выпускаемые фирмой, от аналогов. Адресация по модулю удобна для организации кольцевых буферов без проверки выхода за границу, что позволяет избегать непроизводительных затрат времени. Возможность адресации с инверсией значащих битов облегчает реализацию БПФ.
Блок управления выполнением программ содержит 6 регистров, среди которых Указатель адреса цикла и Счетчика циклов, позволяющие организовать аппаратную поддержку организации циклов в DSP фирмы Motorola, при которой не тратятся дополнительные машинные циклы на проверку условия выхода из цикла и изменения счетчика цикла. В команде организации цикла DO явно указывается количество повторений.
Системный стек представляет из себя отдельную часть из 15 слов ОЗУ, и может хранить информацию о 15 прерываниях, 7 циклах или 15 выходах в подпрограмму. Данные из стека читаются за один цикл уменьшая таким образом непроизводительные затраты времени процессора.
Главной отличительной особенностью DSP фирмы Motorola является наличие у всех микросхем внутрикристального эмулятора, позволяющие производить отладку программ без использования дополнительных аппаратных средств. Таким образом нет необходимости в покупке дорогостоящих отладочных средств. Эмулятор позволяет производить запись/считывание регистров и ячеек памяти, установку точек останова, пошаговое выполнение программ и другие действия посредством подачи команд по 4- проводной шине.
Для снижения потребления энергии в моменты, когда не производится вычисления, предусмотрены два режима с пониженным энергопотреблением : STOP и WAIT.
Для работы совместно с другими процессорами и каналами прямого доступа к памяти предусмотрен встроенный HOST-интерфейс.
Обладая всеми вышеперечисленными свойствами, необходимыми для цифровой обработки сигналов, DSP фирмы Motorola имеют чрезвычайно мощную и гибкую систему команд, позволяющую пользователю удобно и эффективно работать с процессорами.
Семейство DSP96000
Семейство DSP DSP96000 имеет 32-битную архитектуру и поддерживает операции с плавающей точкой. Микросхемы семейства предназначены для компьютерных систем Multimedia. DSP этой серии могут работать и как самостоятельные микросхемы, и через два независимых 32-битных порта могут последовательно обмениваться данными с другими процессорами.
Микросхемы семейства имеют в своем составе 6 банков памяти, 8 шин и 4 автономных вычислительных блока: АЛУ, блок управления программой, двойной блок генерации адреса и встроенный двухканальный контроллер прямого доступа к памяти.
Характеристики микросхем семейства DSP96000:
· 49.5 MIPS при 40 МГц
· 60 MFLOPS при 40 МГц, цикл 50 нс
· 32-битная организация
· 2 банка памяти данных ОЗУ 512х32 бит
· 2 банка памяти данных ПЗУ 512х32 бит
· ОЗУ программ 1024х32 бит
· загрузочное ПЗУ объемом 56 байт
· адресуемая внешняя память 2х232 32-битных слов памяти данных и программ
· встроенный эмулятор
· 2 канала прямого доступа к памяти
· 2 канала обмена с внешними процессорами
· корпус с 223 выводами в корпусе PGA или QFP
DSP фирмы Texas Instruments
DSP этой фирмы представлены следующими микропроцессорами: TMS 32010, TMS 320C20, TMS 320C25, TMS 320C30, TMS 320C40, TMS 320C50.