Download - Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP
![Page 1: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/1.jpg)
Денис Габидуллин
Программно-аппаратнаяразработка с использованием
FPGA на примереподдержки протокола PTP
![Page 2: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/2.jpg)
Денис Габидуллин
● Задачи не для CPU
● FPGA и SoC -- что это такое?
● Пример задачи -- протокол PTP
● Архитектура системы
● Сравнение реализаций
План доклада
![Page 3: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/3.jpg)
Денис Габидуллин
Задачи не для CPU
● Высокая пропускная способность
● Пример -- обработка 10G/40G/100G Ethernet
![Page 4: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/4.jpg)
Денис Габидуллин
Задачи не для CPU
● Минимальные задержки (десятки наносекунд)
● Пример -- финансовые операции, HFT
![Page 5: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/5.jpg)
Денис Габидуллин
Задачи не для CPU
● Получение детерминированных задержек
● Обработка данных в реальном времени
● Пример -- поддержка PTP, обработка видео
![Page 6: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/6.jpg)
Денис Габидуллин
● Высокая пропускная способность
● Минимизация задержек
● Real Time Data Processing
● Произвольная степень параллелизма
Когда CPU не Ваш друг?
![Page 7: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/7.jpg)
Денис Габидуллин
● FPGA - Field-Programmable Gate Array
● По сути -- средняя/большая громадная цифровая схема
● Параллелизм ограничен только Вашим воображением
Что такое FPGA?
![Page 8: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/8.jpg)
Денис Габидуллин
FPGA - Field Programmable Gate Array
![Page 9: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/9.jpg)
Денис Габидуллин
Cyclone V Adaptive Logic Module (ALM)
![Page 10: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/10.jpg)
Денис Габидуллин
● Logic Elements -- до 1M штук
● Триггеры -- до 1.5M штук
● Внутренняя память -- до 50-100 Mbit
● Трансиверы -- до 30 Gbps на пин, до 50 штук
● DSP блоки -- суммарно до 1 TFLOPS
● Интерфейсы -- DDR3, DDR4, QDRII+, PCIe Gen3
● Встроенные ARM
Что есть в FPGA?
![Page 11: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/11.jpg)
Денис Габидуллин
Altera SoC = HPS(CPU) + FPGA
![Page 12: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/12.jpg)
Денис Габидуллин
Основные интерфейсы между HPS и FPGA
● HPS-to-FPGA
● Lightweight HPS-to-FPGA
● FPGA-to-HPS
● FPGA-to-SDRAM
![Page 13: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/13.jpg)
Денис Габидуллин
Что такое PTP?
PTP (англ. Precision Time Protocol — «протокол точного времени») — это
протокол, используемый для синхронизации часов по компьютерной сети.
Обладает гораздо более высокой точностью, чем NTP.
В частности, нужен для измерения задержек в асимметричных каналах.
![Page 14: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/14.jpg)
Денис Габидуллин
Обмен сообщениями в PTP
![Page 15: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/15.jpg)
Денис Габидуллин
Network Interface Controller (NIC)
![Page 16: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/16.jpg)
Денис Габидуллин
Архитектура NIC
![Page 17: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/17.jpg)
Денис Габидуллин
● Аппаратные часы с подстройкой -- PTP Hardware Clock (PHC)
● Сохранение временных меток на приёме (TX) и передаче (RX)
Что нужно для поддержки PTP в NIC?
![Page 18: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/18.jpg)
Денис Габидуллин
Архитектура
![Page 19: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/19.jpg)
Денис Габидуллин
● IP-корка PTP Hardware Clock (PHC)
● Драйвер для управления и настройки PHC
● IP-корка для вставки временной метки в RX пакеты
● IP-корка для сохранения времени отправки TX пакетов
● Изменения в сетевом драйвере
Необходимые компоненты
![Page 20: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/20.jpg)
Денис Габидуллин
PTP Hardware Clock (PHC)
● Счётчик времени в 8-ми наносекундных HW-тиках (для совместимости с сигнатурой RFC2544)
● Clock adjust -- изменение времени на заданную величину.
● Frequency adjust -- изменение частоты.
● Генерация IRQ в начале каждой секунды. Для поддержки PPS.
![Page 21: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/21.jpg)
Денис Габидуллин
RX Timestamping IP-core
● Сохраняет время приёма пакета
● Вставляет время в тело пакета (первые два слова).
● Время сохраняется для каждого пакета.
![Page 22: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/22.jpg)
Денис Габидуллин
RX Timestamping IP-core
![Page 23: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/23.jpg)
Денис Габидуллин
TX Timestamping IP-core
● Запоминает время отправки пакета. CPU может прочитать его через регистры.
● В очереди может быть только один пакет.
![Page 24: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/24.jpg)
Денис Габидуллин
Нужно ли это всё?
![Page 25: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/25.jpg)
Денис Габидуллин
Тестовый стенд
![Page 26: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/26.jpg)
Денис Габидуллин
Программная реализация
![Page 27: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/27.jpg)
Денис Габидуллин
Аппаратная реализация
![Page 28: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/28.jpg)
Денис Габидуллин
Сравнение
![Page 29: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/29.jpg)
Денис Габидуллин
Программная реализация
![Page 30: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/30.jpg)
Денис Габидуллин
Аппаратная реализация
![Page 31: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/31.jpg)
Денис Габидуллин
Сравнение
![Page 32: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/32.jpg)
Денис Габидуллин
Смещение (нс) Задержка (нс)
Программная реализация
от -12000до +20000
от 40000до 60000
Аппаратная реализация
от -40до +50
от 1220до 1250
Сравнение
![Page 33: Программно-аппаратная разработка с использованием FPGA на примере поддержки протокола PTP](https://reader031.vdocuments.pub/reader031/viewer/2022030304/587928a61a28ab7c448b4de1/html5/thumbnails/33.jpg)
Денис Габидуллин
Спасибо за внимание!Ваши вопросы?