Процессор цифровой обработки сигналов Л1879ВМ1 (NM6403)
АРХИТЕКТУРА ПРОЦЕССОРА
Процессор Л1879ВМ1 представляет собой высокопроизводительный специализированный микропроцессор, сочетающий в себе черты двух современных архитектур: VLIW (Very Long Instruction Word) и SIMD (Single Instruction Multiple Data) (рис. 1).
Тактовая частота - 40 МГц; напряжение питания - от 3,0 до 3,6 В; потребляемая мощность - 1,3 Вт. Основные вычислительные узлы процессора - управляющее RISC-ядро и векторный сопроцессор. RISC-ядро - это центральный процессорный узел, выполняющий все основные функции по управлению работой кристалла. Кроме того, RISC-процессор производит арифметико-логические и сдвиговые операции над 32-разрядными скалярными данными и формирует 32-разрядные адреса команд и данных при обращениях к внешней памяти. Длина команды - 32 и 64 разряда (обычно в команде выполняются две операции). Процессор реализует пятиступенчатый 32-разрядный конвейер. Адресное пространство - 16 Гбайт, два адресных генератора, восемь регистров общего назначения и восемь адресных регистров. Любая инструкция выполняется за один такт. Векторный сопроцессор предназначен для арифметических и логических операций над 64-разрядными векторами данных программируемой разрядности. Обмен данными между основными узлами процессора происходит по трем внутренним шинам, двум входным и одной выходной.
GMI и LMI - два одинаковых блока программируемого интерфейса с локальной и глобальной 64-разрядными внешними шинами. К каждой из них может быть подключена внешняя память, содержащая до 231 32-разрядных ячеек. Обмен данными с внешней памятью осуществляется как 32-, так и 64-разрядными словами (NM6403 одновременно выбирает две соседние ячейки памяти). Каждый блок программируемого интерфейса позволяет работать с двумя банками внешней памяти различного объема, типа (DRAM, SRAM, Flash ROM, EDO DRAM и т.д.) и быстродействия без дополнительного оборудования. Предусмотрена аппаратная поддержка режима разделяемой памяти для различных мультипроцессорных конфигураций внешних шин.
СР1 и СР2 - идентичные коммуникационные порты, обеспечивающие информационный обмен по двунаправленной восьмиразрядной шине. Они предназначены для построения высокопроизводительных мультипроцессорных систем и полностью совместимы с коммуникационными портами процессора ТMS320C4x. Каждый коммуникационный порт имеет встроенный контроллер прямого доступа к памяти (ПДП, DMA), позволяющий обмениваться 64-разрядными данными с памятью на внешних шинах.
ВЕКТОРНЫЙ СОПРОЦЕССОР
Векторный сопроцессор - основной функциональный элемент Л1879ВМ1. Структурно он представляет собой матрично-векторное операционное устройство и набор регистров различного назначения.
Операционное устройство (ОУ) - регулярная матричная структура 64х64 ячейки (рис. 2).
Матрица может быть произвольно разделена на столбцы и строки. В образовавшиеся после разделения макроячейки загружаются весовые коэффициенты . На вход матрицы подается вектор входных данных , каждому элементу которого соответствует строка матрицы. Ширина строки (в битах) - разрядность данного элемента входных данных. В макроячейках происходит умножение элемента вектора входных данных на весовой коэффициент и сложение со значением верхней ячейки (либо значений входов ). Таким образом, для каждого столбца вычисляется скалярное произведение . Для снижения разрядности выходных данных и защиты от арифметического переполнения используется программируемая функция насыщения (рис. 3) .
Операнды и выходные значения упаковываются в 64-х разрядное слово. Все операции в матрице ОУ производит параллельно, за один такт. Загрузка весовых коэффициентов происходит за 32 такта. В векторном сопроцессоре есть "теневая" матрица, в которую весовые коэффициенты можно загружать в фоновом режиме. Переключение "теневой" и рабочей матриц занимает один такт.
Важнейшая особенность векторного сопроцессора - работа с операндами произвольной длины (даже не кратной степени двойки) в диапазоне 1-64 бит. Этим достигается оптимальное соотношение между скоростью и точностью вычислений: при однобитовых операндах на тактовой частоте 40 МГц производительность составит 11 520 MMAC (миллионов операций умножения с накоплением) или 40 000 MOPS (миллионов логических операций в секунду), при 32-битовых операндах и 64-бит результате она станет номинальной - 40 MMAC. Умение динамично, в процессе вычислений изменять разрядность операндов позволяет повысить производительность в тех случаях, когда обычные процессоры работают "вхолостую", с избыточной точностью.
Особенности:
RISC-ядро
VECTOR-сопроцессор
Производительность:
Внешний вид процессора Л1879ВМ1
Оценочные тесты:
|
Нейропроцесcор Л1879ВМ1 - нетипичный проблемно-ориентированный МП. Архитектурно он состоит из RISC-ядра и мощного векторного сопроцессора, включающего в себя многорежимный векторный умножитель и сумматор, поддерживающий исполнение инструкций "ОКМД-в-регистре" с длиной регистра 64 бита и программируемой нерегулярной длиной операндов от 2 до 64 битов (например, одновременно возможно обрабатывать два 16-битных и одно 32-битное слово (16*2+32=64). Векторный сопроцессор одной командой может вычислить, например, восемь сумм тридцати двух произведений 8-битовых чисел. Кроме того, сопроцессор выполняет логические операции над 64-битовыми словами.
В отличие от векторного, основной процессор выполняет простые арифметико-логические команды и не имеет быстрого умножителя - использование только RISC-ядра МП неэффективно. Тип команды Л1879ВМ1 "регулярное ДКС" з длиной 2, гарвардскую архитектуру памяти, нерегулярную структуру достаточно маленького (8 арифметических и 8 адресных регистров) регистрового файла, и не относится при классификации по типичным признакам к ПЦОС.
Нейропроцессор можно характеризовать как как проблемно-ориентованый МП с ДКС, с практической точки зрения его векторный сопроцессор адаптирован для заданий вычислений распространения сигналов в нейросетях.
Вычислительная можность RISC-ядра процессора достаточно мала, что отражается на времени выполнения отдельных операций.Отсутствуют режимы циркулярной адресации, меньше внимания уделено скорости умножения и использованию гарвардской архитектуры. Напротив, векторный сопроцессор может вычислять K (K=1-32) сумм вида
Y+Wi*Xi,
где i=1-32, что позволяет вычислять фильтрацию и умножение матриц гораздо быстрее чем в ПЦОС. Недостатком векторного сопроцессора являются очень большие временные затраты и большой размер кода для вычисления отдельной команды умножения (16 тактов / 16*4=64 байта памяти).