Однако, если еще 5 лет назад ПЛИС занимали весьма скромную нишу на рынке электронных компонентов -(в первую очередь из-за небольшого быстродействия и малого количества эквивалентных логических вентилей), то сейчас ситуация изменилась кардинально. Раньше о ПЛИС говорили, в основном, как об «игрушках», недостойных внимания серьезных разработчиков, но с появлением быстродействующих ПЛИС сверхвысокой интеграции, работающих на высоких тактовых частотах, их ниша на мировом рынке значительно расширилась. Современные образцы ПЛИС, выполненные по 0,22-микронной технологии, способны работать на частотах до 300 МГц и реализуют до 3 млн. эквивалентных логических вентилей. Компания Xilinx, один из мировых лидеров в данной области, уже объявила о выпуске ПЛИС в 10 млн. логических вентилей. Столь резкое увеличение мощности ПЛИС позволяет использовать их не только для реализации простых контроллеров и интерфейсных узлов, но и для цифровой обработки сигналов, сложных интеллектуальных контроллеров и нейрочипов. Появление быстродействующих ПЛИС со сверхнизким уровнем энергопотребления открывает широкие возможности по их использованию в системах мобильной связи (в частности, непосредственно в сотовых телефонах и пейджерах), в портативных проигрывателях (например, в МР3-проигрывателях) и т.д.

По целому ряду причин особый интерес вызывает использование ПЛИС для реализации нейрочипов. Приведем эти причины. Во-первых, разработка проектов на ПЛИС оказывается достаточно быстрой, занимая всего несколько месяцев. Во-вторых, ПЛИС на сегодняшний день обладают огромными ресурсами, которые могут быть эффективно использованы при реализации нейрочипов. И, самое главное, нейрочипы - это та область микропроцессорной техники, в которой в настоящее время нет подавляющего лидерства США и Японии, и нишу нейрочипов могут занять другие страны мира, в том числе и Россия.

Особенности реализации нейрочипов

Для начала определим те основные особенности, которые накладывает специфика нейронных сетей на аппаратную реализацию. Поскольку нейронная сеть представляет собой большое количество одинаковых параллельно работающих простейших элементов — нейронов, то при ее аппаратной реализации желательно обеспечить массовое параллельное выполнение простейших операций, причем чем большая степень параллельности вычислений достигается, тем лучше. Традиционным методом повышения степени параллельности вычислений является каскадирование процессоров, т.е. объединение нескольких процессоров в единой вычислительной системе для решения поставленной задачи. Поскольку процессоры работают независимо друг от друга, то вроде бы достигается необходимая степень параллельности. Однако не следует забывать об обмене данными между процессорами. Каналы обмена данными - то «узкое горло», которое может свести на нет все выигрыши в скорости вычислений. Действительно, если 32-разрядные процессоры работают на тактовой частоте, предположим, 200 МГц, а 32-разрядные каналы связи обеспечивают передачу данных с частотой, например, 20 МГц, то такие межсоединения будут на порядок замедлять совместную скорость работы соединенных между собой процессоров. Разработчики параллельных систем всеми силами борются за расширение «узкого горла», но скорость современных процессоров все равно растет быстрее, чем пропускная способность каналов передачи данных. Поэтому зачастую более выгодным решением оказывается использовать один более мощный процессор, чем несколько менее мощных, соединенных между собой.

Традиционно считается, что нейронные сети можно успешно реализовать на универсальных процессорах, RISC-процессорах или на специализированных нейронных процессорах (нейрочипах). У каждого из перечисленных типов аппаратной реализации есть свои достоинства и недостатки.

Универсальные микропроцессоры, ярким представителем которых является семейство Intel 386/486/Pentium/PII/PIII, являются наиболее доступными и успешно используются для моделирования нейронных сетей. Доступность и распространенность компьютерных систем, построенных на таких процессорах, являются весомыми достоинствами для их применения. В качестве их основных недостатков для моделирования нейронных сетей обычно отмечается неадекватность (избыточность) архитектуры (хотя этот «недостаток» находится под большим вопросом) и сложности, связанные с каскадированием, т.е. сложности при построении многопроцессорных систем для увеличения суммарной производительности, хотя в свете вышесказанного этот недостаток также можно оспорить.

RISC-процессоры лишены указанных недостатков, поскольку имеют возможности каскадирования, предусмотренные на аппаратном уровне, да и архитектура их более адекватна для выполнения нейронных операций. Однако, существенной их чертой, снижающей эффективность применения, является дороговизна и относительно малое распространение среди широких масс разработчиков. Многие лишь слышали, что такие процессоры существуют, но никогда с ними не работали. Наиболее известными типами современных RISC-процессоров, применяемых в моделировании нейронных систем, являются TMS компании Texas Instruments, ADSP компании Analog Devices, SHARC и другие.

Нейронный процессор можно рассматривать как супер-RISC-процессор, ориентированный на выполнение нейронных операций и обеспечивающий их массовое выполнение. Разумеется, нейропроцессор обеспечивает большую скорость при выполнении нейронных операций, чем универсальные или RISC-процессоры. Современные проектные решения позволяют интегрировать нейропроцессоры в вычислительные системы, построенные на базе RISC-процессоров, обеспечивая таким образом их совместимость. Но «звездный час» нейропроцессоров пока не наступил. Виной тому их высокая стоимость (выше, чем даже у RISC-процессоров) и малая известность.

СБИС-нейрочипы или ПЛИС-нейрочипы?

Для того чтобы ответить на поставленный в заголовке этого раздела вопрос, необходимо сначала до конца определиться с тем, что такое нейрочип. Принято считать, что нейрочип - это специализированный процессор, оптимизированный для массового выполнения нейронных операций: скалярного умножения и нелинейного преобразования. У большинства разработчиков слово «процессор» ассоциируется с СБИС. Поэтому бытует расхожее мнение, что нейрочип - это заказной или полузаказной цифровой кристалл, архитектура которого как раз и оптимизирована под нейронные операции. В мире не один десяток фирм поддерживают это мнение делом; практически все известные на сегодняшний день коммерческие нейрочипы выполнены в виде СБИС.

Продолжить логическую цепочку можно примерно следующим образом. Нейрочип - это СБИС. Следовательно для разработки новой модели нейрочипа необходимо спроектировать новый кристалл, а это большое время и большие деньги, которые можно окупить либо большой серией, либо большой ценой кристалла. Про большую серию речь обычно не идет: это у фирмы Intel серии процессоров исчисляются миллионами и на них есть спрос, а нейрочипов столько просто не нужно, поскольку предназначены они для решения весьма специфических задач.

Отсюда следует первый вывод: нейрочип - вещь редкая и дорогая, и о массовом ее применении речь не идет. Цена зарубежных нейрокристаллов к лету 2000 года не опускалась ниже 100 долл., а платы и модули на базе нейрочипов (которые, собственно, и применяются для решения конкретных задач) стоят несколько тысяч долларов.

Кристалл NM6403 производства НТЦ «Модуль» дешевле, но все равно цена на него примерно того же порядка. К тому же не следует забывать, что разработка нового кристалла занимает несколько лет, за которые он уже устареет морально, так и не появившись. По этой причине уже сейчас специализированные нейрочипы проигрывают по скорости вычислений наиболее современным универсальным процессорам, для выполнения нейронных операций не оптимизированных! Чем дальше, тем этот разрыв будет увеличиваться, не в пользу нейрочипов, разумеется. Вполне логично задать вопрос, а нужны ли нейрочипы вообще? Не погибнут ли они в конкурентной борьбе с универсальными процессорами, как когда-то погибли транспьютеры? И все чаще звучит мнение - нейрочипы неэффективны, нейрочипы неконкурентоспособны.

Это справедливо, но что если нейрочип реализовать на ПЛИС? Темпы роста вычислительной мощности ПЛИС, по крайней мере, не уступают аналогичной характеристике универсальных процессоров. ПЛИС дешевы, а проектирование устройства на базе ПЛИС занимает всего несколько месяцев. В дополнение к этому можно добавить, что современные ПЛИС работают на тактовой частоте до 300 МГц; для приверженцев Pentium напомним, что это внешняя частота без умножения внутри процессора. При этом емкость ПЛИС достигает 3 млн. эквивалентных логических вентилей, что почти в 10 раз больше, чем емкость всего Pentium II; другими словами, на современной ПЛИС можно реализовать до десяти процессоров Pentium II.

ПЛИС — почти идеальная элементная база для реализации таких параллельных структур как нейронные сети. Большое количество вентилей ПЛИС позволяет реализовать достаточно много физически параллельно работающих нейронов. (Небольшая задачка для любителей арифметики: если на ПЛИС с интеграцией 40 тыс. вентилей можно реализовать до 15 параллельно работающих нейронов, то сколько нейронов можно реализовать на ПЛИС с интеграцией 3 млн. вентилей?). Высокая тактовая частота работы ПЛИС способствует высокой скорости вычислений в нейроне. Таким образом, ПЛИС в гораздо большей степени, чем СБИС, удовлетворяет критерию эффективности для нейронных процессоров: большая интеграция позволяет реализовать много параллельно работающих нейронов, при этом обмен данными между нейронами осуществляется внутри той же ПЛИС с высокой скоростью. Это означает, что проблема «узкого горла» при передаче данных между вычислительными элементами уже не стоит, поскольку все каналы связи реализуются внутри ПЛИС и обеспечивают ту скорость передачи, которая нужна разработчику — не больше и не меньше.

СБИС-нейрочипы

Номенклатура выпускаемых на сегодняшний день нейрочипов достаточно обширна. В мире насчитывается несколько десятков фирм, выпустивших или выпускающих различные коммерческие модификации нейрочипов. К ним относятся такие гиганты электронной индустрии как Intel (нейрочип Intel80170NX Etann), Sundance Multiprocessor Technology (нейрочип NiSP), Accurate Automation (нейрочип NNC) и многие другие. Анализируя современное состояние рынка нейрочипов, заинтересованный читатель должен помнить, что все коммерческие нейрочипы выполнены в виде СБИС, имеют высокую стоимость и мало доступны массовому пользователю. Поэтому так актуальна задача реализации нейрочипов на ПЛИС.

ПЛИС-нейрочипы, современное состояние

Идея реализовать нейрочип на ПЛИС витала в воздухе достаточно давно и была воплощена в ряде технических разработок российских и зарубежных производителей. В России разработан целый ряд устройств на базе ПЛИС, предназначенных для реализации тех или иных парадигм нейронных сетей. К ним можно отнести нейрокомпьютерный ускоритель на базе ПЛИС XC4000 (4000 вентилей) компании «Диаком» (Москва), разработки НИИСИ РАН (Москва) и НИИ МВС (Таганрог) и другие.

Из современных (по состоянию на начало текущего года) разработок, выполненных на ПЛИС высокой интеграции, можно отметить, прежде всего, «Нейрочип-8», инструментальную плату XDSP-680 на базе ПЛИС семейства Spartan компании Xilinx с нейросетевой прошивкой, являющуюся совместной разработкой Научного центра нейрокомпьютеров (Москва) и «Скан Инжиниринг Телеком» (Воронеж). В разработке двух этих партнеров находится и ряд других изделий: перспективная разработка «Нейрочип-2000» на базе ПЛИС Virtex/Virtex-E, а также целый набор инструментальных плат и на базе ПЛИС различных серий и мезонинных модулей различного назначения, позволяющих быстро и эффективно создавать вычислительные системы различного функционального назначения.

Алексей Логовский (allog2000@mail.ru) — сотрудник Московского радиотехнического института. 


Надежда на ПЛИС

Микропроцессоры и «окружающие» их наборы микросхем обласканы компьютерной прессой, о них постоянно пишут специализированная и общая пресса. С одной стороны процессор - мозг (или сердце?) компьютера. Но, с другой стороны, эта часть компьютерного организма скрыта от пользователей, так зачем о ней столько писать, казалось бы? Для того чтобы робко попробовать восстановить справедливость, попробую обратить внимание специалистов на микросхемы FPGA (Field Programmed Gate Array). В России за ними утвердилась аббревиатура ПЛИС - Программируемые Логические Интегральные Схемы. На мировом рынке они захватили себе уютную нишу, но претендуют намного большее. На отечественном рынке ситуация особая, и роль они могут сыграть особую. Предпринимаются все новые попытки реализовать — с каждым разом все более серьезные.

Конфигурируемые процессоры

Oдна из проблем, стоящих перед создателями новых вычислительных платфоpм - поиск компромисса между скоростью и универсальностью. Микропроцессоры общего назначения способны исполнить ЛЮБОЙ алгоpитм. Однако по скорости их нельзя сравнить с заказными интегральными схемами, пpедназначенными для конкретных приложений (application-specific integrated circuit — ASIC), реализующих те и только те функции, которые необходимы для решения вполне конкретной задачи. При должной настройке ASIC на данную проблему можно получить микpосхему, которая будет значительно меньше, дешевле и быстрее, чем унивеpсальный программируемый микpопpоцессоp.

Поле из логических вентилей. Программируемые контуры (показаны белым) в ПЛИС могут создаваться и удаляться посредством электрических сигналов, посылаемых на вход логического элемента

Есть и третий вариант ПЛИС, т. е. такие аппаратные схемы, которые могут быть модифицированы практически в любой момент в процессе их использования. Они состоят из конфигурируемых логических блоков, подобных переключателям с множеством входов и одним выходом. В цифровых схемах такие переключатели реализуют базовые двоичные операции AND, NAND, OR, NOR и XOR. В большинстве современных микропроцессоров функции логических блоков фиксированы и не могут модифицироваться.

Принципиальное отличие ПЛИС состоит в том, что и функции блоков, и конфигурация соединений между ними могут меняться с помощью специальных сигналов, посылаемых схеме. В некоторых ASIC-микросхемах используются логические матрицы (так называемые Базовые Матричные Кристаллы — БМК), аналогичные ПЛИС по структуре, однако они конфигурируются раз и навсегда в процессе производства путем «прожига», в то время как ПЛИС могут постоянно перепрограммироваться и менять топологию соединений в процессе использования.

ПЛИС представляют собой поля из нескольких тысяч логических вентилей с триггерным блоком памяти и триггерными схемами ввода/вывода. Вентили выполняют функции комбинационной логики, а их соединения между собой и с триггерами формируются при загрузке программы, задающей конфигурацию межсоединений.

Идея конфигурируемых микpосхем была высказана в конце 60-х, однако распространение ПЛИС получили лишь в 90-е годы.

Зачем это нужно

России нужна своя элементная база - это констатация существующего положения дел, при этом, быть может, никак не связанная с экономической целесообразностью. В такой стране, как наша, это просто следует принять как данность. Есть знаменитый процессор E2K, - лучший из всех процессоров, существующих на бумаге. Есть менее известный SPARC-совместимый процессор, также разработанный коллективом под руководством Бориса Бабаяна, не поражающий характеристиками, но свой, хотя и производящийся в Европе). Есть сообщения о MIPS-совместимых процессорах разработки НИИСИ РАН. Можно найти и другие примеры. Но универсальных процессоров не напасешься на все задачи, где желательно иметь свою элементную базу, а иметь ее хотят не только военные, но и энергетики, связисты, авиапромышленники и многие другие. Гибкие решения с программируемыми матрицами многим у нас показались более перспективными, чем другие технологии.

Россия находится отнюдь не в первой десятке по использованию разного рода программируемых матриц. Компании Altera или Xilinx, ведущие их производители, свои капиталы сделали не на наших соотечественниках. Во всем мире FPGA часто используют там, где надо быстро вывести на рынок новое устройство со сложными функциями, скажем, сделать новый контроллер, поддерживающий только что появившийся стандарт сотовой связи. Вообще, FPGA широко применяют в коммуникационном и сетевом оборудовании.

Но не все одинаково полны оптимизма по поводу перспектив FPGA. Например, Гюнтер Юнге, менеджер компании Fujitsu по маркетингу заказных интегральных схем в Центральной и Западной Европе, полагает, что рынок FPGA будет постепенно сужаться, уступая «сверху» интегрированным решениям типа system-on-chip, а «снизу» — полузаказным микросхемам. Впрочем, Fujitsu — сторона заинтересованная.

Есть области, где преимущества специальных процессоров и программируемых матриц видны достаточно отчетливо. В частности, это, нейровычисления - любимая, весьма наукоемкая область вычислительной техники, в которой наши специалисты традиционно сильны, но, к сожалению, не настолько востребованная рынком, как хотелось бы. 

Игорь Левшин


Нейрочип-8: универсальный нейрочип для обработки двоичной информации

Описание и функциональная схема универсального нейрочипа для обработки двоичной информации, выполненного на ПЛИС Spartan компании Xilinx. Нейрочип реализует фрагмент слоя многослойной нейронной сети, содержащий несколько нейронов (без контура адаптации), и предназначен для моделирования многослойных нейронных сетей произвольной архитектуры.

Рисунок. Функциональная схема нейрочипа на ПЛИС

Поскольку в нейрочипе не реализован контур адаптации, то весовые коэффициенты нейронной сети должны быть вычислены заранее. Работа нейрочипа состоит из двух фаз: фазы определения топологии нейронной сети и загрузки весовых коэффициентов нейронной сети и фазы моделирования нейронной сети в реальном масштабе времени.

Таблица. Основные технические характеристики нейрочипа
Число нейронов, реализуемое в одной ПЛИС 2 (ПЛИС Spartan, 40 тыс. вентилей) 16 (ПЛИС Virtex, 200 тыс. вентилей)
Разрядность входных сигналов нейрона 1 (двоичные)
Разрядность весовых коэффициентов нейрона 8
Функция активации нейронов Сигнум (знак)
Скорость работы одного нейрона 10 МГц
Работа нескольких нейронов Параллельно, независимо друг от друга
Время получения выходного сигнала 10 нс (без учета загрузки данных)
фрагмента слоя нейронной сети 15 нс (с учетом загрузки данных)
Максимально возможное количество входных сигналов одного нейрона 256
Максимально реализуемое количество слоев нейронной сети Не ограничено
Максимально возможное количество нейронов в одном слое нейронной сети 256

Области применения нейрочипа

Несмотря на то, что нейрочип предназначен для обработки двоичной информации, он может применяться для решения целого круга прикладных задач:

  • распознавание черно-белых изображений (букв, цифр, символов);
  • распознавание двоичных образов («годен/негоден»);
  • обработка двоичных сигналов;
  • прочие задачи, связанные с обработкой двоичной информации.

В качестве демонстрационной была выбрана задача распознавания цифр на черно-белом поле размером 8 на 8 точек, инвариантных к сдвигу и повороту.