четвёртого поколения // Сборник материалов (тезисов) 37-й международной конференции РАЕН «Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом». Италия, 2016. - С. 4-6.
11. Шорин О.А., Бокк Г.О. Эквалайзер для коррекции мультидоплеровских искажений OFDM-сигналов в сетях LTE и McWILL // Электросвязь, 2017. - № 1. - С. 28-34.
12. Шорин О.А., Бокк Г.О. Эквалайзер для коррекции мультидоплеровских искажений OFDM сигналов в сетях LTE и McWILL // Сборник материалов (тезисов) 38-й международной конференции РАЕН «Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом». Шри-Ланка, 2016. - С. 4.
13. Аверьянов Р.С., Бокк Г.О., Шорин А.О. Оптимизация размера кольцевой антенны и правила формирования территориальных кластеров для сотовой сети McWILL // Электросвязь, 2017. -№ 1. - С. 22-27.
14. Шорин О.А., Бокк Г.О., Аверьянов Р.С., Шорин А.О. Оптимизация геометрии адаптивной антенны для сотовой сети с OFDM сигналами // Экономика и качество систем связи, 2016. - № 2. - С. 60-67.
15. Шорин О.А., Бокк Г.О., Аверьянов Р.С., Шорин А.О. Оптимизация геометрии адаптивной антенны для сотовой сети с OFDM сигналами // Сборник материалов (тезисов) 37-й международной конференции РАЕН «Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом». Италия, 2016. - С. 7-8.
ОПТИМИЗАЦИЯ АССЕМБЛЕРНОГО КОДА БПФ, ОРИЕНТИРОВАННОГО НА ОБРАБОТКУ OFDM СИГНАЛОВ СОТОВЫХ СЕТЕЙ СВЯЗИ
Г.О. Бокк, директор по науке ООО «НСТТ», д.т.н., [email protected]
УДК 621.391
Аннотация. Рассматривается метод увеличения производительности ассемблерной программы БПФ/ОБПФ, использующий SSE команды параллельного вычисления. Указываются скрытые вычислительные резервы, содержащиеся на субкомпиляционном уровне. Приведен код ядра программы и экспериментальные данные, подтверждающие доступность обработки на приеме одним ПК класса i3 - CPU 3,70 GHz группового сигнала LTE с рабочей полосой до 40 МГц.
Ключевые слова: вычислительные затраты; ассемблер; SSE команды; БПФ; ОБПФ; LTE; OFDM.
OPTIMIZATION OF THE FFT ASSEMBLER CODE ORIENTED ON THE PROCESSING OF OFDM SIGNALS OF CELLULAR COMMUNICATION NETWORKS
German Bokk, director for science of LLC «NXTT», doctor of technical sciences
Annotation. The method of increasing the performance of the FFT/OBPF assembler program using the SSE parallel calculation commands is considered. The latent computational reserves contained at the subcompilation level are indicated. The code of the program core and the experimental data confirming the availability of processing at the reception of one PC class i3 - CPU 3.70 GHz of a group LTE signal with a working band of up to 40 MHz are given.
_Keywords: computing costs; assembler; SSE commands; FFT; IFFT; LTE; OFDM._
Введение
На современном этапе развития сотовых сетей связи повсеместно утвердилось использование технологии OFDM, предполагающей, в своей основе, применение алгоритмов быстрого преобразования Фурье (БПФ) и обратного БПФ (ОБПФ) на этапах формирования и приема сигналов. OFDM модуляция обладает рядом существенных преимуществ по сравнению с применявшимися ранее традиционными решениями для формирования радиосигналов. К указанным преимуществам относится высокая спектральная эффективность [1, 2], значительно повышенная устойчивость к условиям многолучевого распространения (к задержкам информационных посылок), достижение практически полной ортогональности сигнально-кодовых конструкций, применяемых в рамках OFDM различными абонентами [3, 4], доступность гибкого перераспределения ресурса радиоканала [5, 6] и т.д. Но реализация OFDM технологии стала возможной только благодаря переходу на полностью цифровые методы обработки сигналов, которые, в свою очередь, оказались доступными для применения в сетях сотовой связи, при достижении производительности цифровых процессоров рубежа порядка 0,5 GFLOPS. Дальнейший прогресс процессорных технологий привел к стимулированию роста производительности радиоинтерфейса сотовых сетей, к переходу на использование более широких рабочих полос радиочастотного спектра, которые стали организовывать для сотовых сетей в более высоких частотных диапазонах [7-11]. Таким образом процесс оказался взаимным: развитие процессорных технологий привело к росту производительности сотовых сетей, а рост производительности до предела повысил требования к процессорным технологиям. Но современные процессорные технологии, фактически, достигли определенного предела в своем развитии. Дальнейший рост производительности требует освоения новых физических принципов, что выступает серьезным препятствием на пути развития сотовых сетей. Поэтому особую актуальность приобретают методы вычислительной оптимизации алгоритмов цифровой обработки сигналов вообще и процедур БПФ/ОБПФ, в частности. Для этого требуется более точно учитывать технологические и алгоритмические нюансы, связанные с реализацией обработки на конкретных программно-аппаратных платформах, изыскивать дополнительные резервы. В данной работе поставленная задача рассматривается на примере реализации алгоритма БПФ на персональном компьютере (ПК) с процессором Intel, с использованием ассемблерного кода с SSE (Streaming SIMD (Singlelnstruction - MultipleData) Extensions) командами параллельных вычислений.
Технологические особенности организации вычислений на ПК Intel
ПК является мощным вычислительным средством, которое может быть с успехом использовано как для разработки/отладки алгоритмов сигнальной обработки, так и для создания специализированных комплексов связи (см., например, [12-14]) в условиях, когда не требуется миниатюризация и автономность работы. Но бурное развитие цифровых технологий не только качественно повысило показатели производительности, но и существенным образом изменило традиционное соотношение показателей различных рабочих характеристик цифровой обработки. Так для вычислительных платформ на базе ПК современных поколений наибольшие затраты наблюдаются в режимах обмена данными между процессором (сопроцессором) и ОЗУ [15], а такие операции как умножение, сложение, пересылка между регистрами для чисел в формате с плавающей точкой вычисляются практически за один такт. Это существенно изменяет подход к формированию высокопроизводительных алгоритмов. И если в основе классического подхода к организации алгоритмов БПФ/ОБПФ лежит принцип сокращения операций умножения [16], для которого построена целая теория, то для современных вычислительных средств такой принцип можно применять только условно. Требуется дополнительно исследовать возможности по сокращению числа операций обращения к ОЗУ [15]. Именно с этих позиций в представленной работе рассматривается возможность повышения производительности алгоритмов БПФ/ОБПФ, приводится конкретный пример ассемблерного кода, оценивается его быстродействие и, наконец,
выполняется сопоставление производительности полученного ассемблерного кода с производительностью, достигаемой при использовании классических вариантов решения поставленной задачи [16]. Также в конце будет приведена оценка производительности полученного алгоритма БПФ для обработки на приеме OFDM сигнала сетей стандартов LTE и LTE-Advanced. Будет установлена предельная частотная полоса сети LTE, для которой возможно осуществлять цифровую обработку сигнала на приеме с помощью одного ПК Inteli3 с тактовой частотой CPU 3,70 ГГц.
Анализ вычислительных затрат алгоритма БПФ для ПК Intel
В классической форме алгоритмы БПФ (ОБПФ) могут быть организованы по схеме с «прореживанием по частоте» и по схеме с «прореживанием по времени» [16-19]. Будем в дальнейшем ориентироваться на схему с «прореживанием по частоте», хотя изложенный подход вполне может быть использован и для схемы «прореживания по времени». Рекуррентное правило «прореживания по частоте», применяемое для организации БПФ, показано на рис. 1.
Рисунок 1
На нем показано, как путем тривиальных операций над исходной выборкой данных х| БПФ размером 2" сводится к вычислению двух БПФ размером 2""1. Этап
сведения предполагает выполнение 2п-1 операций сложения и 2пЛ операций вычитания, а также 2п-1 операцию умножения комплексных чисел. Сразу следует отметить, что часть операций умножения является тривиальными (сводится к замене знака или обмене данными между ячейками действительной и мнимой части числа). Совершенно ясно, что основные вычислительные затраты БПФ сконцентрированы в операциях подготовки сомножителей и, в меньшей степени, выполнении самих умножений. Последнее обстоятельство объясняется тем,
что современные математические сопроцессоры Intel выполняют операции умножения чисел с форматом плавающей точки, примерно, за один такт. Именно поэтому умножение перестает доминировать в вычислительных затратах. А основные вычислительные затраты будут связаны
-i)
(1)
с необходимостью формировать последовательность комплексных чисел |l, в1 , в ,..., в
, где в = . Прямое использование команды математического сопроцессора fsincos оказалось
непригодным для этой цели. Замеры вычислительных затрат, выполненные согласно методике [15], продемонстрировали, что на ее однократное выполнение затрачивается недопустимо большое количество тактов CPU (превосходящее 200). Поэтому осталось только два варианта решения:
• формировать указанные множители заранее, сохраняя их в ОЗУ;
• организовать вычисление указанных множителей с помощью рекуррентных тригонометрических соотношений, предполагающих только операции сложения (вычитания) и умножения:
icos (т +1) в = cos тв cos в - sin тв sin в,
I sin (m +1) в = sin тв cos в + cos тв sin в,
где: m = 1,2, ... , 2n-1-2.
Именно эти два варианта и нужно сравнить. Начнем со второго. Его реализацию будем рассматривать на базе ассемблерного кода с использованием SSE команд. Ориентация на SSE команды объясняется тремя полезными свойствами.
Во-первых, тестирование вычислительных затрат базовых команд SSE, выполненное по методике, представленной в [15], показало практически одинаковые результаты с затратами на выполнение аналогичных команд математического сопроцессора.
Во-вторых, в отличие от команд математического сопроцессора команды SSE позволяют одновременно выполнять до четырех однотипных операций (умножение, сложение, вычитание, пересылка и т.д.). Это, например, позволяет выполнить преобразование (1) не за четыре операции умножения, операцию сложения и операцию вычитания (или не за три операции умножения и пяти операций сложения, как описано в [16]), а за одну операцию параллельного умножения, одну операцию параллельного сложения и одну операцию параллельного вычитания. Последний вариант представлен в табл. 1 командами 55, 57 и 59.
В-третьих, SSE и SSE2 команды в качестве операндов используют, прежде всего, регистры xmm0-xmm7. Каждый из указанных регистров содержит 128 разрядов данных и может быть «разделен» на четыре сегмента, в каждом из которых может содержаться одно 32 разрядное число, чего вполне достаточно для хранения значения с плавающей точкой в формате одинарной точности (Single). Таким образом SSE команды открывают доступ для промежуточного хранения результатов вычислений в объеме до 32 значений формата Single. В тоже время математический сопроцессор поддерживает работу с восьмью регистрами st(0)-st(7), в которых можно сохранить только до восьми промежуточных результатов.
Поэтому ориентация на SSE команды естественна и оправданна при формировании программных кодов с повышенной производительностью. И в этом нет ничего необычного, так как именно с целью развития производительности математического сопроцессора и было разработано SSE расширение.
В процессе программно-аппаратной оптимизации (на основе команд SSE) процедуры вычислений по формуле (1) удалось выявить довольно значительный дополнительный ресурс, который можно получить при изменении последовательности расчетных точек алгоритма. Действительно, упорядочение по возрастанию фазы в неявном виде заложено в формулу (1). И алгоритм вычислений, построенный в соответствии с (1), предполагает на каждом из 2n-1-2 шагов применения однотипных вычислений, включающих: параллельное умножение,
43
параллельное сложение, параллельное вычитание и несколько операции пересылки между регистрами хшш.
Но упорядоченное множество фазовых точек:
{0,6,26,...,(2П-1 -1)^}
(2)
можно разбить на классы так, чтобы внутри каждого из указанных классов расчетные соотношения (1) сводились к тривиальным операциям. Рис. 2 показывает возможный вариант такого разбиения.
л/2
6-3/4л
6—3/4 л
6—3/4 л
Рисунок 2
На нем слева показано множество комплексных значений {1,е]в,е]2в,...,е
(2"-1 -1)б]
соответствующее (2) и подлежащих расчету. В центре рис. 2 показано разбиение на множество классов, в каждом из которых содержится четыре «точки» со значениями фаз, отстоящими друг
л
от друга на —. Поэтому формула (1) внутри выделенных классов будет сводиться к 4
тривиальному виду:
cosC = (cos ek - sin ek),
V2 V ' (3)
s^ = ( cos + sin в° ), где:
k = 0,1, ... , 2n-3-1 - номер класса, i = 0,1,2 - номер точки внутри класса. Как можно видеть, формула (3) предполагает два умножения, одно сложение и одно вычитание. И только при переходе от 3-й («последней») точки одного класса к 0-й («начальной») точке последующего потребуется вычисление по формуле подобной (1):
[ cos во 1 - cos в* cos у - sin в1 sin у, [sin во+1 - cos 0° sin у + sin в° cos у, где:
у = в — 3 к - величина, которая может быть вычисленная заранее.
Но формула (3) может быть дополнительно упрощена по вычислительным затратам. Для этого каждый выделенный класс следует разбить на два двухточечных подкласса так, как
к
показано в правой части рис. 2. В двухточечных подклассах фазы позиций отстоят на — и
поэтому формула (1) реализуется через тривиальную операцию «пересылки»: [cos вкт 1 = - sin^,
i m1 m,o (5)
sin в. = cos во n,
m,1 m,0"
где:
m = 0,1 - номер подкласса, k = 0,1, ... , 2n-3-1 - номер класса.
При этом переход между 1-й («последней») точкой первого подкласса и 0-й («начальной») точкой второго подкласса осуществляется по формуле подобной (3):
cos в* = —U ( cos <9k, + sin 6k ),
1,0 V2( 0,1 0,1), (6)
'^Q =-Tt (Siné^ —sé^i ) .
л/Г
А переход между классами осуществляется с помощью указанной выше формулы (4), которая с учетом введенных индексов для подклассов принимает вид:
coseo о = cos en cosy- sin e i sin у,
r\k+1 f\k • /-\k (7)
sine0 0 = cos en sin у оsin en cosy, где:
3
у = e - — t, как и в (4).
В результате, если провести переупорядочивание вычислений на базе предложенной схемы разделения на классы и подклассы, то на каждые четыре точки потребуется две тривиальные операции пересылки вида (5), одна упрощенная расчетная система операций вида (6) и одна полноценная расчетная система операций вида (7). Вычислительная сложность при этом уменьшается примерно в два раза по сравнению с алгоритмом, построенным на прямом воспроизведении расчетов по формуле (1).
В табл. 1 приведено ядро ассемблерного программного кода на базе SSE команд, реализующего БПФ в соответствии с алгоритмом отвечающем формулам (5-7).
Таблица 1
№
Ассемблерный код _операции_
Состояние регистра хшш после операции
Описание операции
Затраты в тактах процессора
@1: тсл/еах,ев1
Не изменяются
Начало цикла. Сохраняем в регистре еах текущее значение указателя в массиве данных, подвергающихся БПФ
0,5
0,5
тоуэс^ хтт1^\мсп^ р1г [ев1+е(^]
Запись в 64 младших разряда хшш1 действительной и мнимой компонент отсчета г(г<2и-1)
2,2
а^еа,еЬх|
Не изменяются
Смещаем указатель в массиве данных на 2 позиций
0,5
тсл/в(^ хтт2^\мсп^ р1г [esi+edi]
Запись в 64 младших разряда хшш2 действительной и мнимой компонент отсчета г+2"-1
2,2
тсл^а хтт3,хтт1
Дублируем данные из хшш1 в регистр хшш3
0,47
addps хтт1 ,хтт2
|КеК-)+Ке|?-:'■-') 1ш(г:)-1т( г,-:"-') I X I х]хтш!
Складываем отсчеты данных, отстоящие на 2й"1 позиций
0,85
subps хтт3,хтт2
Находим разность отсчетов данных, отстоящих на 2й"1 позиций.
1,3
pshufd хтт3,хтт3,00010100Ь
Дублируем в старших 64 разрядах регистра хшш3 младшие разряды, подготавливая состояние для последующей операции комплексного _умножения_
pshufd хтт4,хтт0,11010000Ь
X: I .т:,11?) -;.|\тш4
Размещаем в регистре хшш4 отсчеты гармонических квадратур в порядке, нужном для комплексного умножения
0,75
0,75
10
ти^ хтт3,хтт4
Умножение. Формируем компоненты комплексного произведения
1,8
11
movHl.ps хтт2,хтт3
Записываем старшие 64 разряда регистра хшш3 в младшие разряды регистра хшш2
0,75
12
addps хтт2,хтт3
В младших 64 разрядах регистра хшш2 компоненты комплексного произведения Z,■"•e"j(''6)
1,1
13
movsd qwoгd ptг ^^,хтт2
Не изменяются
Сохраняем в рабочем массиве ОЗУ результат произведения Z,■"•e"J(''6)
1,1
14
!5иЬе&,еЬх|
Не изменяются
Убираем смещение на 2 позиций указателя массива данных, внесенное _операцией №3_
15
movsd qword ptr [esi],xmm1
Не изменяются
Сохраняем в рабочем массиве ОЗУ значение Ъг+ , используемое на _следующем шаге рекуррентной процедуры БПФ_
1,1
16
Не изменяются
17
pshufd хтт0,хтт0,10010011Ь
Л \ г! : г! тЗ
Смещаем указатель в массиве данных на числопозиций 2й"2, что соответствует сдвигу фазы гармонического множителя на л/2
Меняя порядок значений в хшш0 (^т(г'6>); еоз(г'6>); зт(г'6>);-еоз(г'6>)), добиваемся эффекта смещения фазы на л/2 для гармонического множителя
0,75
0,5
0,75
18 31
Повторение операций №№ 2 - 15
Для повторяющихся операций не используется организация в виде вызываемой процедуры для экономии производительности
15,87
32
Не изменяются
Смещаем указатель данных на -2й-3 позиций. Это соответствует сдвигу фазы гармонического множителя на -л/4 (т.е. ез1 указывает на точку г+2"-3)
0,5
33
pshufd хтт3,хтт0,00111001Ь
Записываем в хшш3 значения из регистра хшш0 в измененном порядке, подготавливая расчет гармонического множителя со сдвигом фазы на л/4
0,75
0,75
1
2
0
3
0
4
0
5
0
6
0
7
0
8
0
9
0
0
0
0
0
1
0
0
1
0
1
№
Ассемблерный код _операции_
Состояние регистра xmm после операции
Описание операции
Затраты в тактах процессора
Такты замены считывания
34
ас^рэ хтт0,хтт3
см(|-9)- ; !т(1в)+ -со!(г в) +: - -
- | + г й'\ \ + :-.! Г\, г9) \ - с.-*.; г в)
Складываем значения в хттО со значениями хттЗ, подготавливая расчет гармонического множителя со сдвигом фазы на л/4
0,85
0,85
35
ти!рэ хтт0,хтт7
Умножаем значения ячеек хттО на 1/^2, содержащиеся в ячейках хтт7. Получаем компоненты гармонического множителя со сдвигом фазы на л/4
1,8
1,8
16
49
Повторение операций №№ 2 - 15
Для повторяющихся операций не используется организация в виде вызываемой процедуры для экономии производительности
15,87
50
51
Повторение операций №16, №17
Для повторяющихся операций не используется организация в виде вызываемой процедуры для экономии производительности
1,75
1,25
52
Не изменяются
Уменьшаем счетчик повторений цикла
53
@2|
Не изменяются
Если цикл закончен, то переходим на метку @2
2
(в случае без перехода)
54
рвИис^ хтт0,хтт0,00010100Ь
Меняем значения в ячейках регистра хттО, подготавливая к расчету гармонического множителя с фазой (¿+1)в
0,75
0,75
55
ти!рэ хтт0,хтт5
со5(М/4л>; аф-ЗЩ -ап(М/4л)-: 5ш(М4гг)-- 4.Т| •¡шс, -.' V4.il 8Ш(1-«-3/4з)1мз(1е+3/4л)
Одним параллельным умножением готовим все компоненты для расчета гармонического множителя с фазой (¿+1)в (хтт5 содержит квадратуры с _фазой в - 3/4 л)_
1,8
1,8
56
тсл/Ш-рв хтт3,хтт0
Записываем старшие 64 разряда хттО в младшие разряды хттЗ. Это формирует слагаемые для расчета гармонического множителя с фазой _(¿+1)'в_
0,75
0,75
57
addps хтт0,хтт3
В ячейках 64 младших разрядов регистра хттО теперь содержаться компоненты комплексного гармонического множителя с фазой (¿+1)в
1,1
1,1
58
сгрэ хтт3,хтт3
Обнуляем регистр хттЗ
0,95
0,95
59
эиЬрэ хтт3,хтт0
X хштЗ
Вычитаем из обнуленного хттЗ значения регистра хттО. В младших 64
разрядах получаем отрицательные значения компонент комплексного _гармонического множителя с фазой (¿+1)в_
1,3
1,3
60
тотШрэ хтт0,хтт3
Записываем в старшие ячейки регистра хттО значения 2-х младших ячеек
регистра хттЗ. Теперь состояние регистра хттО соответствует началу _очередного прохода цикла (от точки с номером (¿+1))_
0,75
0,75
61
тс«еэ1,еах|
Не изменяются
Восстанавливаем из еах значение указателя в массиве данных, подвергающихся БПФ, отвечающее завершающемуся проходу (от точки с _номером ¿)_
0,5
0,5
62
add еэ1,2*Туре31пд
Не изменяются
Смещаем значение указателя в массиве данных, подвергающихся БПФ, на позицию одной точки. Получаем состояние, отвечающее началу очередного _прохода цикла (от точки с номером (¿+1))_
0,5
63
]тр @1|
Не изменяются
Переход на начало цикла
64
Не изменяются
Метка выхода из цикла
0
-
1
0
0
0
2
0
0
0
В первом столбце указаны порядковые номера ассемблерных команд, во втором - сами команды, в третьем - состояние xmm регистра-приемника после завершения текущей команды, в четвертом - комментарии и пояснения к выполняемой команде ассемблера, в пятом -вычислительные затраты на выполнение команды (данные получены согласно методике, изложенной в [15]), в шестом - повторяются вычислительные затраты пятого столбца, если текущая команда по своему назначению предназначена для формирования отсчета «гармонического» множителя (т.е. используется для того, чтобы избежать операции считывания данных из ОЗУ), в противном случае в позицию шестого столбца помещается нулевое значение.
Суммируя вычислительные затраты пятого столбца, получаем, что на четыре расчетные позиции требуется 69,41 тактов CPU. При этом из них 14,8 такта затрачивается непосредственно на операции формирования «гармонических множителей», которые заменяют операции считывания из ОЗУ, составляющие основу альтернативного варианта алгоритма БПФ, рассмотренного ниже. В итоге получаем, что на одну расчетную позицию алгоритма БПФ в предложенном ассемблерном коде будет в среднем затрачиваться 17,35 тактов CPU, из которых 3,7 такта будет расходоваться на формирование «гармонического множителя».
Для ПК Inteli3 - CPU 3,70 GHz полученные результаты приводят к следующим расчетным значениям временных затрат:
• БПФ 256-3,68 мкс/активное процессорное ядро;
• БПФ 1024-15,48 мкс/активное процессорное ядро;
• БПФ 4096-103,56мкс/активное процессорное ядро.
По умолчанию ОС Windows на платформе современных многоядерных ПК распределяет доминирующей вычислительной задаче два процессорных ядра, как показано на рис. 3.
Рисунок 3
Это приводит к следующим временным затратам на вычисления: • БПФ 256-1,84 мкс;
• БПФ 1024-8,74 мкс;
• БПФ 4096-51,78 мкс.
В первом варианте реализации алгоритма БПФ, в котором «гармонические сомножители» рассчитываются заранее, а в процессе работы считываются из ОЗУ, требуется выполнение следующих операций:
• сохранить в ОЗУ значение из регистра (пусть это будет регистр eax), содержащее, например, указатель смещения рабочей позиции в массиве данных (на это затрачивается порядка 10 тактов CPU);
• считать указатель смещения в массиве «гармонических множителей» (в eax) (на это затрачивается порядка 10 тактов CPU);
• увеличить указатель массива «гармонических множителей» на одну позицию (на это затрачивается порядка 0,5 такта CPU);
• считать в регистр xmm значения квадратур нужного «гармонического множителя» (на это затрачивается порядка 2,2 тактов CPU, если алгоритм построен для чисел формата Single (одинарной точности));
• сохранить из регистра (eax) в ОЗУ указатель смещения в «массиве гармонических множителей» (на это затрачивается порядка 10 тактов CPU);
• восстановить из ОЗУ значение регистра eax, в котором изначально (см. шаг 1) предполагалось нахождение указателя смещения рабочей позиции в массиве данных (на это затрачивается порядка 10 тактов CPU).
Такие большие затраты на обмен данными с ОЗУ вызваны тем, что с одной стороны тактовая частота шины данных в ПК в 3-4 раза ниже тактовой частоты CPU, а с другой - тем, что центральный процессор обладает примерно в два раза более низкой производительностью в режиме обмена с ОЗУ по сравнению с математическим сопроцессором.
В итоге для первого варианта реализации БПФ на формирование квадратур «гармонического сомножителя» будет затрачиваться в среднем 42,7 такта CPU. Это значительно превосходит значение 3,7 тактов CPU, полученное для случая с расчетом «гармонических сомножителей». Если рассматривать алгоритм БПФ в целом, то для варианта со считыванием из ОЗУ получим, что на одну расчетную позицию будет затрачиваться 56,35 тактов CPU, что приведет к увеличению вычислительных затрат в 56,35/17,35 = 3,25 раз по сравнению с алгоритмом, использующим предложенную технику расчета «гармонических сомножителей».
Реальные замеры временных затрат, выполненные на ПК Inteli3 - CPU3,70GHz по методике, изложенной в [15], в режиме двух активных процессорных ядер показали, что на выполнение БПФ 1024 затрачивается:
• 8,74 мкс - в случае использования предложенного алгоритма с расчетом «гармонических сомножителей»;
• 30,5 мкс - в случае использования алгоритма со считыванием из ОЗУ, предварительно сформированных «гармонических сомножителей».
То есть, выигрыш от применения предложенного алгоритма с расчетом составил 30,5/8,74 = 3,48 раз, что оказалось даже несколько выше расчетного показателя (3,25 раз).
В заключение представляется полезным привести численные оценки, устанавливающие границы возможного применения разработанного алгоритма БПФ на платформе ПК, для обработки OFDM-сигналов сотовых сетей стандартов LTE и LTE-Advanced. Стандартом LTE (и LTE-Advanced) устанавливается базовый режим работы линии Down с длительностью OFDM символа 71,3 мкс [17]. При этом разнос между поднесущими составляет 15 кГц, а рабочая полоса может составлять 3 МГц (200 поднесущих), 5 МГц (333 поднесущих), 10 МГц
(667 поднесущих), 15 МГц (1000 поднесущих), 20 МГц (1333 поднесущих), 30 МГц (только для LTE-Advanced, 2000 поднесущих) и 40 МГц (только для LTE-Advanced, 2667 поднесущих). В результате, если ориентироваться на работу в полосе до 30 МГц, то вполне достаточно алгоритма БПФ 2048, который по оценкам временных затрат на ПК i3 - CPU 3,70 GHz, требует для выполнения порядка 21 мкс, что занимает менее 1/3 от длительности символа OFDM, составляющего 71,3 мкс. Остальные вычислительные резервы могут быть использованы для выполнения других операций по обработке. А вот для обработки полосы в 40 МГц, если не применять алгоритм Винограда [16], потребуется БПФ 4096, который по оценкам временных затрат требует на выполнение порядка 51,78 мкс. Это значение меньше длительности символа OFDM, но резерва на оставшиеся операции по обработке становится недостаточно (таких резервов должно быть примерно в два раза больше, чем затраты на БПФ). Поэтому для этого случая требуется задействовать ресурсы более двух ядер ПК (на современных ПК их обычно четыре и более).
Заключение
Предложен высокопроизводительный алгоритм БПФ, ориентированный на реализацию на платформе ПК с использованием ассемблерных команд SSE-расширения математического сопроцессора. Отмечается, что современные технологии цифровой обработки кардинально изменили соотношения вычислительных затрат базовых ассемблерных команд. Поэтому нужно стремиться сокращать не умножения, а операции обмена между регистрами процессора и ОЗУ. На примере БПФ предложена структура алгоритма, построенного на базе ассемблерного программного кода с SSE командами, в котором минимизировано число операций обращения к ОЗУ. Экспериментально и теоретически показано, что предложенный алгоритм обладает в 2,5 раза более высоким быстродействием по сравнению с вариантом, в котором «гармонические сомножители» БПФ формируются заранее и сохраняются в ОЗУ. Установлено, что для реализации обработки на прием OFDM сигналов линии Down сотовой сети стандарта LTE-Advanced с рабочей полосой до 40 МГц достаточно одно ПК класса i3 - CPU 3,70 GHz.
Литература
1. Аверьянов Р.С., Шорин А.О. Оптимизация ансамбля OFDM-сигналов в сетях мобильной связи // Электросвязь, 2017. - № 2. - С. 41-46.
2. Аверьянов Р.С., Шорин А.О. Оценка оптимальных параметров OFDM-сигналов с учетом мобильности абонентов // Электросвязь, 2015. - № 12. - С. 60-65.
3. Шорин А.О. Оценка влияния скорости перемещения абонентов на удельную интенсивность потока потерь соединений в сетях с OFDM-сигналами // Электросвязь, 2017. - № 1. - С. 35-39.
4. Лохвицкий М.С. Алгоритмы оптимального приема сигнала и обучающие последовательности в сотовой связи // Сборник материалов (тезисов) 35-й международной конференции РАЕН «Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом». Китай, 2014. - С. 16-25.
5. Volodina E., Plossky A. Features of the Digital Dividend Implementation in Conditions of Great Population Density Discontinuity and Limitation of the Frequency Resource // В сборнике: Proceedings of EMC Europe 2011 York - 10th International Symposium on Electromagnetic Compatibility. - 2011. - С. 664-669.
6. Володина Е.Е., Плосский А.Ю. Критерии кластерного подхода к перераспределению радиочастотного спектра при внедрении цифрового телевидения // T-Comm: Телекоммуникации и транспорт, 2012. - Т. 6. - № 12. - С. 4-6.
7. Шорин О.А., Токарь Р.С. Алгоритмы синтеза сотовых систем связи 2G // Спецтехника и связь, 2008. - № 1. - С. 58-63.
8. Lokhvitskij M.S. MOSITALTEL Training Centre // Электросвязь, 1995. - № 11. - С. 15.
9. Володина Е.Е., Девяткин Е.Е., Бессилин А.В. Прогноз развития рынка услуг перспективных радиотехнологий в России // Век качества, 2011. - № 1. - С. 52-55.
10. Бутенко В.В., Володина Е.Е., Девяткин Е.Е., Бессилии А.В., Суходольская Т.А. Концепция WAPECS как современное направление использования РЧС // Электросвязь, 2008. - № 9. - С. 1-7.
11. Володина Е.Е. Экономические вопросы использования радиочастотного спектра как производственного ресурса и объекта государственного регулирования // Электросвязь, 2015. -№ 4. - С. 50-54.
12. Шорин О.А., Щучкин В.М. Использование интеллектуальных антенн в системах мобильной связи для снижения перегрузок // Труды МАИ, 2012. - № 53. - С. 19.
13. Патент № 2069055 РФ. Система охранной сигнализации «РОСА» / Аристархов Г.М., Ерохин Г.А., Николаев В.Т., Пантикян Р.Т., Шорин О.А. Заявлено 19.07.1994.
14. Акимов В.Н., Бабин А.И., Шорин А.О. Радиомодемы диапазонов VHF/UHF в задачах охраны и мониторинга объектов // Спецтехника и связь, 2009. - № 1. - С. 50-58.
15. Шорин А.О. Технология повышения производительности программ ассемблера, использующих SSE команды, для цифровой обработки радиосигналов на ПК // Сборник материалов (тезисов) 40-й международной конференции РАЕН «Мобильный бизнес: перспективы развития и реализации систем радиосвязи в России и за рубежом». Маврикий, 2017. - С. 7-9.
16. Блейхут Р. Быстрые алгоритмы цифровой обработки сигналов. - М.: Мир, 1989. - 448 с.
17. Sesia S., Toufik I., Baker M. LTE - The UMTS Long Term Evolution: From Theory to Practice/ A John Wiley & Sons, Ltd., 2011. - 752 p.
18. Lokhvitskij M.S. Mositaltel training centre // Электросвязь, 1995. - № 11. - С. 15.
19. Шорин А.О. Оценка влияния скорости перемещения абонентов на удельную интенсивность потока потерь соединений в сетях с OFDM-сигналами // Электросвязь, 2017. -№ 1. - С. 35-39.
СИНХРОНИЗАЦИЯ РАБОТЫ МОБИЛЬНЫХ ТЕРМИНАЛОВ В СОТОВОЙ СВЯЗИ С ИСПОЛЬЗОВАНИЕМ СПУТНИКОВЫХ СИСТЕМ
М.С. Лохвицкий, доцент кафедры «Теории вероятностей и прикладной математики» МТУСИ, к.т.н, [email protected]
УДК 621.396_
Аннотация. Для синхронизации работы мобильных станций с базовыми предлагается определять их координаты с помощью спутниковых систем. Используя полученные координаты, определяется расстояние от мобильных терминалов до базовой станции.
Ключевые слова: синхронизация мобильных станций; время упреждения; координаты базовой станции; координаты мобильной станции; определение местоположения; спутниковая система.
SYNCHRONIZATION OF MOBILE TERMINALS WORK IN CELLULAR COMMUNICATION WITH THE USE OF SATELLITE SYSTEMS
Mikhail Lokhvitsky, associate professor of the "Probability theory and applied mathematics" department MTUCI, candidate of technical sciences
Annotation. To synchronize the operation of mobile stations with the base stations it is proposed to determine their coordinates using satellite systems. Using the obtained coordinates, the distance from the mobile terminals to the base station is determined.
Keywords: synchronization of mobile stations; time advance; coordinates of base stations; coordinates of mobile station; determining location; satellite system.