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

Параллельный перепрограммируемый вычислитель (ППВ) разработан в стандарте VME и реализован на базе перепрограммируемых микросхем семейства 10К фирмы Altera. Вычислитель предназначается для работы в качестве аппаратного ускорителя и является ведомым устройством на шине VME. Он включается в систему как дополнительное устройство основной ЭВМ (host-машины) с универсальным процессором.

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

Структурная схема вычислителя

Вычислитель состоит из следующих функциональных блоков:

Схема управления используется для управления БВЭ и потоками данных в вычислителе и представляет собой простейший RISC процессор. Структура и набор команд процессора могут изменяться в зависимости от типа решаемой задачи.

БВЭ используются для выполнения простейших арифметических операций типа суммирования, вычитания, умножения и вычисления пороговых функций. Так как БВЭ реализованы на перепрограммируемых микросхемах, их архитектура может изменяться. Архитектура БВЭ для различных алгоритмов может отличаться, но обычно легко реализуются путем комбинации библиотечных функций, компиляции их при помощи САПР (типа MaxPlus) и загрузки файла конфигурации в выбранный БВЭ.

БВЭ для перемножения векторов и матриц содержит: набор регистров и 4 вычислительных элемента, состоящих из 8-разрядного конвейерного умножителя, 24-разрядного сумматора с накоплением результата, схемы логического умножения, компаратора. Выбор необходимой арифметической операции проводимой над входными данными и путь прохождения данных через любой вычислительный элемент определяется установкой схемой управления соответствующей команды, набора битов на шине. Внутренние регистры БВЭ используются для хранения значений входных коэффициентов, порогов и результатов вычислений. БВЭ для реализации различного типа фильтров, в дополнение к регистрам и 4 вычислительным элементам, содержит внутреннюю память коэффициентов.

Два массива локальной статической памяти собраны из 8 микросхем статической памяти емкостью 0,5 Мбайт, имеют размер 4Мбайт и организованы как массив 512К 8-байтовых слов. Массивы памяти связаны со схемой управления отдельными адресными шинами и могут функционировать независимо друг от друга. Память предназначена для хранения общих коэффициентов, а также промежуточных результатов вычислений или окончательных результатов, подготовленных к передаче через контроллер системной шины в центральный процессор или через контроллер E-bus на линк-порты.

Связь нескольких вычислителей между собой или вычислителя с устройством оцифровки изображения, при наличии у устройства оцифровки соответствующего интерфейса, осуществляется посредством последовательного канала приемников/передатчиков HOTLink фирмы CYPRESS. Управление передачей данных выполняет контроллер внешней шины, который представляет из себя набор 4-х стандартных FIFO и регистров управления и данных.

Контроллер шины VME выполняет функцию интерфейса с центральным процессором и является стандартным устройством.

C точки зрения программиста вычислитель можно представить как RISC-процессор (схема управления или управляющий процессор) и шесть векторных процессоров (вычислительных элементов), отрабатывающих SIMD-команды (одна команда для многих данных) - рис. 2.

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

Результаты измерений производительности вычислителя
Название теста TMS320C4x
кол-во тактов
Вычислитель,
кол-во тактов
Соотношение
производительностей
(Вычислитель/TMS)
Сумма векторов2*1031.5*1031.3
Разность векторов4*1031.5*1032.6
Умножение вектора на скаляр1031*1031
Умножение вектора на вектор1.6*1042*1038
Скалярное перемножение векторов1.6*10410316
Умножение вектора на матрицу7.9*1051.3*105, 6.4*1046, 12.2
Умножение матрицы на матрицу8.1*1081.3*108, 0.7*1086.2, 11.6
Поиск максимума по столбцам2.9*1061.3*10522
Поиск максимума по всей матрице2.9*1061.3*10522
Транспонирование матрицы9.4*1065.2*10518
Операция свертки с маской 3*34.6*1065*1059.2

В качестве исходных данных рассматриваются вектора размера 4096 байт и матрицы размера 1024*1024 байта. Результатом работы являются байтовые вектора или 4-байтовые матрицы. Время выполнения тестов определяется тактовой частотой, на которой работает схема управления, через запятую приведены показатели для тестов, в которых возможно дополнительное распараллеливание вычислений.

При использовании в вычислителе более мощных микросхем производительность может увеличиться более чем в 2 раза.

Технические характеристики

6 вычислительных элементов, реализованных на перепрограммируемых микросхемах типа FPGA фирмы Altera - FLEX10K50 -FLEX10K130 в корпусе RQFP240.

Микросхема содержит 50-100 тысяч вентелей и 2 Кбайта внутренней памяти.

Тактовая частота - 33 МГц.

Локальная статическая память объемом 4 Мбайт с организацией 512к x 64 и временем доступа -20 нс. Память разделена на два независимых 32-разрядных массива.

Системная шина VME - A24,A32, D08,D16,D32, MBLT (мультиплексированные блочные передачи A32,D64)

Внешняя шина - высокоскоростные приемники/перадатчики HOTLink фирмы Sypress - 2 приемника и 2 передатчика 33 Мбайт/сек. каждый.

Управление работой вычислительных элементов выполняется схемой управления. Схема управления реализована на перепрограммируемой микросхеме как и вычислительные элементы и представляет собой RISC процессор с расширяемым набором команд.

Ассемблер RISC процессора может быть разработан под конкретную задачу. Программное обеспечение работает под операционной системой DOS 6.22 и ос2000, Linux.

Характеристики вычислительных элементов(ВЭ)

Каждый ВЭ содержит 4-8 конвейерных умножителей целых чисел 8*8.

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

Для обмена данными имеется три шины: 64 разрядная шина для обмена с памятью, 32 разрядная шина VME, 64 разрядная шина для связи вычислителей по типу каждый с каждым.

Производительность одного ВЭ - 120-240 млн. умножений с накоплением в секунду. Пиковая производительность платы 1440 млн. умножений с накоплением в секунду.

Отдел разработки высокопроизводительных систем
НИИСИ РАН