Выпуск #2/1999
И. Шахнович.
Отечественный процессор цифровой обработки сигналов NM6403 – чудо свершилось
Отечественный процессор цифровой обработки сигналов NM6403 – чудо свершилось
Просмотры: 3195
Поверить, что российская фирма создала современный сигнальный процессор, трудно. Однако факт – НТЦ “Модуль” разработал и производит процессор цифровой обработки сигналов NeuroMatrix® NM6403, не только не уступающий, но в ряде задач превосходящий лучших представителей семейства DSP, включая TMS320C40 и TMS320C62x лидирующей в этой области фирмы Texas Instruments. НТЦ “Модуль” вместе с процессором предлагает полный “джентльменский” набор инструментов для разработки, обеспечивает техническую поддержку, обучение и консультации. Трудно преувеличить значимость отечественного процессора ЦОС для связи и телекоммуникаций, защиты информации, обработки изображения и т д. Появление подобного изделия в России сегодня – подлинное чудо. И оно свершилось.
КРАТКАЯ ПРЕДЫСТОРИЯ
В прошлом номере мы рассказывали о работах НТЦ “Модуль” в области нейросетевых технологий. Напомним, что одно из направлений деятельности фирмы – создание программно-аппаратных комплексов для решения прикладных задач, связанных с обработкой сигналов различной природы, распознавания образов, целеуказания, нечеткого поиска, самообучения и т.д. Эти задачи требуют существенных вычислительных ресурсов, тем более что решаются они в нейросетевом базисе. Для увеличения вычислительной мощности применяют специальные ускорительные платы – нейроускорители. Они строятся на основе как универсальных процессоров цифровой обработки сигналов (ЦОС, DSP), так и специализированных нейрочипов. Так, в “Модуле” был разработан ряд ускорительных плат, содержащих от четырех до шести процессоров TMS320C40 фирмы Texas Instruments (TI). Однако достаточно скоро технические и стоимостные характеристики универсальных сигнальных процессоров перестали удовлетворять разработчиков, и встал вопрос о разработке собственного нейрочипа – специализированного процессора для систем эмуляции нейронных сетей.
Математическая модель искусственного нейрона описывается выражением yi = f(WX) = = f(Ui+Swijxj), где yi – выход i-го нейрона, W – матрица весовых коэффициентов, X – вектор входных значений, Ui – константа, f() – функция активации. Следовательно, основное назначение нейрочипа – быстро производить умножение матрицы на вектор, т.е выполнять параллельные операции умножения с накоплением. На создании такого процессора и сосредоточили свои усилия разработчики НТЦ “Модуль”. В результате был создан процессор со столь удачной архитектурой (NeuroMatrix), что, помимо задач эмуляции нейронных сетей, его с успехом можно применять как универсальный процессор ЦОС.
АРХИТЕКТУРА ПРОЦЕССОРА
Процессор NM6403 представляет собой высокопроизводительный микропроцессор, сочетающий в себе черты двух современных архитектур: VLIW (Very Long Instruction Word) и SIMD (Single Instruction Multiple Data) (рис. 1). Разработчики называют его “DSP-ориентированный RISC”. Тактовая частота – 50 МГц; напряжение питания – от 3,0 до 3,6 В; потребляемая мощность – 1,3 Вт (при тактовой частоте 50 МГц). Основные вычислительные узлы процессора – управляющее 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-разрядными данными с памятью на внешних шинах.
ВЕКТОРНЫЙ СОПРОЦЕССОР
Векторный сопроцессор – основной функциональный элемент NM6403. Именно его архитектуре NeuroMatrix обязан своими уникальными свойствами сигнальный процессор в целом. Структурно он представляет из себя матрично-векторное операционное устройство и набор регистров различного назначения.
Операционное устройство (ОУ) – регулярная матричная структура 64х64 ячейки (рис. 2). Матрица может быть произвольно разделена на столбцы и строки. В образовавшиеся после разделения макроячейки загружаются весовые коэффициенты wij. На вход матрицы подается вектор входных данных X. Каждому элементу вектора Х=(х1, х2,..., хn) соответствует строка матрицы. Ширина строки (в битах) – разрядность данного элемента входных данных. В макроячейках происходит умножение элемента вектора входных данных на весовой коэффициент и сложение со значением верхней ячейки (либо значений входов Ui). Таким образом для каждого столбца вычисляется скалярное произведение yi=Ui+Swijxj. Для снижения разрядности выходных данных и защиты от арифметического переполнения используется программируемая функция насыщения (рис. 3) – аналог функции активации нейрона. На языке нейронных сетей можно сказать, что строки матрицы соответствуют синапсам, весовые коэффициенты – синаптическим весам, столбцы – аксонам (выходам) нейронов – ОУ эмулирует фрагмент нейронной сети. Операнды и выходные значения упаковываются в 64-бит слово. Все операции в матрице ОУ производит параллельно, за один такт. Загрузка весовых коэффициентов происходит за 32 такта. Однако в векторном сопроцессоре есть “теневая” матрица, в которую весовые коэффициенты можно загружать в фоновом режиме. Переключение “теневой” и рабочей матриц занимает один такт.
Важнейшая особенность операционного устройства – работа с операндами произвольной длины (даже не кратной степени двойки) в диапазоне 1–64 бит. Этим достигается оптимальное соотношение между скоростью и точностью вычислений: при однобитовых операндах на тактовой частоте 50 МГц производительность составит 14400 MMAC (миллионов операций умножения с накоплением) или 50000 MOPS (миллионов логических операций в секунду), при 32-битовых операндах и 64-бит результате она станет номинальной – 50 MMAC. Однако чем длиннее данные, тем выше точность вычислений. Умение динамично, в процессе вычислений изменять разрядность операндов позволяет повысить производительность в тех случаях, когда обычные процессоры работают “вхолостую”, с избыточной точностью.
КОММУНИКАЦИОННЫЕ ВОЗМОЖНОСТИ ПРОЦЕССОРА
Важное свойство процессора NM6403 – возможность работы в мультипроцессорной сети. Объединение процессоров осуществляется как через внешние шины (GMI и LMI), так и посредством коммуникационных портов СР1 и СР2. При совместно используемой памяти на внешней шине без дополнительных устройств могут работать два процессора NM6403.
Выделяются три основных вида архитектуры мультипроцессорной системы на базе NM6403. Архитектура с совместно используемой памятью (рис. 4а) подразумевает доступность глобальной памяти нескольким процессорам. При архитектуре с распределенной памятью каждый процессор имеет свою локальную память, а взаимодействуют они через коммуникационные порты (рис. 4б). При смешанной архитектуре каждый процессор обладает локальной памятью, а совместно с другими процессорами ему доступна глобальная память (рис. 4в). Архитектура с единой глобальной памятью целесообразна при объединении небольшого числа процессоров. Когда их много, затраты на доступ в глобальную память возрастают и становится предпочтительней архитектура с распределенной памятью.
На базе процессора NM6403 можно строить вычислительные сети различной конфигурации, например двунаправленные конвейерные структуры, типа двухмерной решетки, кольцеобразные и т.д. Поскольку коммуникационные порты NM6403 аппаратно совместимы с портами DSP TMS320C40, его можно использовать в качестве коммутирующего элемента. У TMS320C40 шесть коммутационных портов, что позволяет создавать сети практически любого вида – древовидные, типа трехмерной решетки и т.д (рис. 5).
РЕЗУЛЬТАТЫ РАБОТ
Проект NM6403 был разработан в 1996 году с помощью САПР Cadence фирмы Cadence Design Systems (США) методом полузаказного проектирования. Первая партия кристаллов произведена в 1998 году на фабрике фирмы Samsung по 0,5-мкм КМОП-технологии. Корпус – BGA256 (Ball Grid Array). Новый процессор успешно прошел весь комплекс испытаний – на механические, климатические и другие воздействия. Проведенные тесты подтвердили надежды разработчиков – NM6403 выглядит очень достойно не только среди нейрочипов (табл. 1), но и на фоне универсальных ЦОС-процессоров (поддерживающих арифметику с фиксированной точкой) ведущих мировых производителей (табл. 2).
Так, быстрое преобразование Фурье (БПФ, 256 точек, 32-разрядные данные) производится за 4070 тактов – 80 мкс на частоте 50 МГц. Еще больше впечатляют результаты для задачи преобразования Уолша-Адамара (WHT) – 21 шаг WHT с исходными данными длиной пять бит выполняется за 0,34 с. Процессор Alpha (DEC) с частотой 530 МГц производит данное преобразование за то же время! Отметим, что WHT используется в алгоритмах сжатия речи, в том числе в CDMA-технологии связи – перспективной и бурно развивающейся. Фильтр Собеля для обработки видеоизображений, реализованный на одном процессоре NM6403, работает со скоростью 68 кадров в секунду. Для сравнения – аналогичная система на базе TMS320C40 требовала шести процессоров. Сеть прямого распространения (1024 слоя,1024 нейронов в слое) эмулируется за 1,54 с. В целом, на задачах класса матрица-матрица и вектор-матрица NM6403 существенно превосходит конкурентов в производительности. Для вектор-векторных вычислений результаты оказываются на уровне мировых лидеров или чуть уступают им (табл. 3). Но поскольку основные виды операций при обработке сигналов – умножение вектора либо матрицы на матрицу, результаты впечатляют.
На базе процессора построена ускорительная плата МЦ 4.01 (NM1) для PCI-шины. Она включает два процессора NM6403, до 8 Мбайт статической и 64 Мбайт динамической памяти. Четыре коммуникационных порта (скорость обмена – 20 Мбайт/с) позволяют легко стыковать плату с любым устройством на базе TMS320C4x.
Кроме того, НТЦ предлагает специальный модуль (TIM), выполненный в соответствии с внутренним стандартом Texas Instruments. Он содержит процессор NM6403, 1 Мбайт флэш-памяти, 1 Мбайт SRAM и 64 Мбайт DRAM, два коммуникационных порта.
Сам по себе процессор – это еще далеко не все. Разработчику необходимы средства поддержки – программные и аппаратные. В НТЦ “Модуль” создан комплект необходимых инструментов – компилятор С++, ассемблер, редактор связей, библиотека загрузки и обмена, набор системных и прикладных библиотек, отладчик, программный эмулятор (на уровне инструкций и на уровне тактов процессора). Подготовлена необходимая доументация. На сайте фирмы (http://www.module.ru/ ruproducts/nm6403sw.html) доступна бесплатная демо-версия программных средств разработки – SDK v.1.2. Она включает компилятор и средства отладки программ; документацию, описывающую язык ассемблера, и устройство процессора, а также примеры программ с подробными комментариями.
ЧТО ДАЛЬШЕ
Фирма не стоит на месте. Уже анонсирован ЦОС-процессор следующего поколения – NM6404. Новый процессор будет изготавливаться на фабрике фирмы Fujitsu по 0,25-мкм технологии. Корпус нового процессора – типа PQFP256. Тактовая частота возросла до 133 МГц. Введен механизм управления потребляемой мощностью. Система команд NM6404 та же, что у NM6403. Это позволяет использовать в новом процессоре созданное для NM6403 системное и прикладное программное обеспечение.
Однако NM6404 имеет ряд отличий, существенно расширяющих его возможности и улучшающих рабочие характеристики. Прежде всего NM6404 содержит четыре банка внутренней статической памяти общим объемом 2 Мбит. Это позволяет существенно сократить число микросхем внешней памяти, использовать более дешевые и медленные ИС, а в ряде случаев вообще обходиться без них. Тем самым резко снижается стоимость изделий на базе процессора NM6404. Любой цикл обращения процессора к его внутренней памяти выполняется за один такт, параллельно к каждому банку – одновременно до четырех обращений. К процессору без дополнительных устройств можно подключать ИС синхронной динамической памяти (SDRAM). NM6404 имеет JTAG-порт и внутрисхемный эмулятор, существенно упрощающие процедуры тестирования аппаратных средств и отладки прикладного программного обеспечения.
Аппаратные средства NM6404 позволяют без внешнего контроллера подключить к внешним шинам (локальной или глобальной) до четырех процессоров NM6404, работающих с общей памятью в режиме Shared Memory. Эта способность NM6404 позволяет строить на его основе мультипроцессорные системы с матричной структурой (рис. 6). В мультипроцессорной системе процессору доступна не только внешняя, но и внутренняя память соседей.
Усовершенствован и векторный сопроцессор. Так, до 16 тактов сократился цикл перезагрузки матрицы весовых коэффициентов. Причем при пересылке коэффициентов из “теневой” матрицы в рабочую коэффициенты из рабочей матрицы могут сохраняться в “теневой”. Таким образом постоянно хранятся две матрицы весовых коэффициентов, что сильно ускоряет выполнение ряда алгоритмов.
ВМЕСТО ЗАКЛЮЧЕНИЯ
Итак, свершилось то, во что поверить трудно – российская фирма разработала и выпустила собственный сигнальный процессор, по ряду параметров превосходящий зарубежные аналоги. Причем конкурентны не только технические характеристики, но и цена – 39,5 долл. в партии в 1000 шт. – сравните с 200 долл. за TMS320C40. И это для первых процессоров. Работы НТЦ “Модуль” получили признание во всем мире. Его первые продукты (процессор NM6403 и встраиваемый модуль NM1) приняты в лучшую в DSP-индустрии программу Texas Instruments – “Customer Choice Third-Party Network”. Программа была организована TI с целью продвижения продуктов и услуг компаний, использующих в своих разработках семейство DSP TMS320. Она объединяет около 170 фирм – разработчиков аппаратуры и программного обеспечения со всего мира. Архитектура процессора патентуется в России (заявка №98110876, решение о выдаче патента РФ от 20 января 1999 г.), подана заявка на международный патент по процедуре РСТ (№ PCT/RU98//00449 от 31 декабря 1998 г., конвенционный приоритет России от 16 июня 1998 г.).
Благодаря созданию проектов в среде САПР Synopsys “Модуль” получил возможность работать на рынке процессорных ядер. Заключен ряд соглашений с зарубежными фирмами о продвижении продукции. Перспективы тут достаточно благоприятные, поскольку среди производителей процессоров для встроенных систем нет того чудовищного давления со стороны монополистов, как на рынке универсальных процессоров (со стороны Intel). А области применения NM6403/04 очень широки – телекоммуникации (базовые станции систем CDMA и TDMA), встроенные системы, мультипроцессорные супер-ЭВМ, обработка видеоизображений, эмуляция нейронных сетей и многое другое.
Пример НТЦ “Модуль” показывает, что отсутствие в России современных микроэлектронных технологий – не препятствие для создания совершенной элементной базы. Разделение труда в данной сфере состоялось уже давно, очень многие фирмы (и американские, и европейские) производят свои ИС на “кремниевых фабриках” Юго-Восточного региона. Конечно, и разработка проекта ИС требует существенных материальных и временных затрат, но они несоизмеримо меньше, чем вложения в производственное технологическое оборудование. Коллективы, способные заниматься разработкой, в России есть. А инвестиции в высокие технологии – одни из наиболее рентабельных. За вами слово, господа финансисты.
Контактный телефон:
(095)152-9335
В прошлом номере мы рассказывали о работах НТЦ “Модуль” в области нейросетевых технологий. Напомним, что одно из направлений деятельности фирмы – создание программно-аппаратных комплексов для решения прикладных задач, связанных с обработкой сигналов различной природы, распознавания образов, целеуказания, нечеткого поиска, самообучения и т.д. Эти задачи требуют существенных вычислительных ресурсов, тем более что решаются они в нейросетевом базисе. Для увеличения вычислительной мощности применяют специальные ускорительные платы – нейроускорители. Они строятся на основе как универсальных процессоров цифровой обработки сигналов (ЦОС, DSP), так и специализированных нейрочипов. Так, в “Модуле” был разработан ряд ускорительных плат, содержащих от четырех до шести процессоров TMS320C40 фирмы Texas Instruments (TI). Однако достаточно скоро технические и стоимостные характеристики универсальных сигнальных процессоров перестали удовлетворять разработчиков, и встал вопрос о разработке собственного нейрочипа – специализированного процессора для систем эмуляции нейронных сетей.
Математическая модель искусственного нейрона описывается выражением yi = f(WX) = = f(Ui+Swijxj), где yi – выход i-го нейрона, W – матрица весовых коэффициентов, X – вектор входных значений, Ui – константа, f() – функция активации. Следовательно, основное назначение нейрочипа – быстро производить умножение матрицы на вектор, т.е выполнять параллельные операции умножения с накоплением. На создании такого процессора и сосредоточили свои усилия разработчики НТЦ “Модуль”. В результате был создан процессор со столь удачной архитектурой (NeuroMatrix), что, помимо задач эмуляции нейронных сетей, его с успехом можно применять как универсальный процессор ЦОС.
АРХИТЕКТУРА ПРОЦЕССОРА
Процессор NM6403 представляет собой высокопроизводительный микропроцессор, сочетающий в себе черты двух современных архитектур: VLIW (Very Long Instruction Word) и SIMD (Single Instruction Multiple Data) (рис. 1). Разработчики называют его “DSP-ориентированный RISC”. Тактовая частота – 50 МГц; напряжение питания – от 3,0 до 3,6 В; потребляемая мощность – 1,3 Вт (при тактовой частоте 50 МГц). Основные вычислительные узлы процессора – управляющее 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-разрядными данными с памятью на внешних шинах.
ВЕКТОРНЫЙ СОПРОЦЕССОР
Векторный сопроцессор – основной функциональный элемент NM6403. Именно его архитектуре NeuroMatrix обязан своими уникальными свойствами сигнальный процессор в целом. Структурно он представляет из себя матрично-векторное операционное устройство и набор регистров различного назначения.
Операционное устройство (ОУ) – регулярная матричная структура 64х64 ячейки (рис. 2). Матрица может быть произвольно разделена на столбцы и строки. В образовавшиеся после разделения макроячейки загружаются весовые коэффициенты wij. На вход матрицы подается вектор входных данных X. Каждому элементу вектора Х=(х1, х2,..., хn) соответствует строка матрицы. Ширина строки (в битах) – разрядность данного элемента входных данных. В макроячейках происходит умножение элемента вектора входных данных на весовой коэффициент и сложение со значением верхней ячейки (либо значений входов Ui). Таким образом для каждого столбца вычисляется скалярное произведение yi=Ui+Swijxj. Для снижения разрядности выходных данных и защиты от арифметического переполнения используется программируемая функция насыщения (рис. 3) – аналог функции активации нейрона. На языке нейронных сетей можно сказать, что строки матрицы соответствуют синапсам, весовые коэффициенты – синаптическим весам, столбцы – аксонам (выходам) нейронов – ОУ эмулирует фрагмент нейронной сети. Операнды и выходные значения упаковываются в 64-бит слово. Все операции в матрице ОУ производит параллельно, за один такт. Загрузка весовых коэффициентов происходит за 32 такта. Однако в векторном сопроцессоре есть “теневая” матрица, в которую весовые коэффициенты можно загружать в фоновом режиме. Переключение “теневой” и рабочей матриц занимает один такт.
Важнейшая особенность операционного устройства – работа с операндами произвольной длины (даже не кратной степени двойки) в диапазоне 1–64 бит. Этим достигается оптимальное соотношение между скоростью и точностью вычислений: при однобитовых операндах на тактовой частоте 50 МГц производительность составит 14400 MMAC (миллионов операций умножения с накоплением) или 50000 MOPS (миллионов логических операций в секунду), при 32-битовых операндах и 64-бит результате она станет номинальной – 50 MMAC. Однако чем длиннее данные, тем выше точность вычислений. Умение динамично, в процессе вычислений изменять разрядность операндов позволяет повысить производительность в тех случаях, когда обычные процессоры работают “вхолостую”, с избыточной точностью.
КОММУНИКАЦИОННЫЕ ВОЗМОЖНОСТИ ПРОЦЕССОРА
Важное свойство процессора NM6403 – возможность работы в мультипроцессорной сети. Объединение процессоров осуществляется как через внешние шины (GMI и LMI), так и посредством коммуникационных портов СР1 и СР2. При совместно используемой памяти на внешней шине без дополнительных устройств могут работать два процессора NM6403.
Выделяются три основных вида архитектуры мультипроцессорной системы на базе NM6403. Архитектура с совместно используемой памятью (рис. 4а) подразумевает доступность глобальной памяти нескольким процессорам. При архитектуре с распределенной памятью каждый процессор имеет свою локальную память, а взаимодействуют они через коммуникационные порты (рис. 4б). При смешанной архитектуре каждый процессор обладает локальной памятью, а совместно с другими процессорами ему доступна глобальная память (рис. 4в). Архитектура с единой глобальной памятью целесообразна при объединении небольшого числа процессоров. Когда их много, затраты на доступ в глобальную память возрастают и становится предпочтительней архитектура с распределенной памятью.
На базе процессора NM6403 можно строить вычислительные сети различной конфигурации, например двунаправленные конвейерные структуры, типа двухмерной решетки, кольцеобразные и т.д. Поскольку коммуникационные порты NM6403 аппаратно совместимы с портами DSP TMS320C40, его можно использовать в качестве коммутирующего элемента. У TMS320C40 шесть коммутационных портов, что позволяет создавать сети практически любого вида – древовидные, типа трехмерной решетки и т.д (рис. 5).
РЕЗУЛЬТАТЫ РАБОТ
Проект NM6403 был разработан в 1996 году с помощью САПР Cadence фирмы Cadence Design Systems (США) методом полузаказного проектирования. Первая партия кристаллов произведена в 1998 году на фабрике фирмы Samsung по 0,5-мкм КМОП-технологии. Корпус – BGA256 (Ball Grid Array). Новый процессор успешно прошел весь комплекс испытаний – на механические, климатические и другие воздействия. Проведенные тесты подтвердили надежды разработчиков – NM6403 выглядит очень достойно не только среди нейрочипов (табл. 1), но и на фоне универсальных ЦОС-процессоров (поддерживающих арифметику с фиксированной точкой) ведущих мировых производителей (табл. 2).
Так, быстрое преобразование Фурье (БПФ, 256 точек, 32-разрядные данные) производится за 4070 тактов – 80 мкс на частоте 50 МГц. Еще больше впечатляют результаты для задачи преобразования Уолша-Адамара (WHT) – 21 шаг WHT с исходными данными длиной пять бит выполняется за 0,34 с. Процессор Alpha (DEC) с частотой 530 МГц производит данное преобразование за то же время! Отметим, что WHT используется в алгоритмах сжатия речи, в том числе в CDMA-технологии связи – перспективной и бурно развивающейся. Фильтр Собеля для обработки видеоизображений, реализованный на одном процессоре NM6403, работает со скоростью 68 кадров в секунду. Для сравнения – аналогичная система на базе TMS320C40 требовала шести процессоров. Сеть прямого распространения (1024 слоя,1024 нейронов в слое) эмулируется за 1,54 с. В целом, на задачах класса матрица-матрица и вектор-матрица NM6403 существенно превосходит конкурентов в производительности. Для вектор-векторных вычислений результаты оказываются на уровне мировых лидеров или чуть уступают им (табл. 3). Но поскольку основные виды операций при обработке сигналов – умножение вектора либо матрицы на матрицу, результаты впечатляют.
На базе процессора построена ускорительная плата МЦ 4.01 (NM1) для PCI-шины. Она включает два процессора NM6403, до 8 Мбайт статической и 64 Мбайт динамической памяти. Четыре коммуникационных порта (скорость обмена – 20 Мбайт/с) позволяют легко стыковать плату с любым устройством на базе TMS320C4x.
Кроме того, НТЦ предлагает специальный модуль (TIM), выполненный в соответствии с внутренним стандартом Texas Instruments. Он содержит процессор NM6403, 1 Мбайт флэш-памяти, 1 Мбайт SRAM и 64 Мбайт DRAM, два коммуникационных порта.
Сам по себе процессор – это еще далеко не все. Разработчику необходимы средства поддержки – программные и аппаратные. В НТЦ “Модуль” создан комплект необходимых инструментов – компилятор С++, ассемблер, редактор связей, библиотека загрузки и обмена, набор системных и прикладных библиотек, отладчик, программный эмулятор (на уровне инструкций и на уровне тактов процессора). Подготовлена необходимая доументация. На сайте фирмы (http://www.module.ru/ ruproducts/nm6403sw.html) доступна бесплатная демо-версия программных средств разработки – SDK v.1.2. Она включает компилятор и средства отладки программ; документацию, описывающую язык ассемблера, и устройство процессора, а также примеры программ с подробными комментариями.
ЧТО ДАЛЬШЕ
Фирма не стоит на месте. Уже анонсирован ЦОС-процессор следующего поколения – NM6404. Новый процессор будет изготавливаться на фабрике фирмы Fujitsu по 0,25-мкм технологии. Корпус нового процессора – типа PQFP256. Тактовая частота возросла до 133 МГц. Введен механизм управления потребляемой мощностью. Система команд NM6404 та же, что у NM6403. Это позволяет использовать в новом процессоре созданное для NM6403 системное и прикладное программное обеспечение.
Однако NM6404 имеет ряд отличий, существенно расширяющих его возможности и улучшающих рабочие характеристики. Прежде всего NM6404 содержит четыре банка внутренней статической памяти общим объемом 2 Мбит. Это позволяет существенно сократить число микросхем внешней памяти, использовать более дешевые и медленные ИС, а в ряде случаев вообще обходиться без них. Тем самым резко снижается стоимость изделий на базе процессора NM6404. Любой цикл обращения процессора к его внутренней памяти выполняется за один такт, параллельно к каждому банку – одновременно до четырех обращений. К процессору без дополнительных устройств можно подключать ИС синхронной динамической памяти (SDRAM). NM6404 имеет JTAG-порт и внутрисхемный эмулятор, существенно упрощающие процедуры тестирования аппаратных средств и отладки прикладного программного обеспечения.
Аппаратные средства NM6404 позволяют без внешнего контроллера подключить к внешним шинам (локальной или глобальной) до четырех процессоров NM6404, работающих с общей памятью в режиме Shared Memory. Эта способность NM6404 позволяет строить на его основе мультипроцессорные системы с матричной структурой (рис. 6). В мультипроцессорной системе процессору доступна не только внешняя, но и внутренняя память соседей.
Усовершенствован и векторный сопроцессор. Так, до 16 тактов сократился цикл перезагрузки матрицы весовых коэффициентов. Причем при пересылке коэффициентов из “теневой” матрицы в рабочую коэффициенты из рабочей матрицы могут сохраняться в “теневой”. Таким образом постоянно хранятся две матрицы весовых коэффициентов, что сильно ускоряет выполнение ряда алгоритмов.
ВМЕСТО ЗАКЛЮЧЕНИЯ
Итак, свершилось то, во что поверить трудно – российская фирма разработала и выпустила собственный сигнальный процессор, по ряду параметров превосходящий зарубежные аналоги. Причем конкурентны не только технические характеристики, но и цена – 39,5 долл. в партии в 1000 шт. – сравните с 200 долл. за TMS320C40. И это для первых процессоров. Работы НТЦ “Модуль” получили признание во всем мире. Его первые продукты (процессор NM6403 и встраиваемый модуль NM1) приняты в лучшую в DSP-индустрии программу Texas Instruments – “Customer Choice Third-Party Network”. Программа была организована TI с целью продвижения продуктов и услуг компаний, использующих в своих разработках семейство DSP TMS320. Она объединяет около 170 фирм – разработчиков аппаратуры и программного обеспечения со всего мира. Архитектура процессора патентуется в России (заявка №98110876, решение о выдаче патента РФ от 20 января 1999 г.), подана заявка на международный патент по процедуре РСТ (№ PCT/RU98//00449 от 31 декабря 1998 г., конвенционный приоритет России от 16 июня 1998 г.).
Благодаря созданию проектов в среде САПР Synopsys “Модуль” получил возможность работать на рынке процессорных ядер. Заключен ряд соглашений с зарубежными фирмами о продвижении продукции. Перспективы тут достаточно благоприятные, поскольку среди производителей процессоров для встроенных систем нет того чудовищного давления со стороны монополистов, как на рынке универсальных процессоров (со стороны Intel). А области применения NM6403/04 очень широки – телекоммуникации (базовые станции систем CDMA и TDMA), встроенные системы, мультипроцессорные супер-ЭВМ, обработка видеоизображений, эмуляция нейронных сетей и многое другое.
Пример НТЦ “Модуль” показывает, что отсутствие в России современных микроэлектронных технологий – не препятствие для создания совершенной элементной базы. Разделение труда в данной сфере состоялось уже давно, очень многие фирмы (и американские, и европейские) производят свои ИС на “кремниевых фабриках” Юго-Восточного региона. Конечно, и разработка проекта ИС требует существенных материальных и временных затрат, но они несоизмеримо меньше, чем вложения в производственное технологическое оборудование. Коллективы, способные заниматься разработкой, в России есть. А инвестиции в высокие технологии – одни из наиболее рентабельных. За вами слово, господа финансисты.
Контактный телефон:
(095)152-9335
Отзывы читателей