МНОГОПРОЦЕССОРНЫЙ МОДУЛЬ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ

Многопроцессорный модуль цифровой обработки сигналов
Полезная модель относится к области вычислительной техники и предназначена для цифровой обработки сигналов в многоканальных системах. Многопроцессорный модуль содержит восемь высокоскоростных приемопередатчиков сигнала LVDS (low voltage differential signaling), коммутатор каналов, диспетчер пакетов, восемь высокопроизводительных процессоров цифровой обработки сигналов (ВПЦОС), восемь приемопередатчиков сигнала коммуникационного порта ВПЦОС, буфер данных диспетчера пакетов и промежуточные буферы каналов.
Из уровня техники известно многопроцессорное устройство упорядоченной обработки пакетов данных описанное в патенте США №7327759 B2 (заявка №09/912781 от 2001.07.25). Устройство содержит блок ввода-вывода, память для буферизации входных и выходных пакетов, обработчик заголовков пакета, устройство арбитража и несколько вычислительных узлов, у каждого из которых есть собственная память. Все входные пакеты в устройстве подвергаются конвейерной обработке.
Скорость обработки данных в такой системе ограничена скоростью реализации самого медленного алгоритма, что может приводить к частичному простою вычислительных узлов, на которых выполняются более быстрые задачи. Еще одним недостатком устройства является его одноканальность, что не позволяет использовать устройство для обработки данных в многоканальных системах без дополнительных коммутационных устройств или произвести резервирование каналов ввода и вывода данных.
Также известен многопроцессорный модуль, предназначенный для решения задач цифровой обработки сигналов и изображений, решению задач математической физики, моделированию сложных технических систем и природных явлений, описанный в патенте России №2397538 (заявка №2008151808/09 от 2008.12.25). Устройство содержит взаимосвязанные между собой блок макропроцессоров (МАП), оперативную память (ОП), представляющую собой блок стандартных ОЗУ, блок контроллеров распределенной памяти (КРП), секционный коммутатор и управляемые буферы.
Модуль ориентирован на решение сильносвязанных задач, требующих большого числа межпроцессорных передач данных. Недостатком модуля является повышенная сложность программирования такого устройства. Параллельная программа для модуля многопроцессорной системы представляет собой последовательность кадров. Каждый кадр является программно-неделимой конструкцией и представляет собой совокупность команд макропроцессоров, коммутационных структур, реализованных в секционном коммутаторе и процедур обращения (чтения, записи) к блокам распределенной памяти, реализованных в блоке контроллеров распределенной памяти. Еще одним недостатком модуля является процедура выполнения программы, а именно то, что все устройства системы настраиваются на выполнение нового кадра только тогда, когда все устройства системы завершили процедуры, относящиеся к предыдущему кадру. Выполнение кадров состоит из двух этапов. На первом этапе осуществляется настройка компонентов многопроцессорного модуля на реализацию кадров, на втором - происходит параллельно-конвейерная обработка информационных потоков в соответствии с настроенной вычислительной структурой. При таком подходе вычислительные ресурсы модуля полностью не задействованы на этапе настройки компонентов модуля для реализации следующего кадра и частично не задействованы при ожидании завершения обработки текущего кадра, что приводит к снижению средней производительности вычислительного модуля.
В качестве прототипа выберем многопроцессорное устройство цифровой обработки сигналов, описанное в патенте России №2399089 (заявка №2008148453/09 от 2008.12.08). Устройство содержит четыре цифровых сигнальных процессора, перепрограммируемое постоянное запоминающее устройство, оперативное запоминающее устройство, коммутатор входных каналов LVDS, коммутатор выходных каналов LVDS, два устройства управления вводом канала LVDS, два устройства управления выводом канала LVDS, буферы ввода данных, поступающих по каналам LVDS, буферы вывода данных, поступающих на каналы LVDS, устройство сопряжения магистральных интерфейсов, буфер ввода данных, поступающих с шины интерфейса CompactPCI, буфер вывода данных, поступающих на шину интерфейса CompactPCI.
Недостатком данного устройства является понижение производительности устройства при интенсивном обмене данными между его узлами вследствие того, что весь обмен данными между узлами ввода/вывода, оперативной памятью и цифровыми сигнальными процессорами происходит через общую шину системного магистрального интерфейса ЦСП. При работе устройства не предусмотрена возможность удаленного динамического изменения функций, реализуемых сигнальными процессорами. Программирование такого модуля представляет собой сложную задачу, поскольку программы для процессоров не могут быть написаны независимо друг от друга при использовании общей разделяемой памяти, и для доступа к общим данным, находящимся в разделяемой оперативной памяти, требуется организация контроля целостности этих данных.
Задачей заявляемого решения является создание универсального многопроцессорного многоканального модуля цифровой обработки сигналов.
Техническим результатом является создание универсального многопроцессорного модуля цифровой обработки сигналов, обеспечивающего высокую производительность и простую масштабируемость при построении многоканальных вычислительных систем с пакетной передачей данных, а также обладающего возможностью динамического (в процессе работы) изменения решаемых процессорами модуля задач.
Технический результат достигается тем, что модуль цифровой обработки сигналов (МЦОС) содержит несколько высокопроизводительных процессоров цифровой обработки сигналов (ВПЦОС), обеспечивающих параллельную обработку данных, устройства ввода и вывода данных, а также исполнением каналов ввода и вывода данных на основе высокоскоростного последовательного интерфейса LVDS, использованием нескольких каналов ввода данных, обеспечивающих ввод данных от нескольких источников сигнала, и соответствующего количества каналов вывода данных, возможностью резервирования каналов ввода и вывода данных, коммутацией данных с входного канала на выходной канал интерфейса LVDS для ретрансляции данных обрабатываемого сигнала или вывода данных промежуточной обработки сигнала с одного на другой МЦОС и отличается тем, что обмен данными между устройствами ввода/вывода и процессорами сигналов осуществляется посредством коммутатора каналов, способного обеспечивать параллельную передачу данных между любыми устройствами ввода/вывода и процессорами сигналов, возможна удаленная загрузка новых функций в оперативную память ВПЦОС в процессе работы модуля, функции для ВПЦОС могут быть написаны без привязки к архитектуре модуля.
Многопроцессорный модуль цифровой обработки сигналов предназначен для обработки сигнала в многоканальных системах цифровой обработки сигналов с пакетной передачей цифровой информации, например, в радиолокационных системах или системах обработки изображений.
Сущность технического решения показана на чертежах: фиг. 1 - структурная схема многопроцессорного модуля; фиг. 2 - структурная схема коммутатора каналов; фиг. 3 - структура ПО диспетчера пакетов, фиг. 4 - блок-схема алгоритма системного ПО ВПЦОС.
Многопроцессорный модуль цифровой обработки сигналов содержит восемь высокопроизводительных процессоров цифровой обработки сигналов (ВПЦОС) 1 с производительностью каждого из них до 3,6 миллиарда операций с плавающей точкой в секунду (3,6 GFLOPS). Диспетчер пакетов (ДП) 2, реализованный на микроконтроллере и коммутатор каналов (КК) 3, реализованный с использованием ресурсов микросхем программируемой логики (ПЛИС) 4 на модуле позволяют производить параллельную загрузку пакетов данных на все ВПЦОС. Решения о том, что делать с данными, хранящимися во внутренней памяти ВПЦОС, принимать данные с входного порта 5 или передавать данные на выходной порт 6, какую функцию и над каким массивом данных выполнять в данный момент и т.п., принимает ДП. Команды управления от ДП к ВПЦОС поступают в заголовках передаваемых пакетов по шине данных ВПЦОС (ШДП) 7. Текущее состояние каждого ВПЦОС (ожидание команды, выполнение функции, и т.п.) передается на ДП в реальном времени по шине стояния ВПЦОС (ШСП) 8, что позволяет ДП без задержек на передачу и ожидание приема данных реагировать на изменение текущего состояния всех ВПЦОС 1. Благодаря рассмотренному подходу программное обеспечение (ПО) ВПЦОС позволяет выполнять вычислительные задачи практически без затрат процессорного времени ВПЦОС на анализ входных данных, диспетчеризацию входных пакетов, выбор исполняемых на ВПЦОС функций и т.д., а наличие в ВПЦОС каналов прямого доступа к памяти (ПДП) позволяет производить загрузку и выгрузку данных параллельно с работой вычислительного ядра ВПЦОС. Благодаря снижению накладных расходов процессорного времени ВПЦОС, обеспечивается повышение производительности многопроцессорного модуля.
Для объединения нескольких модулей в систему на модуле установлен приемопередатчик низкоскоростного интерфейса CAN (controller area network) 9, а также в КК 3 предусмотрена возможность параллельной коммутации данных с любого приемника LVDS сигнала 10 на вход любого ВПЦОС 1 или вход передатчика LVDS сигнала 11 модуля и коммутации данных с выхода любого ВПЦОС на вход любого ВПЦОС или вход передатчика LVDS сигнала 9. Такой подход позволяет создавать разнообразные вычислительные системы со сложной конфигурацией транспортной подсистемы, конвейерной обработкой данных, независимой многоканальной или межканальной обработкой, резервированием каналов передачи данных.
Системное ПО ВПЦОС построено таким образом, что во время работы вычислительной системы вместе с данными в модуль ВПЦОС могут быть загружены новые функции или изменены параметры работы уже загруженных функций. Это позволяет реализовать возможность динамического изменения решаемых модулем задач.
Данные с восьми входов модуля поступают на приемники сигналов LVDS микросхемы программируемой логики 4. С приемников сигналов LVDS данные поступают на входы КК 3. КК 3 является устройством, способным произвольно коммутировать до 16 каналов данных. Оставшиеся восемь входов КК 3 соединены ШДП 7 с выходными коммуникационными портами (КП) восьми микросхем ВПЦОС 1. КК 3 способен параллельно коммутировать любой из своих входов с любым выходом, а также передавать данные с входов на ДП 2 и с ДП 2 на выходы. ДП 2 управляет всей коммутацией потоков данных через КК 3, а также способен буферизировать водящие и исходящие пакеты во внешнем буфере данных (ВБД) 12, который представляет собой микросхему оперативной памяти, в том случае, если этого требуют реализуемые на модуле алгоритмы обработки. В базовом варианте модуль может выпускаться без дополнительной микросхемы памяти благодаря малой задержке при передаче пакетов с входов модуля 5 на конечные устройства обработки ВПЦОС 1 и с ВПЦОС 1 на выходы модуля 6. В случае объединения нескольких многопроцессорных модулей в систему ДП 2 обеспечивает межмодульную коммуникацию, которая на физическом уровне осуществляется посредством микросхемы CAN интерфейса 9.
На каждом входе КК присутствует входной буфер пакетов данных (БПД) 13 данные из буфера считываются дешифратором заголовка (ДЗ) 14 соответствующего канала. В функции ДЗ 14 входит детектирование заголовка принятого пакета, передача заголовка на ДП 2 по шине данных КК (ШДК) 16, выдача принятого пакета на шестнадцативходовые мультиплексоры каналов 15, управляемые ДП 2. Следует отметить, что ДЗ 14 имеет возможность осуществлять обмен пакетами с ДП 2. Эта возможность позволяет реализовать управление работой ВПЦОС 1 в системе, используя каналы передачи данных. После завершения передачи пакета, ДЗ 14 сигнализирует об этом на ДП 2 по шине состояния КК (ШСК) 17.
Физически КК 3, также как и высокоскоростные приемники LVDS сигнала 10 и высокоскоростные передатчики LVDS сигнала 11 реализованы с использованием ресурсов микросхем программируемой логики. ДП 2 представляет собой микроконтроллер с arm ядром.
Основными функциями ДП 2 являются управление передачей пакетов данных между входами 5, выходами 6 модуля и вычислительными узлами, а также управление состоянием вычислительных узлов с целью решения заданного набора задач. В качестве вычислительных узлов на модуле выступают ВПЦОС 1. Каждая задача представляет собой совокупность стадий, каждая из которых в свою очередь имеет программную реализацию в виде некоторой функции, выполняемой на ВПЦОС 1. Функции, предназначенные для решения одной задачи, могут быть реализованы как на одном вычислительном узле 1, так и распределены между несколькими.
При получении от КК 3 заголовка пакета ДП 2 анализирует данные об источнике, типе данных и назначении пакета. В том случае, если принятые данные предназначены для решения задачи, реализуемой на данном модуле, осуществляется:
- отождествление текущего пакета данных с одной из решаемых на модуле задач,
- внесение изменений в заголовок пакета для передачи на ВПЦОС управляющей информации,
- перенаправление текущего пакета данных на ВПЦОС, ожидающий данных для исполнения следующей стадии задачи,
- контроль за ходом исполнения задачи,
- контроль состояния ВПЦОС 1 по ШСП 8 и выдачу команд управления на ВПЦОС 1 по ШДП 7.
Если принятые данные представляют собой код функции, то ДП 2 перенаправляет данные на ВПЦОС 1, для которого эта функция предназначена и запоминает её расположение в адресном пространстве ВПЦОС 1. Если принятые данные предназначены не для текущего многопроцессорного модуля, то в соответствии с данными в заголовке осуществляется перенаправление пакета на нужный выход 6.
На фиг. 3 изображена структура ПО ДП 2. На вход диспетчера событий ДС 18 в реальном времени поступают сигналы состояния с КК 3 и с ВПЦОС 1. В зависимости от текущего состояния каждого конкретного ВПЦОС 1, диспетчер процессов (ДПР) 18 контролирует ход выполнения текущей задачи и управляет занятостью всех вычислительных узлов, посредством модуля управления ВПЦОС (МУП) 20. Следует отметить, что распределение стадий и данных по вычислительным узлам происходит таким образом, чтобы минимизировать время простоя каждого ВПЦОС 1. Коммуникационный модуль (КМ) 21 содержит интерфейсные функции ДП 2 и отвечает за обмен данными между ДП 2 и КК 3, а также за взаимодействие различных модулей по CAN интерфейсу. Для настройки ДП 2 на реализацию конкретных задач, его ПО содержит два модуля конфигурационных модуля: модуль с описанием стадий обработки (МСО) 22 и модуль с описанием функций обработки (МФО) 23.
На фиг. 4 изображен алгоритм системного ПО ВПЦОС. В его задачи входит прием пакета с КК 3, анализ заголовка принятого пакета и выделение кода команды от ДП 2. В зависимости от кода команды системная часть ПО ВПЦОС может инициировать прием данных с КП, выдачу данных на КП, копирование данных во внутренней памяти ВПЦОС 1, запуск функции с заданного адреса из памяти ВПЦОС 1 или подготовку к отложенному запуску новой функции в том случае, если в текущий момент на ВПЦОС 1 уже запущена функция на выполнение. На ВПЦОС 1 в составе пакета данных могут передаваться как данные для обработки, так и код функции или новые параметры для загруженной функции. Такой подход обеспечивает дополнительную гибкость и универсальность при проектировании систем цифровой обработки на базе многопроцессорного модуля.
Данные поступают на модуль и передаются между элементами модуля в составе пакета. Пакет состоит из заголовка фиксированной длины 128 бит, за которым следуют сами данные переменной длины. Заголовок включает информацию об источникеи приемнике данных, их структуре и размере, а также другую необходимую служебную информацию.
Высокоскоростной последовательный интерфейс LVDS является последовательным однонаправленным интерфейсом, осуществляющим соединение от одного передатчика к одному приемнику информации (топология точка-точка) по дифференциальным симметричным линиям LVDS (стандарт ANSI/TIA/EIA-644). Интерфейс LVDS использует передачу сигналов в симметричную дифференциальную линию с малыми сигнальными уровнями 350 мВ. Канал высокоскоростного последовательного интерфейса LVDS включает одну дифференциальную линию передачи данных.