Диссертация (1090497), страница 16
Текст из файла (страница 16)
Необходимо решитьвопрос с конвейерной обработкой, поскольку ГП не позволяет обрабатыватьпараллельно разнотипные задачи, а ПЛИС требует очень больших ресурсов придвумерной обработке. Предлагается один из вариантов реализации: использоватькомбинацию ПЛИС для корреляционной обработки сигналов и ГП для109выполнения векторно-матричных операций, а УП для отображения и управления.РазделениезадачпозволяетиспользоватьПЛИСиГПсреднейпроизводительности. Это существенно удешевляет реализацию, поскольку ПЛИСбольшого объёма и мощный ГП стоит достаточно дорого.Для дальнейшего исследования предлагается рассмотреть второй вариантреализации,которыйзаключаетсявтом,чтобыиспользоватьвысокопроизводительный ГП для корреляционной обработки и одновременнопроизводить на нём частотную фильтрацию, а УП применить для подготовкиданных, отображения и управления.Кратко коснёмся вопросов аппаратного построения блока, т.е.
вопросовконструктива, питания, тепловыделения и электромагнитной совместимости. Какизвестно [86,87] в результате совместного действия вычислительных средств какпо тепловыделению, так по взаимным помехам по питанию могут возникать сбоии отказы аппаратуры.4.2 Реализация ДКФ на ПЛИС и ГП4.2.1 Устройство, схема и параметры стенда корреляционной обработкиОдин из вариантов реализации ДКФ в реальном времени по предложенномуалгоритму (раздел 1.2.1) был исследован при помощи отладочной платы ЦОСDevelopment Kit-4 фирмы Nallatech [145].
Основу которой составляет ПЛИСсерии Virtex-IV фирмы Xilinx. Плата ЦОС и персональная ЭВМ образуют стендкорреляционной обработки (рисунок 4.1) приёмной позиции пассивногокомплекса радиотехнического контроля. Стенд совместно с ВЧ приёмником даётвозможностьисследователюпроизводитьприёмиобработкусигналоврадиоэфира с двух антенных систем, позволяет выполнять разработку и отладкукак аппаратного, так и программного обеспечения системы.110Рисунок 4.1 – Стенд корреляционной обработкиВ плату ЦОС входят: двухканальный АЦП серии AD6645, двухканальныйцифро-аналоговый преобразователь и ФД- AD9772, ПЛИС обработки типаxc4vsx35, интерфейсный контроллер на основе ПЛИС Spartan-II, память типаSRAM- 512 кБ×32 бит, управляемый тактовый генератор- Virtex-II, источниквторичного питания.
Плата ЦОС соединяется с ЭВМ через PCI шину спропускной способностью 33 МГц\32 бит.ЭВМ состоит из: УП типа Intel Core 2 Duo E6750 2,6 ГГц (2 ядра) играфической платы GeForce 8600GT (ГП–G84) фирмы Nvidia [146], соединённой сЭВМ шиной PCI Express. Структурная схема процесса вычисления ДКФ показанана рисунке 4.2.Рисунок 4.2 – Структурная схема вычисления ДКФ111Процесс вычисления ДКФ разбивается на несколько этапов:1) вычисляются КФ для последовательных интервалов времени. Поскольку ПЛИСпозволяетвыполнятьпараллельныевычислениясмаксимальнымбыстродействием, то её используют для первичной обработки информации, т.е.длявычисленияКФ.Приэтойоперациитребуетсянаибольшаяпроизводительность (от 108 до 109 оп/с). Так как Nτ>256, то вычисление КФпроизводится с использованием операции двойного БПФ;2) формируется матрица КФ при помощи УП таким образом, чтобы элементыстолбца представляли КФ для одного интервала времени, а элементы строкисоставляли значения КФ для разных интервалов, но для одинаковых задержек;3) формируется матрица поворачивающих множителей при помощи УП ирезультат записывается в глобальную память;4) вычисляется матрица ДКФ через произведение матриц КФ и поворачивающихмножителей.
При этом произведение строки корреляционной матрицы на столбецматрицы поворачивающих множителей даёт элемент матрицы ДКФ. Эта операцияреализована на ГП, поскольку он предназначен для двух и трехмернойобработки.Вычисления ДКФ производилось с параметрами:- частота сигнала f=10 МГц;- тактовая частота Ft=30 МГц;- скорость передачи информации по шине: 150 МБ/с;- число отсчётов КФ (по задержке), М: Nτ =2048;- число отсчётов по доплеровской частоте, N: Nd =256;- диапазон доплеровских частот: Фmax= 7 кГц;- разрешение по доплеровской частоте: δФ=55 Гц;- дискрет по времени: δt =1/Ft =0,033 мкс;- диапазон задержек: τmax=Nτ/Ft =68,3 мкс;- общее число отсчётов: NТ=( δФ· δt)-1≈5,5×105, возьмём NТ=524288;- время накопления: Tχ=NТ /Ft =0,017 с.1124.2.2 Алгоритм вычисления и формирования матрицы КФНа рисунке 4.3 приведен алгоритм формирования КФ при помощи операциидвойного БПФ.
Перед началом исследования инициализируется плата ЦОС, т.е.включается питание, загружается прошивка в ПЛИС (блок 2). На вход платыЦОС- двухканального АЦП подаются сигналы от генератора произвольнойформы AFG3102 фирмы Tektronix [147] (имитатора сигнала радиоэфира) и далееоцифрованные сигналы поступают на ФД, где происходит формирование двухквадратур каждого сигнала. Дальнейшая обработка осуществляется в корреляторена основе ПЛИС.При поступлении входных отсчётов в реальном времени происходитформирование полной выборки в блоках 3 и 3´, т.е.
выполняется когерентноенакопление. Далее выполняется стандартная операция БПФ в блоках 4 и 4´,комплексное перемножение двух спектров в блоке 6, один из которых комплексносопряженный (блок 5) и далее следует процедура обратного БПФ (ОБПФ). Такимобразом, в блоке 7 происходит формирование комплексной КФ. Каждый столбецматрицы представляет собой КФ для определённой выборки сигнала в моментвремени tn (рисунок 1.7).Полученные значения КФ формируются в кодограмму (блок 9) рисунок 4.4,к которой пристыковывается заголовок (блок 8) с соответствующими признаками.Кодограмма имеет длину 256 слов×32 разряда: заголовок 18 слов×32разряда и данные 238 слов×32 разряда. Количество данных определяетсяразмером памяти типа FIFO ПЛИС. Для микросхемы xc4vsx35 она равна 1 КБ.Заголовок содержит следующую служебную информацию:- номер метки времени;- тип передаваемых данных (с полной амплитудой либо бинарно-квантованные);- длина (количество слов) передаваемых данных (стандартная: 238 либопониженная);- текущий номер и признак передачи;1131 Начало234Инициализацияплаты ЦОСImReФормированиевыборкиRe4'БПФIm53'ФормированиевыборкиRe6ImБПФReImУмножениеУмножение на -1ReImОБПФ789ФормированиекодограммыФормированиезаголовка10Такт ожидания11Запись в буферFIFO12НЕТДАБуферполный13Передачакодограммы1415Заданиепараметра LНЕТОшибкапередачи16Q=Q+1НЕТQ=LДА1718КонецРисунок 4.3 – Алгоритм формирования КФДА114211823818323818238…………230418238Рисунок 4.4 – Набор кодограмм- количество кодограмм для формирования кадра;- номер кадра;- признак последней кодограммы кадра;- контрольная сумма каждой кодограммы.Данные содержат отсчёты КФ - 32 разрядные слова: 16 разрядовдействительная часть, 16 разрядов- мнимая часть, по 2 байта каждый.
Данныекодограммы последовательно заполняют буфер памяти FIFO ПЛИС (блок 11).Если буфер не заполнен, тогда формируется такт ожидания (блок 10). Кактолько буфер будет заполнен, происходит передача кодограммы (блок 13) пошине PCI в УП ЭВМ для дальнейшей обработки. В ЭВМ происходит дешифрациязаголовка и по соответствующим признакам выбирается тот или иной режимобработки, а по контрольной сумме кодограмма проверяется на наличие ошибокили сбоев, формируется признак правильности передачи. При возникновенииошибок (блок 14) формируется признак повторной передачи кодограммы изплаты ЦОС. Этот признак будет передаваться до тех пор, пока не будетвыполнена безошибочная передача.При формировании признака готовности к передаче новой кодограммыформируется и передаётся следующая кодограмма и процесс повторяется (блок16), а данные предыдущей кодограммы помещаются в память ЭВМ дляформирования кадра (рисунок 4.4).
После передачи 9 кодограмм, получаем однуКФ- 2048 отсчётов×32 разряда, 256 значений КФ образуют кадр, т.е. для егоформирования необходимо 2304 кодограмм (параметр L (рисунок 4.3)).1154.2.3 Алгоритм вычисления ДКФЧастотная фильтрация и формирование ДКФ происходит в ГП сприменением УП. На рисунке 4.5 представлен алгоритм вычисления ДКФ.Согласно этому алгоритму была разработана программа “FH”, написанная наязыке Си в среде программирования Visual Studio 2010. При построениитрехмерногоизображенияизапроснекоторыхбиблиотечныхфункцийприменялась среда моделирования Matlab (рисунок 4.6).
Для работы иинициализации ГП использовалась программа и ”технология” CUDA [92,132,133]от фирмы Nvidia.В программе “FH” задаются основные параметры настройки (блок 2):M – число отсчётов КФ (2048);N – число доплеровских частот (256);K – количество КФ (256).Запускается, настраивается и инициализируется среда Matlab и CUDA (блок3). Запускается программа “FH” и перед началом работы тестовая подпрограммапроверяет наличие ошибок инициализации и проверку наличия связи с платойЦОС (блок 4). В случаи наличия ошибок, программа отображает ошибку наэкране монитора и её код, и дальнейшее вычисление на этом заканчивается.При отсутствии ошибок проверки происходит дальнейшее выполнениепрограммы, т.е.
считывание кодограмм (блок 6) из платы ЦОС и сохранение ихсначала в FIFO памяти УП для процесса дешифрации (блок 7), а затем вглобальной памяти ЭВМ (блок 8). При дешифрации заголовка кодограммысчитывается информация о количестве кодограмм в кадре, а также признакпоследней кодограммы кадра.
Т.е. кодограммы размещаются в ячейках памятиЭВМ последовательно друг за другом до тех пор, пока не придёт последняякодограмма кадра (блок 9) (рисунок 4.4).Если при дешифрации заголовка кодограммы был получен признакпоследней кодограммы (u=1), происходит переписывание всего массива данных иформирование матрицы ||R|| (блок 10) - кадра (рисунок 4.7).1161 Начало2Задание параметровM, N, K3Инициализация программCUDA и MatlabДА4ОшибкапроверкиНЕТ5u=06Считываниекодограммы7Запись в FIFOУП8Запись в памятьЭВМНЕТ12Формированиематрицы ||E||9ДАu=110Формированиематрицы ||R||11Передачаматрицы ||R|| в ГП13||R||×||E||=||χ||14Получение ||χ|| инормировкаа'в'Рисунок 4.5 – Алгоритм вычисления ДКФс'117в'а'15Получение иотображение графика16Копированиематрицы ||χ|| в файл17ДАОсвобождение памяти18ОстановНЕТ19КонецРисунок 4.5 (продолжение) – Алгоритма вычисления ДКФРисунок 4.6 – Окна программс'118После этого осуществляется передача матрицы ||R|| в глобальную память ГП(блок 11) для дальнейшей обработки.
Параллельно в УП формируется матрицадоплеровских частот ||E|| (блок 12) (рисунок 4.5 и 4.7) и также пересылается вглобальную память ГП для дальнейшей операции умножения (блок 13). Врезультате перемножения двух матриц, получается матрица ||χ||.2048Матрица ||R||1ая КФ2ая КФ3ая КФ4ая КФ··········256ая КФКадр2048Матрица ||E||1ая ДЧ2ая ДЧ3ая ДЧ4ая ДЧ··········256ая ДЧ256Рисунок 4.7 – Матрица ||R|| и ||E||: ДЧ – доплеровская частота.Операция перемножения двух матриц на ГП достаточна простая операция ичем больше массив, тем большая эффективность вычислений. При этом каждый“поток” в ядрах ГП производит вычисление нескольких независимых элементовматрицы ||χ|| [128].
В результате время, затраченное на вычисление произведениякомплексных матриц [2048×256]∙[256×256]=[2048×256] составило 20 мс. Времявычисления модуля от элементов матрицы – 360 мкс, пересылка массива данныхиз памяти УП в ГП – 8 мс.В блоке 14 происходит процесс нормировки, вычисление модуля,выделениеогибающей,нахождениеэкстремума,еслиэтонеобходимо.Полученный результат отображается на экране монитора (рисунок 4.6). Такжерезультат копируется в специальный файл документирования (блок 16).Освобождаются области глобальной памяти УП и ГП, где хранились кодограммыи предварительные результаты (блок 17).
Затем снова начинается приём иобработка кодограмм для следующего кадра. Процесс повторяется до тех пор,пока не придёт команда остановки и прекращения вычислений.Были экспериментально получены трехмерные графики ДКФ (рисунки4.8…4.11) для различных видов сигналов (импульса, ЧМ и шумового сигнала).119Рисунок 4.8 – Модуль ДКФнемодулированного импульсаРисунок 4.9 – Модуль ДКФлинейного ЧМ сигналаРисунок 4.10 – Модуль ДКФ шумовогоРисунок 4.11 – Модуль ДКФ линейногосигналаЧМ сигнала при отношенииС/Ш на входе ≈ минус 20 дБ4.3 Реализация ДКФ на ГП4.3.1 Устройство, схема и параметры стенда корреляционной обработкиПолучение ДКФ в реальном времени может быть реализована на основе УПи высокопроизводительном ГП [91,93,94]. Анализ проведённый в Приложении 4показал, что УП и ГП являются перспективной ЭБ [95] и при её применениирешаются сразу несколько важных задач:- обеспечивается высокая производительность процесса вычисления;- готовое аппаратное и частично программное решение;- простота и гибкость программирования;- низкая стоимость разработки.120Вариант реализации ДКФ по предложенному алгоритму получен на основеперсональной ЭВМ, в состав которого входит: плата АЦП CompuScope 8225фирмы GaGe Applied Technologies [148], УП типа Intel Core i5 2400, 3,1 ГГц, (4ядра) и графическая плата GeForce GTX560 (ГП–GF114) фирмы Nvidia.