Нейросигнальный процессор NeuroMatrix NM6403 (фирма Модуль [9], Россия).
Рис.2. Стуктура NeuroMatrix NM6403.
Основой NeuroMatrix NM6403 является процессорное ядро NeuroMatrixCore (NMC), которое представляет собой синтезабильную модель высокопроизводительного DSP процессора с архитектурой VLIM/SIMD (язык Verilog). Ядро состоит из двух базовых блоков: 32-битного RISC процессора и 64 битного векторного процессора, обеспечивающего выполнение векторных операций над данными переменной разрядности (патент РФ.N2131145). Имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, аппаратно совместимых с портами ЦПС TMS320C4x, для возможности построения многопроцессорных систем.
Основные характеристики:
RISC-ядро
- 8 32-разрядных регистров общего назначения;
- 8 32-разрядных адресных регистров;
VECTOR-сопроцессор
- переменная 1-64-разрядная длина векторных операндов и результатов;
- формат данных - целые числа, упакованные в 64-разрядные блоки, в форме слов переменной длины от 1 до 64 разрядов каждое;
- поддержка векторно-матричных и матрично-матричных операций;
- два типа функций насыщения на кристалле;
- три внутренних 32x64-разрядных RAM-блока.
Производительность:
- скалярные операции:
- 50 MIPS;
- 200 MOPS для 32-разрядных данных;
- векторные операции:
от 50 до 50.000+ MMAC (миллионов умножений с накоплением в секунду);
- I/O и интерфейсы с памятью:
- пропускная способность двух 64-разрядных интерфейсов с памятью - до 800 Мбайт/сек;
- I/O коммуникационные порты - до 20 Мбайт/сек каждый.
Базовыми для нейропроцессора являются вычисления вида: Zi= f(Yi) = f (Ui+е(XjWij), (i=1, .. , M;j=, ..,N), где Zi - выходной сигнал i-ro нейрона, Xj - j-й входной сигнал слоя, Ui - смещение i-ro нейрона,Wij -весовой коэффициент j-го входа 1-го нейрона, Yi - сумма взвешенных входов i-го нейрона, f- функция активации, N - количество входных сигналов слоя, М - количество нейронов в слое; Операнды Zi, Xi, Ui и Wij представлены в дополнительном параллельном коде и могут иметь произвольную разрядность. Основными особенностями данного нейропроцессора являются:
- возможность работы с входными сигналами (синапсами) и весами переменной разрядности (от 1 до 64 бит), задаваемой программно, что обеспечивает уникальную способность нейропроцессора увеличивать производительность с уменьшением разрядности операндов;
- быстрая подкачка новых весов на фоне вычислений;
- (24 операции умножения с накоплением за один такт при длине операндов 8 бит);
- V аппаратная поддержка эмуляции нейросетей большой размерности;
- реализация функции активации в виде пороговой функции или функции ограничения;
- наличие двух широких шин (по 64 разряда) для работы с внешней памятью любого типа: до 4Мб SRAM и до 16 Гб DRAM;
- наличие двух байтовых коммуникационных портов ввода/вывода, аппаратно совместимых с коммуникационными портами TMS320C4x для реализации параллельных распределенных вычислительных систем большой производительности.
- возможность работать с данными переменной разрядности по различным алгоритмам, реализуемым с помощью хранящихся во внешнем ОЗУ программ.
Рис.3. Конструктивная реализация NeuroMatrix 6403.
Технические характеристики:
- число вентилей на кристалле - 100.000;
- размер кристалла - 10 мм * 10.5 мм при технологии 0.7 мкм;
- потребляемая мощность - не более 3 Вт;
- пиковая производительность для байтных операндов - 720 MCPS (миллионов соединений или умножений с накоплением в сек.) при тактовой частоте 30 Мгц; при бинарных операциях - 8640 MCPS.
Нейропроцессор благодаря своей универсальности сможет применяться как базовый элемент для плат нейроускорителей PC, для создания нейрокомпьютерных параллельных вычислительных систем большой производительности, а также для аппаратной поддержки операций над матрицами большой размерности и в задачах цифровой обработки сигналов.Используется в нейроускорителях фирмы Модуль (Россия) [9].