Алиса шла по коридору трёхцветного света примерно десять минут, и свет впереди становился всё ярче. Это уже не были изменчивые потоки кода и не прозрачные пути прохождения сигналов — перед ней открылся гигантский театр. Сцена занимала всю переднюю часть пространства, а три прожектора — красный, синий и зелёный — освещали её под разными углами, каждый выделяя свою область.
В центре сцены стоял мужчина в смокинге, держащий в руке металличесую дирижёрскую палочку. Он слегка поклонился Алисе.
«Вы уже видели тело SDR в коридоре — от антенны до антенны сигнал прошёл весь путь», — сказал дирижёр. «Теперь пришло время познакомиться с теми, кто заставляет этот путь работать».
Он взмахнул дирижёрской палочкой, и занавес медленно раскрылся. За ним открылась огромная фоновая картина — та самая полная схема потока сигнала, которую Алиса видела в коридоре:
Антенна → РЧ-передняя часть → АЦП → ЦПС → Обработка базовой полосы → ЦПИ → ЦАП → РЧ-передняя часть → Антенна
«Этот путь состоит из трёх участков, на каждом из которых требуется “рабочая сила”. Каждый человек занимает определённую позицию и выполняет свой тип работы. Троица действует как единое целое — ни один элемент не может быть исключён».
Он сделал взмах палочкой в сторону левого края сцены. Вспыхнул яркий красный луч света, осветив участки DDC и DUC на схеме потока сигнала.
«Представляем старшего брата — FPGA!»
1. Старший брат FPGA — параллельные десятки тысяч рук
Под красным прожектором на левой стороне сцены поднялся крупный мужчина. На нём был красный рабочий комбинезон с плотным узором из «логических элементов» — тысячи одинаковых квадратов аккуратно выстроились в ряд; каждый квадрат напоминал отдельную маленькую руку. Его руки были покрыты программируемыми переключателями и соединительными линиями, а сам он выглядел как гигантская человеческая плата: каждый сустав мог быть мгновенно перенастроен.

Он заговорил — его голос напоминал щелчок десятков тысяч одновременно замыкающихся переключателей:
«Я — FPGA (поле программируемых логических матриц). Я занимаю позицию DDC и DUC. Высокоскоростное цифровое преобразование частоты, фильтрация, декимация и интерполяция — эти задачи требуют одновременной обработки колоссальных объёмов данных: миллиарды операций в секунду. Нельзя ждать, нельзя ставить в очередь, нельзя делать «по одной за раз»».
Он раскрыл руки. Мгновенно в воздухе над сценой возникли тысячи виртуальных «маленьких рук», каждая из которых выполняла свою задачу: одна проводила фильтрацию, другая — смешение частот, третья — декимацию, четвёртая — интерполяцию… Все действия происходили одновременно, без ожидания друг друга.
«Без меня DSP и CPU не справятся с этими задачами: DSP вычисляет точно, но у него нет такого количества «рук»; CPU управляет широким спектром функций, но каждая задача должна проходить через очередь».
«Поэтому цифровое преобразование частоты — естественная сфера моей деятельности. Все высокоскоростные потоки данных сразу после АЦП поступают прямо в мои «ладони». Я перевожу их из высокой частоты в базовую полосу и передаю второму брату».
Он кивнул в сторону центра сцены и сделал шаг назад, давая возможность прожектору переместиться к другой стороне.
2. Второй брат DSP — мастер арифметических вычислений
Прожектор сменил красный цвет на синий. Из центра сцены поднялась стройная фигура в очках, окружённая вращающимися цифровыми матрицами. На нём было тёмно-синее пальто, каждая пуговица которого представляла собой умножитель-сумматор. Его пальцы были удлинёнными, а на каждом суставе имелись точные деления — как у логарифмической линейки.

Он заговорил — его голос был ровным и точным:
«Я — DSP (цифровой процессор сигналов). После того как старший брат передаёт мне сигнал базовой полосы, я занимаю позицию обработки базовой полосы: модуляция/демодуляция, кодирование/декодирование, точные параметры фильтров, алгоритмы эквализации. Эти задачи не требуют одновременной обработки множества потоков данных, но каждая из них требует высокой точности и скорости вычислений».
Он начертил в воздухе круг, внутри которого мгновенно возникла плавающая цифровая матрица: тысячи чисел в ней группировались, складывались, вычитались, умножались, делились и циклически итерировались.
«У старшего брата десять тысяч рук, работающих одновременно, но каждая из них способна выполнять лишь самые простые операции. А у меня — набор команд, специально оптимизированный для обработки цифровых сигналов: одна команда выполняет работу, на которую другим требуется несколько команд. Я хоть и не так быстр, как старший брат — у меня нет десяти тысяч рук — но каждая из моих «рук» способна решать более сложные задачи».
«В SDR я отвечаю за те этапы, где требуется «мыслить». Старший брат «принимает» сигнал, а я его «понимаю». Вот моя роль».
Он опустил руки, и цифровая матрица исчезла. Прожектор снова сменил цвет — на зелёный — и осветил правую сторону сцены.
3. Младший брат CPU — главный координатор
Под зелёным прожектором на правой стороне сцены сидел человек в высоком кресле. Перед ним находился не печатный блок, а ноутбук и несколько экранов, отображающих различные состояния системы. Его внешний вид резко отличался от двух старших братьев: тёмно-серый костюм, аккуратная белая рубашка, тонкие очки в металлической оправе и авторучка, вставленная в нагрудный карман.

Он встал и поправил галстук — движение было размеренным и точным, будто вызов какой-то библиотечной функции.
«Я — CPU (центральный процессор). Старший брат стоит на переднем крае, второй брат — в ядре, а я — на самом верхнем уровне».
Он протянул правую руку, и в воздухе над сценой появилась полная схема рабочего состояния SDR-системы: конфигурация устройства, установка частоты, выбор полосы пропускания, управление частотой дискретизации, пользовательские команды, интерфейс отображения на экране, состояние приёма-передачи сетевого стека протоколов… Бесчисленные зелёные стрелки исходили с верхнего уровня и направлялись вниз, соединяясь с областями работы FPGA и DSP.
«Старший брат выполняет высокоскоростную обработку — но кто сообщает ему «какие параметры использовать в этот раз»? Второй брат реализует сложные алгоритмы — но кто указывает ему «какой именно алгоритм следует применить сейчас»? Какой диапазон частот выбрать? Как отобразить данные на пользовательском интерфейсе? Как упаковать и отправить пакеты данных? Как операционная система распределяет задачи между компонентами? Этими «управленческими» задачами занимаюсь только я».
«Я не стою на главном маршруте потока сигнала. Я нахожусь над ним. Без меня старший и второй братья могут работать, но не знают, «что именно делать» — без управления, без контроля и без взаимодействия. Именно моё присутствие придаёт всей системе направление и порядок».
Он раскрыл ладони и спокойно, но уверенно произнёс: «Старший брат — рабочий, второй брат — техник, а я — бригадир. У нас разные профессии, но без любого из нас система не сможет функционировать».
4. Совместное выступление
Дирижёр вновь поднял дирижёрскую палочку и трижды постучал ею по полу сцены.
«Все трое на месте. Пора запустить их вместе —»
Он опустил палочку.
Красный, синий и зелёный лучи одновременно вспыхнули на сцене, и трое братьев начали действовать синхронно:
- FPGA занял позицию DDC на схеме потока сигнала — красный свет закипел в его руках: миллиарды потоков данных одновременно подвергались смешению частот, фильтрации и декимации. Его «десять тысяч рук» мелькали с невероятной скоростью, словно высокоточный параллельный ткацкий станок.
- DSP занял позицию обработки базовой полосы на схеме потока сигнала — синий свет окутал его: модуляция/демодуляция, кодирование/декодирование, оптимизация параметров фильтров, алгоритмы эквализации — строки точных вычислений текли у него под пальцами.
- CPU парил над всей схемой потока сигнала, зелёные управляющие линии одновременно тянулись к областям FPGA и DSP, передавая им команды по частоте, конфигурационные параметры и расписание задач.
Сигнал двигался слева направо — РЧ-передняя часть → АЦП → FPGA (красный) → DSP (синий) → выход. CPU постоянно оставался над схемой, и зелёные линии никогда не прерывались.
Три луча — красный, синий и зелёный — сошлись в центре сцены, не перекрываясь и не мешая друг другу. Они напоминали три параллельные реки, каждая из которых отвечает за свой участок пути, а затем все они впадают в одно устье.

«Это и есть гетерогенная вычислительная архитектура SDR», — сказал дирижёр. «Старший брат FPGA занимает позицию DDC/DUC — он берёт на себя тяжёлую работу. Второй брат DSP находится на позиции обработки базовой полосы — он решает точные задачи. Младший брат CPU располагается на самом верхнем уровне — он управляет всем процессом. Трое братьев стоят в разных местах тела SDR, чётко разделяя обязанности, и только тогда плата SDR действительно «оживает»».
5. Вариация эпохи — когда второго брата нет на месте
Алиса собиралась зааплодировать, но вдруг вспомнила один вопрос: «На схеме потока сигнала в коридоре трое братьев стоят на своих местах. Но я, кажется, видела в выставочном зале разборку некоторых устройств SDR — на них не было отдельного чипа DSP?»
Дирижёр бросил на неё взгляд и улыбнулся: «Вы очень внимательны. Вы совершенно правы — не во всех устройствах SDR присутствует отдельный чип DSP».
Он вновь зажёг небольшой светильник у края сцены, осветив упрощённую схему платы.
«Это классическая архитектура ранних SDR — три отдельных чипа: FPGA, DSP и CPU, каждый выполняет свою функцию. Но технологии развиваются: возможности FPGA постоянно растут — теперь они не только обеспечивают параллельную обработку, но и могут интегрировать специализированные аппаратные умножитель-сумматоры; CPU также становится всё быстрее, и программные алгоритмы на нём способны выполнять задачи цифровой обработки сигналов, которые ранее требовали отдельного аппаратного DSP».
«Значит, второй брат DSP…» — осторожно спросила Алиса — «остался без работы?»
Дирижёр покачал головой: «Нет, он не остался без работы — он перешёл на другое место».
Он показал на схеме: «В некоторых устройствах «точные задачи» второго брата были поглощены старшим братом FPGA. Современные высокопроизводительные FPGA содержат в себе DSP Slice — специализированные аппаратные умножитель-сумматоры, производительность которых не уступает отдельному чипу DSP».
«В других устройствах функции DSP заменяются программными алгоритмами на CPU. Поскольку CPU становится всё быстрее, а его набор команд оптимизирован специально для обработки сигналов, скорость выполнения фильтров и алгоритмов модуляции/демодуляции вполне достаточна для многих сценариев применения».
«А в некоторых устройствах FPGA и CPU даже объединены в одном чипе — старший и младший братья живут в одной комнате».
Алиса смотрела на схему, которая постоянно изменялась: «А метафора трёх братьев всё ещё актуальна?»
Дирижёр задумался на мгновение: «Да, она остаётся актуальной. Логика разделения обязанностей не изменилась: высокоскоростная параллельная обработка — за FPGA, точные математические вычисления — за «обязанностями» DSP, управление и координация — за CPU. Просто теперь эти обязанности могут выполняться разными физическими носителями. Иногда DSP — это отдельный чип, иногда — просто функциональный модуль внутри FPGA, а иногда — всего лишь оптимизированный программный код на CPU».
«Обязанности остаются неизменными, но их носители могут меняться. Вот в чём реальность инженерного дела: теоретическое разделение ролей чёткое, но практическая реализация — гибкая и адаптивная».
6. Завершение спектакля
Три прожектора медленно погасли. Трое братьев сошли со сцены: старший брат убрал свои «десять тысяч рук», второй брат закрыл логарифмическую линейку, а младший брат закрыл ноутбук. Их силуэты исчезли в боковых кулисах.
Но сцена не стала полностью тихой. На занавесе схема потока сигнала продолжала светиться — красные, синие и зелёные метки по-прежнему мерцали на своих местах, как вечные фонари.
«Этот спектакль никогда не заканчивается», — дирижёр выглянул из боковых кулис, — «просто прожекторы погасли. Как только плата SDR получает питание, трое братьев начинают работать — без перерыва, день и ночь».
Алиса сошла со сцены. Теперь она поняла распределение обязанностей в цифровой части SDR: тяжёлая работа — за FPGA, точные вычисления — за DSP, управленческие задачи — за CPU. Трое братьев стоят на своих местах и совместно обеспечивают прохождение сигнала от антенны до антенны.
Подходя к выходу из театра, она ещё раз оглянулась на схему потока сигнала на занавесе — красная метка на позиции DDC и DUC по-прежнему светилась.
Следующая остановка — родная территория старшего брата FPGA.
(Продолжение следует. Следующая глава: «Фабрика цифрового преобразования частоты» — Алиса войдёт в родную территорию старшего брата FPGA и увидит полный цикл работы DDC и DUC: смешение частот, фильтрация, декимация и интерполяция. Она обнаружит, что приём и передача — это обратные варианты одной и той же операции, а DDC и DUC образуют идеальное зеркальное отражение друг друга.)
【Краткий обзор ключевых понятий четвёртой главы】
| Понятие SDR | Сказочное воплощение |
| Роль FPGA в SDR | DDC/DUC — высокоскоростное цифровое преобразование частоты, фильтрация, декимация, интерполяция |
| Роль DSP в SDR | Обработка базовой полосы — модуляция/демодуляция, кодирование/декодирование, эквализация, точная фильтрация |
| Роль CPU в SDR | Самый верхний уровень системы — управление и координация, сетевой стек протоколов, пользовательский интерфейс, планирование задач |
| Гетерогенная вычислительная архитектура | Трое братьев на своих местах — тяжёлая работа / точные вычисления / управленческие задачи, совместное взаимодействие |
| Взаимосвязь трёх компонентов | Цепочка обработки сигнала: FPGA → DSP → CPU; обратное управление CPU по отношению к первым двум |
| Соотношение обязанностей и их носителей | Отдельный чип DSP присутствует не во всех устройствах SDR — обязанности второго брата могут выполняться аппаратными блоками внутри FPGA или программным кодом на CPU; обязанности неизменны, а их носители могут меняться |
Анонс следующей главы
«Фабрика цифрового преобразования частоты» — Алиса войдёт в родную территорию старшего брата FPGA и увидит полный цикл работы DDC и DUC: смешение частот, фильтрация, декимация и интерполяция. Она обнаружит, что приём и передача — это обратные варианты одной и той же операции, а DDC и DUC образуют идеальное зеркальное отражение друг друга.
Этот материал является оригинальным. При цитировании необходимо указывать автора, название официального канала WeChat и официальный сайт (https://www.dyaotech.com). Любое несанкционированное изменение текста или его коммерческое использование запрещено.
