УДК 004.422.833
I УНИВЕРСАЛЬНЫЙ МОДУЛЬ ВЫСОКОПРОИЗВОДИТЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ В СОСТАВЕ ПК - ЭЬ8Р-2
К.Ф. Лысаков, М.Ю. Шадрин
Институт автоматики и электрометрии СО РАН, Новосибирск
Статья состоит из трех частей. В первой части описываются постановка задачи, предпосылки выбора элементной базы. Во второй части при вед ш детальных обзор коммуникационных возможностей модуля 8Ь8Р-2, а также приведены данные о производительности на различных задачах. Третья часть посвящша описанию использованию модуля 8Ь8Р-2; в ней описываются пользовательские библиотеки для управления устройством при работе модуля в составе ПК.
В 2004 году на конференции «Вычислительные и информационные технологии в науке, технике и образовании» ВИТ-2004 был представлен модуль 8Ь8Р-1. Продукт 8Ь8Р-2 является продолжением этой работы и обладает усовершшсгвован-ными коммуникационными возможностями, более высокой производительностью и удобным интерфейсом использования.
1 Постановка задачи и выбор элементной базы
Сегодня при решении задач обработки цифровых данных и изображений, наиболее актуальны следующие стороны проблемы:
1. Оптимальность математических алгоритмов обработки данных;
2.Производительность выбранной аппаратной базы для реализации алгоритмов;
3. Энергопотребление и габаритные размеры устройства обработки.
В данной работе целью является одновремжное решаете всех описанных сторон проблемы. Целью работы является создание универсального устройства для различной обработки цифровых данных и оптимальная реализация некоторых математических алгоритмов поиска заданного объекта на изображении.
Разрабатываемое устройство должно обеспечивать наряду с высокой производительностью широкие коммуникационные возможности, для его применмия в самых разных областях и задачах по обработки различных данных.
В настоящее время высокопроизводительные вычислительные системы можно условно разделить на системы с фиксированной структурой и с программируемой структурой. Системы с фиксированной структурой представлены либо универсальными устройствами на основе серийных универсальных микропроцессоров (персональные компьютеры и серверы на базе универсальных процессоров), либо специализированными устройствами, ориентированными на решение конкретней поставленной задачи (например система ОЯАРЕ-б для решения задачи взаимодействия N тел). Системы с программируемой структурой строятся из вентильных матриц программируемых пользователей - ВМПП (РРОА), что позволяет программно настраивать схему для реализации требуемого преобразования данных.
Повышали производительности микропроцессоров достигается за счет увеличошя тактовой частоты работы логических элематгов и количества таких эламитов. Однако в последние годы наблюдается сущесгвешое замедтаие роста тактовой частоты процессоров (с 2003 года AMD увеличила частоту процессоров семейства Athlon с 2,5 до 3 ГГц), а производительность систем, включающих десятки и более процессоров, ограничивается ш только скоростью передачи данных между узлами, но и сложностью программирования таких систем.
В последние годы очень активно развивается рынок по производству ПЛИС (программируемые логические интегральные схемы). ПЛИС состоят из двух семейств: ПЛМ (программируемые логические матрицы) и ВМПП (вентильные матрицы программируемые пользователем). Для реализации математических алгоритмов наиболее подходят ВМПП, так как они обладают существенно большой емкостью (в десятки и сотни раз превышают ПЛМ) и обладают возможностью реализации произвольно широких и глубоких конвейеров обработки информации.
На сегодняшний день на реальных задачах обработки сигналов производительность ВМПП достигла триллиона операций умножашя/накошения в секунду, что позволяет максимально усложнить задачу, выполняемую одним кристаллом.
Таким образом, в качестве вычислителя в SLSP-2 используется так называемый программно-реконфигурируемый вычислитель, который представляет собой объедшвше универсальных микропроцессоров и ВМПП в одном устройстве. Такие вычислители смогут объединить достоинства кластерных архитектур с вычислительной мощностью ВМПП.
2. Специализированное устройство slsp-2
В ходе работы над устройством SLSP-1 требования к элементной базе и коммуникационным возможностям были дополнэш [1]. Поэтому к SLSP-2 были сформулированы следующие требования, которым должно отвечать устройство для обеспечения высокой производительности, и возможности работать как в составе ПК, так и автономна
- Основной кристалл обработки: FPGA Xilinx Virtex2(3000);
- Для возможности работать с большими потоками данных »обходимо наличие непосредственно на плате памяти DDR;
- Наличие 64-битного интерфейса PCI-X для работы в составе ПК и для дополнительней возможности отладки;
- Интерфейсы ГГО 656 (стандарт передачи видео) для возможности работы со стандартными видеоустройствами;
- Параллельные порты ввода/вывода с поддержкой напряжений 2,5; 3,3 и 5 В;
- Возможность автономней работы, то есть возможность использования внгпшего питания и наличие внутреннего кварцевого генератора.
С целью умшьшения потреблшия тока и умшьшения габаритных размеров и веса устройства, было решаю не использовать внешних контроллеров для шин PCI-X и DDR. Поэтому частью работы являлось реализация этих контроллеров на базе ВМПП.
Для корректного взаимодействия с шиной PCI-X и наиболее оптимальной работы внутренней логики было принято решение логически разнести модуль взаимодействия с интерфейсом PCI-X и внутренний модель обработки. Таким образом внутратний модуль обработки данных всегда функционирует на постоянней частоте кварцевого генератора, установленного на плате (133 МГц), а модуль-контроллер шины PCI-X работает от тактового сигнала самой шины (бывают 66, 100 и 133 МГц).
Корреляционный алгоритм поиска объекта
На базе ВМПП реализованы алгоритмы поиска объектов размером 20x20 пикселей на изображении размером 1000x1000. При этом используется классический корреляци-
онный алгоритм, при котором окно 20x20 пробегает по всем возможным положениям внутри изображения. Таким образом, данная задача демонстрирует типовые особенности обработки изображений:
- обработка больших потоков данных;
- нелинейность алгоритма обработки;
- многопроходность алгоритма.
При реализации такой задачи на базе ПК (процессор Pentium IV 3GHz, 1GB RAM, С++) обработка кадра 1000x1000, при использовании 10 масок для объекта, занимала порядка 10 минут.
При реализации этого алгоритма на базе BMI Iii, непосредственно на языке VHDL время обработки 10 масок составляет не более 40 мс, что позволяет производить такую обработку в режиме реального времош при съемке стандартней видеокамерой.
Алгоритм поиска малоразмерных объектов в последовательности изображений
Существует задача обработки изображений с целью обнаружения малоразмерных объектов при мониторинге поверхности Земли геостационарным спутником в инфракрасном диапазоне. Наблюдаемые объекты представляют собой малоразмерную область характерной формы, яркость которой отличается от общего фона. При выявлении межкадровой зависимости изображашй существует возможность проследить движение таких объектов [2,3].
Алгоритмы для решения этой задачи были разработаны и опробованы в лаб.№ 10 ИАиЭ СО РАН. При этом алгоритм включал в себя следующие этапы обработки изображашй:
• Линейное дифференцирование изображения;
• Согласованная линейная фильтрация;
• Поиск локальных экстремумов в изображаши;
• Для выявления зависимости последовательных изображений осуществить цело-числошую привязку кадров;
• Для выявления зависимости последовательных изображашй осуществить целочисленную привязку фрагментов размером 32x32 пикселя;
• Осуществить субпиксельную привязку фрагжнтов размером 32x32 пикселя.
Алгоритм обработки состоит из трех этапов:
1 .Производится внутрикадровая обработка текущего кадра (BKOl);
2. Выявляется зависимость между текущим и предыдущим изображениями (МКО);
3.С учетом выявленной зависимости производится обработка результатов (ВК02).
В результате проделанной работы все алгоритмы были реализованы на языке VHDL. При анализе производительности было выявлзщ что обработка кадра размером 2048x256 точек занимает моее 1 секунды. При этом данные алгоритмы были также реализованы на базе сигнального процессора (ADSP 21060) и на базе системы из двух специализированных нейропроцессоров (NM6403). При этом времена обработки на этих системах составили 77 и 39 секунд соответственно
Причины высокой производительности ВМ1111
Такой прирост производительности стал возможет благодаря следующим особенностям ВМПП:
1. Неограниченное количество одновременно выгоняемых произвольных операций (сложение, умножоше, инкрементирование счетчика, запись/чтение данных из памяти и так далее);
2. Наличие блоков внутренней памяти (на XC2V3000 - 96 блоков по 16 Кб), работающих на частоте кристалла (до 200 МГц);
3. Наличие однотактных умножителей 18x18 бит (на XC2V3000 - 96 умножителей), работающих на частоте кристалла (до 200 МГц).
3 . Использование модуля slsp-2
В ходе работы разработан универсальный интерфейс, позволяющий управлять работой устройства. Также, для удобства общения с модулем обработки было решено реализовать в ней Control/Status Space (аналог конфигурационного пространства PCI), для управления параметрами и контролем состояния модуля.
Таким образом, любой модуль обработки, имеющий такой интерфейс, может быть использован в программно-аппаратном комплексе SLSP-2.
Работа устройства в составе ПК
Для работы устройства в составе ПК был написан драйвер и реализована пользовательская библиотека, предоставляющая возможность работы с устройством. Для этого «обходимо создан объект класса "CControlDevice", у которого доступны интерфейсные функции записи/чтения из устройства посредством шины PCI-X, и управление внутренним пространством устройства Control/Status Space.
Организация потока данных внутри SLSP-2
Внутри ВМПП реализовано три типа логических буферов памяти:
1. Буфер для общения с шиной PCI-X в режиме "bus target";
2. Два буфер для общения с памятью DDR (два «зависимых клиента могут общаться с динамической памятью);
3. Буфер для прямого общения устройства с памятью ПК в режиме "bus master".
Пользователь может инициировать передачу данных из любого буфера в любой. А
также запустить операцию чтения/записи в указанные буферы данных из динамической памяти устройства или ПК.
Прерывания
Устройство и драйвер обеспечивают работы с прерываниями. После выполнения любой операции (либо невозможности ее выполнить по различным причинам), устройство выставляет прерывание, которое обрабатывает драйвер. При этом внутри реализован отдельный 32-битный регистр описания характера вызванного прерывания. Таким образом, пользователь всегда в курсе тощ выполнят ли операция успешна либо по какой именно причине операция не может быть выполнит.
Программно-аппаратный SLSP-2 представляет собой удачное решения для задач различной обработки изображений и других цифровых сигналов. Оно обладает многими плюсами:
• Сверхвысокая производительность (100 TFLOPs и более),
• Малое энергопотребление (не более 200 мА),
• Портативное (при автономном использовании размеры 300x200x50мм, и масса не более 0,5 кГ);
• Возможность использования в составе ПК.
При этом «недостаток» у SLSP-2 всего один: алгоритмы обработки должны быть реализованы на языке VHDL. Но и это уже перестает быть проблемой при активном развитии и продвижении компанией Xilinx средства SystemC, позволяющего реализо-вывать алгоритмы на языке С.
Литература
1.G.I. Gromilin, A.M. Devjataikin, K.F. Lysakov, M.J. Shadrin. Real time FPGA realization of a small-size object searching algorithm // 7-th International Conference on Pattern Recognition and Image Analysis: New Information technologies. Conference proceedings. St. Petersburg, Russia. 2004. P. 497-498.
2. G.I Gromilin, A.M. Devjataikin, K.F. Lysakov, M.J. Shadrin. Hi-performance co-processor based on FPGA // Proceedings of the Second IASTED International Multi-Conference AUTOMATION, CONTROL, AND APPLICATIONS (ACIT-ACA). Novosibirsk, Russia. June 20-24, 2005. P. 89-92.
3. Kirichuk V.S., Korshever I.I., Sinelshikov V.V., «Dynamic scene image analysis models, algorithms and real-time systems» // Optoelectronics, Instrumentation and Data Processing, New York, Allerton Press, №3, 1998, pp. 3-13.
Тутндеме
Бул жумыста SLSP-2 мэлшетш вцдеу ушш жогары втмЫ модульдi усынуга арналган.
Resume
The work is devoted to the presentation of high - performance model for data-processing SLSP-2. This model is based on the use of FPGA (ВМПП) as the main computing unit.