Компания Facebook опубликовала наработки, связанные с созданием PCIe-платы, включающей реализацию миниатюрных атомных часов и GNSS-ресивера. Плата может применяться для организации работы обособленных серверов синхронизации точного времени. Спецификации, схемы, BOM, Gerber, PCB и CAD-файлы, необходимые для производства платы, опубликованы на GitHub. Плата изначально спроектирована как модульное устройство, допускающее использование различных готовых чипов атомных часов и GNSS-модулей, таких как SA5X, mRO-50, SA.45s и u-blox RCB-F9T. Производство готовых плат на базе подготовленных спецификаций намерена начать компания Orolia.
Плата Time Card развивается как часть более глобального проекта Time Appliance, нацеленного на предоставление компонентов для создания первичных (Time Master) серверов точного времени (Open Time Server), которые могут быть развёрнуты в своей инфраструктуре и использоваться, например, для организации синхронизации времени в датацентрах. Использование обособленного сервера позволяет не зависеть от внешних сетевых сервисов синхронизации точного времени, а наличие встроенных атомных часов предоставляет высокий уровень автономности в случае сбоев получения данных от спутниковых систем (например, из-за погодных условий или атак).
Особенность проекта в том, что для построения первичного сервера точного времени можно использовать обычный сервер на базе архитектуры x86, включающий типовую сетевую карту и плату Time Card. В подобном сервере информация о точном времени принимается со спутников через GNSS, а атомные часы выступают в роли высокостабильного осцилятора, позволяющего поддерживать высокий уровень точности в случае сбоя получения сведений через GNSS. Возможное отклонение от точного времени в случае невозможности получения данных через GNSS в предложенной плате оценивается примерно в 300 наносекунд в сутки.
Для Linux подготовлен драйвер ocp_pt, который планируется включить в основной состав ядра Linux 5.15. В драйвере реализованы интерфейсы PTP POSIX (/dev/ptp2), GNSS через последовательный порт (/dev/ttyS7), атомные часы через последовательный порт (/dev/ttyS8) и два устройства i2c (/dev/i2c-*), при помощи которых может быть организован доступ к возможностям аппаратных часов (PHC) из пользовательского окружения. При запуске NTP-сервера (Network Time Protocol) предлагается использовать Chrony и NTPd, а при запуске сервера PTP (Precision Time Protocol) — ptp4u или ptp4l в сочетании со стеком phc2sys, обеспечивающим копирование значений времени из атомных часов в сетевую карту.
Согласование работы GNSS-ресивера и атомных часов может производиться как аппаратно, так и программно. Аппаратно функциональность согласующего модуля реализована на основе FPGA, а программный вариант работает на уровне прямого мониторинга состояния GNSS-ресивера и атомных часов из приложений, подобных ptp4l и chronyd.
В качестве причины разработки открытой платы вместо использования имеющихся на рынке готовых решений называется проприетарный характер подобных продуктов, не позволяющий убедиться в корректности реализации, несоответствие предлагаемого программного обеспечения требованиям безопасности (в большинстве случаев поставляются устаревшие программы, а доставка исправлений уязвимостей может затянуться на месяцы или даже годы), а также ограниченные возможности мониторинга (SNMP) и настройки (предлагаются свои CLI или Web UI).
Источник: opennet.ru