Engenheiros do Facebook Abrem Código do Appliance de Tempo de Precisão para Data Centers
A equipe de engenharia do Facebook projetou e lançou um appliance de tempo de alta precisão, um elemento chave da infraestrutura de temporização moderna de data centers. Ao criar o time card — um cartão PCIe que transforma qualquer servidor commodity em uma fonte de tempo Stratum-1 — e fazer parceria com o Open Compute Project (OCP), a empresa disponibilizou todos os componentes do Open Time Server sob licença open-source.
Em março de 2020, o Facebook anunciou a migração de seus servidores de data center e produtos de consumo para um novo serviço NTP (Network Time Protocol) interno. A atualização elevou a precisão da manutenção de tempo de 10 ms para 100 µs, permitindo controle de infraestrutura mais fino e desempenho mais rápido de bancos de dados distribuídos.
A nova arquitetura NTP depende de uma fonte Stratum-1 — diretamente vinculada a um relógio autoritativo como um Sistema Global de Navegação por Satélite (GNSS) ou um relógio de césio:

Pools NTP públicos (ex.: time.facebook.com) são convenientes, mas introduzem dependências de conectividade com a internet e expõem sistemas a possíveis interrupções ou deriva. Para eliminar esses riscos, foi construído um appliance de hardware dedicado que integra um receptor GNSS com um relógio atômico miniaturizado (MAC). O time card encapsula essa funcionalidade em uma placa PCIe, permitindo que qualquer servidor x86 equipado com NIC de timestamping de hardware se torne uma fonte Stratum-1.
Por que um Novo Dispositivo de Tempo?
Appliances de tempo comerciais são testados em batalha e frequentemente estáveis, mas vêm com desvantagens significativas:
- Podem estar desatualizados e vulneráveis a falhas de segurança, com ciclos de patch que duram meses ou anos.
- Firmware closed-source limita configuração e monitoramento; CLIs proprietárias ou interfaces web dificultam automação.
- Hardware proprietário não é reparável — falha de componente requer reparo do fornecedor ou nova unidade.
- Produção de baixo volume leva a markups altos, tornando a operação de longo prazo cara.
Essas limitações forçaram muitas organizações a aceitar trade-offs. A decisão foi explorar uma alternativa: um appliance de tempo open-source, purpose-built, baseado em hardware x86.
Prototipando o Appliance de Tempo
O conceito inicial combinava um receptor GNSS, um oscilador de alta estabilidade e processamento baseado em FPGA em um único cartão PCIe — veja o diagrama de blocos abaixo:

O módulo GNSS fornece tanto time-of-day (ToD) quanto um sinal de um pulso por segundo (PPS). Quando emparelhado com um oscilador de alta estabilidade — como um oscilador de rubídio ou cristal controlado por forno — o sistema pode alcançar precisão de nível nanosegundo. O PPS e ToD são alimentados para uma NIC de alto desempenho (ex.: NVIDIA Mellanox ConnectX-6 Dx) que suporta timestamping de hardware e PPS in/out.
Usando a ferramenta ts2phc, sincronizamos o relógio físico da NIC ao PPS do GNSS dentro de algumas dezenas de nanosegundos, validando nossa abordagem:

Para aumentar a confiabilidade, separamos o design em dois blocos lógicos: o payload (motor de tempo de precisão) e o delivery (a NIC). O payload interpola tempo entre pulsos PPS consecutivos usando um motor baseado em FPGA e um oscilador local. Em caso de perda de GNSS, o motor conta com a estabilidade inerente do relógio atômico.

O motor de tempo implementa filtragem, sincronização, verificação de erros e subsistemas PCIe. Ele calibra continuamente o MAC comparando seu contador ao PPS do GNSS, alcançando precisão sub-nanosegundo por períodos estendidos.

Aproveitando uma referência de 10 MHz (de um relógio de rubídio ou entrada SMA externa), fazemos up-convert para 125 MHz (períodos de 8 ns) e associamos incrementos sub-segundo a passos de 250 ps. Um loop proporcional-integral ajusta finamente a frequência via PLL de 12,5× e, se necessário, ajustes diretos no oscilador.
Holdover — perda de precisão de tempo quando GNSS está indisponível — é uma métrica crítica. Nosso protótipo alcançou menos de 300 ns de deriva em 24 horas, bem dentro das especificações do MAC SA.53s.
O Appliance de Tempo em Ação
Uma vez instalado, o time card transforma qualquer servidor x86 compatível em uma fonte de tempo Stratum-1, independente de NTP, PTP, SyncE ou outros protocolos. A precisão do sistema é suficiente para a maioria das necessidades de sincronização de tempo empresariais.

A configuração é direta: instale kernel Linux 5.15+ (ou compile o driver do repositório GitHub do OCP no kernel 5.12+). O driver expõe dispositivos PHC, GNSS, PPS e MAC sob /sys/class/timecard/ocp0/:
$ ls -l /sys/class/timecard/ocp0/
lrwxrwxrwx. 1 root 0 Aug 3 19:49 device -> ../../../0000:04:00.0/
-r--r--r--. 1 root 4096 Aug 3 19:49 gnss_sync
lrwxrwxrwx. 1 root 0 Aug 3 19:49 i2c -> ../../xiic-i2c.1024/i2c-2/
lrwxrwxrwx. 1 root 0 Aug 3 19:49 pps -> ../../../../../virtual/pps/pps1/
lrwxrwxrwx. 1 root 0 Aug 3 19:49 ptp -> ../../ptp/ptp2/
lrwxrwxrwx. 1 root 0 Aug 3 19:49 ttyGNSS -> ../../tty/ttyS7/
lrwxrwxrwx. 1 root 0 Aug 3 19:49 ttyMAC -> ../../tty/ttyS8/
Configure chrony ou um daemon PTP para usar o PHC como relógio de referência:
# chrony refclock PHC /dev/ptp2 tai poll 0 trust
Validação com um Calnex Sentinel mostra ±40 µs de estabilidade NTP em 48 horas e offsets PTP sub-nanosegundo. O erro combinado de PPS entre o time card e o Sentinel permanece dentro de ±200 ns.



O design modular também permite trocar o MAC por um OCXO ou TCXO mais econômico, trocando desempenho de holdover por orçamento.
Open-Source do Design
Para ampliar o impacto, fizemos parceria com o Open Compute Project para lançar o Time Appliance Project (TAP). Todas as especificações, esquemáticos, BOMs, desenhos mecânicos e código-fonte estão publicamente disponíveis no repositório GitHub do TAP. Fornecedores como Orolia e NVIDIA já estão produzindo o time card e NICs de precisão de tempo, respectivamente.
Nossa especificação do Open Time Server detalha como montar a pilha de hardware e software para criar um appliance de tempo robusto e totalmente controlado. Ao possuir todo o sistema, engenheiros ganham visibilidade mais profunda, segurança mais apertada e manutenção mais simples.
Embora o appliance atual represente um grande avanço, continuaremos refinando a precisão, escalando a sincronização pela infraestrutura global do Facebook e compartilhando avanços com a comunidade open-compute.
Integrado
- A Ampulheta: História, Artesanato e Atrativo Moderno
- Dominando time.sleep() do Python: Boas Práticas, Multithreading e Exemplos Reais
- Maximize a Produtividade: Como o Software de Manutenção Reduz Custos e Economiza Tempo
- Repensando a Gestão de Inventário: Estratégias Modernas para Fabricantes
- Líderes de Cadeia de Suprimentos: Abracem Estratégia Ofensiva para Crescimento e Resiliência
- Gêmeos Digitais Aumentam Confiabilidade Pontual da Linha Principal da Costa Oeste
- Dominando Datas e Horas em Python: Guia Prático
- Entendendo Interfaces Homem-Máquina (IHMs) na Indústria Moderna
- Crescent Crown Aumenta Eficiência e Reduz Custos com Automação AP DocStar ECM
- Otimize sua Manufatura e Envio: Estratégias Comprovadas para Cortar Custos e Aumentar Eficiência