EdigE
← ЛЕНТА

Zynq научили выгружать ультразвуковые кадры в RDMA на 95.6 Gb/s

Сотни каналов ультразвуковой решётки нужны, чтобы по задержкам прихода эха собрать изображение ткани. Каждый канал при этом сохраняет полную радиочастотную форму импульса: для 256 каналов, 16 бит и 80 MSPS получается входной поток 327 Gbit/s. Вылить такой поток непрерывно в один 100GbE-линк нельзя. Но кадр длится десятки микросекунд, после чего данные можно быстро снять из кольцевого буфера — если тракт между АЦП и сетевой картой не заставляет их проходить через CPU.

Шестнадцать входов, ширина на 256

Демонстратор построен вокруг Zynq UltraScale+ ZU19EG. Шестнадцать реальных каналов AFE58JD48 оцифровывают сигнал с частотой до 125 MSPS; в raw-RF режиме авторы используют 80 MSPS. JESD204B Subclass 1 получает общий AFECLK и SYSREF, поэтому границы выборок всех каналов привязаны к одному времени. После приёма FPGA собирает слова в 1024-битный AXI-Stream. В стенде 240 каналов заполняются синтетическими данными: так проверяется цифровой тракт шириной 256 каналов, хотя аналоговая часть пока имеет 16 входов.

За отправку отвечает ERNIC — RDMA-ядро в программируемой логике. Оно читает dual-port кольцевой буфер в URAM и записывает блоки сразу в память рабочей станции с Mellanox ConnectX-7. Центральный процессор здесь остаётся диспетчером, а не перевозчиком каждого байта. В тесте FPGA-to-PC вместо JESD-входа использовались dummy data из BRAM и новый RDMA-запрос запускался сразу после завершения предыдущего. При payload 1 MiB и batch size 16 авторы получили 95.6 Gb/s, усредняя по десяти прогонам; разброс составил ±0.1 Gb/s. Для блоков 256 KiB и batch size 8 результат достиг 87 Gb/s.

Сеть забирает кадр прямо из FPGA

Аналоговый приёмник тоже проверили отдельно: на вход подавали синус 100 mVpp в 50 Ω, записывали по 32768 отсчётов на частоту при 125 MSPS. Полоса по уровню −3 dB составила 0.99–46.35 MHz относительно максимума на 8 MHz, а заявленный нормированный к full scale SNR превышал 56 dB в измеренном диапазоне. Сквозную работу показали на 16 физических каналах с ультразвуковым phantom и с оптоакустическим phantom, освещённым лазерным диодом 808 nm. Для передачи эти опыты также дополнялись до 256-канального payload.

Модель для полной 256-канальной установки предполагает 4 MiB ring buffer и измеренную скорость чтения ERNIC. Она даёт максимум 5639 отсчётов на канал при 4.14 kFPS либо 11.7 kFPS для кадров по 2000 отсчётов. Это расчёт по модели leaky bucket, а не измеренная частота кадров готовой 256-канальной системы: авторы ещё не собрали 16 модулей AFE и pulser. Тем не менее работа аккуратно отделяет то, что уже бегает по железу, от масштабирования, которое пока существует в цифровой ширине тракта и расчёте буфера.