Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXVIII Международной научно-практической конференции «Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ» (Россия, г. Новосибирск, 04 сентября 2017 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Ратушная А.А., Рубцова Ю.М. РАЗРАБОТКА ВЕКТОРНОГО ГЕНЕРАТОРА ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ НА ЯЗЫКЕ АССЕМБЛЕРА ПРОЦЕССОРА «ADSP-TS201» ДЛЯ ЗАДАЧ ИМИТАЦИИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ // Научное сообщество студентов: МЕЖДИСЦИПЛИНАРНЫЕ ИССЛЕДОВАНИЯ: сб. ст. по мат. XXVIII междунар. студ. науч.-практ. конф. № 17(28). URL: https://sibac.info/archive/meghdis/17(28).pdf (дата обращения: 24.12.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

РАЗРАБОТКА ВЕКТОРНОГО ГЕНЕРАТОРА ПСЕВДОСЛУЧАЙНЫХ ЧИСЕЛ НА ЯЗЫКЕ АССЕМБЛЕРА ПРОЦЕССОРА «ADSP-TS201» ДЛЯ ЗАДАЧ ИМИТАЦИИ В РЕЖИМЕ РЕАЛЬНОГО ВРЕМЕНИ

Ратушная Анастасия Александровна

студент 1 курса  магистратуры , кафедра вычислительной техники и информационных технологий СПбГМТУ,

РФ, г.Санкт-Петербург

Рубцова Юлия Михайловна

ведущий инженер-программист АО Концерн «Океанприбор»,

РФ,  г. Санкт-Петербург

Неотъемлемыми составляющими процесса разработки программного обеспечения (ПО) для гидроакустических комплексов и станций (ГАК и ГАС) являются задачи тестирования и отладки. Чтобы обеспечить проведение тестирования и отладки ПО, необходимо иметь входные данные, которые по своей структуре и смыслу, соответствуют данным, поступающим на вход аппаратуры цифровой обработки сигналов. Для имитации входных данных (полезных сигналов и шума) можно использовать программный имитатор, который дает возможность при отладке устранить основные ошибки реализации и откорректировать некоторые алгоритмы.

В рамках данной работы рассматривается решение задачи имитации шумов в составе программного имитатора для режима обнаружения гидролокационных сигналов (ОГС) [1] на базе программируемых процессоров ADSP-TS201(TigerSHARC) [3] прибора цифрового вычислительного комплекса (ЦВК) «СОЛО»[4].

Для понимания особенностей реализации рассмотрим архитектуру высокопроизводительного 128-битного процессора ADSP-TS201 семейства TigerSHARC [3], на базе которого был написан программный имитатор.

Внутренняя память процессора занимает объем 24Мбит и разбита на шесть блоков памяти по 128 Кслов. Каждая из четырех пар внутренних шин «адрес/данные» подсоединена ко всем шести блокам памяти через коммутационную матрицу. Шесть блоков памяти поддерживают до четырех обращений на каждом такте, причем каждый блок памяти может выполнить 128-битное обращение за такт. Кэш каждого блока и механизм упреждающей выборки увеличивают скорость доступа к внутренней памяти процессора. Кластерная шина, на которую выходит внешний порт, имеет ширину в 64 бита. Высокая пропускная способность ввода/вывода сочетается с высокой скоростью работы ядра. Для достижения высокой тактовой частоты процессор ADSP-TS201  использует конвейерную внешнюю шину для межпроцессорных обменов, а также для синхронной статической памяти со сквозным считыванием и для динамической памяти.

В процессе интенсивных вычислений один или оба целочисленных устройства ALU вычисляют или генерируют адреса для выборки до двух операндов размером в квадрослово из двух блоков памяти, в то время как устройство управления одновременно извлекает следующую четверку команд из третьего блока памяти. Параллельно вычислительные устройства могут обрабатывать ранее считанные операнды, а устройство управления подготавливать переход. Пока ядро процессора занято данными действиями, каналы контролера DMA (Direct Memory Access - прямого доступа к памяти) могут в фоновом режиме обновлять содержимое внутренней памяти квадрословами данных.

Таким образом, вычислительное ядро процессора ADSP-TS201 достигает исключительно высокой производительности при цифровой обработке сигналов используя такие особенности процессора как вычислительный конвейер, пара вычислительных устройств, выполнение до четырех команд за такт и выборка/запись до восьми слов памяти за такт. Два идентичных вычислительных устройства выполняют до 6 операций с плавающей точкой за такт[3]. Пара вычислительных устройств, выполнение нескольких команд за такт и выборка/запись до восьми слов памяти за такт позволяют проводить «запараллеливание» команд для оптимальной реализации кода.

Вернемся к задаче имитации шумовой обстановки и ее реализации. Шум является неотъемлемой частью влияния окружающей среды на работу всех гидролокационных  систем.  Общая часть шумового фона, наблюдаемого с помощью гидрофонов,  суммируется из шумов, создаваемых окружающей средой и шумов, связанных с функционированием гидрофонов и способом их крепления, т. е. «собственным шумом» и не порождается тем или иным локализованным, распознаваемым источником шума [6]. Для данного программного имитатора шумовая обстановка в воде моделируется случайными числами с равномерным законом распределения, на отрезке от нуля до единицы. Модель характеризуется такими параметрами как признак наличия шума (0 – нет шума, 1- есть шум); скоростью распространения звука в среде   (константой, определяемой упругостью и плотностью среды, в данной работе =1500 м/с);  уровнем шума   (может принимать целые значения от 0 до 10). Уровень шума связан со значением амплитуды шума соотношением:

При использовании в программе стандартной библиотечной функции языка C для генерации псевдослучайного числа Rand(), происходит превышение допустимого времени работы имитатора для обмена данных со штатными приборами. В случае, когда необходимо провести отладку некоторых модулей программ обработки сигналов на рабочем ПК, использование этой функции обеспечивает достаточный темп формирования шумовой обстановки и соответственно темп работы имитатора в целом.

Однако для обеспечения штатного функционирования имитатора в режиме реального времени, потребовалась дальнейшая оптимизация времени расчета шумового фона. С этой целью, на языке ассемблера была написана функция генерации псевдослучайного числа Gsh_one_int. Высокой скорости работы данной функции позволило добиться использование вышеупомянутого запараллеливания команд. Таким образом, использование генератора Gsh_one_int() обеспечило выигрыш во времени, который позволял уложиться в необходимые временные рамки при имитации шума в определенный пояс антенны.  Тем не менее, получаемый выигрыш оказался недостаточным для обеспечения необходимого темпа работы при имитации шумового фона во всех поясах антенны. Это повлекло за собой еще один этап оптимизации – разработку векторного генератора псевдослучайных чисел Gsh_imit_int() на основе алгоритма случайного пробинга [2]. Для большей оптимизации данного генератора потребовалось также использовать программную конвейеризацию в сочетании с запараллеливанием команд, что позволило достичь необходимой производительности при обмене данными. Преимущества генератора, по сравнению с предыдущими, особенно проявляются при увеличении размера случайной последовательности, которая должна быть сгенерирована. Это связано с тем, что не происходит множественных вызовов функции генерации и обращений к памяти, в отличие от предыдущих генераторов. Так, при вызове функции Gsh_imit_int() из памяти извлекается случайное простое число, а затем, на его основе в цикле формируется последовательность случайных чисел требуемого размера, после чего сгенерированная последовательность возвращается из функции. При использовании данного генератора адрес входного массива должен быть выровнен на квадрослово, а адрес результата выровнен на двойное слово.

Сравнение времени работы данных трех генераторов для формирования различных по длине последовательностей элементов целочисленного типа представлено в Таблице 1.

Таблица 1.

Сравнение времени работы генераторов случайных чисел

Название генератора

Время формирования (мкс)

 

Выборка из 1008 элементов

Выборка из 2016 элементов

Выборка из 4032 элементов

Rand()

149,62

299,58

599,10

Gsh_one_int()

119,88

239,69

479,30

Gsh_imit_int()

9,32

18,54

36,99

 

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

Период  повторяемости генератора случайных чисел ГСЧ составляет 229=536870912 [2].

Приведем расчет повторяемости при формировании шумовой обстановки для одного пояса цилиндрической антенны и на всей антенне. Пусть количество поясов антенны M=10,  количество горизонтальных приемных элементов N=70, тогда период повторяемости на одном поясе антенны составит:

536870912/70=7669584 временных срезов = 316,8 с=5,3 мин.

на всей антенне:

536870912/700=766958 временных срезов = 31,7 с.

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

Помимо шумовой обстановки в воде поступающей на ГАС, могут поступать также шумовые сигналы (помехи).  Для имитации шумового сигнала в сплошной части спектра (СЧС), с помощью векторного генератора  Gsh_imit_int()  вычисляются псевдослучайные значения, сворачиваются с одним из трёх заданных фильтров, и суммируются с другими шумами и сигналами. Свёртка с фильтром позволяет подавить нежелательные частоты и получить широкополосный сигнал в необходимом частотном диапазоне.

Стоит отметить, что при программной реализации задач имитации шума и шумовых помех, была заложена возможность при запущенном имитаторе, не прерывая работы программы, осуществлять корректировку таких параметров как признак наличия шума/помехи и их уровень. Для изменения данных параметров используется CAN-консоль [5].

При подключении фонового шума, генерируется выборка из нужного количества элементов. На Рис 1 изображена выборка равномерно распределенного фонового шума из 16384 элементов. На Рис 2 представлен спектр сформированного шума, а на Рис 3 представлена гистограмма данной случайной выборки, количество интервалов взятых для формирования гистограммы равно 16.

 

Рисунок 1. Формирование шумового фона в 16384 элемента

 

Рисунок 2. Спектр сформированного шума

 

Рисунок 3.  Гистограмма случайной выборки в 16384 элемента (количество интервалов равно 16)

 

Разработанный программный имитатор был протестирован при значениях параметров сигнала/шума, соответствующих требованиям к входным сигналам целевой системы обработки данных в режиме реального времени. Результат работы можно оценить по полученным на системе отображения, регистрации и управления данных (СОРДиУ) графическим картинам, приведенным на Рис 4., Рис 5. и Рис 6. Слева на рисунке можно видеть пространственно-амплитудную развертку сигнала/шума, кадр сверху показывает максимальную амплитуду, кадр ниже показывает изменение во времени. В правой части показана амплитудно-частотная развертка. Значения сигнала/шума нормированы к единице.

 

Рисунок 4. Шумовой фон

 

Рисунок 5. Импульсный тональный сигнал на фоне шума

 

Рисунок 6. Тональный импульсный сигнал и импульсный шумовой сигнал во второй частотной полосе

 

Тестирование показало корректное выполнение задач имитации. При имитации шумового сигнала в СЧС срабатывают соответствующие обнаружители, обнаруживая шумовой сигнал.

Пройдя этапы оптимизации при решении задачи имитации шума для создания модуля в составе программного имитатора, был разработан векторный генератор псевдослучайных чисел. Его использование позволило достичь необходимого темпа работы имитатора и требуемой производительности для отладки ПО режима обнаружения гидролокационных сигналов (ОГС).

 

Список литературы:

  1. Корякин Ю.А., Смирнов С.А., Яковлев Г.В. Корабельная гидроакустическая техника. СПб: Наука, 2004г. — 410с.
  2. Кохонен Т.А. Ассоциативные запоминающие устройства. М:  Мир, 1982г. —  384 с.
  3. «Руководство по программированию ADSP-TS201»—  ГРЭК82-000810-01, 2006г.
  4.  Руководство программиста «Программное средство системное программное обеспечение изделия СЦВК “СОЛО”»—  643.ГРЭК.35148-01 31 01, 2007г.
  5. Руководство оператора «Программа инструментальная CAN-консоль “CANCON”» ГНАС.00141 – 013401, 2014г.
  6. Румынская И.А. Основы гидроакустики.  М:  Судостроение, 1979г. — 209 с.
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий