Проектирование с использованием процессоров Analog Devices.
Знакомство с семействами процессоров Analog Devices
Данная статья открывает цикл материалов, посвященных вопросам разработки приложений на основе цифровых сигнальных процессоров (ЦСП) компании Analog Devices. В последующих статьях цикла мы обсудим общие принципы работы со средой проектирования программного обеспечения VisualDSP++ и рассмотрим несколько примеров реализации алгоритмов фильтрации и обработки звука, а также ряда других типичных задач Александр сотников цифровой обработки сигналов (ЦОС). А начнем с обзора архитектуры
к. т. н. и основных характеристик ЦСП Analog Devices, адресованного прежде
alexander.sotnikov@analog.com.ru всего тем, кто только начинает знакомиться с ними.
введение
Компания Analog Devices наряду с Texas Instruments и Freescale Semiconductors (бывшее подразделение компании Motorola) вот уже более 20 лет является одним из крупнейших производителей ЦСП (англоязычный вариант аббревиатуры DSP, Digital Signal Processors). За это, достаточно большое с точки зрения развития современной микроэлектроники время процессоры компании прошли путь от весьма простого (по сегодняшним меркам) устройства, быстродействия которого хватало разве что для несложных алгоритмов обработки звуковых сигналов в реальном времени, до сложных систем на кристалле с объемами памяти от сотен килобит до нескольких мегабит и богатым набором периферии, способных решать задачи в различных областях.
Analog Devices была одной из первых ком-паний-производителей ЦСП, открывшей представительство в России. Этот факт, а также грамотная маркетинговая политика на российском рынке, активное взаимодействие с ведущими предприятиями и вузами страны и технические характеристики самих процессоров объясняют их большую популярность среди отечественных разработчиков.
На данный момент ЦСП от Analog Devices применяются в очень широком спектре производимых в России устройств: в системах безопасности и видеонаблюдения, промышленных измерительных приборах, во всевозможных устройствах проводной и бес-
проводной связи, системах контроля и управления промышленным оборудованием и во многих других областях. Также следует отметить, что среди российских разработчиков популярность ЦСП от ADI, особенно таких универсальных, как семейство процессоров Blackfin, постоянно растет.
Семейство ADSP 21xx
Компания Analog Devices, первоначально специализировавшаяся исключительно на производстве аналоговых компонентов и микросхем ЦАП/АЦП, в 1986 г. вышла на рынок ЦСП, где до этого господство-
вала компания Texas Instruments, с однокристальным процессором ADSP 2100. Этот процессор положил начало семейству 16-битных процессоров с фиксированной точкой (ФТ), основанных на классической модифицированной гарвардской архитектуре.
В состав ядра ADSP 21xx, как показано на рис. 1, входят:
• три вычислительных узла — АЛУ, умножитель (MAC) и устройство сдвига;
• программный автомат, отвечающий за формирование адреса исполняемой команды, ее выборку из памяти и декодирование;
• два генератора адресов данных, вырабатывающие адреса для обращения к данным в памяти данных (ПД) и памяти программ (ПП);
• набор шин для связи функциональных блоков ядра и периферии между собой. Вычислительные узлы обеспечивают все
вычислительные операции в процессоре. Каждый из них имеет собственный набор из входных регистров и регистра результата. Входными операндами в операциях вычислительных узлов могут являться данные из памяти программ или памяти данных, помещенные во входные регистры узла, или результат операции любого из узлов, доступный по шине результатов (R-шина).
Ядро соединено с внутренней памятью двумя наборами шин, каждый из которых включает в себя шину адреса и шину данных. Поскольку модифицированная гарвардская архитектура подразумевает возможность хранения в памяти программ как команд, так и данных, в ранних представителях семейства ядро работало с памятью программ на удвоенной частоте и обращалось к ней дважды за один процессорный цикл: первый раз для выборки операнда, второй — для выборки команды. Для обращения к внешней памяти выполняется мультиплексирование шин.
Набор интегрированных периферийных модулей в процессорах ADSP 21xx весьма ограничен и, в зависимости от конкретной модели, может включать в себя последовательный порт, таймер, программируемые линии ввода/вывода (флаги) и контроллер DMA.
Сейчас компания Analog Devices поддерживает только два подсемейства ADSP 21xx — ADSP 218x и ADSP 219x. В последнем из них разработчики отошли от классической архитектуры и применили ряд решений, уже апробированных на тот момент в процессорах семейства SHARC. В частности, вместо выделенных входных регистров и регистров результата вычислительные узлы работают с регистровым файлом. Вместо работы с памятью программ на удвоенной часто-
те одновременное выполнение операций над операндами из памяти данных и памяти программ происходит за счет применения кэша команд. Выделенные блоки памяти программ и памяти данных в ADSP 219x заменены четырьмя унифицированными блоками, любой из которых может быть подключен к шинам памяти программ и памяти данных через два мультиплексора. Все периферийные модули процессоров ADSP 219x и контроллер DMA работают под управлением процессора ввода/вывода, имеющего собственный набор шин адреса и данных. Структурная схема типичного представителя подсемейства ADSP 219x показана на рис. 2.
На сегодняшний день архитектура процессоров ADSP 21xx морально устарела, и, несмотря на то, что снятие микросхем ADSP 218x и ADSP 219x с производства планируется не ранее чем через 5-7 лет, компания Analog Devices активно стимулирует пользователей к переходу на современные процессоры семейства Blackfin.
Семейство SHARC ADSP-21xxx
Семейство SHARC ADSP 21xxx состоит из четырех поколений недорогих 32-битных процессоров с плавающей точкой (ПТ), основанных на «супергарвардской архитекту-
Рис. 3. Архитектура процессора ADSP-21061
ре» (Super HArvard ARchitecture, SHARC). В архитектуре SHARC концепция использования раздельных шин памяти данных и памяти программ расширена за счет добавления процессора ввода/вывода (IOP, I/O Processor) с эксклюзивным набором шин. Все процессоры SHARC независимо от поколения и порядкового номера имеют следующие общие архитектурные компоненты:
• Один или два вычислительных элемента, каждый из которых содержит умножитель, АЛУ и устройство сдвига, поддерживающие операции над 32-разрядными операндами с ПТ формата IEEE, а также 10-порто-вый регистровый файл данных.
• Программный автомат, взаимодействующий с кэш памятью команд, интервальным таймером и двумя генераторами адреса данных (DAG1 и DAG2).
• Процессор ввода/вывода с интегрированным контроллером DMA и набором портов для подключения внешних устройств.
• Двухпортовая память SRAM, к которой одновременно может обращаться ядро и процессор ввода/вывода.
• Порт JTAG для внутрисхемной эмуляции. Наличие в процессоре трех шин — памяти
данных (ПД), памяти программ (ПП) и ввода/вывода (IO), а также возможность обращения по шине ПП к данным позволяют за один цикл выбирать из памяти два операнда данных (один из ПП, другой из ПД), выбирать одну команду из кэш-памяти и выполнять пересылку в режиме DMA.
История первого поколения семейства SHARC ADSP 2106x берет начало в 1994 г.
с процессора ADSP 21060, который, в свою очередь, был создан на базе не получившего широкого распространения более раннего процессора ADSP 21020. Процессоры SHARC первого поколения основаны на принципе SISD (Single Instruction Single Data), то есть выполняют один поток команд, оперируя одним потоком данных. Их производительность была довольно высокой для своего времени и достигала 66 МГц/198 MFLOPs. Среди периферийных модулей процессоров ADSP 2106x были аппаратные средства для организации мультипроцессорных кластеров с общей шиной, высокоскоростные линк-порты для связи процессоров по схеме «точка-точка», последовательные порты и интегрированный SDRAM-контроллер. Схема типичного представителя процессоров SHARC первого поколения приведена на рис. 3.
Архитектурная концепция семейства SHARC претерпела значительное изменение в процессорах второго поколения, ADSP 2116x, выпуск которых был начат в 1998 г. Основное отличие процессоров второго поколения заключается в поддержке режима SIMD (Single Instruction Multiple Data) за счет добавления второго вычислительного элемента. По умолчанию активным является только вычислительный элемент PEX. Вычислительный элемент PEY включается программно установкой бита в соответствующем регистре. В режиме SIMD два вычислительных элемента исполняют одни и те же команды, но над разными данными, что приводит к удвоению производительности в ряде задач, среди которых наиболее
характерной является обработка звуковых стереосигналов.
Работа в режиме SIMD требует удвоения пропускной способности, поэтому внутренние шины данных процессоров второго поколения имеют разрядность 64 бит, и каждый DAG в одном процессорном цикле обеспечивает доступ к двум 32-разрядным операндам. Дополнительная логика мультиплексирования и управления позволяет передавать данные между регистровыми данными и памятью 16-, 32- или 64-разрядными пересылками. Кроме того, до 64 бит увеличилась и разрядность внешней шины данных. И, наконец, добавление поддержки режима SIMD привело к введению в программный автомат процессоров ADSP 2116x операций декодирования новых SIMD-команд, а также к изменению модели стека и условного исполнения.
Процессоры SHARC первых двух поколений позиционировались компанией Analog Devices как решения для широкого спектра задач — от бытовой аудиоэлектроники до промышленных и военных систем. Процессоры третьего поколения, включающего в себя семейства ADSP 212xx и ADSP 213xx, ориентированы в первую очередь на применение в аудиосистемах. Они имеют ту же архитектуру ядра, что и процессоры ADSP 2116x, но существенно отличаются от них в части организации памяти и архитектуры процессора ввода/вывода.
Архитектура процессоров семейства ADSP 2126x показана на рис. 4. Как видно на приведенной блок-схеме, память про-
ЯДРО ПРОЦЕССОРА
DAG1
8x4x32
DAG2
8x4x32
ТАЙМЕР
КЭШ КОМАНД 32x48 БИТ
31
ПРОГРАММНЫЙ
АВТОМАТ
ШИНА АДРЕСА ПП
ШИ НА АДРЕСА ПД
Ту
ТУ
ПО
ту
ВЫЧИСЛИТ. ВЫЧИСЛИТ.
ЭЛЕМЕНТ ЭЛЕМЕНТ
РЕХ PEY
ДВУХПОРТОВАЯ ПАМЯТЬ БЛОК О
SRAM 1 МБИТ
ROM 2 МБИТ
7Y
ТУТУ
ДВУХПОРТОВАЯ ПАМЯТЬ БЛОК 1
SRAM 1 МБИТ
ROM 2 МБИТ
l>g1 CS
АД <> <>
Тму ту
64 ШИНА ДАННЫХ ПП
64 ШИНА ДАННЫХ ПД
IOD
(32)
КОНТРОЛЛЕР DMA 22 КАНАЛА
П0РТБР1(1)
!<!=> $
„20
о
О I- о
Ш Q. 5
iF
ПОСЛЕД. ПОРТЫ (6)
<=>
ПОРТЫ ВВОДА ДАННЫХ (8) ПАРАЛЛЕЛЬНЫЙ ПОРТ СБОРА ДАННЫХ
ПРЕЦИЗИОННЫЕ ГЕНЕРАТОРЫ ТАКТ, СИГНАЛОВ^)
фР| ТАЙМЕРЫ (3)
ЦИФРОВОЙ АУДИОИНТЕРФЕЙС --------- ПРОЦЕССОР I/O
1Z.
ADDR DATA
S2.
ЮА
(18)
GPIO FLAGS/ IRQ/TIMEXP
4
РЕГИСТРЫ ЮР (ОТОБРАЖЕНЫ В КАРТЕ ПАМЯТИ)
CONTROL,
STATUS,
БУФЕРЫ
ДАННЫХ
ADDRESS/ DATA BUS/GPIO
CONTROL/GPIO - ПАРАЛЛ. —1 ПОРТ
Рис. 4. Архитектура процессора ADSP 21266
цессора была дополнена блоками внутреннего масочно-программируемого ПЗУ. При изготовлении некоторых микросхем семейства в эту память записываются различные алгоритмы обработки звука (Dolby Digital/Pro Logic, DTS, WMA, MPEG2 AAC), однако для приобретения таких процессоров необходимы соответствующие лицензии. Для поддержки высокой тактовой частоты работы ядра (до 200 МГц) в состав процессора включена программно конфигурируемая схема ФАПЧ. Однако основные изменения затронули процессор ввода/вывода.
Процессор ввода/вывода в семействе ADSP 2126x включает в себя 4 выделенных вывода GPIO, порт SPI и 16-битный параллельный порт, выводы которого могут также использоваться в режиме GPIO. Остальные интегрированные периферийные модули ADSP 2126x, к которым относятся последовательные порты, таймеры входа прерываний, прецизионные генераторы тактовых частот, дополнительные линии GPIO, а также порт ввода данных/PDAP, не имеют жестко назначенных выводов на корпусе. Вместо этого отдельные сигналы периферийных модулей мультиплексируются в блоке маршрутизации сигналов (SRU, Signal Routing Unit) на 20 внешних выводах. Это позволяет сократить количество выводов корпуса (про-
цессоры ADSP 2126x выпускаются в корпусах 144 LQFP и 136 MBGA) и, следовательно, снизить его стоимость. Очевидно, по этим же соображениям из состава процессора ввода/ вывода ADSP 2126x исключен контроллер SDRAM. Линк-порты и поддержка мультипроцессорных систем в процессорах третьего поколения также отсутствуют, поскольку для организации высокопроизводительных параллельных вычислительных систем компания Analog Devices предлагает другое семейство процессоров — TigerSHARC.
Архитектура процессоров ADSP 21362/3/ 4/5/6 в целом повторяет архитектуру процессоров ADSP 2126x, однако они работают с более высокими частотами ядра (до 333 МГц) и имеют дополнительные периферийные модули, такие как многоканальные преобразователи частоты дискретизации, приемник и передатчик цифрового аудиоинтерфейса S/PDIF, а также модуль аппаратного шифрования/декодирования передаваемой/принимаемой информации.
В процессорах ADSP 21367/8/9 вновь появился внешний порт, обеспечивающий интерфейс с внешней синхронной и асинхронной памятью и поддерживающий совместную работу с памятью нескольких процессоров. Периферийные модули в процессорах ADSP 21367/8/9 сгруппированы в два бло-
ка: цифровой аудиоинтерфейс (DAI) и цифровой периферийный интерфейс (DPI), каждый из которых имеет свой отдельный набор внешних выводов (20 и 14, соответственно) и отдельный блок маршрутизации сигналов. В DAI сгруппированы модули, которые ориентированы на аудиоприложения: прецизионные генераторы тактовых частот, преобразователи частоты дискретизации, последовательные порты и порт ввода данных. В DPI сгруппированы модули общего назначения: порты SPI и UART, модуль двухпроводного интерфейса и таймеры.
Как уже отмечалось выше, процессоры SHARC третьего поколения ориентированы, в первую очередь, на применение в аудиосистемах класса high end и mid end. Однако если абстрагироваться от аппаратных средств, специфических для этого сегмента приложений, то вы получите превосходный, недорогой (от 5 долларов при заказе более 1000 штук), высокопроизводительный 32-битный процессор с ПТ, который может работать в промышленном температурном диапазоне и выпускается, в том числе, в QFP-корпусе.
И, наконец, совсем недавно Analog Devices объявила о начале серийного выпуска процессоров SHARC четвертого поколения — ADSP 2146x. В этих процессорах беспрецедентное увеличение производительности
Рис. 5. Ядро процессора TigerSHARC TS101S
достигается не столько за счет увеличения тактовой частоты ядра до 450 МГц, сколько за счет аппаратных ускорителей для операций цифровой фильтрации и вычисления быстрого преобразования Фурье. Среди других особенностей процессоров SHARC четвертого поколения следует отметить большой объем внутренней памяти SRAM (5 Мбит, что в четыре раза больше, чем у процессоров предыдущего поколения), наличие интегрированного контроллера DDR2 SDRAM и расширение набора команд для поддержки команд переменной длины (VISA, Variable Instruction Set Architecture), которая может давать сокращение объема кода почти на 30%. Также в процессорах четвертого поколения вновь появились линк-порты для высокоскоростного обмена с другими аналогичными процессорами по схеме точка-точка. Ввиду прекращения развития семейства TigerSHARC справедливо полагать, что будущее высокопроизводительных процессоров компании Analog Devices именно за этим направлением.
Семейство ADSP TSxxx TigerSHARC
Семейство ADSP TSxxx TigerSHARC объединяет высокопроизводительные процессоры, оперирующие данными с ФТ разрядностью 1, 8, 16 или 32 и с ПТ разрядностью 32/40 бит. Они основаны на архитектуре с очень длинным командным словом или ОДКС (Very Long Instruction Word, VLIW), которую компания Analog Devices называет «статической супер-скалярной». Такое название обусловлено тем,
что, в отличие от полноценных суперскаляр-ных процессоров, где упорядочивание и группирование отдельных команд в параллельно исполняемое командное слово осуществляется на аппаратном уровне, в процессорах TigerSHARC эта задача возлагается на программиста, пишущего программы на языке ассемблера, или на компилятор С/С++.
Командное слово в процессорах TigerSHARC может включать в себя до 4-элементарных 32-битных команд, адресованных его разным функциональным узлам. Командные слова различной разрядности могут храниться в памяти процессора вперемешку и не требуют выравнивания по 128-битным границам. Окончание командного слова выделяется значением старшего бита в машинном коде его последней команды.
Ядро процессора ADSP TS101S, которое изображено на рис. 5, содержит:
• два идентичных вычислительных блока (X и Н), состоящих из АЛУ со специализированным модулем телекоммуникационной логики (^и), который реализует на аппаратном уровне некоторые операции, характерные для телекоммуникационных приложений (декодирование Витерби и турбокодов, свертку бинарных последовательностей), умножителя (МАС), устройства сдвига и регистрового файла на 32 регистра по 32 бита каждый;
• два АЛУ, оперирующих целыми числами и отвечающих за формирование адресов данных, — I IALU и К IALU;
• программный автомат.
Отдельные функциональные узлы ядра связаны друг с другом, подсистемой памяти и периферийными модулями тремя 128-битными шинами. Каждая шина жестко привязана к определенному блоку внутренней памяти SRAM (М0, М1 и М2) объемом 2 Мбит. Как показано на рис. 6, помимо внутренней памяти периферия процессора ADSP TS101S включает в себя внешний порт, контроллер линк-портов, процессор ввода/вывода и ин-
Контроллер
DMA
CONTROL/
STATUS/
ТСВ
Внутренняя память
Память
МО
64 К х 32
Адрес DMA
Память М1 64 К х 32
Память М2 64 К х 32
і
Данные DMA
Порт JTAG
Контроллер SDRAM
Внешний порт
Адрес МО
Данные МО
Адрес М1
Данные М1
Адрес М2
Данные М2
Адрес I/O
32
-f—и
Мультипроц.
интерфейс
Хост-интерфей с
Входной FIFO
Выходной буфер
Выходной FIFO
Арбитраж
кластерной
шины
Данные
Контроллер
линк-
портов
CONTROL/
STATUS/
буферы
Линк-
порты
32
Я / »
ADDR
64
«=►
DATA
CNTRL
-Г
-V-
~г
-3/-
-А
Рис. 6. Периферия процессора TigerSHARC TS101S
Блок формирования адресов
Рис. 7. Ядро Blackfin
терфейс отладки. Внешний порт обеспечивает взаимодействие процессора с внешней асинхронной и синхронной памятью. Кроме того, он имеет интерфейс для подключения процессора TigerSHARC к внешнему управляющему хост-процессору и встроенную логику арбитража, позволяющую объединять до восьми процессоров TigerSHARC в мультипроцессорный кластер. Четыре линк-порта обеспечивают связь процессоров ADSP TS101 друг с другом и другими устройствами, поддерживающими этот протокол передачи данных, со скоростью до 250 Мбайт/с каждый.
Ядро процессора и подсистема памяти работают с частотой, которая формируется из внешнего опорного тактового сигнала при помощи схемы ФАПЧ и может достигать 300 МГц. Частота работы внешнего порта равна частоте опорного сигнала и не превышает 100 МГц.
Архитектурные особенности, внедренные в процессоре ADSP TS101S, получили дальнейшее развитие в процессорах подсемейства ADSP TS20x. Основные различия между этими двумя подсемействами заключаются в организации шин, подсистемах памяти и взаимодействии ядра с периферией.
Ядро ADSP TS20x имеет три 128-битные шины (I, J и K), каждая из которых может быть подключена к любому из банков внутренней памяти через высокоскоростной коммутатор. В процессорах ADSP TS20x используется внутренняя динамическая память объемом до 24 Мбит. Для обращения к внутренней памяти за один цикл процессора каждый ее блок имеет буфер объемом 128 кбит. Каждая из шин I, J и K обслуживает отдельный функциональный блок ядра — программный автомат, J IALU и K IALU соответственно. Кроме этих трех шин, в ядре имеется также четвертая шина (S), обеспечивающая доступ периферийных модулей (внешнего порта, контроллера DMA и т. д.) ко внутренней памяти процессора. Ядро процессора, подсистема памяти и шины ядра работают с частотой CCLK, которая может достигать 600 МГц.
За взаимодействие ядра процессора с периферийными модулями отвечает интерфейс SOC (System On Chip), который осуществляет подключение шин ядра к шине ввода/вывода периферии (шине SOC). Шина SOC имеет разрядность 128 бит и работает с частотой, равной половине частоты работы ядра. К шине SOC подключены все периферийные узлы процессора — узел интерфейса внешней шины (EBIU), линк-порты, флаги, контроллер DMA, контроллер прерываний, таймер и порт JTAG.
Процессоры TigerSHARC обладают наибольшей среди выпускаемых на сегодняшний день процессоров Analog Devices производительностью, весьма недешевы (стоимость при заказе от 1000 штук варьируется в диапазоне от 180 до 330 долларов) и предназначены, преимущественно, для применения в сложных промышленных, телекомму-
никационных и военных системах. Особый интерес эти процессоры представляют в задачах, где требуется большой объем вычислений, допускающих распределенную обработку при помощи многопроцессорных систем. К сожалению, некоторое время назад компанией Analog Devices было принято решение сосредоточиться исключительно на семействах процессоров Blackfin и SHARC, и в дальнейшем семейство TigerSHARC развиваться не будет. В то же время снятие этих процессоров с производства и прекращение их поддержки в новых версиях средств разработки не планируется.
Семейство Blackfin ADSP BFSxx
Самое новое на сегодняшний день семейство процессоров компании Analog Devices — это Blackfin ADSP BF5xx. В основе процессоров Blackfin лежит «микросигнальная архитектура» (MSA, Micro Signal Architecture), разработанная Analog Devices совместно с компанией Intel. Не секрет, что архитектура классических сигнальных процессоров, оптимизированная для интенсивных однотипных математических вычислений, далеко не столь эффективна там, где традиционно применяются микроконтроллеры, например, в задачах управления, организации пользовательского интерфейса, поддержке стеков сетевых протоколов и т. д. При создании архитектуры MSA преследовалась цель объединения достоинств двух классов процессоров в едином устройстве.
В основе всех процессоров ADSP BF5xx лежит ядро Blackfin, структурная схема которо-
го приведена на рис. 7. Оно включает в себя следующие функциональные узлы:
• вычислительный блок;
• регистровые файлы;
• блок формирования адресов;
• блок управления.
Основу вычислительного блока составляют два умножителя-накопителя (MAC), каждый из которых представляет собой комбинацию 16-разрядного умножителя и 40-разрядного аккумулятора. Также в состав вычислительного блока входят два 40-разрядных АЛУ, выполняющих стандартные арифметические и логические операции над 16- и 32-разрядными данными, 40-битное устройство сдвига и четыре 8-разрядных видео-АЛУ, поддерживающих ряд операций над 8-разрядными данными, характерных для задач обработки видеоизображений. В одном цикле вычислительный блок может выполнять несколько операций над 16- или 32-битными данными с ФТ в режиме SIMD.
Источником и приемником данных при работе вычислительных блоков является регистровый файл данных.
Еще один регистровый файл входит в состав блока формирования адресов. Он содержит шесть регистров-указателей общего назначения (P5-P0) и специальные регистры для хранения указателя стека (SP) и кадра стека (FP). Непосредственно формированием адреса занимаются два генератора адреса данных (DAG). Они поддерживают режимы прямой адресации, косвенной адресации с пред- и постинкрементом и специфические для задач цифровой обработки сигналов режимы бит-реверсной и циклической адресации. Адресация может
Таблица. Сравнение ключевых характеристик семейств ЦСП Analog Devices
Семейство Тип данных Разрядность данных, бит Макс. тактовая частота ядра, МГц Объем внутренней памяти, кбит Цена зашт., USD
ADSP 218x ФТ 16 80 8-108 8-35
ADSP 219x ФТ 16 160 8-64 13-30
ADSP 2126x ПТ 32/40 200 512-2048 7-26
ADSP 213xx ПТ 32/40 400 384-5120 12-53
ADSP 214xx ПТ 32/40 450 5120 -
ADSP BF5xx ФТ 16/32 750 52-328 6-36
ADSP TS20x ПТ/ФТ 8/16/32/40 600 4096 - 24576 245-323
выполняться словами (16 бит), двойными словами (32 бит) или побайтно.
Блок управления отвечает за выполнение команд ядром процессора. Адреса выполняемых команд формируются программным автоматом, который отрабатывает ситуации, приводящие к нарушению линейного порядка следования адресов. Сформированный адрес поступает в 10 уровневый конвейер команд, обеспечивающий выборку соответствующей команды и ее дешифрацию. Для повышения эффективности выполнения циклов в состав блока управления включен буфер, играющий роль кэша для команд цикла. Процессор имеет набор команд переменной длины: наиболее часто исполняемые кодируются 16 битами, в то время как команды для цифровой обработки сигналов — 32 битами. Также в процессоре реализована ограниченная поддержка режима VLIW, при которой одна 32-битная команда выполняется параллельно с двумя 16-битными командами.
Система памяти процессора имеет иерархическую структуру, характерную для процессоров общего назначения. Первый уровень (L1) образуют несколько блоков памяти данных и памяти команд, которые могут выборочно конфигурироваться как кэш-память. Обращение к памяти L1 осуществляется на частоте работы ядра. В ряде процессоров Blackfin также имеется более медленная интегрированная память второго уровня (L2). L2 имеет больший объем и может использоваться для хранения как кода, так и данных. И, наконец, третий уровень (L3) — внешняя память. Отдельного пространства ввода/вывода в процессорах Blackfin нет, и все периферийные устройства отображаются в унифицированном 32-битном адресном пространстве памяти.
Набор периферийных модулей сильно варьируется от процессора к процессору и может включать помимо стандартных последовательных портов, выводов GPIO и таймеров также интерфейсные модули PCI, CAN, Ethernet, USB, контроллеры NAND флэш-памяти, ATAPI, параллельный порт для интерфейса с видеокодеками и быстродействующими АЦП и ЦАП и ряд других блоков.
Помимо возможности 8-битной адресации и многоуровневой системы памяти процессоры Blackfin поддерживают нескольких режимов функционирования с разными привилегиями доступа к внутренним ресурсам и имеют защиту памяти.
Одной из наиболее интересных черт процессоров Blackfin являются наличие сложной схемы управления энергопотреблением, позволяющей динамически изменять напряжение питания и тактовую частоту работы ядра, и несколько режимов пониженного энергопотребления. Это делает процессоры семейства очень привлекательными для использования в мобильных устройствах с питанием от аккумуляторов.
Выпуск процессоров Blackfin начался в 2001 г. с процессора ADSP BF535. Этот процессор имеет ряд архитектурных отличий от более поздних представителей подсемейства ADSP 53x (32-битная внешняя шина, отсутствие динамического управления энергопотреблением и др.) и не получил столь широкого признания. В 2003 г. была представлена линейка ADSP BF531/2/3, отличающихся друг от друга объемами внутренней памяти и градациями быстродействия. В 2005 г. к ним добавились процессоры ADSP BF536/7/4 с дополнительными модулями CAN, TWI и 10/100 Ethernet MAC, а весной 2006 г. — процессор ADSP BF538 с интегрированной флэш-памятью.
Осенью 2006 г. компания Analog Devices представила пять процессоров нового поколения ADSP BF54x, ориентированных на высокопроизводительные мультимедийные устройства, в которых в два раза была увеличена пропускная способность внутренних шин, увеличен объем внутренней памяти, добавлены новые интерфейсы USB high speed, ATAPI, NAND Flash, SDIO, DDR1, а также технология защиты данных LockBox.
Еще через год был анонсирован выпуск процессоров ADSP BF52x, предназначенных, в первую очередь, для использования в мобильных мультимедийных устройствах. Ключевой особенностью этого подсемейства является очень низкое энергопотребление как в статическом, так и в динамическом режимах. Также стоит особо отметить появление в составе ADSP 52x контроллера USB OTG и наличие в версии процессоров с индексом “C” (пока еще не вышедших в серийное производство) аудиокодека.
И, наконец, последнее заявленное на сегодняшний день подсемейство процессоров Blackfin — это ADSP 51x. Оно включает в себя ADSP BF512, самый недорогой и с наиболее низким уровнем энергопотребления процессор, в котором обеспечен оптимальный баланс производительности и степени интеграции периферийных модулей, и более мощные процессоры ADSP BF514/ADSP BF516/ADSP BF518 с расширенным набором периферии. Последние два процессора имеют модули Ethernet MAC с поддержкой стандарта синхронизации IEEE 1588, что позволяет строить на их основе распределенные системы измерения и управления. Все процессоры этой линейки также имеют версии с индексом “F”, содержащие внутреннюю SPI флэш-память.
Отдельная ветвь развития семейства Blackfin — высокопроизводительные дву-ядерные процессоры, единственным представителем которых пока является ADSP BF561. Наличие двух идентичных ядер дает не только существенный выигрыш в производительности, но и дополнительную гибкость при распределении вычислительной нагрузки.
Разумное сочетание стоимости, производительности и потребляемой мощности, а также богатый выбор периферийных модулей сделали процессоры семейства Blackfin очень популярными, в том числе и среди отечественных разработчиков. Процессоры Blackfin составляют основную долю в общем объеме продаж процессоров Analog Devices, и в дальнейшем компания планирует активно развивать это семейство, дополняя его новыми, более производительными процессорами.
Сводная таблица характеристик процессоров
В таблице дано сравнение некоторых ключевых характеристик семейств ЦСП Analog Devices. Тактовая частота ядра, объем внутренней памяти и стоимость могут существенно варьироваться в зависимости от конкретной модели процессора, типа корпуса и рабочего диапазона температур. Обратите внимание на то, что цена процессоров в таблице указана при заказе партии от 1000 штук. Процессоры семейства ADSP 214xx пока еще доступны только в виде инженерных образцов, и информация об их стоимости на сайте Analog Devices отсутствует.
Заключение
Эта статья носит обзорный характер и, естественно, не может дать исчерпывающего представления обо всех достоинствах процессоров компании Analog Devices. Заинтересовавшиеся читатели могут найти более подробную информацию на веб-сайте компании Analog Devices: www.analog.com. Также интерес могут представлять сравнительные тесты, публикуемые независимой компанией Berkley Design Technologies, Inc. (www.bdti.com), которые позволяют сопоставить производительность, эффективность использования памяти и энергопотребление процессоров Analog Devices и процессоров других производителей. ■