Научная статья на тему 'Разработка высокоскоростного контроллера на базе DSP-процессора TigerSHARC'

Разработка высокоскоростного контроллера на базе DSP-процессора TigerSHARC Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
343
347
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Журавлев Б. В., Серженко Ф. Л., Никонов Э. Г.

Рассмотрены принципы работы и аппаратная реализация высокоскоростного контроллера, разработанного на базе DSP-процессора

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

TigerSharcPrinciples of operation and high speed controller hardware realization based on TigerSHARC DSP-processor are considered.

Текст научной работы на тему «Разработка высокоскоростного контроллера на базе DSP-процессора TigerSHARC»

УДК 621.396.67

Разработка высокоскоростного контроллера на базе DSP-процессора TigerSHARC

Б.В. Журавлев, Ф.Л. Серженко, Э.Г. Никонов

Рассмотрены принципы работы и аппаратная реализация высокоскоростного контроллера, разработанного на базе DSP-процессора TigerSharc

Principles of operation and high speed controller hardware realization based on TigerSHARC DSP-processor are considered.

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

высокоскоростная передача информации (>100 Мбайт в секунду).

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

К описанному типу задач относится непрерывная математическая обработка данных, полученных со скоростных цифровых видеокамер высокого разрешения,

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

Контроллер построен на базе цифрового сигнального процессора компании Analog Devices

ADSP-TS201 TigerSHARC. Сопряжение с источниками данных реального времени и приемниками информации осуществляется с помощью скоростных каналов связи.

Процессор ADSP-TS201 - представитель семейства процессоров TigerSHARC, обладающих статической суперскалярной архитектурой, которая объединяет стандартные функциональные возможности DSP с возможностями RISC и VLIW. Архитектура RISC (от англ. Reduced Instruction Set Computer) допускает сокращенный набор команд, выполняемых за один такт. В архитектуре VLIW (от англ. Very Large Instruction Word) одно командное слово может содержать несколько команд, выполняемых различными устройствами.

Эти возможности, а также параллельная обработка данных с плавающей и фиксированной точкой, позволяют процессору ADSP-TS201 Ti-gerSHARC достигать самой высокой производительности среди существующих на данный момент сигнальных процессоров.

Процессор представляет собой двухъядерное 32-битное вычислительное устройство (рис. 1). В его состав входят 128-битная внутренняя шина данных и 32-битная адресная шина, адресные

Рис. 1. Структурная схема процессора TigerSHARC

арифметико-логические устройства (АЛУ), два ядра, внешние интерфейсы. Внешняя шина данных -64 бита.

Адресные АЛУ работают с целыми числами. Они предназначены для генерации адресов.

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

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

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

Рис. 2. Ядро процессора TigerSHARC

Коммуникационно-логический блок предназначен для выполнения алгоритмов преобразования Витерби (декодирование по максимуму правдоподобия), скоростного декодирования, алгоритмов Code Division Multiple Access (CDMA), кросс-корреляционного поиска. Этот блок работает как с числами с плавающей точкой, так и с комплексными числами.

Сдвиговый регистр работает с числами до 64 бит. В его функции входят левый и правый арифметический и логический сдвиги, манипуляции с битами и наборами битов (установка,

сброс, переключение, проверка), операции FIFO с последовательностью битов произвольной длины. Рис. 3. Схема контроллера

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

3 3

Уп = ПЪ'Хп-1 + Пajyn-j , i=0 j=1

потребуется семь операций умножения и шесть

операций сложения (всего 13 операций, если не

рассматривать индексирование при обращении к

памяти).

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

Арифметико-логическое устройство производит все основные арифметические и логические операции: вычитание, сложение, поиск максимума и минимума, сравнение, вычисление абсолютного значения, уменьшение и увеличение на единицу, суммирование с накоплением данных, разделение или объединение разрядов числа, логические операции (AND, AND NOT, OR, XOR), преобразование типов. Некоторые из приведенных операций выполняются только над числами с фиксированной точкой.

Предложенная схема позволяет выполнять команды независимо, если для вычислений требуются разные блоки ядра. Это дает возможность получить высокую производительность вычислений. Поэтому процессор ADSP-TS201 Tiger-SHARC является очень привлекательным вычислительным устройством для применения его в контроллере (рис. 3).

Контроллер снабжен двумя блоками памяти размером в одно мегаслово каждый. Длина слова -32 бита. Поскольку у процессора 64-битная шина данных, то это позволило соединить блоки памяти

LinkPorl 1 С ззо мбайт/с ;

LinkPort 2

: 330 Мбайт/с ^

LinkPort 3

: 330 Мбайт/с >

г

LinkPort 4

: ЗЗО Мбайт/с )

Tiger

SHARC

V

32

20

32

-Л-

19

FLASH

память

программы

параллельно относительно шины адреса, что дает возможность процессору работать с памятью в одно мегаслово шириной 64 бита. Частота блоков памяти 100 МГц, что при такой архитектуре позволяет обмениваться данными со скоростью 800 Мбайт/с.

У программы имеется FLASH память размером 4 Мбит, которая предназначена только для начальной загрузки процессора.

Канал Link Port представляет собой полнодуплексный канал связи, основанный на низковольтной дифференциальной схемотехнике (LVDS). Каждый порт имеет четыре симметричных линии данных и сигналы синхронизации. Данные передаются и принимаются в DDR-режиме, т.е. смена значений происходит два раза за такт. Таким образом, за один такт передается (принимается) один байт. Каналы Link Port, без дополнительных активных элементов, выведены на внешние разъемы. Длина кабеля может достигать одного метра.

Контроллер питается от напряжения 5 В. Все остальные источники питания реализованы на плате. Внутренние напряжения контроллера таковы:

микросхемы памяти - 3,3 В;

ядро - 1,2 В;

внутренняя память процессора - 1,5 В;

Link Port - 2,5 В.

Напряжение 3,3 В получено из напряжения питания контроллера с помощью высокоточного преобразователя ADP3339. Напряжения 1,5 и 2,5 В получены с помощью импульсных регуляторов напряжения LT1765. Напряжение 1,2 В получено с помощью импульсного преобразователя напряжения LTC1773. Все напряжения питания схемы должны находиться в пределах ±5%.

После изготовления контроллера (рис. 4) и его проверки были опробованы тесты для измерения скорости каналов Link Port и проверки адресного пространства. Контроллер работал на внутренней тактовой частоте 500 МГц. Link Port тестировался в DMA-режиме на многократной передаче одного килобайта информации. Скорость порта, МГц, можно вычислить по формуле

F -^TigerSHARC 500 333 3

M.inkPort = k _ ТТ = ,3 .

kLinkPort 1,5

Здесь величина FTigerSHARC измеряется в МГц.

Каждая передача сопровождалась контрольными импульсами, позволяющими видеть на экране осциллографа начало и конец блока. Время цикла составило ~3,1 мкс, что соответствует расчетному времени t^:

Рис. 4. Внешний вид контроллера

tia =---1-----1024 =-----1—- -1024 = 3,072 -10-6.

FinkPort 333,3 -106

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

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

Пример. Рассмотрим подсчет суммы элементов вектора х, состоящего из 1280 байт.

Первый код написан на C++. int lev = 0;

for(j = 0; j < 1280; j++) lev+= x[j];

Как видно, цикл выполняется за 1280 итераций. В теле цикла выполняется одна команда.

Второй код написан на Ассемблере для TigerSHARC. Здесь:

lc0 - счетчик цикла; j4, k4 - указатели на массив х; xr1:0, yr1:0 - регистры длиной 64 бита для чтения данных из массива по 8 байт одновременно в каждый регистр;

xPR0, yPR0 - регистры, хранящие сумму;

nlc0e - флаг окончания работы цикла;

; - разделитель операций в линии команд, выполняемых за один такт;

;; - признак конца линии команд.

lc0 = 0x50

_loop1:

xr1:0=l[j4+=4] ; yr1:0=l[k4+=4];; xPR0+=sum br1:0(U) ; yPR0+=sum br1:0(U);; if nlc0e, jump _loop1 (NP);;

В приведенном примере сначала инициализируется счетчик цикла, причем число итераций равно 80 (50h). В теле цикла выполняется две линии команд, x и у - признаки операций, выполняемых в разных ядрах.

В первой линии каждое ядро считывает по 8 байт данных и перемещает указатель в новую позицию. Во второй линии каждое ядро к своему регистру PR0 добавляет сумму восьми байтов. Префикс «Ь» свидетельствует о том, что 64 бита рассматриваются не как единое слово, а как восемь байтов. Параметр (U) - беззнаковая арифметика.

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

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

В данный момент у авторов имеется полностью работоспособный контроллер, на котором происходит отладка алгоритмов цифровой обработки сигналов. Предварительные тесты показали, что преобразование Фурье контроллер выполняет на порядок быстрее, чем персональный компьютер, осна-Iценный процессором AMD Athlon64 3000+ с операционной системой Windows-XP.

ЛИТЕРАТУРА

1. Гладкий В.С., Гуревич И.М., Кириченко Т.В. Характеристики связности сетевых систем из ненадежных элементов. //Тр. учебных институтов связи. Вып.148. - Л.:ЛЭИС, 1990, с. 57-62.

2. Птицын Г.А., Кашкаш В. Математическая модель распада сети связи. - Электросвязь, 1994, №4, с. 8-10.

Поступила 10. 05. 2007 г.

i Надоели баннеры? Вы всегда можете отключить рекламу.