DSP фирмы Analog Devices - как элементная база нейровычислителей
Реализация нейровычислителей высокой пространственной размерности требует все более производительной элементной базы, для преодоления возникающих трудностей разработчики используют два возможных подхода: первый состоит в улучшении характеристик уже имеющихся процессоров, а второй - в увеличении производительности путем разработки новых архитектур. Первый способ ограничен увеличением производительности в 5-8 раз. Второй способ предполагает разработку архитектур, которые были бы наиболее удобны в конечном приложении и оптимизированы для конкретного языка программирования.
Компания Analog Devices [7] ведет разработки в обоих направлениях. Так ядро первого 32-разрядного процессора ADSP-21020 и производительностью 30 MFLOPS было усовершенствовано, что привело к созданию нового процессора ADSP-21065L с максимальной производительностью 198 MFLOPS, что соответствует ускорению в 6.6 раз. Работая над дальнейшим увеличением производительности, оптимизируя архитектуру существующих процессоров, был разработан новый сигнальный микропроцессор ADSP-2116x с тактовой частотой 100 МГц производительностью 600 MFLOPS.
Рис.1.DSP основа систем цифровой обработки сигналов.
Среди основных особенностей DSP семейства ADSP-2116x можно отметить:
Все представители микропроцессорного семейства оперируют с данными в 32-битовом формате с плавающей точкой, 32-битовыми целочисленными данными (в дополнительном коде и беззнаковыми) и 40-битовыми данными расширенной точности с плавающей точкой. Повышенная точность вычислений достигается благодаря уменьшению ошибки округления результата в вычислительных модулях. Аккумулятор для 32-разрядных данных с фиксированной точкой имеет 80 разрядов
Универсальное АЛУ процессора, устройство барабанного сдвига и универсальный умножитель функционируют независимо, обеспечивая высокую степень внутреннего параллелизма операций. Регистровый файл общего назначения служит для обмена данными между вычислительными модулями и внутренней шиной, а также для запоминания промежуточных результатов. Регистровый файл содержит 32 регистра (16 - первичных и 16 - вторичных), имеет 10 портов и, совместно с Гарвардской архитектурой процессора, позволяет организовывать эффективный обмен между вычислительными модулями и памятью. Расширенная Гарвардская архитектура процессора позволяет выбирать до двух операндов и команду из кэша команд за один цикл.
Процессоры ADSP-210xx содержат высокопроизводительный кэш команд. Кэш работает избирательно: кэшируются только те команды, выборка которых конфликтует с выборкой данных из памяти программ (Program Memory, PM).
Адресные генераторы (DAG1 и DAG2) обеспечивают аппаратную реализацию циклических(кольцевых) буферов, позволяющих эффективно выполнять фильтрацию и Фурье-преобразование, для которых требуется циклическое изменение адресов обрабатываемых данных.
Физически циклический буфер может быть расположен начиная с любого адреса памяти, а для ссылки на его содержимое используются регистровые указатели. Два DAG содержат 16 первичных и 16 вторичных регистров, что позволяет работать одновременно с 32 циклическими буферами.
Современные требования рынка обусловили появление новой архитектуры -TigerSHARC, которая для получения высокого уровня производительности объединяет в себе множество особенностей ранее разработанных архитектур. Новый процессор должен объединить в себе достоинства, присущие существующим DSP технологиям, такие как быстрота и определенность времени выполнения команд, распознавание быстрых прерываний и высокая скорость обмена данными с периферийными устройствами.
Рис.2. Принципы построения архитектуры TigerSHARC
Для достижения наивысшей производительности ядра использованы особенности RISC архитектуры, такие как структура хранения и обмена данными и командами, высоко конвейеризированный генератор адресов команд с возможностью предсказания переходов и объемным блокирующим файлом регистров. Также было решено взять в расчет особенности VLIW архитектуры для оптимизации построения команд. Полученная архитектура TigerSHARC достигает производительности 1.5 GFLOPS при 32-разрядных вычислениях с плавающей точкой и 6 GFLOPS при 16-разрядных с фиксированной точкой. Тактовая частота составляет на сегодня 250 МГц (рис.2.).