Facebook ha desarrollado una tarjeta PCIe abierta con reloj atómico
Hace algunos dias se dio a conocer la noticia de que Facebook publico los desarrollos relacionados con la creación de una placa PCIe, que tiene incluida la implementación de un reloj atómico en miniatura y un receptor GNSS.
La placa se diseñó originalmente como un dispositivo modular, lo que permite el uso de una variedad de chips de reloj atómico y módulos GNSS disponibles en el mercado, como SA5X, mRO-50, SA.45s y u-blox RCB-F9T. Orolia tiene la intención de comenzar la producción de tableros terminados según las especificaciones preparadas.
La tarjeta de tiempo se está desarrollando como parte de un proyecto de dispositivo de tiempo más global destinado a proporcionar componentes para la creación de servidores de tiempo primarios (Time Master) (Open Time Server) que se pueden implementar en su infraestructura y utilizar, por ejemplo, para organizar la sincronización de tiempo en centros de datos.
El uso de un servidor autónomo permite no depender de servicios de red externos para sincronizar la hora exacta, y la presencia de un reloj atómico incorporado proporciona un alto nivel de autonomía en caso de fallas en la recepción de datos del satélite sistemas (por ejemplo, debido a condiciones climáticas o ataques).
La nueva arquitectura de tiempo basada en NTP utiliza un Estrato 1 , un componente importante que está directamente vinculado a una fuente de tiempo autorizada, como un sistema global de navegación por satélite (GNSS) o un reloj de cesio.
La peculiaridad del proyecto es que para construir un servidor de tiempo primario, se puede utilizar un servidor normal basado en la arquitectura x86, que incluye una tarjeta de red típica y una tarjeta de tiempo.
En dicho servidor, la información sobre la hora exacta se recibe de los satélites a través de GNSS y el reloj atómico actúa como un oscilador altamente estable, lo que permite mantener un alto nivel de precisión en caso de que no se reciba información a través de GNSS. La posible desviación de la hora exacta en caso de imposibilidad de recibir datos a través de GNSS en la placa propuesta se estima en unos 300 nanosegundos por día.
El controlador ocp_pt se ha preparado para Linux y está previsto que se incluya en el kernel principal de Linux 5.15.
El controlador implementa interfaces PTP POSIX (/dev/ptp2), GNSS a través del puerto serie /dev/ttyS7, reloj atómico a través del puerto serie /dev/ttyS8 y dos dispositivos i2c /dev/i2c- *, con los cuales se puede acceder a las capacidades del reloj de hardware (PHC) desde el entorno del usuario.
Al iniciar el servidor NTP (Protocolo de tiempo de red), se sugiere usar Chrony y NTPd, y al iniciar el servidor PTP (Protocolo de tiempo de precisión), se sugiere usar ptp4u o ptp4l en combinación con la pila phc2sys que proporcionar la copia de valores de tiempo de un reloj atómico a una tarjeta de red.
La coordinación del funcionamiento del receptor GNSS y el reloj atómico se puede realizar tanto en hardware como en software. La funcionalidad de hardware del módulo de emparejamiento se implementa sobre la base de FPGA, y la versión de software funciona al nivel de monitoreo directo del estado del receptor GNSS y el reloj atómico desde aplicaciones como ptp4l y chronyd.
La razón para el desarrollo de una placa abierta en lugar de utilizar soluciones listas para usar disponibles en el mercado, es la naturaleza patentada de dichos productos, lo que no nos permite asegurarnos de que la implementación sea correcta, el software propuesto no cumple con los requisitos de seguridad. (en la mayoría de los casos, se suministran programas obsoletos y la entrega de correcciones de vulnerabilidades puede llevar meses o incluso años), así como capacidades de configuración y monitoreo limitado (SNMP) (se ofrece su propia CLI o interfaz de usuario web).
La placa se puede utilizar para organizar el trabajo de servidores de sincronización de tiempo separados. Las especificaciones, esquemas, BOM, Gerber, PCB y archivos CAD necesarios para fabricar la placa se publican en GitHub.
Fuente: https://engineering.fb.com