|
В. Шахнов, А. Власов, А. Кузнецов, Ю. Поляков
Нейрокомпьютеры — архитектура и реализация. Часть 2. Элементная база нейровычислителей
Элементной базой нейровычислительных систем второго и третьего направлений (часть 1, Chip News № 5) являются заказные кристаллы (ASIC), встраиваемые микроконтроллеры (mC), процессоры общего назначения (GPP), программируемая логика (FPGA — ПЛИС), транспьютеры, цифровые сигнальные процессоры (DSP) и нейрочипы [1]. Использование любых из них позволяет сегодня реализовать нейровычислители, функционирующие в реальном масштабе времени, однако наибольшее использование при реализации нейровычислителей нашли ПЛИС, DSP и, конечно, нейрочипы.
Как отмечено в [2], применение транспьютеров (T414, T800, T9000) и транспьютероподобных элементов постепенно сдвигается в сторону коммутационных систем и сетей ЭВМ, поэтому их описание в нашем обзоре не приводится. О транспьютерах, транспьютерных системах и их применении при построении вычислительных систем с массовым параллелизмом можно прочесть, например, в [3].
DSP (Digital Signal Processor — цифровые сигнальные процессоры), обладая мощной вычислительной структурой, позволяют реализовать различные алгоритмы обработки информационных потоков. Сравнительно невысокая цена, а также развитые средства разработки программного обеспечения позволяют легко применять их при построении вычислительных систем с массовым параллелизмом.
Стремительный переход современных систем управления на цифровые стандарты привёл к необходимости обрабатывать большие объёмы информации с высокой скоростью. Сложная обработка и фильтрация сигналов, например, распаковка сжатых аудио- и видеоданных, маршрутизация информационных потоков и т.п. требуют применения высокопроизводительных вычислительных систем. Такие системы могут быть реализованы на различной элементной базе, но наибольшее распространение получили устройства с применением цифровых сигнальных процессоров и ПЛИС.
Программируемая логика способна работать на более высоких частотах, но поскольку управление реализовано аппаратно, изменение алгоритмов работы требует перепрограммирования ИС. Низкая тактовая частота DSP пока ограничивает максимальную частоту обрабатываемого аналогового сигнала до уровня в 10–20 МГц, но программное управление позволяет достаточно легко изменять не только режимы обработки, но и функции, выполняемые DSP. Помимо обработки и фильтрации данных, DSP могут осуществлять маршрутизацию цифровых потоков, выработку управляющих сигналов, формирование сигналов системных шин ISA, PCI и др.
Оценивать быстродействие тех или иных устройств на основе DSP и ПЛИС принято по времени выполнения типовых операций цифровой обработки сигналов (Фильтр Собеля, БПФ, преобразование Уолша-Адамара и др.). При оценке производительности нейровычислителей используют другие показатели:
- CUPS (connections update per second) — число изменённых значений весов в секунду (оценивает скорость обучения);
- CPS (connections per second) — число соединений (умножений с накоплением) в секунду (оценивает производительность);
- CPSPW = CPS/Nw, где Nw — число синапсов в нейроне;
- CPPS — число соединений примитивов в секунду, CPPS = CPS*Bw*Bs, где Bw, Bs — разрядность весов и синапсов.
При этом производительность нейровычислителей принято измерять в (миллионах) умножениях с накоплением в секунду — (М)МАС, наряду с распростанёнными (М)OPS и (M)FLOPS —(миллионов) операций с фиксированной и плавающей точкой, соответственно.
Особенностью использования DSP и ПЛИС в качестве элементной бызы нейровычислителей является то, что ориентация в выполнении нейросетевых операций обуславливает, с одной стороны, повышение скоростей обмена между памятью и параллельными арифметическими устройствами, а с другой стороны — уменьшение времени весового суммирования (умножения и накопления) за счёт применения фиксированного набора команд типа регистр–регистр [1-11].
DSP
Цифровые сигнальные процессоры (DSP) вот уже на протяжении нескольких десятилетий являются элементной базой для построения как нейроускорителей, так и контура логики общесистемного управления нейрокомпьютеров. Какие же DSP могут использоваться для реализации нейроускорителей? — Да практически любые, всё зависит лишь от вашей фантазии и возможностей. Мы проанализируем лишь МП трёх ведущих производителей: Analog Devices, Motorola и Texas Instruments — с позиций построения на их основе нейровычислительных систем.
Выбор того или иного процессора — многокритериальная задача, однако, следует отметить предпочтительность процессоров Analog Devices [7] для приложений, требующих выполнения больших объёмов математических вычислений (таких как цифровая фильтрация сигнала, вычисление корреляционных функций и т.п.), поскольку их производительность для подобных задач выше, чем у процессоров компаний Motorola и Texas Instruments. В то же время, для задач, требующих интенсивного обмена с внешними устройствами (многопроцессорные системы, различного рода контроллеры), предпочтительнее использовать процессоры Texas Instruments [8], обладающие высокоскоростными интерфейсными подсистемами. Компания Motorola является лидером по объёму производства сигнальных микропроцессоров, большую часть которых составляют дешёвые и достаточно производительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объёмов внутрикристальной памяти для данных и программ, возможность защиты программ от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования не только в качестве специализированных вычислителей, но и в качестве контроллеров в бытовых электронных приборах, в системах адаптивной фильтрации и так далее.
Большая производительность, требуемая при обработке сигналов в реальном времени, побудила Texas Instruments и Analog Devices выпустить транспьютероподобные семейства микропроцессоров TMS320C4x и ADSP2106x, ориентированные на использование в мультипроцессорных системах. На этом фоне среди DSP c фиксированной точкой весьма достойно выглядит первый российский сигнальный процессор (нейросигнальный процессор) фирмы Модуль — “Neuro Matrix” [6]. При тактовой частоте 50 МГц он практически не уступает по производительности изделиям мировых лидеров, а по некоторым задачам даже превосходит их.
При создании нейровычислительных систем на базе сигнальных процессоров необходимо помнить, что DSP обладают высокой степенью специализации. В них широко используются методы сокращения длительности командного цикла, характерные для универсальных RISC-процессоров, такие как конвейеризация на уровне отдельных микроинструкций и инструкций, размещение операндов большинства команд в регистрах, использование теневых регистров для сохранения состояния вычислений при переключении контекста, разделение шин команд и данных (гарвардская архитектура). В то же время, для сигнальных процессоров характерным является наличие аппаратного умножителя, позволяющего выполнять умножение как минимум двух чисел за один командный такт. Другой особенностью сигнальных процессоров является включение в систему команд таких операций, как умножение с накоплением MAC (C = AxB + C с указанным в команде числом выполнений в цикле и с правилом изменения индексов используемых элементов массивов A и B, то есть уже реализованы прообразы базовых нейроопераций — взвешенное суммирование с накоплением), инверсия бит адреса, разнообразные битовые операции. В сигнальных процессорах реализуется аппаратная поддержка программных циклов, кольцевых буферов. Один или несколько операндов извлекаются из памяти в цикле исполнения команды.
Реализация однотактного умножения и команд, использующих в качестве операндов содержимое ячеек памяти, обуславливает сравнительно низкие тактовые частоты работы сигнальных процессоров. Специализация не позволяет поднимать производительность за счёт быстрого выполнения коротких команд типа “R,R®R”, как это делается в универсальных процессорах. Этих команд просто нет в программах цифровой обработки сигналов.
Сигнальные процессоры различных компаний-производителей образуют два класса, существенно различающихся по цене: более дешёвые микропроцессоры для обработки данных в формате с фиксированной точкой и более дорогие, аппаратно поддерживающие операции над данными в формате с плавающей точкой.
Типичные DSP-операции требуют выполнения множества простых сложений и умножений, то есть необходимо произвести выборку двух операндов, выполнить сложение или умножение (обычно — и то, и другое) и сохранить результат или удерживать его до повторения.
Для выборки двух операндов за один командный цикл необходимо осуществить два доступа к памяти одновременно. Но в действительности, кроме выборки двух операндов, необходимо ещё сохранить результат и прочитать саму инструкцию. Поэтому число доступов в память за один командный цикл будет больше двух и, следовательно, DSP поддерживают множественный доступ к памяти за один и тот же командный цикл. Но невозможно осуществить доступ к двум различным адресам в памяти одновременно, используя для этого одну шину памяти. Существует два вида архитектур DSP, позволяющих реализовать механизм множественного доступа к памяти: гарвардская архитектура и модифицированная архитектура фон Неймана.
Гарвардская архитектура имеет две физически разделённые шины данных. Это позволяет осуществить два доступа к памяти одновременно: Подлинная гарвардская архитектура выделяет одну шину для выборки инструкций (шина адреса), а другую — для выборки операндов (шина данных). Но для выполнения DSP-операций этого недостаточно, так как в основном все они используют по 2 операнда. Поэтому гарвардская архитектура применительно к цифровой обработке сигналов использует шину адреса и для доступа к данным. Важно отметить, что часто необходимо произвести выборку трёх компонентов — инструкции с двумя операндами, на что классическая гарвардская архитектура не способна. Для таких случаев данная архитектура дополняется кэш-памятью. Она может быть использована для хранения тех инструкций, которые будут использоваться вновь. При использовании кэш-памяти шина адреса и шина данных остаются свободными, что делает возможным выборку двух операндов. Такое расширение — гарвардская архитектура плюс кэш — называют расширенной гарвардской архитектурой или SHARC (Super Harvard ARChitecture).
Гарвардская архитектура требует наличия двух шин памяти. Это значительно повышает стоимость производства чипа. Так, например, DSP, работающий с 32-бит словами и в 32-бит адресном пространстве, требует наличия по крайней мере 64 выводов для каждой шины памяти, а в сумме получается 128 выводов. Это приводит к увеличению размеров чипа и к трудностям при проектировании схемы.
Архитектура фон Неймана использует только одну шину памяти. Она более дешёвая, требует меньшего количества выводов шины и является более простой в использовании, так как программист может размещать и команды и данные в любом месте свободной памяти.
С точки зрения реализации нейроускорителей, мы остановимся только на некоторых наиболее ярких представителях DSP, в основном относящихся к классу транспьютероподобных DSP с плавающей арифметикой.
DSP фирмы Analog Devices
Реализация нейровычислителей высокой пространственной размерности требует всё более производительной элементной базы. Для преодоления возникающих трудностей разработчики используют два возможных подхода: первый состоит в улучшении характеристик уже имеющихся процессоров, а второй — в увеличении производительности путём разработки новых архитектур. Первый способ ограничен увеличением производительности в 5-8 раз. Второй способ предполагает разработку архитектур, которые были бы наиболее удобны в конечном приложении и оптимизированы для конкретного языка программирования.
Компания Analog Devices [7] ведёт разработки в обоих направлениях. Так ядро первого 32-разрядного процессора ADSP-21020 и производительностью 30 MFLOPS было усовершенствовано и привело к созданию нового процессора ADSP-21065L с максимальной производительностью 198 MFLOPS, соответствующей ускорению в 6,6 раз. В результате работ над дальнейшим увеличением производительности и оптимизации архитектуры существующих процессоров, был выпущен новый сигнальный микропроцессор ADSP-2116x с тактовой частотой 100 МГц и производительно-стью 600 MFLOPS.
Среди основных особенностей DSP семейства ADSP-2116x можно отметить:
- быстрые и гибкие модули арифметики. Все команды выполняются за один такт. Набор команд микропроцессора, наряду с традиционными арифметическими операциями, включает такие, как “1/x”, “1/R(x)”, команды сдвига, циклического сдвига и комбинации операций сложения/вычитания с умножением;
- независимые потоки данных в (из) вычислительные(х) модули(ей). За один такт процессор может одновременно считать (записать) два операнда в регистровый файл, загрузить два операнда в АЛУ, принять два операнда в умножитель; АЛУ и умножитель могут вырабатывать два результата (или три, если АЛУ выполняет операцию совместно со сложением/вычитанием). 48-бит командное слово позволяет задавать в одной инструкции параллельное выполнение арифметических операций и обмен данными;
- повышенную точность и расширенный динамический диапазон выполняемых операций. Все представители микропроцессорного семейства оперируют с данными в 32-бит формате с плавающей точкой, 32-бит целочисленными данными (в дополнительном коде и беззнаковыми) и 40-бит данными расширенной точности с плавающей точкой. Повышенная точность вычислений достигается благодаря уменьшению ошибки округления результата в вычислительных модулях. Аккумулятор для 32-разрядных данных с фиксированной точкой имеет 80 разрядов;
- наличие двух генераторов адреса, обеспечивающих пред- или постформирование прямого или косвенного адреса данных и выполняющих над адресами модульные и бит-реверсные операции;
- эффективные средства формирования последовательности команд и механизм организации программных циклов. Инициализация, возврат на начало и выход из программного цикла выполняются за один процессорный цикл до 6-го уровня вложенности. Процессор аппаратно поддерживает выполнение команд перехода и перехода с задержкой.
Универсальное АЛУ процессора, устройство барабанного сдвига и универсальный умножитель функционируют независимо, обеспечивая высокую степень внутреннего параллелизма операций. Регистровый файл общего назначения служит для обмена данными между вычислительными модулями и внутренней шиной, а также для запоминания промежуточных результатов. Регистровый файл содержит 32 регистра (16 первичных и 16 вторичных), имеет 10 портов и, совместно с гарвардской архитектурой процессора, позволяет организовать эффективный обмен между вычислительными модулями и памятью. Расширенная гарвардская архитектура процессора позволяет выбирать до двух операндов и команду из кэша команд за один цикл.
Процессоры ADSP-210xx содержат высокопроизводительный кэш команд, работающий избирательно: кэшируются только те команды, выборка которых конфликтует с выборкой данных из памяти программ (Program Memory, PM).
Адресные генераторы (DAG1 и DAG2) обеспечивают аппаратную реализацию циклических (кольцевых) буферов, позволяющих эффективно выполнять фильтрацию и Фурье-преобразование, для которых требуется циклическое изменение адресов обрабатываемых данных. Физически циклический буфер может быть расположен начиная с любого адреса памяти, а для ссылки на его содержимое используются регистровые указатели. Два DAG содержат 16 первичных и 16 вторичных регистров, что позволяет работать одновременно с 32 циклическими буферами.
Современные требования рынка обусловили появление новой архитектуры — TigerSHARC, которая для получения высокого уровня производительности объединяет в себе множество особенностей ранее разработанных архитектур. Новый процессор должен объединить в себе достоинства, присущие существующим DSP-технологиям, такие как быстрота и определённость времени выполнения команд, распознавание быстрых прерываний и высокая скорость обмена данными с периферийными устройствами.
Для достижения наивысшей производительности ядра использованы особенности RISC-архитектуры, такие как структура хранения и обмена данными и командами, высоко конвейеризированный генератор адресов команд с возможностью предсказания переходов и с объёмным блокирующим файлом регистров. Также было решено взять в расчёт особенности VLIW-архитектуры для оптимизации построения команд. Полученная архитектура TigerSHARC достигает производительности 1,5 GFLOPS при 32-разрядных вычислениях с плавающей точкой и 6 GOPS — при 16-разрядных с фиксированной точкой. Тактовая частота составляет на сегодня 250 МГц (рис. 1).
Рис. 1. Принципы построения архитектуры TigerSHARC
Архитектура TigerSHARC
По данным компании Analog Devices [7], большинство нейросетевых реализаций на базе DSP схожи в использовании команд, но различаются набором данных. Особенно в многоканальных приложениях или в тех случаях, когда данные располагаются в виде прямоугольной матрицы, производительность может быть удвоена путём добавления второго набора математических модулей. Процессоры, содержащие второй вычислительный модуль, управляются так же, как и небольшие SIMD-архитектуры. TigerSHARC позволяет использовать единственную команду для обработки данных в обоих вычислительных модулях — это уже элементы нейрочипа!
Рис. 2. Архитектура TigerSHARC
Более того, второй модуль мо-жет функционировать независимо от первого, для этой модели используются частично-множественные пути к данным. Для правильного выполнения команды, в ней должно быть выделено дополнительное место, что приводит к очень длинным командным словам (VLIW). Их использование приводит в большинстве случаев к быстрому заполнению небольшого объёма внутрикристальной памяти командами NOP (no operation), предназначеными для тех устройств, которые не будут задействованы в текущем цикле. Большой недостаток — размещение команды NOP в коде, в существующих VLIW-разработках был устранён делением длинных слов на более мелкие, параллельно поступающие к каждому устройству. Обработка множества команд независимыми устройствами одновременно является главной особенностью суперскалярной процессорной архитектуры.
Вычислительные устройства TigerSHARC
Сердцем любого процессора является его вычислительная подсистема. Каждый из двух вычислительных модулей — X и Y содержит 32-входовый по 32 бита в каждом входе блокировочный регистровый файл. При каждом вычислении, производимом ALU, Mult или Shift, данные будут выбраны из этого регистрового файла, а затем в него будут помещены результаты вычислений, что является главной особенностью архитектуры считывания/записи (рис. 2). Использование большого числа регистров для хранения данных упрощает использование высокоуровневых языков программирования. Для достижения высокой внутренней пропускной способности каждый регистровый файл соединён с тремя 128-бит шинами посредством двух 128-бит шин. Обе шины могут использоваться одновременно для выполнения операций чтения из памяти и одна шина может быть использована для записи в память. Такая структура шин определяет типичные математические инструкции, требующие выполнения двух операций чтения данных и заканчивающиеся записью результата в память.
Сравнительно большой объём внутрикристальной памяти разделён на три независимых блока одинаковой величины. Каждый блок имеет ширину 128 бит, что соответствует четырёхсловной структуре по 4 адреса в каждом ряду. Память может быть сконфигурирована по желанию пользователя без специальной сегментации на память программ и память данных. Для доступа к данным процессор может адресовать 1, 2 или 4 слова и передавать их в(из) одно(го) или оба(обоих) вычислительных устройства за один такт. Кроме внутренней памяти, архитектура TigerSHARC позволяет адресовать 4 Гслов.
Одним из наиболее сложных устройств новой архитектуры является генератор адресов команд, определяющий порядок выполнения команд и отслеживающий правильность их выполнения в соответствующих модулях. Для снижения эффектов конвейеризации в нелинейном коде генератор адресов инструкций содержит буфер конечного перехода (Branch Target Buffer, BTB). Его механизм позволяет предсказывать переходы и сохранять их в буфере глубиной в 128-ячеек. С помощью предсказания переход может быть выполнен за 1 цикл вместо 3–6 без предсказания.
Объединение данных процессоров по любой из архитектур (кольцо, гиперкуб и т. п.), позволяет создавать полнофункциональные нейроускорители. Так, нейровычислительная сеть может быть выполнена в виде двумерного массива (в общем случае, 4 ряда по высоте и n колонн) процессоров, подключенных к интерфейсным платам и с помощью хост-интерфейса к процессору общего управления. Каждый процессор в сети соединён с соседними, расположенными сверху и снизу относительно него, посредством 4 из 6 имеющихся SHARC-линков. Остальные линки процессоров используются для обеспечения частичного приёма данных, необходимых в процессе вычислений. Архитектура обеспечивает масштабируемую сетевую процессорную модель с общей средой вычислений для каждого узла сети. Эта сеть подсоединяется посредством стандартного интерфейса разделяемой памяти к хост-процессору, который выполняет роль контрольного пункта системы.
DSP компании Texas Instruments [8] разделяются на процес-соры для обработки чисел с фиксированной и с плавающей точкой. Первые представлены тремя семействами процессоров, базовыми моделями которых являются соответственно TMS320C10, TMS320C20 и TMS320C50. Вторые — включают процессоры TMS320C30, TMS320C40 и TMS320C80, которые представляют собой мультипроцессорную систему, выполненную на одном кристалле, а семейство TMS320C6xxx включает процессоры как с фиксированной, так и с плавающей точкой.
Процессоры старших поколений одного семейства наследуют основные архитектурные особенности и совместимы “снизу вверх” по системе команд (чего нельзя сказать о про- цессорах, входящих в разные семейства). Процессоры компании Texas Instruments обладают высокоскоростными интерфейсными подсистемами, и поэтому их предпочтительнее использовать для задач, в которых требуется выполнение интенсивного обмена с внешними устройствами (микропроцессорные системы, различного рода контроллеры).
Процессор TMS320C80 фирмы Texas Instruments с производительностью в 2 млрд. операций в секунду представляет собой комбинацию из пяти процессоров, реализованных по MIMD (multiple-instruction, multiple-data) архитектуре (рис. 3). В одном кристалле реализованы одновременно две технологии — DSP и RISC, расположены один управляющий RISC-процессор и 4 32-разрядных цифровых сигнальных процессора усовершенствованной архитектуры с фикси- рованной точкой (ADSP0-ADSP3), обладающие высокой степенью конвейеризации и повышенной до 64 бит длиной слова инструкций, а это, в свою очередь, позволяет описывать сразу несколько параллельно выполняемых команд. Каждый из процессоров работает независимо друг от друга и может программироваться отдельно друг от друга и выполнять различные или одинаковые задачи, обмениваясь данными через общую внутрикристальную кэш-память.
Рис. 3. Размещение функциональных элементов TMS320C80 на кристалле
Суммарная производительность TMS320C80 на регистровых операциях составляет 2 млрд. RISС-подобных команд в секунду. Благодаря столь высокой производительности, TMS320C80 может заменить при реализации приложений более 10 высокопроизводительных ЦСП или ЦП общего назначения. Пропускная способность шины TMS320C80 достигает 2,4 Гбайт/с в потоке данных и 1,8 Гбайт/с — в потоке инструкций.
TMS320C80 обеспечивает высокую степень гибкости и адаптивности системы, построенной на его базе, которая достигается за счёт наличия на кристалле параллельно функционирующих DSP и главного RISC-процессора. Архитектура процессора TMS320C80 относится к классу MIMD (Multiple-Instruction, Multiple-Data — множественный поток команд, множественный поток данных). Входящие в состав TMS320C80 процессоры программируются независимо друг от друга и могут выполнять как разные, так и одну общую задачу. Обмен данными между процессорами осуществляется через общую внутрикристальную память. Доступ к разделяемой внутрикристальной памяти обеспечивает матричный коммутатор (Crossbar), выполняющий также функции монитора при обращении к одному сегменту памяти нескольких процессоров.
Основные технические характеристики процессоров семейства “C8x”:
- тактовая частота — 40 или 50 МГц;
- производительность — свыше 2 млрд. операций в сек. (BOPS);
- 4 32-разрядных ADSP-процессора;
- 32-разрядный главный RISC-процессор с вычислителем с плавающей точкой;
- 50 Кбайт SRAM на кристалле (для TMS320C82 — 44 Кбайт);
- 64-разрядный контроллер обмена с динамическим конфигурированием шины на обмен 64-, 32-, 16- и 8-разрядными словами;
- режим ПДП к 64-разрядному SRAM, DRAM, SDRAM, VRAM;
- 4-Гбайт объём адресного пространства;
- видеоконтроллер;
- 4 внешних прерывания;
- встроенные средства внутрисхемной эмуляции;
- напряжение питания 3,3 В;
- около 4 000 000 транзисторов на кристалле;
- 0,5/0,6-мкм КМОП-технология;
- 305-контактный корпус PGA.
Архитектура главного процессора
Главный процессор (Master Processor, MP) — это вычислительное устройство с RISC-архитектурой и встроенным сопроцессором для выполнения операций с плавающей точкой. Подобно другим процессорам с RISC-архитектурой, MP использует команды загрузки/сохранения для доступа к данным в памяти, а также выполняет большинство целочисленных, битовых и логических команд над операндами в регистрах в течение одного такта.
Вычислитель с плавающей точкой (Floating-Point Unit, FPU) конвейеризирован и позволяет одновременно выполнять операции над данными как с одинарной, так и с двойной точностью. Производительность устройства составляет около 100 MFLOPS при внутренней тактовой частоте 50 МГц. FPU использует тот же регистровый файл, что и устройство целочисленной и логической обработки. Специальный механизм отметок (Scoreboard) фиксирует занятость регистров и обеспечивает их бесконфликтное использование.
Основными компонентами MP являются:
- регистровый файл, состоящий из 31 32-разрядного регистра;
- барабанное устройство сдвига (Barrel Rotator);
- генератор маски;
- таймер;
- целочисленное АЛУ;
- управляющий регистр;
- 4 аккумулятора с плавающей точкой двойной точности;
- умножитель с плавающей точкой;
- сумматор с плавающей точкой;
- контроллер кэш-памяти.
Архитектура ADSP-процессоров
Архитектура ADSP-процессоров TMS320C80 ориентирована для применений, связанных с графикой и обработкой изображений (где использование нейропарадигм даёт наибольший на сегодня эффект). Она обеспечивает эффективное выполнение операций фильтрации и частотного преобразования, типичных для данных приложений. ADSP может выполнять за один такт одновременно операцию умножения, арифметико-логическую операцию (например, сдвиг-суммирование) и два обращения к памяти. Внутренний параллелизм ADSP позволяет обеспечить быстродействие свыше 500 млн. операций в секунду на некоторых алгоритмах.
ADSP манипулирует 32-разрядными словами, а разрядность команд составляет 64 бита. Процессор использует прямую, непосредственную и 12 видов косвенной адресации.
Архитектура ADSP характеризуется следующими параметрами:
- 3-этапным конвейером;
- 44 доступными пользователю регистрами (10 адресных, 6 — индекса, 8 — данных, 20 прочих);
- 32-разрядным 3-входовым АЛУ;
- репликатором битов;
- 2 адресными устройствами;
- 32-разрядным устройством барабанного сдвига;
- генератором масок;
- блоком условных операций для сокращения времени выполнения переходов.
Контроллер обмена (TC) управляет операциями обмена процессоров и памяти как внутри кристалла (через коммутатор), так и вне кристалла, с использованием входящих в его состав интерфейсных схем, поддерживающих все распространённые стандарты памяти (DRAM, VRAM, SRAM) и обеспечивающих возможность динамического изменения разрядности шины от 8 до 64. Используя приоритетную дисциплину обслуживания запросов к памяти в режиме DMA, TC позволяет выполнить обмен данными, не прерывая вычислений, со скоростью до 400 Мбайт/c. Контроллер обмена поддерживает линейную и координатную адресацию памяти для эффективного выполнения обмена при работе с 2- и 3-мерными графическими изображениями.
Большинство известных на сегодня нейровычислителей на базе DSP строятся на основе микропроцессоров семейства TMS320C4х. Благодаря своей уникальной структуре, эти DSP получили широкое распространение в мультипроцессорных системах и практически вытеснили ранее господствующее в этой области семейство транспьютеров, производимых рядом европейских компаний. Процессоры TMS320C4x совместимы по системе команд с TMS320C3x, однако обладают большей производительностью и лучшими коммуникационными возможностями.
Центральный процессор TMS320C4x имеет конвейерную регистро-ориентированную архитектуру. Компонентами ЦП являются:
- умножитель данных в форматах: целочисленном и с плавающей точкой;
- арифметико-логический модуль;
- 32-разрядное барабанное устройство сдвига;
- внутренние шины;
- дополнительные модули регистровой арифметики;
- регистровый файл CPU.
Умножитель выполняет операции над 32-разрядными данными в формате с фиксированной точкой и 40-разрядными данными в формате с плавающей точкой, причём умножение производится за один такт (25 нс), независимо от типа данных и параллельно с обработкой данных в других функциональных блоках микропроцессора (например, ALU).
АЛУ выполняет за один такт операции над 32-разрядными целыми и логическими и 40-разрядными данными в формате с плавающей точкой, в том числе, и операции преобразования форматов представления данных. Микропроцессор аппаратно поддерживает операции деления и извлечения квадратного корня. Устройство барабанного сдвига позволяет за один такт выполнить сдвиг данных влево или вправо на число позиций от 1 до 32. Два дополнительных модуля регистровой арифметики (Address Generation 0 и Address Generation 1) функционируют параллельно с умножителем и АЛУ и могут генерировать два адреса в одном такте. В процессоре поддерживается относительная базовая, базово-индексная, циклическая и бит-реверсная адресации.
Первичный регистровый файл представляет собой многовходовой файл из 32 регистров. Все регистры первичного регистрового файла могут использоваться умножителем, АЛУ и в качестве регистров общего назначения. Регистры имеют некоторые специальные функции. 8 дополнительных регистров могут использоваться для некоторых косвенных способов адресации, а также как целочисленные и логические регистры общего назначения. Остальные регистры обеспечивают функции системы, такие как адресация, управление стеком, прерывания, отображение статуса процессора и блочные повторы.
Регистры повышенной точности предназначены для хранения и обработки 32-разрядных целых чисел и 40-разрядных чисел с плавающей точкой. Дополнительные регистры доступны как для АЛУ, так и для двух модулей регистровой арифметики. Основная функция этих регистров — генерация 32-разрядных адресов. Они также могут использоваться как счётчик циклов или как регистры общего назначения.
Адресуемое процессором пространство составляет 4Г 32-разрядных слов. На кристалле расположены два двухвходовых блока оператив-ной памяти RAM0 и RAM1, размером 4 Кбайт каждый, а также двухвходовой блок ROM, содержащий программу начальной загрузки.
Кэш команд процессора ёмкостью 128 32-разрядных слов содержит наиболее часто используемые участки кода, что позволяет сократить среднее время выборки команд. Высокая производительность TMS320C40 достигается благодаря внутреннему параллелизму процессов и многошинной организации процессора. Раздельные шины позволяют одновременно выполнять выборку команды, данных и прямой доступ в память.
Всё более популярное, в том числе, и для нейроприложений, семейство процессоров TMS320C6xxx обладает рекордной производительностью 1600 MIPS. Благодаря этому, возможен принципиально новый взгляд на существующие системы связи и телекоммуникаций. Высокая производительность микропроцессоров обеспечивается благодаря новой архитек-туре VelociTI™ с очень длинным командным словом (VLIW, Very Long Instruction Word). Архитектура VelociTI образована множеством параллельно работающих процессоров, которые позволяют выполнять несколько инструкций за один командный цикл. Именно такой параллелизм архитектуры процессора обеспечивает высокую производительность.
Сравнительная оценка производительности наиболее используемых сегодня в нейроприложениях DSP Analog Devices и TI приведена в табл. 1.
Таблица 1. Сравнительные характеристики ADSP21061 и TMS320C40/C44[7]
Характеристика/процессор |
ADSP21061 |
TMS320C40/TMS320C44 |
Время выполнения инструкции, нс |
20 |
33 |
Максимальная производительность, MFLOPS |
150 |
60 |
Цена (10000 шт.), $ |
49 |
176 (99 w/C44) |
Цена/производительность, MFLOPS/$ |
3,1 |
0,34 (0,6 w/C44) |
Benchmark: |
Время выполнения компл. БПФ на 1024 отсчета, мс |
0,37 |
0,97 |
Параметры ядра: |
Data Registers |
32 |
12 |
Circular Buffers |
32 |
1 (Fixed Length) |
Ввод/вывод: |
Число каналов ДМА |
6 |
6 |
Послед порты |
2 |
- |
Встроенная память на кристалле, Кбит |
1,024 (32К х 32) |
64 (2К х 32) |
Мультипроцессорный интерфейс |
6 процессоров в кластере |
6/4 процессоров на СОМ порт |
Host Interface |
Parallel |
- |
DSP фирмы Motorola
Сигнальные процессоры компании Motorola на сегодня в меньшей степени, чем рассмотренные выше, используются для реализации нейропарадигм. Они подразделяются на семейства 16- и 24-разрядных микропроцессоров с фиксированной точкой — DSP560xx, DSP561xx, DSP563xx, DSP566xx и DSP568xx и микропроцессоры с плавающей точкой — DSP960xx. Линия 24-разрядных микропроцессоров компании Motorola включает два семейства: DSP560xx и DSP563xx. Основные принципы, положенные в основу архитектуры сигнальных микропроцессоров Motorola, были разработаны и воплощены в семействе DSP560xx. Дальнейшие работы по совершенствованию сигнальных процессоров проводились по трём направленим:
- наращивание производительно-сти 24-разрядных процессоров за счёт конвейеризации функциональных модулей и повышения тактовой частоты;
- создание дешёвых 16-разрядных микропроцессоров с расширенными средствами взаимодействия с периферией;
- разработка высокопроизводительных процессоров, включающих блок вычислений с плавающей точкой.
Компания Motorola является лидером по объёму производства сигнальных микропроцессоров, большую часть которых, однако, составляют дешёвые и достаточно высокопроизводительные 16- и 24-разрядные микропроцессоры с фиксированной точкой. Расширенные коммуникационные возможности, наличие достаточных объёмов внутрикристальной памяти для данных и программы, возможности защиты программы от несанкционированного доступа, поддержка режима энергосбережения делают эти микропроцессоры привлекательными для использования в основном в качестве специализированных вычислителей, контроллеров в промышленных роботах, бытовых электронных приборах, системах управления оружием, средствах беспроводной связи и др. Примеры построения нейровычислителей на их основе нам не известны.
ПЛИС — как элементная база нейровычислителей
Отдельно следует рассмотреть возможность создания параллельных вычислителей (в том числе, и нейро-) на базе ПЛИС (программируемых логических интегральных схем). На ПЛИС можно реализовывать системы как второго, так и третьего типа. В настоящее время множество фирм в мире занимается разработкой и выпуском различных ПЛИС, однако лидерство делят фирмы Xilinx и ALTERA. Выделить продукцию какой-либо одной из них невозможно, так как по техническим характеристикам они различаются очень мало.
В настоящее время фирма ALTERA выпускает семь семейств СБИС ПЛ. Основные характеристики наиболее популярных из них приведены в табл. 2.
Таблица 2. Характеристики ПЛИС фирмы ALTERA
Характеристики |
Семейства СБИС |
MAX7000E(S) |
MAX9000 |
MAX8000A |
FLEX10K |
Архитектура |
матрицы И-ИЛИ |
матрицы И-ИЛИ |
таблицы перекодировки |
таблицы перекодировки |
Логическая емкость |
600-5000 |
6000-12000 |
2500-16000 |
10000-100000 |
Внутренняя память |
нет |
нет |
нет |
6-24 Кбит |
Число пользовательских выводов |
36-164 |
60-216 |
68-208 |
59-406 |
Компания Xilinx выпускает семь серий ПЛИС двух типов:
- FPGA — Field Programmable Gate Array;
- CPLD — Complex Programmable Logic Device.
Каждая серия содержит от одно-го до нескольких семейств, в свою очередь, состоящих из ряда кристаллов различной ёмкости, быстродействия, типов корпуса.
Основные особенности ПЛИС Xilinx:
- значительный объём ресурсов — до 4 млн. системных вентилей на кристалл;
- высокая производительность с системными частотами до 300 МГц;
- технологические нормы — до 0,18 мкм на 6 слоях металла;
- высокая гибкость архитектуры с множеством системных особенностей: внутреннее распределённое и блочное ОЗУ, логика ускоренного переноса, внутренние буфера с третьим состоянием и так далее;
- возможность инициализации и верификации через JTAG;
- возможность программирования непосредственно в системе;
- широкая номенклатура кристаллов по типу исполнения;
- низкое энергопотребление;
- короткий цикл проектирования и быстрое время компиляции;
- развитые и недорогие средства проектирования;
- возможность перевода проектов в заказные схемы.
При изготовлении ПЛИС фирмой Xilinx используются три основные технологии:
- на основе SRAM (тип FPGA), при этом конфигурация ПЛИС хранится во внутреннем “теневом” ОЗУ, а инициализация осуществляется из внешнего массива памяти. По данной технологии выполнены серии: Spartan, Virtex, XC3000, XC4000 и XC5200;
- на основе FLASH-памяти (тип CPLD). В данном случае конфигурация сохраняется во внутренней энергонезависимой FLASH-памяти и в любой момент времени может быть перегружена непосредственно из PC. По данной технологии выполнена серия XC9500;
- на основе EEPROM (тип CPLD). В данном случае конфигурация сохраняется во внутренней энергонезависимой EEPROM-памяти и в любой момент времени может быть перегружена извне. По данной технологии выполнена серия CoolRunner.
Реализация нейровычислителей на основе ПЛИС требует участия эксперта на топологической стадии проектирования. Это обусловлено тем, что автоматизированный режим разводки пока не позволяет достигать 60–100% использования ресурсов кристала по разводке, а это является принципиальным для сильносвязанных схем, к которым относятся и нейросетевые вычислители. Характеристики ПЛИС с точки зрения реализации нейросетевых парадигм представлены в табл. 3 [10].
Таблица 3. Особенности реализации нейровычислителей на ПЛИС
№ |
Тип ПЛИС |
Производитель |
Сложность кристалла, макроячеек (CLB) |
Иаксимальное число нейронов |
1 |
XC4005E/XL |
XILINX |
196(14x14) |
6 |
2 |
XC4013XLA |
XILINX |
576(24x24) |
18 |
3 |
XC4020XLA |
XILINX |
784(28x28) |
24 |
4 |
XC4044XLA |
XILINX |
1600(40x40) |
50 |
5 |
XC4062XLA |
XILINX |
2304(42x42) |
72 |
6 |
XC4085XL |
XILINX |
3136(56x56) |
97 |
7 |
XC40250XV |
XILINX |
8000 |
200 |
8 |
EPF10K20 |
ALTERA |
144 |
4 |
9 |
EPF10K50E |
ALTERA |
360 |
11 |
10 |
EPF10K100E |
ALTERA |
624 |
19 |
11 |
EPF10K250E |
ALTERA |
1520 |
50 |
12 |
M4LV-96/48 |
AMD |
966 |
3 |
13 |
M4LV-192/96 |
AMD |
192 |
6 |
14 |
M5LV-256 |
AMD |
256 |
8 |
15 |
M5LV-512 |
AMD |
512 |
16 |
Построение нейровычислителей на их основе хотя и даёт высокую гибкость создаваемых структур, но пока ещё проигрывает по производительности, по сравнению с другими решениями.
Выводы
Реализация нейровычислительных систем и специализированных вычислителей с массовым параллелизмом на базе DSP и ПЛИС эффективна при решении задач цифровой обработки сигналов, обработки видео- и аудиоданных и построения технических систем управления. Сравнительные данные по выполнению, например, БПФ для DSP, RISC и CISC- процессоров придеведны на рис. 4.
Рис. 4. Время выполнения преобразования Фурье
При реализации нейровычислителей сегодня, как правило, приоритетно используется гибридная сртруктура, когда блок матричных вычислений реализуется на базе кластерного соединения DSP-процессоров, а логика управления — на основе ПЛИС. В качестве элементной базы матричного кластера используются ADSP21060 и TMS320C44, в ближайшее время им на смену придут ADSP2106x и TMS320C6xxx.
Продолжение следует...
Литература
- Проблемы построения и обучения нейронных сетей / под ред. А.И. Галушкина и В.А. Шахнова. — М.: Изд-во. Машиностроение. Библиотечка журнала Информационные технологии № 1. — 1999. — 105 с.
- Галушкин А.И. Некоторые исторические аспекты развития элементной базы вычислительных систем с массовым параллелизмом (80- и 90-е годы) // Нейрокомпьютер. — 2000. — № 1. — С. 68–82.
- Горбань А.Н., Россиев Д.А. Нейронные сети на персональном компьютере. — Новосибирск: Наука. Сибирская издательская фирма РАН. — 1996. — 276 с.
- Власов А.И. Аппаратная реализация нейровычислительных управляющих систем // Приборы и системы управления. — 1999. — № 2. — С. 61–65.
- http://neurnews.iu4.bmstu.ru
- http://www.module.ru.
- http://www.analog.com.
- http://www.ti.com.
E-mail: vlasov@chat.ru
|