Стремительный переход современных систем на цифровые стандарты обусловил необходимость обработки больших объемов информации. Сложные операции с сигналами, например, распаковка сжатых аудио- и видеоданных, маршрутизация информационных потоков и т. п. требуют применения высокопроизводительных вычислительных систем. Такие системы могут быть реализованы на различной элементной базе, но наибольшее распространение получили устройства на базе цифровых сигнальных процессоров (Digital Signal Processor, DSP).
История развития вычислительных систем с массовым параллелизмом насчитывает уже не один десяток лет. Пожалуй, это одна из немногих областей науки и техники, где отечественные разработки находятся на уровне мировых достижений, а в некоторых случаях и превосходят их.
Архитектура процессора NM6403
В прошлом году исполнилось 10 лет Научно-техническому центру (НТЦ) “Модуль” (www.module.ru), которым все это время руководит Юрий Иванович Борисов. Профиль фирмы - разработка встраиваемых систем и комплексов. Под встраиваемыми системами понимают и космические системы информации, и сотовые телефоны, и бытовую технику. НТЦ в основном ориентируется на специализированный рынок высокотехнологичного оборудования - создает бортовые комплексы, системы обработки изображений и распознавания образов, а также DSP RISC-процессоры. Учредителями центра в свое время выступили ЦНПО “Вымпел” и НИИ радиоприборостроения. Объединение “Вымпел” занималось, в частности, созданием систем предупреждения и контроля для противоракетной обороны (ПРО). В 1990 г. в НТЦ перевели более 60 специалистов со своими темами разработок. 26 октября 1990 г. считается днем рождения “Модуля”. Самый главный ресурс, которым владеет НТЦ, это интеллектуальный потенциал ученых и инженеров - всего 120 человек.
НТЦ “Модуль” одним из первых начал создавать различную аппаратуру в виде стандартизованных плат для конкретного применения с использованием зарубежной элементной базы. Следующим его шагом стала разработка собственного прикладного программного обеспечения для выпускаемых плат. В области встраиваемых систем, пропускающих большие потоки информации в реальном времени и функционирующих по технологии искусственных нейронных сетей, было проведено множество научных исследований, которые позволили эмулировать нейронные сети человеческого мозга, способные решать некоторые конкретные задачи. Данная технология применяется специалистами “Модуля” для обработки изображений (распознавания движущихся и неподвижных объектов) в реальном времени.
Поначалу при создании плат для поддержки нейронных процессов специалисты НТЦ использовали зарубежные DSP. Однако их архитектура не соответствовала классу решаемых задач, и со временем специалисты “Модуля” пришли к выводу, что можно не только разработать свой DSP-процессор, но и сделать его гораздо лучше зарубежных аналогов. Таким устройством стала микросхема NeuroMatrix NM6403.
Микропроцессор NM6403
Работа над технологией NeuroMatrix, объединяющей в себе две современные архитектуры - VLIW (Very Long Instruction Word) и SIMD (Single Instruction Multiple Data), началась в 1996 г. А уже в 1998-м в НТЦ получена первая партия (25 шт.) новых процессоров, изготовленных на заводе Samsung Electronics по КМОП-технологии с соблюдением проектных норм 0,5 мкм. Инженеры справились со всеми проблемами и за восемь месяцев спроектировали первую версию микросхемы оригинальной архитектуры. В июне 1999-го было объявлено о начале поставок коммерческих партий этого процессора.
На 48-м Всемирном Салоне изобретений, научных исследований и промышленных инноваций в 1999 г. в Брюсселе работа “Нейропроцессор, устройство для вычисления функций насыщения, вычислительное устройство и сумматор” (патент РФ № 2131145) получила золотую медаль за достижения в области электроники и высоких технологий.
Ноу-хау НТЦ стало использование в одной микросхеме сразу двух процессоров - векторного (DSP) и скалярного (RISC), причем с единой системой команд. Действительно, в состав устройства входят 32-разрядное RISC-ядро и 64-разрядное VECTOR-ядро. За один процессорный такт может быть выполнено до 288 операций умножения с накоплением. Именно поэтому NM6403 классифицируется как 64-разрядный DSP RISC-процессор, который по своим возможностям превосходит все мировые DSP-аналоги. Отметим, что при соблюдении проектных норм 0,7 мкм 100 тыс. вентилей, требуемых для реализации процессора, умещаются на кристалле размером 10х10,5 мм.
Для большинства DSP-приложений взвешенное суммирование является доминирующим действием, требующим применения аппаратных узлов типа матричных умножителей с аккумулятором (Multiply Accumulate, MAC) - таким образом обеспечивается производительность, необходимая для работы в реальном масштабе времени. Одна из главных идей, воплощенных в этом процессоре, - функции с операндами переменной разрядности. За счет этого может варьироваться скорость обработки данных и точность вычислений. В процессоре NM6403 реализован универсальный узел, одновременно выполняющий столько MAC-операций, сколько требуется для оптимизации критерия производительность/точность. При решении ряда задач, связанных с большим потоком данных (обработка черно-белого видео в реальном масштабе времени, радиолокация, нейросети и т. п.), традиционные DSP-архитектуры, имеющие 16- и 32-разрядный формат данных, используются неэффективно. Из-за жесткой фиксации разрядной сетки не представляется возможным подстроиться под изменяющиеся форматы данных. Новая архитектура NeuroMatrix позволяет обойти подобные ограничения и производить MAC-операции в пределах от 1 до 64 разрядов, причем количество MAC, выполняемых в единицу времени, зависит от числа и разрядности операндов, умещающихся в 64-разрядном слове. Ядром архитектуры является регулярная структура, похожая на матричный умножитель. Матрица состоит из 64x64 ячеек, каждая из которых содержит элемент памяти и несколько логических элементов. Матрица может быть разделена на несколько подматриц двумя 64-разрядными программируемыми регистрами, определяющими границы MAC и входных данных.
Как известно, производительность нейровычислителей принято измерять в (миллионах) умножений с накоплением в секунду: (М)МАС - наряду с распространенными (М) IPS и (M) OPS. Так вот, производительность этого процессора для 32-разрядных данных достигает 50 MIPS и 200 MOPS (на тактовой частоте 40 МГц - 40 MIPS и 120 MOPS). Уникальная возможность программного управления длиной операндов и результатов позволяет варьировать производительность на векторных операциях в пределах от 50 MMAC (32 разряда) до 51 200 MMAC (1 разряд) при тактовой частоте 50 МГц.
Оценивать быстродействие тех или иных устройств на основе DSP принято по времени выполнения типовых операций цифровой обработки сигналов: фильтр Собеля, быстрое преобразование Фурье (БПФ), преобразование Уолша - Адамара и т. д. При оценке производительности нейровычислителей используется такой показатель, как CPS (Connections Per Second) - число соединений (умножений с накоплением) в секунду.
При тестировании процессор NM6403 продемонстрировал отличные результаты в широком спектре DSP-приложений. Так, 256-точечное 32-разрядное комплексное БПФ производится за 4070 тактов и требует только 80 мкс, преобразование Уолша - Адамара (2M точек) вычисляется за 0,34 с, нейросеть прямого распространения (1024 слоя, 1024 нейрона в слое) эмулируется за 1,53 с, фильтр Собеля работает со скоростью 68 кадров в секунду (размер кадра 384x288 байт). Производительность при тактовой частоте 30 МГц для байтовых операндов составляет 720 MCPS (миллионов соединений в секунду), а для бинарных операций - 8640 MCPS.
Как уже отмечалось, ядро NM6403 состоит из двух базовых блоков: 64-разрядного векторного и 32-разрядного RISC-процессора. Кроме того, имеются два идентичных программируемых интерфейса для работы с внешней памятью различного типа и два коммуникационных порта, на аппаратном уровне совместимых с портами ЦПС TMS320C4x (Texas Instruments) и позволяющих строить многопроцессорные системы.
Центральный процессорный узел представляет собой суперскалярный пятиступенчатый 32-разрядный RISC-процессор с оригинальной системой команд. Он предназначен для выполнения арифметико-логических операций над 32-разрядными скалярными данными, формирования 32-разрядных адресов команд и данных при обращениях к внешней памяти и выполнения всех основных функций по управлению работой NM6403. В его состав входят АЛУ, сдвигатель, два генератора адресов данных, восемь регистров общего назначения, восемь адресных регистров, счетчик команд, регистр слова состояния процессора, регистр запросов прерываний, буфер и регистры команд, два программируемых таймера.
Векторный сопроцессор выполняет арифметические и логические операции над 64-разрядными векторами данных программируемой разрядности. Его ядром является запатентованная разработка NeuroMatrix Engine.
В систему входят два идентичных блока программируемого интерфейса с локальной и глобальной 64-разрядными внешними шинами, позволяющими подключить внешнюю память. Каждый такой блок обеспечивает эффективную работу процессора с двумя банками внешней памяти различной емкости (типа SRAM, EDO DRAM) и различного быстродействия без использования внешнего контроллера. В обоих блоках предусмотрена аппаратная поддержка режима разделяемой памяти для трех различных многопроцессорных конфигураций внешней шины. Выборка команд из внешней памяти осуществляется 64-разрядными словами, каждое из которых представляет собой одну 64-разрядную или две 32-разрядные команды. По шине выходных данных информация из RISC-ядра, векторного сопроцессора и коммуникационных портов пересылается в память. По входным шинам данные и команды могут быть из памяти направлены в любой основной узел нейропроцессора. При обращении во внешнюю память процессор использует 32-разрядный вычисляемый адрес. Его доступное адресное пространство равно 16 Гб. Пропускная способность двух 64-разрядных интерфейсов с памятью достигает 800 Мб/с.
Два идентичных коммуникационных порта обеспечивают двунаправленный обмен информацией со скоростью 20 Мб/с. Они предназначены для построения высокопроизводительных многопроцессорных систем на основе NM6403 и полностью совместимы с коммуникационным портом процессора TMS320C4x. Каждый коммуникационный порт имеет встроенный контроллер ПДП, позволяющий обмениваться 64-разрядными данными с внешней памятью в фоновом режиме.
Ближайшие перспективы
Процессор NM6403 можно использовать не только в узкоспециальных областях. Сегодня он применяется как акселератор для ПК и рабочих станций, предназначенных для эмуляции нейронных сетей, для обработки видеоизображений и векторно-матричных вычислений, в телекоммуникациях, как элементная база для построения многопроцессорных суперЭВМ. Базовое ПО NeuroMatrix обеспечивает полный цикл разработки и отладки прикладного ПО. Набор SDK включает компилятор и средства отладки программ, документацию на язык ассемблера и устройство процессора, а также примеры программ с подробными комментариями. Программные драйверы поддерживают работу под управлением популярных операционных систем - Windows 95/98, Windows NT и Linux.
В сентябре 1999 г. НТЦ “Модуль” объявил о готовности лицензировать процессорное ядро NeuroMatrix Core. Зарубежные фирмы - производители электронных компонентов не заставили себя долго ждать, и уже в октябре Fujitsu Microelectronics Europe GmbH и “Модуль” объявили о подписании соответствующего соглашения. Подготовка интеллектуального продукта, отвечающего западным стандартам, - это сложнейшая задача. Для успешной реализации проекта необходимо использовать мощные рабочие станции и современные САПР (типа Synopsys и Cadence), а также провести весьма объемную патентную работу.
Европейское отделение Fujitsu, решив интегрировать нейропроцессор в свои кремниевые системы полузаказных интегральных схем ASIC (Application-Specific Integrated Circuit), приобрело лицензию на применение архитектуры в течение четырех лет на территории Европы. Со своей стороны НТЦ “Модуль” получил долгосрочный контракт с ведущей полупроводниковой компанией, уже сейчас предлагающей системы на одном кристалле по технологии 0,18 мкм. Посредником-консультантом сделки с российской стороны выступила государственная компания “Лицензинторг”, специалисты которой заверяют, что продажа изобретения НТЦ “Модуль” - первая за 37 лет экспортная сделка такого рода. Лицензионные отчисления за каждый проданный продукт с использованием данной технологии не превышают 5%. Стоимость подобных изобретений на мировом рынке может составлять от 250 тыс. до 1 млн. долл.
Для начала Fujitsu намерена выпускать декодеры MPEG-4, предназначенные для высокоскоростных систем передачи видеоданных и сотовой телефонии третьего поколения. В дальнейшем, с утверждением новых стандартов MPEG, ядро можно будет применять с минимальными доработками, путем модификации только программного обеспечения.
В ближайшее время на рынке должна появиться следующая новинка НТЦ “Модуль” - микропроцессор NM6404. По предварительным данным, он будет выполнен по КМОП-технологии с соблюдением проектных норм 0,25 мкм, что обеспечит работу на тактовой частоте 133 МГц. На кристалле будет реализована кэш-память объемом 2 Мбит, контроллер SDRAM и JTAG-порт (для отладки). Увеличено число типов используемой памяти, теперь это SDRAM, SRAM, DRAM и флэш-память. По системе команд микропроцессор NM6404 будет совместим с NM6403, причем его аппаратные средства позволяют без внешнего контроллера подключить к внешним шинам до четырех процессоров, работающих с разделяемой памятью. Это обеспечит возможность построения многопроцессорных систем с матричной структурой.