лельно, и избегайте проблем, связанных с состоянием общих ресурсов и синхронизацией потоков.
Экспериментируйте с различными стратегиями параллельной обработки, такими как явное указание параллельной обработки и разбиение данных на более мелкие части, чтобы найти оптимальное сочетание для вашей конкретной задачи.
Список литературы
1. Subramaniam V. Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. Pragmatic Bookshelf, 2014.
2. Goetz B., et al. Java Concurrency in Practice. Addison-Wesley Professional, 2006.
3. Naftalin M. Java Generics and Collections: Speed Up the Java Development Process. O'Reilly Media, 2006.
4. Lea D. A Fork/Join Framework for Parallel Programming in Java // IEEE Transactions on Parallel and Distributed Systems, 1999.
5. Mycroft A. Peter Sewell. Java's Insecure Parallelism: A Language-Based Analysis // ACM SIGPLAN Notices,
1999.
6. Isard M. Dryad: Distributed Data-Parallel Programs from Sequential Building Blocks. EuroSys, 2007.
7. Dean J., Ghemawat S. MapReduce: Simplified Data Processing on Large Clusters. OSDI, 2004.
Сайфуллин Ильназ Ирекович, доцент, say-ilyas@mail. ru, Россия, Казань, Поволжский государственный университет физической культуры, спорта и туризма,
Айзатуллова Айгуль Феимовна, java разработчик, [email protected]. Россия, Казань, АО «Барс
Груп»,
Шмакова Анна Федоровна, преподаватель, [email protected], Россия, Казань, Казанский (Приволжский) федеральный университет
INVESTIGATION OF THE EFFECTIVENESS OF JAVA STREAMS IN PARALLEL PROCESSING OF BIG DATA
I.I. Sayfullin, A.F. Ayzatullova, A.F. Shmakova
This article explores the application ofJava Streams in the context ofparallel processing of big data. Using Java Streams, developers can express data processing operations using a concise and declarative coding style. However, when working with large datasets, processing efficiency can become a bottleneck. In this article, we will look at how efficiently Java Streams processes large amounts of data in a multithreaded environment.
Key words: Java, Stream API, multithreading, data, parallel processing, performance.
Sayfullin Ilnaz Irekovich, docent, [email protected], Russia, Kazan, Volga Region State University of Physical Culture, Sports and Tourism,
Ayzatullova AygulFeimovna, java developer, [email protected]. Russia, Kazan, AO «Bars Group»,
Shmakova Anna Fedorovna, teacher, [email protected], Russia, Kazan,. Kazan (Volga Region) Federal
University
УДК 004.31; 004.415
DOI: 10.24412/2071-6168-2023-9-263-264
СПОСОБЫ КОНФИГУРАЦИИ И АНАЛИЗ ХАРАКТЕРИСТИК МИКРОКОНТРОЛЛЕРА CH32V307 АРХИТЕКТУРЫ RISC-V
А.В. Лупин, А.А. Лавров, А.В. Божко
В статье рассматриваются режимы работы и характеристики 32-разрядного микроконтроллера (МК) CH32V307 архитектуры RISC-V китайской фирмы WCH. Для обеспечения задачи конфигурации пользовательских выводов предложена траектория выбора с помощью сервисной программы. На основе анализа тестовых задач, реализованных на отладочной плате, определены временные характеристики МК (производительность) для скалярных и векторных операций с целыми числами и плавающей точкой). Предложена оптимизация ассемблерного кода для повышения производительности и решения задач в реальном времени. Рассмотрены примеры реализации двух алгоритмов цифровой обработки сигналов (ЦОС). Доступность, цена, большое число периферийных устройств и представленные характеристики показывают конкурентоспособность МК для замены большого числа контроллеров различных фирм и устаревших процессоров ЦОС. Авторы предполагают, что представленные результаты помогут сократить сроки принятия решения разработчиками о выборе элементной базы перспективных микропроцессорных устройств.
Ключевые слова: микроконтроллер RISC-V, конфигурация выводов, характеристики, производительность, оптимизация кода, алгоритмы цифровой обработки сигналов
Микроконтроллеры являются элементной базой в большом количестве автономных систем различного назначения, бытовой техники, систем сбора и обработки информации, а также в системах автоматического и автоматизированного управления и др.
В современных вычислительных системах используется более десятка разных типов архитектур, каждая из которых имеет свою историю, преимущества и недостатки [1]. Однако, в настоящее время, в связи со сложностью преодоления формальных препятствий, поставки и санкционных ограничений, внимание фокусируется на открытую архитектуру КВС^ [ 2, 3]. Последние разработки микроконтроллеров и софт-процессоров данной архитектуры указывают на современную мировую тенденцию. В настоящей работе рассматриваются перспективы использования нового 32-разрядного микроконтроллера (МК) CH32V307 китайской фирмы WCH (поставки в РФ с 2022) [4, 5].
Кроме указанных выше проблем, на системном уровне, эксплуатация и усовершенствование (модернизация) оборудования на некоторых предприятиях усугубляются сменой поколения разработчиков электронных модулей и устареванием отдельных компонентов схем. В связи с этим одним из путей уменьшения номенклатуры компонентов является создание систем на однотипном кристалле с доступным ПО.
1. Структура МК CH32V307 и сравнительный анализ микроконтроллеров архитектуры RISC-V. Микроконтроллеры серии CH32V307 базируются на ядре QingKe V4F, которое поддерживает набор команд RV32IMACF [6], где обозначение I - включает команды для целочисленной арифметики, М - целочисленное умножение и деление, А - атомарные операции с памятью, С - использование сжатого формата команд и F - вычисления с плавающей точкой одинарной точности (32Е8).
На рис. 1 приведена структурная схема МК CH32V307.
VDD: 2.4V-3.5V Vss
Vio: 2.4V3.6V
ADD[23:16]
D A~[ IS C]
CLK
NOE
NWE
N В Ц 1:C]
NWAIT
NADV
NE1/NCE2
CANlJTC.tAN 1_R>:
CA N 2_TX,CAN 2 •'
OACCUT1 OAC_OUT2
Рис. 1. Структурная схема микроконтроллера CH32V307
В состав МК CH32V307 входят: ядро, флэш-память, SRAM-память, система синхронизации, аппаратный блок для операций с плавающей точкой (FPU, Floating Point Unit), а также периферия, включающая в себя: таймеры, АЦП, ЦАП, I2S, I2C, SPI, CAN, UART, USART, USB2.0 full-speed host/device, USB2.0 high-speed host/device и др.
Особенностью структуры микроконтроллера является наличие нескольких шин и мостов между ними. К шинам APB1 и APB2 через шину AHB могут быть подключены различные периферийные устройства, для которых сконфигурированы различные тактовые частоты шин в соответствии с требованиями пользователя для увеличения пропускной способности.
По сравнению с другими МК архитектуры RISC-V, CH32V307 имеет ряд преимуществ. Характеристики микроконтроллеров архитектуры RISC-V приведены в табл.1.
Характеристики микроконтроллеров архитектуры RISC-V
Таблица 1
Параметры CH32V307 GD32VF103 К1986ВК025 SiFive FE310-G003
Производитель Китай Китай Россия США
Ядро QingKe V4F Bumblebee Core BM-310S E31
Система команд RV32IMACF RV32IMAC RV32IMC RV32IMAC
Частота (МГц) 144 108 60 320
Флэш-память (Кб) 256 128 256 32
SRAM-память (Кб) 64 32 112 16
Число пользовательских выводов 80 80 55 24
АЦП/ЦАП 2(16)/2 2 / 2 8 / - - / -
UART / SPI / I2C 8 / 3 /2 5 / 3 / 2 5 / 3 / 1 2 / 1 / 1
Число внешних прерываний до 16 до 16 3 3
USB2.0 FS + + - -
USB2.0 HS + - - -
Gigabit Ethernet + - - -
Аппаратный блок с плавающей точкой + - - -
Корпус LQFP100 LQFP100 QFN88 QFN48
Цена (руб.) 350 230 450 400
В результате сравнения среди преимуществ МК CH32V307 можно выделить: высокоскоростной интерфейс USB (до 480 Мбит/c), Gigabit Ethernet (MAC-уровень), наличие аппаратного устройства для вычислений с плавающей точкой. Данный МК уступает по частоте SiFive FE310 [7], но умножение 32-разрядных чисел производится за меньшее время.
Российские МК, К1986ВК025 [8] и MIC32[9] (в таблице не представлен) - существенно уступают по всем показателям.
В настоящей статье не представлен сравнительный анализ рассматриваемого МК с подобными МК другой архитектуры. Ближайшим аналогом является МК STM32L476 [10].
2. Конфигурация микроконтроллера
Приведенная на рис.1 структура МК CH32V307 содержит 33 типа устройств по периферии микросхемы. Однако перед проектированием собственного модуля на его основе разработчик должен убедиться в том, что он сможет разместить все каналы используемой им периферии на выводах корпуса микроконтроллера. В документации на отладочную плату МК CH32V307-EVT-R1 [11] имеется символьный элемент с расположением выводов для CH32V307VCT6 с корпусом LQFP100 (рис. 2.а).
gf5 *
pe; peí
PE4 PEi PEÍ VBAT
PC 3 ÍTAMPER-RTC РСЛЛЭ5С32Ш PCI S 0SCJ20UT VSSJ VDD_S OSC IN OSCJMJT NRST PC9 ADCIO PC1 ADCIl PCÍADCI2 PCJADCIi VSSA VREF-VREF» VDDA
PAQWKUP ADCO
PAI 'ADCÍ R П
PA2ADC2
" <<<<<<<;<S
@VDD power @V10 power @ VDD&VBAT power
NC
PA13SWDIO PA12USB1DP PAIIUS&IDM PAID PA9 PAS PC9TXN
рсатхр
PC7RXN PC6RXP PDlS PDH PD1J PDI2 PD11 PD10 PD9 PDS PBIS рь: -
PBlJ
pbi:
.-■ в — r. T v. О - I
zz
—L
Номер вывода Основное назначение Альтернативные назначения
15 PC0 ADC IN10 TIM9 CH1N UART6 TX ETH_RGMII_RXC
16 PC1 ADC IN11 TIM9 CH2N UART6 RX ETH MII MDC ETH_RMII_MDC ETH RGMII RXCTL
а б
Рис. 2. Символьный элемент (а) и альтернативные назначения выводов (б) МК CH32V307VCT6
Из ста выводов, имеющихся на корпусе LQFP100, только 80 выводов являются пользовательскими. Эти выводы поделены на 5 групп по 16 выводов. Помимо своего основного назначения некоторые выводы имеют альтернативные назначения. Однако такое представление об МК является очень поверхностным. Каждый вывод имеет до 7 вариантов конфигурации (рис. 2.б). Анализ показал, что в МК реализована сложная подсистема конфигурации (на рис.1 не представлена), содержащая программируемый коммутатор 276 цифровых и аналоговых входов/выходов в 80 пользовательских выводов микросхемы. Для оценки возможности реализации заданной конфигурации необходимо по документации [5] проверить данный вариант на отсутствие коллизий. Вручную это сделать практически невозможно.
Чтобы решить данную проблему была написана программа, которая для заданного перечня интерфейсов выполняет размещение их каналов на пользовательских выводах микроконтроллера. Программа реализует траекторию выбора типовой конфигурации для заданного набора интерфейсов составленную на основе специальной таблицы (табл. 2).
В первую очередь выполняется размещение для интерфейсов, представленных в единственном числе в порядке уменьшения количества используемых входов/выходов, затем определяются выводы для наборов интерфейсов (интерфейсы, которых у микроконтроллера 2 и более) в порядке увеличения числа подобных интерфейсов и уменьшения количества используемых ими пользовательских выводов.
Таблица 2
Упорядоченный (неполный) список интерфейсов МК CH32V307_
Номер п/п Название интерфейса Число выводов интерфейса Число интерфейсов
1 FSMC 32 1
2 ETH MII 18 1
3 DVP 15 1
4 ETH RGMII 13 1
5 ETH RMII 10 1
6 SDIO 10 1
7 TIM5 4 1
11 I2C 3 2
31 UART 2 8
32 EXTI 1 16
33 GPIO (Px) 1 80
Если два интерфейса представлены у CH32V307 в одинаковых количествах, и они используют одинаковое количество выводов, то первым размещается интерфейс, у которого меньше максимальное количество возможных вариантов назначения.
Программа написана на языке Python с использованием библиотеки PyQt6 [Ошибка! Источник ссылки не найден.].
Для представления работы программы ниже рассмотрен пример выбора конфигурации. В данном примере необходимо разместить: внешний параллельный порт ввода/вывода (FSCM), интерфейс RGMII (Reduced Gigabit Media Independent Interface) используемый для подключения к Gigabit Ethernet, высокоскоростной USB-интерфейс, UART, 6 источников внешних прерываний. При этом должно остаться несколько незанятых выводов, которые можно будет использовать в качестве пользовательских выводов общего назначения.
■ ■ CH3JV307 Pins
■ FSMC ЕТН MAC
□ ЕТН МП
□ ЕТН RMII Щ ЕТН RGMH В 100M/Gigobit
О ЕТН ЮМ PHY
О hsc О swoio
GPTM
О Tim г пм г/4 о С
□ TIMS
О DVP use О USBHS О USBFS
D OTG FS Qlse
D SWCLK АДОМ
TIM 1/«/10 О !* О TIM 9
□ SDK> 5PI о I2S о I2C О Can о
О VWKUP
О Boon
A DC О DAC о
ОРА о
UART 1 _ U5ART 0 *
О мсо
О TAMPER-RTC EXTI 6 * GPIO 10 *
3 » Pf 4 - FSMC.A20
4 = Pt5 = FSMC.Ail
5 = Pt6 = fSMC.Ai?
6 * V8AT
21 • РАО - E1H.RGMII.MD2
24 =. PA1 =■ ETHJtGM»JIXD3
25 - PA? = €TH.ftGMII_GTXC
26 = W3 =■ ffHRGMII TON
б
PE1? . FSMC.M PEIJ^ liMC.CJlO *\m-: " ■ « = PE15 = FSMC OIJ
« ■ Ptt » GPtO M ■ PC7 ■ ЕЖТ15
(S = P« = GPIO 3 PC9 = GPtO
Рис. 3. Выбор интерфейсов для заданной конфигурации в главном меню разработанного приложения (а)
и фрагмент файла назначения выводов (б)
В главном меню программы можно выбрать интерфейсы, которые необходимо будет разместить. Лучше это делать по таблице 2.
Для заданной конфигурации выбор периферийных устройств на главной странице будет выглядеть следующим образом (см. рис. 3).
a
В результате, после нажатия на кнопку «Разместить», будет предпринята попытка размещения каналов всех выбранных устройств на выводах микроконтроллера. Если конфигурация будет выполнена успешно, то она будет представлена в окне (см. рис. 2.6). Пользователь сможет реализовать еще 10 выводов общего назначения.
При этом напротив названия каждого пользовательского вывода выводится назначение, определённое для него в результате работы программы. Если конфигурация невозможна, то об этом будет сообщение.
3. Анализ производительности МК CH32V307. Анализ производительности требуется для определения возможности реализации задач в реальном масштабе времени. Если есть опыт создания устройства на другом процессоре, то можно было бы применить характеристику benchmark. Оптимизация программ для контроллеров, где формат float реализуется программно компилятором, очень затруднительна или невозможна.
В настоящей работе рассмотрены скалярные и векторные операции и оптимизация по времени выполнения, а также два алгоритма цифровой обработки сигналов для чисел с плавающей точкой. Даны временные оценки выполнения.
В отсутствии симулятора исследования проводились на отладочной плате CH32V307-EVT-R1 [11] в среде отладки MounRiver Studio. Системное время определялось с помощью внутреннего таймера TIM6, работающего на частоте 144 МГц.
3.1. Скалярные операции. У различных ядер RISC-V реализация команд может отличаться, из-за чего на их выполнение будет занимать различное количество тактов.
Так как данная информация не полностью предоставлена производителем, оценка временных характеристик для команд ядра QingKe V4F микроконтроллера CH32V307 была получена экспериментально (табл. 3).
Таблица 3
Длительность выполнения отдельных команд ядром QingKe V4F__
Команды Код на ассемблере RISC-V Число тактов
Скалярные целочисленные арифметические операции Сложение add a3,a2,a1; 1
Умножение mul a3,a2,a1; 1
Деление div a3,a2,a1; до 10
Скалярные арифметические операции с плавающей запятой Сложение fadd.s fa3,fa2,fa1; 2
Умножение fmul.s fa3,fa2,fa1; 2
Умножение со сложением fmsub.s fa3,fa2,fa1,fa4; 2
Деление fdiv.s fa3,fa2,fa1; до 10
Пересылки данных память-регистр Чтение lw a2, 0(a1); 1
Запись sw a2, 0(a1); 1
Когда операнды для промежуточных операций можно хранить в регистрах производительность близка к пиковому быстродействию, т.е. для целых чисел - 144 Mops и для чисел с ПЗ - 72 Mflops (144 Mflops). К алгоритмам, которые в основном используют скалярные операции, можно отнести: линейную интерполяцию, интерполяцию полиномом Лагранжа, экстраполяцию и др.
3.2. Операции над векторами. В системе команд RISC-V кроме скалярных команд могут быть представлены и векторные команды, но только при наличии соответствующего расширения 'V' [2]. У микроконтроллера CH32V307 оно отсутствует, поэтому работа с векторами у него организована не столь эффективно.
Эффективность выполнения данных операций зависит от нескольких факторов. Для примера, рассмотрим алгоритм поэлементного сложения двух векторов целых чисел:
с(г) = a(i)+b(i).
Ниже представлена строка программы на языке Си.
fordnt i - 0; i < 5; i++J c[i) ■ e[i] + b(i];
Компилятор переводит исходный код на языке Си в ассемблерный код, который представлен во вкладке «Disassembly» (рис.4.а) при отладке в MounRiver Studio.
^Disassembly
0000036л
ооосозес 0000036* 0000037 0 00000374 00000376 00000373 0000037а
0000037с 0000037« 00000380
ооооозм
00000334 000003S6
Ii Ii
addi add addi addi add .add lv
Hone
Filler Inration hp ~ 1 ® Si ' •3,6 43,20 a4, sp,44 a2, ¿4,a5 и1, sp, 24 й4 hsp,4 >i.
al,,ai,4S ¿4,004) ¿1,0(01)
a4,»-
л4,0(а2)
"as!aiv<main+96>
li li lui addi
■5,0 л 3,20 Л2,0x20008 a2,a2,-16 I
Тело цикле:
;w 14,002) 1« »1,1(1 (»2) add^aSj^M add a*,a4,a *W a4,4Д ta21 addi <"
.. ' r .1 ■, к; '1
a
Рис. 4. Программа на ассемблере, созданная компилятором (а), и оптимизация: первая фаза (б) и вторая (в)
В теле цикла имеется 12 команд, из которых 6 - обслуживание адресации памяти (выделено желтым цветом), 3 команды чтение-запись в память (выделено голубым цветом), 2 команды - обслуживание условного перехода. Всего одна команда (выделено зеленым цветом) из 12-ти является сложением элементов векторов. Применим минимизацию по быстродействию и по абсолютному значению шага в адресном пространстве (в примере равно 20) уменьшим число команд в цикле на 5 (рис.4 б). Используя атомарную операцию обращения к памяти, можно умень-
шить еще на одну команду (рис.4 в). Долю команд обслуживания условного перехода в теле цикла можно уменьшить, если увеличить число команд в нем, например, повторить операцию с еще одной парой элементов. В результате производительность достигнет всего до 20% от быстродействия.
Для плавающей точки будет аналогично, но сама команда сложения выполняется за 2 такта, а атомарные операции отсутствуют.
3.3. Алгоритмы ЦОС. Быстрое преобразование Фурье (БПФ). В настоящее время пользователи испытывают дефицит предложений микропроцессоров ЦОС. Значительную часть задач перекладывают на аппаратную реализацию в ПЛИС. Процессоры 16 и 32- разрядные зарубежных фирм от 90-х годов 20-го века устарели и требуют замены. Ниже на примерах будет показана возможность использования МК CH32V307 для решения задач ЦОС.
Выбраны хорошо известные алгоритмы ЦОС [13]: БПФ и рекурсивный фильтр.
Для первого примера, предложено вычисление операции «бабочка» БПФ по основанию 2 с прореживанием по времени, с замещением:
X' = X + УШ; У' = X- УШ,
где X, У - входные, X', У' - выходные отсчеты, Ш - поворачивающий множитель. Все числа - комплексные и представлены в одном 32-разрядном формате.
На рис. 5 представлен фрагмент программы вычисления операции «бабочка» с комментариями.
Предварительное размещение входных отсчетов Фрагмент программа: на ассемблере Комментарий
(ИХ, QX) ^2,1а3) (И^ QY) (fa6,1а7) QW) (1а4, fa5) fmul.s ft1,fa7,fa5; ^иЬ^ ft1,fa6,fa4,ft1; fmul.s ft2,fa6,fa5; fmadd.s Л2Д7Д4Д2; fsub.s 136,132,111; fsub.s й7,1н3Д2; fadd.s fa2,fa2,ft1; fadd.s fa3,fa3,ft2; QY * QW -> 111 RY * RW - <И1> -> 111 RY * QW -> И2 QY * RW + <Й2> -> И2 ИХ - <И1> -> 1З6 QX - <И2> -> 1З7 ИХ + <И1> -> 1З2 QX + <Й2> -> 1ЗЗ RY' в 1з6 QY' в 1з7 ИХ' в 1з2 QX' в 1зЗ
Рис. 5. Фрагмент программы вычисления операции «бабочка» БПФ
Программа выполняется за 16 тактов и использует 8 регистров. В регистровом файле имеется еще свободных 8 регистров, поэтому можно выполнить 4 операции «бабочка» над 4 отсчетами. Это уменьшит число обращений к памяти. Таким образом можно оценить время выполнения одной операции в формате с плавающей запятой, примерно, как 130-140 наносекунд, что вполне сопоставимо с младшими семействами процессоров ЦОС.
3.4. Алгоритмы ЦОС. Рекурсивный фильтр. Для второго примера выбран алгоритм рекурсивного фильтра второго порядка:
у(п) = Ьо х(п)+Ъг х(п-1)+Ь2 х(п-2)-а1у(п-1)-а2у(п-2), где х(.) иу(.) - входные и выходные отсчеты фильтра, а(.)и Ь(.) - коэффициенты фильтра.
Для того, чтобы уменьшить число обращений к памяти до 2-х предложена реализация кольцевого буфера с хранением в одном регистре отсчета в течение 3-х циклов. Фрагмент программы вычисления рекурсивного фильтра 2-го порядка приведен на рис.6. Коэффициент Ьо принят равным 1, а вычитание заменено сложением.
Предварительное
размещение коэффициентов
Фрагмент программы на ассемблере
Комментарий
Ь1 ■ -> Аа1
Ь2 ■ -> Аа2
-а1 -> Аа3
-а2 -> Аа4
а™
fmadd fmadd fmadd fmadd fsw
fmadd fmadd fmadd fmadd fsw
fmadd fmadd fmadd fmadd Аз™
Аа7, 20 (зр) й2Ааиа6Аа7 й2Д2Аа5,й2 Й2Д3,Й6,Й2 Й7Д4,Й5,Й2 Й7,256 (¡р); Аа5,24 (¡р); й2Диа7,Аа5 й2Д2Аа6,й2 Й2Д3,Й7,Й2 Й5Д4,Й6,Й2 Й5, 260 (¡р); Аа6,28 (¡р); А2Аа1Аа5Аа6 й2Д2Аа7,й2 Й2Д3,Й5,Й2 Й6Д4,Й7,Й2 А6, 264 (¡р)
Чтение x(n+i3)
Запись y(n+i3) Чтение x(n+i3+1)
Запись y(n+i3+1) Чтение x(n+i3+2)
Запись y(n+i3+2)
х^+2) Аа7->Аа5->Аа6->. х(1+1) Аа6->Аа7->Аа5-.. х© Аа5->Аа6->Аа7->...
Рис. 6. Фрагмент программы вычисления рекурсивного фильтра 2-го порядка
Программа выполняется за 30 тактов и использует 11 регистров. Желтым цветом показана «миграция» одного входного отсчета по тексту программы. Таким образом можно оценить время вычисления одного выходного отсчета фильтра в формате с плавающей запятой, около 80 наносекунд, что вполне сопоставимо с младшими семействами процессоров ЦОС.
4. АЦП и Gigabit Ethernet. В состав МК CH32V307 входят два 12-разрядных АЦП, к которым можно подключить группами до 16 аналоговых входа. Частота дискретизации настраивается программно. Максимальная частота 14 МГц, что на порядок больше, чем у типового МК. Проверено, что контроллер DMA способен на данной частоте переписать небольшой массив во внутреннюю память. Однако непрерывный поток данных обработать, видимо не удастся, учитывая число тактов на простые операции (см. п. 3.2). Как вариант, можно переписать данные через 16-разрядный порт FSMC во внешнее устройство (в ПЛИС).
МК имеет также устройство Gigabit Ethernet (MAC-уровень). Отладочная плата не позволяет его использовать, нужно проектировать новую плату с требованиями к трассировке высокочастотных сигналов. Заметим, что дополнительные компоненты (микросхемы PHY, генератор и разъем с трансформатором) будут стоить дороже самого МК примерно в 5 раз.
Заключение. В результате исследований режимов работы и характеристик МК CH32V307 на основе отладочной платы CH32V307-EVT-R1:
- предложена траектория выбора конфигурации системы по заданию пользователя. Разработана программа на языке Python, облегчающая пользователю выбор возможной периферии и создание схемного элемента. Приведен пример выбора варианта конфигурация;
- на основе анализа тестовых задач определены временные характеристики (производительность для скалярных и векторных операций с целыми числами и плавающей точкой). Рассмотрены возможные варианты оптимизации ассемблерного кода;
- рассмотрены примеры реализации алгоритмов ЦОС, таких как БПФ и рекурсивный фильтр 2-го порядка. Время выполнения операции «бабочка» по основанию 2 оценивается в 130-140 нс, а вычисление выходного отсчета фильтра - в 80 нс. Приведенные примеры показывают высокую эффективность применения МК в прикладных задачах ЦОС.
Доступность, низкая цена, представленные функциональные и временные характеристики по мнению авторов могут ускорить процесс принятия решения потенциальными пользователями об использовании МК CH32V307.
Список литературы
1. Исследование технологии RISC-V / В.А. Фролов, В.А. Галактионов, В.В. Санжаров // Труды ИСП РАН. 2020. Т. 32. Вып. 2. С. 81-98.
2. The RISC-V Instruction Set Manual. [Электронный ресурс] URL: https://riscv.org/wp-content/uploads/2017/05/riscv-spec-v2.2.pdf (дата обращения: 26.06.2023).
3. Porter III, H. H. RISC-V: An overview of the instruction set architecture / H. H. Porter III - Portland : Portland State University, 2018. 323 p.
4. Обзор микроконтроллеров WCH. Портал для разработчиков электроники Радио Лоцман. [Электронный ресурс] // URL: https://www.rlocman.ru/review/article.html?di=658267 (дата обращения: 26.06.2023).
5. CH32FV2x_V3x Reference Manual. Официальный сайт компании WCH. [Электронный ресурс] URL: http://www.wch-ic.com/downloads/ CH32FV2x V3xRM PDF.html (дата обращения: 26.06.2023).
6. QingKeV4 Microprocessor Manual. Официальный сайт компании WCH. [Электронный ресурс] URL: http://www.wch-ic.com/ downloads/QingKeV4 Processor Manual PDF.html (дата обращения: 26.06.2023).
7. Freedom E310-G003 Manual. Официальный сайт компании SiFive. [Электронный ресурс] URL: https://www.sifive.com/documentation (дата обращения: 26.06.2023).
8. Спецификация на микросхему К1986ВК025. Официальный сайт компании Миландр. [Электронный ресурс] URL: https://ic.milandr.ru/products/mikrokontrollery i protsessory /32 razryadnye mikrokontrollery/k1986vk025-okr-schetchik-m-/#docs tab (дата обращения: 26.06.2023).
9. RISC-V микроконтроллер MIK32 АМУР. [Электронный ресурс] URL: https://mcu.mikron.ru (дата обращения: 26.06.2023).
10. Таблица аналогов и возможных замен (замещения) по микроконтроллерам STM32. Официальный сайт компании СЭлКом. [Электронный ресурс] URL: https://radiodetali.com/тablitsa-zameshcheniva.html (дата обращения: 26.06.2023).
11. CH32V30x Evaluation Board Reference Manual. Официальный репозиторий CH32V307 на GitHub. [Электронный ресурс] URL: https://github.com/openwch/ch32v307/blob/main/EVT/PUB/CH32V30x%20Evaluation%20Board%20Reference-EN.pdf (дата обращения: 26.06.2023).
12. Qt for Python Documentation. Официальная сайт с документацией Qt. [Электронный ресурс] URL: https://doc.qt.io/qtforpython-5/contents.html (дата обращения: 26.06.2023).
13. Ричард Лайонс. Цифровая обработка сигналов: Второе издание. М.: ООО «Бином-Пресс», 2006. 656 с.
Лупин Анатолий Викторович, старший преподаватель, [email protected], Россия, Санкт-Петербург, Санкт-Петербургский политехнический университет Петра Великого,
Лавров Алексей Александрович, канд. техн. наук, доцент, alecse-lavro@rambler. ru, Россия, Санкт-Петербург, Санкт-Петербургский политехнический университет Петра Великого,
Божко Александр Владимирович, магистрант, [email protected], Россия, Санкт-Петербург, Санкт-Петербургский политехнический университет Петра Великого
CONFIGURATION METHODS AND PERFORMANCE ANALYSIS RISC-V ARCHITECTURE CH32V307
MICROCONTROLLER
A. V. Lupin, A.A. Lavrov, A. V. Bozhko 269
The article discusses the operating modes and characteristics of the 32-bit microcontroller (MC) CH32V307 of the RISC-V architecture of the Chinese company WCH. To ensure the task of configuring user pins, a selection trajectory is proposed using a service program. Based on the analysis of test tasks implemented on the debugging board, the time characteristics of the MC (performance) for scalar and vector operations with integers and floating point are determined). Optimization of assembler code is proposed to improve performance and solve problems in real time. Examples of the implementation of two algorithms of digital signal processing (DSP) are considered. Availability, price, a large number of peripheral devices and the presented characteristics show the competitiveness of the MC to replace a large number of controllers from various companies and outdated DSP processors. The authors suggest that the presented results will help to shorten the decision-making time by developers on the choice of the element base ofpromising microprocessor devices.
Key words: RISC-V microcontroller, pin configuration, characteristics, performance, code optimization, digital signal processing algorithms.
Lupin Anatolii Viktorovich, lecturer, [email protected], Russia, Peter the Great St. Petersburg Polytechnic
University,
Lavrov Alexey Alexandrovich, candidate of technical sciences, docent, [email protected] , Russia, Peter the Great St. Petersburg Polytechnic University,
Bozhko Alexander Vladimirovich, master's, [email protected], Russia, Peter the Great St. Petersburg Polytechnic University
УДК: 654.022
DOI: 10.24412/2071-6168-2023-9-270-271
АНАЛИЗ ВЛИЯНИЯ ПОДСТИЛАЮЩЕЙ ПОВЕРХНОСТИ И РЕЛЬЕФА АРКТИЧЕСКОЙ ЗОНЫ НА ПРОЦЕСС РАСПРОСТРАНЕНИЯ РАДИОВОЛН
О.В. Чуприков, Р.И. Кочубей, М.М. Бычковский, Н.Н. Зайкин, Е.В. Фатьянова, А.В. Свидло
В статье представлен анализ подстилающей поверхности в арктической зоне. Приведены характеристики подстилающей поверхности в зависимости от температуры воздуха и частоты сигнала.
Ключевые слова: диэлектрическая проницаемость, подстилающая поверхность, арктическая зона.
Арктика - северная область Земли, включающая глубоководный Арктический бассейн, мелководные окраинные моря с островами и прилегающими частями материковой суши Европы, Азии и Северной Америки. В пределах Арктики расположены пять приарктических государств - Россия, Канада, Соединенные Штаты Америки, Норвегия и Дания, которые обладают исключительной экономической зоной и континентальным шельфом в Северном Ледовитом океане (рис. 1).
Под арктической зоной Российской Федерации понимается часть Арктики, в которую входят полностью или частично территории Республики Саха (Якутия), Мурманской и Архангельской областей, Красноярского края, Ненецкого, Ямало-Ненецкого и Чукотского автономных округов, определенные решением Государственной комиссии при Совете Министров СССР по делам Арктики от 22 апреля 1989 г., а также земли и острова, указанные в Постановлении Президиума Центрального Исполнительного Комитета СССР от 15 апреля 1926 г. «Об объявлении территорией СССР земель и островов, расположенных в Северном Ледовитом океане», и прилегающие к этим территориям, землям и островам внутренние морские воды, территориальное море, исключительная экономическая зона и континентальный шельф Российской Федерации, в пределах которых Россия обладает суверенными правами и юрисдикцией в соответствии с международным правом (рис. 2).
Актуальность исследования арктического направления в современных условиях очевидна: складывается весьма непростая геополитическая ситуация, усиливающая противоречия и вызывающая обострение борьбы за арктическое пространство. В связи с этим клубок проблем нарастает, и Арктика становится ареной глобальной конкуренции за транспортные потоки и природные ресурсы. Таким образом, возникает необходимость в организации связи в этом регионе.
Кольский полуостров наряду с разнообразием рельефа обладает густой растительностью (большая часть полуострова - лесная), множеством рек и озер. Промерзшие почвы успевают полностью оттаять летом. Толщина снежного покрова колеблется от 10 до 30 см и более.
Островная часть русской Арктики отличается разнообразным рельефом, с высотами от 10 до 1200 метров и подстилающей поверхностью (ПП), имеющей довольно сложную слоистую структуру (рис. 3).
Промерзшая на большую глубину почва в теплое время оттаивает лишь на несколько десятков сантиметров, и как видно на рис. 3 а, б, сильно отличается своей структурой, толщиной и электропроводностью слоев даже на относительно небольших расстояниях. Большую часть времени в году ПП состоит из снежного покрова, мерзлого грунта и зоны вечной мерзлоты (рис. 3 в) [1].
Толщина снежного покрова на островах Северного Ледовитого океана колеблется от 20 см до 1 м.
Снег представляет собой смесь трех фаз воды: твердой (кристаллы льда, снежинки), жидкой (вода), газообразной (пары воды и воздух) и его состояние зависит от соотношения этих фаз. Снежный покров образуется после многочисленных снегопадов и обладает рядом физико-механических параметров, важнейшими из которых являются структура, толщина, плотность, температура и влажность. Плотность снега на порядок меньше плотности грунта. Толщина снежного покрова в конкретном месте зависит от частоты снегопадов, погодных условий, характера рельефа местности и ветрового режима территории.