УДК 621-321
АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ МНОГОПРОЦЕССОРНОЙ СИСТЕМЫ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ В КОРПУСЕ 1867ВА016Т
Г.В. Фетисов1'2, Д.В. Шеховцов2, Е.Д. Алперин1
воронежский государственный технический университет, г. Воронеж, Россия 2Акционерное общество «Научно-исследовательский институт электронной техники»,
г. Воронеж, Россия
Аннотация: рассматривается высокопроизводительная многопроцессорная система цифровой обработки сигналов (ЦОС) в корпусе 1867ВА016Т, разрабатываемая АО «НИИЭТ», в части оценки эффективности использования различного количества ядер для решения задач цифровой обработки сигналов с целью обоснования использования именно многопроцессорных систем для решения задач ЦОС. Рассмотрена процедура связи процессорных ядер через коммутационные порты, которые обеспечивают приём/передачу данных со скоростью до 480 Мбайт/с, а также способы объединения ядер по технологии гиперкуба с различной размерностью с целью повышения вычислительной мощности. Составлена универсальная программа расчёта быстрого преобразования Фурье (БПФ) на языках C и Assembler для каждого из ядер 1867ВЦ3Ф и различного количества исходных отсчётов. Проведена оценка производительности многоядерной системы ЦОС в корпусе 1867ВА016Т, содержащей четыре процессора цифровой обработки сигналов (ПЦОС), при различном количестве активных процессорных ядер посредством определения времени выполнения 64-точечного и 512-точечного БПФ с подсчётом контрольной суммы (КС) и без. Результатом исследования являются временные диаграммы и графики, отображающие время выполнения БПФ для 64 и 512 исходных отсчётов и количества активных ядер 1867ВА016Т. Предложено оптимальное количество процессорных ядер, которые следует задействовать для решения задач ЦОС при работе с общей областью памяти для многопроцессорных систем в корпусе или на кристалле с архитектурой, аналогичной 1867ВА016Т
Ключевые слова: коммутационный порт, БПФ, многоядерная система, гиперкуб, ПЦОС, производительность, Assembler, C
Введение
В настоящее время цифровая обработка сигналов (ЦОС) широко используется для решения задач, связанных с цифровой фильтрацией, кодированием речи, обработкой изображений, быстрым преобразованием Фурье (БПФ), телекоммуникацией и цифровой звукотехникой.
ЦОС имеет особенности:
- Большой объём вычислений;
- Работа в реальном времени;
- Гибкость системы;
- Обработка цифровых данных.
Повышение производительности
современных процессоров ЦОС достигается двумя путями: повышением тактовой частоты и увеличением количества процессорных ядер в составе интегральной схемы [1].
В случаях, когда удаётся добиться повышения тактовой частоты процессора, рост производительности наблюдается сразу.
Однако современная технология производства не позволяет экспоненциально увеличивать тактовую частоту, так как она, в свою очередь, связана с размерами элементной базы на
© Фетисов Г.В., Шеховцов Д.В., Алперин Е.Д., 2018
кристалле процессора [2]. Последний путь позволяет достичь существенного увеличения общей производительности системы за счёт параллельного выполнения вычислительных операций и одновременной обработкой запросов периферийных устройств, находящихся в составе схемы, требует написания соответствующего программного обеспечения (ПО), которое будет рационально использовать ресурс всех имеющихся ядер [1].
Постановка задачи
Задача состоит в оценке эффективности использования именно многопроцессорных систем ЦОС на кристалле с целью повышения производительности на базе многоядерной высокопроизводительной системы в корпусе 1867ВА016, содержащей четыре ядра 32-разрядного процессора ЦОС с плавающей точкой 1867ВЦ3Ф и десять различных периферийных устройств.
Метод исследования
Пусть имеется высокопроизводительная многоядерная система ЦОС в корпусе с количеством процессоров п и тактовой
частотой f МГц. Данную систему подвергают тестированию, выясняют время, за которое она выполняет задачи ЦОС. После чего, не меняя тактовой частоты, производят программное отключение одного из ядер и подвергают систему тем же тестам, что и при большем количестве ядер с теми же начальными условиями. Процедура продолжается до тех пор, пока не будут получены результаты производительности для случая действия одного процессорного ядра.
В данном исследовании использовалась высокопроизводительная многоядерная
система ЦОС на кристалле 1867ВА016 с характеристиками процессорного ядра, приведёнными в табл. 1.
Таблица 1
Разрядность АЛУ, бит:
- плавающая запятая (ПЗ) - фиксированная запятая (ФЗ) 40 32
Разрядность умножителя, бит:
- плавающая запятая 40 х 40
- фиксированная запятая 32 х 32
Объем ПЗУ, бит 4К х 32
Объем ОЗУ, бит 2К х 32
Объем кэш-ОЗУ, бит 128 х 32
Объем адресуемой памяти, бит 4Г х 32
Таймеры 2
8-разрядные коммутационные порты 6
Сопроцессор ПДП, количество
каналов 6
Тактовая частота процессора, МГц,
не менее 200
Производительность: - фиксированная запятая, MIPS,
не менее 100
- плавающая запятая, MFLOPS,
не менее 200
Количество ядер 4
Система команд ПЦОС 1867ВЦ3Ф
Написана универсальная программа вычисления БПФ для различного количества исходных отсчётов и числа активных процессорных ядер.
На рис. 1 представлены коммутационные порты, через которые соединены процессорные ядра. Коммутационные порты обеспечивают приём/передачу данных со скоростью до 480 Мбайт/с. Это даёт возможность осуществлять эффективную мультипроцессорную обработку данных. На рис. 1 также приведена архитектура, отображающая объединение глобальных шин процессоров посредством арбитра таким образом, что первое и третье процессорные ядра имеют общую глобальную шину данных, посредством которой
осуществляется обращение к общей области памяти. Аналогична связь глобальных шин данных между вторым и четвёртым ядрами. Последнее не позволит задействовать вычислительную мощность всех четырёх процессорных ядер для расчёта БПФ с хранящимися в общей области памяти исходными отсчётами, зато для случая действия двух процессорных ядер такой проблемы не возникает [3].
Результаты анализа производительности получены при неизменной тактовой частоте процессора 200 МГц для случая действия одного, двух и четырёх процессорных ядер.
Рис. 1
Реализация алгоритма БПФ
Современная техника связи требует спектрального анализа. Сигналы
представляются в частотной области для анализа характеристик сигналов и блоков приёмопередатчиков. Для преобразования сигналов в частотную область используют прямое преобразование Фурье, однако современные системы радиосвязи требуют обработки цифровых отсчётов сигнала. Преобразование Фурье для цифровых отсчётов
называется дискретным преобразованием Фурье (ДПФ) и записывается следующим образом [4]:
N-1
Х(к) = ^ х(п) •tofc(n), к = 0,1.....N- 1, (1)
п=0
где Х(к) - спектр сигнала, а комплексная спектральная функция:
, /2ппк\ /2ппк\ j2nkn
Для чётного N справедливо следующее:
2 1 2 1 х(к) = ^ х(2я)ш|(я) + w* ^ х(2я + 1)ш|(я), (3)
п=0 2 п=0 2
где wfc - поворачивающий множитель, не зависящий от номера отсчёта входного сигнала n,
j2nk
wH = = е n . (4)
С учётом преобразования в линейную комбинацию двух дискретных преобразований Фурье половин сигнала х(2п) и х(2п + 1) с N/2 отсчётами необходимо выполнить N2/2 + 1 операций комплексного умножения со сложением.
Для случаев, когда N является степенью двойки, деление входного сигнала можно продолжать, пока не будет получено двухточечное преобразование. Такой алгоритм эффективного вычисления ДПФ называют быстрым преобразованием Фурье. БПФ требует NlogN комплексных операций умножения со сложением [4].
Входные отсчёты сигнала, спектр которого требуется получить, записываются в преобразованном формате Q32 в общую область памяти. Последовательность отсчётов, являющаяся исходными данными для БПФ, располагается в общей области памяти в виде: Re[x(0)],lm[x(0)], ...,Re[x(63)],Im[x(63)l
Массив исходных данных в общей области памяти подвергается перестановке, в результате чего исходная последовательность
представляется в бит-реверсном порядке, данная процедура отображена в табл. 2.
Таблица 2
Индекс До После Бит-реверсный индекс
0 000 000 0
1 001 100 4
2 010 010 2
3 011 110 6
4 100 001 1
5 101 101 5
6 110 011 3
7 111 111 7
Исходный код программы на языках «С» и «Assembler» состоит из следующих частей:
- Инициализации процессорных ядер;
- Основного файла;
- Подпрограмм промежуточных вычислений для БПФ.
После выполнения расчётов производится подсчёт контрольной суммы результата. Контрольная сумма сравнивается с заранее посчитанным правильным значением, при наличии ошибок устанавливается флаг ошибки. На указанную процедуру процессор также затрачивает определённое время, что позволяет лучше оценить изменение производительности многопроцессорной системы от количества активных ядер.
Оценка времени выполнения 64-точечного БПФ при различном количестве активных ядер
Оценка времени производится для двух случаев, когда контрольная сумма результата подсчитывается и когда её подсчёт не производится. В табл. 3 приведены результаты выполнения 64-точечного БПФ при различном количестве активных ядер системы ЦОС.
Таблица 3
Задача Количество активных ядер
1 2 4
64-точечное
БПФ с 703 мкс 333 мкс 443 мкс
подсчётом КС
64-точечное
БПФ без 446 мкс 203 мкс 312 мкс
подсчёта КС
Время выполнения БПФ сократилось более чем в два раза при задействовании двух процессорных ядер вместо одного. Это связанно с тем, что процедура бит-реверсной перестановки происходит параллельно, каждый процессор работает со своими ячейками общей
памяти, а межпроцессорный обмен осуществляется с помощью асинхронных коммутационных портов практически мгновенно. На рис. 2 приведены временные диаграммы в момент межпроцессорного обмена данными через коммутационные порты.
Рис. 2
Задействование четырёх процессорных ядер приводит к снижению времени выполнения БПФ по сравнению с двумя активными ядрами, причиной этому служит использование общей глобальной шины адреса ПЦОС1 и ПЦОС3, а также ПЦОС2 и ПЦОС4, с помощью которой осуществляется обращение к общей области памяти. В результате происходит простой конвейера, ядрам 1867ВА016Т приходится ждать, когда глобальная шина будет освобождена парным ядром. Таким образом, время загрузки данных остаётся практически неизменным по отношению к времени загрузки с использованием двух процессорных ядер, однако уже в процессе вычисления подпрограмм из-за высокой частоты обращения ПЦОС к общей области памяти наблюдаем существенное увеличение времени выполнения БПФ или снижение производительности.
Время подсчёта контрольной суммы для случая действия одного процессорного ядра составляет 257 мкс, для двух - 130 мкс, а для четырёх 131 мкс. Когда мы задействуем два ядра взамен одного, то подсчёт контрольной суммы осуществляется двумя ПЦОС одновременно с использованием двух глобальных процессорных шин данных, обращаясь к общей области памяти. По причине того, что у 1867ВА016Т в
распоряжении имеется всего две глобальные шины, время подсчёта контрольной суммы одинаково при задействовании двух и четырёх процессорных ядер.
Оценка времени выполнения 512-точечного БПФ при различном количестве активных ядер
В табл. 4 приведены результаты выполнения 512-точечного БПФ при различном количестве активных ядер системы ЦОС.
Таблица 4
Задача Количество активных ядер
1 2 4
512-точечное
БПФ с 5631 мкс 2672 мкс 3549 мкс
подсчётом КС
512-точечное
БПФ без 3571 мкс 1633 мкс 2510 мкс
подсчёта КС
Можно заметить, что результаты аналогичны результатам, полученным при 64 исходных отсчётах. Чем больше количество исходных отсчётов, тем меньше на результат влияет межпроцессорная передача, которая осуществляется мгновенно посредством асинхронных коммутационных портов.
Обобщение результатов
На рис. 3-4 приведены результаты исследования в обобщённом виде, отображающие время выполнения БПФ при различном количестве активных ядер системы ЦОС в корпусе 1867ВА016Т, а также для различного числа исходных отсчётов в микросекундах.
Рис. 3
Рис. 4
Как можно заметить, не всегда целесообразно задействовать все процессорные ядра. Прежде чем писать программу, необходимо ознакомиться с архитектурой вычислительной системы. Применительно к ИС 1867ВА016Т оказалось, что использование двух процессорных ядер для работы с общей областью памяти даёт лучшие показатели производительности. Причиной организации именно такой архитектуры являются требования к площади кристалла, ведь помимо процессорных ядер система ЦОС содержит множество периферийных устройств, а увеличение площади, занимаемой на кристалле, существенно повышает стоимость изделия. В системе 1867ВА016Т все четыре ядра рекомендуется задействовать при работе с множеством периферийных устройств, обмен данными между которыми осуществляется с помощью локальной области памяти, которая
имеется у каждого процессорного ядра собственная.
Заключение
Анализ показал, что увеличение количества активных ядер в системах ЦОС на кристалле с целью получения большей производительности имеет место. В этом случае программисту необходимо внимательно изучить архитектуру процессора.
Для решения задач ЦОС не всегда большее число задействованных ядер приводит к повышению быстродействия. На примере высокопроизводительной многоядерной
системы на кристалле 1867ВА016Т показано, что для вычисления БПФ целесообразно задействовать два процессорных ядра, а не четыре.
Литература
1. Кожин А.С. Проблемы передачи данных между асинхронными доменами вычислительного устройства // Вопросы радиоэлектроники, серия ЭВТ. 20ll. № 3.
2. Мэлоун М. The Intel. Как Роберт Нойс, Гордон Мур и Энди Гроув создали самую влиятельную компанию в мире; пер. с англ. Е. Тортуновой. М.: Эксмо, 20l5. 544 с.
3. АО «НИИЭТ». Микросхемы интегральные 1667ВЦ6Ф, 1867ВЦ6АФ Руководство пользователя / АО «НИИЭТ» КФДЛ.431299.016ТС>. Режим доступа: https // niiet.ru/wp-
content/uploads/2.5Л^ШУВ^ФШУВ^АФ^Гропа-l.pdf.
4. Panos Papamichalis, John So. Implementation of Fast Fourier Transform Algorithms with the TMS32020 / Texas Instruments. Digital Signal Processing Solutions, l989. l02 p.
Поступила 21.06.2018; принята к публикации 14.09.2018 Информация об авторах
Фетисов Георгий Викторович - студент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), инженер лаборатории проектирования процессоров ЦОС и систем на кристалле, Акционерное общество «Научно-исследовательский институт электронной техники» (394033, Россия, г. Воронеж, ул. Старых Большевиков, 5), тел. +79038510776, e-mail: gfetisov@list.ru
Шеховцов Дмитрий Витальевич - канд. техн. наук, начальник лаборатории проектирования процессоров ЦОС и систем на кристалле, Акционерное общество «Научно-исследовательский институт электронной техники» (394033, Россия, г. Воронеж, ул. Старых Большевиков, 5), тел. +79081326813, e-mail: wexwex@mail.ru
Алперин Евгений Данилович - канд. техн. наук, доцент, Воронежский государственный технический университет (394026, Россия, г. Воронеж, Московский проспект, 14), тел. +79521068661, e-mail: aed@yandex.ru
PRODUCTIVITY ANALYSIS OF THE MULTI-PROCESSOR SYSTEM OF DIGITAL PROCESSING OF SIGNALS IN THE CASE 1867VA016T
G.V. Fetisov1,2, D.V. Shekhovtsov2, E.D. Alperin1
Voronezh State Technical University, Voronezh, Russia Joint-stock company "Research Institute of Electronic Technology", Voronezh, Russia
Abstract: the article studies a high-performance multiprocessor digital signal processing system in the 1867BA016T case developed by the JSC "Scientific Research Institute of Electronic Technology", evaluats the efficiency of using a different number of cores to solve digital signal processing (DSP) problems in order to justify the use of multiprocessor systems for DSP tasks. The procedure for communication of processor cores through switching ports that provide data transmission/reception at speeds up to 480 MB/s, as well as methods for combining cores using hypercube technology with various dimensions for the purpose of increasing processing power are considered. A universal program for calculating Fast Fourier Transform (FFT) in C and Assembler languages for each of 1867VTS3F cores and a different number of initial readings were compiled. The performance of the multi-core DSP system in the 1867BA016T case containing four digital signal-processing processors (DSPs) is estimated, with different number of active processor cores, by determining the execution time of the 64-point and 512-point FFT with or without the checksum calculation. The result of the study is the time diagrams and graphs showing the time of FFT execution for 64 and 512 initial samples and the number of active nuclei 1867BA016T. An optimal number of processor cores was proposed, which should be used to solve DSP tasks when working with a common memory area for multiprocessor systems in a chassis or on a chip with the architecture similar to the 1867BA016T
Key words: COM port, FFT, multi-core system, hypercube, DSP, performance, Assembler, C
References
1. Kozhin A.S. "Problems of data transmission between asynchronous domains of a computing device", Questions of radio electronics (Voprosy radioelektroniki, seriya EVT), 2011, no. 3.
2. Malone M. "The Intel Trinity: How Robert Noyce, Gordon Moore, and Andy Grove built the world's most important company" (trans. from English by Tortunova E.), Moscow, Eksmo, 2015, 544 p.
3. "Integrated microcircuits 1667VTS6F, 1867VTS6AF User's manual", JSC "NIIET", available at: https // niiet.ru/wp-content/uploads/2.5.1.0_1867B^®1867B^A®_Tpona-1.pdf.
4. Papamichalis P., So J. "Implementation of fast fourier transform algorithms with the TMS32020", Texas Instruments, Digital Signal Processing Solutions, 1989, 102 p.
Submitted 21.06.2018; revised 14.09.2018
Information about the authors
Georgiy V. Fetisov, Student, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026, Russia), Engineer, JSC "Research Institute of Electronic Technology" (5 Starykh Bol'shevikov st., Voronezh 394033, Russia), e-mail: gfetisov@list.ru. Dmitriy V. Shekhovtsov, Cand. Sc. (Technical), Head of Laboratory, JSC "Research Institute of Electronic Technology" (5 Starykh Bol'shevikov st., Voronezh 394033, Russia), e-mail: wexwex@mail.ru
Evgeniy D. Alperin, Cand. Sc. (Technical), Associate Professor, Voronezh State Technical University (14 Moskovskiy prospekt, Voronezh 394026, Russia), e-mail: aed@yandex.ru