PTM - Precision Time Measurement
Семён сохраняет полезное_)
У компании INTEL есть много занятных технологий, одна из них это "PTM" он же Precision Time Measurement - это механизм, позволяющий измерять задержку между системными часами операционной системы и аппаратными часами PTP (PTP Hardware Clock, PHC) с высокой точностью. Она беспечивает точную координацию событий между несколькими компонентами, имеющими независимые локальные часы. Обычно такая синхронизация затруднена, поскольку отдельные часы могут по‑разному определять текущее значение времени и скорость его изменения.
Чтобы обойти это ограничение, PTM позволяет компонентам вычислять соотношение между их локальным временем и общим временем PTM (PTM Master Time) — независимой временной областью, связанной с PTM Root (корневым элементом PTM). Каждый PTM Root обеспечивает общее время PTM для всей иерархии PTM (PTM Hierarchy).
Основные компоненты системы PTM
- PTM Requester — функция‑потребитель PTM, связанная с конечной точкой (Endpoint) или восходящим портом (Upstream Port).
- PTM Responder — функция, обеспечивающая предоставление общего времени PTM, связанная с корневым портом (Root Port) или корневым комплексом (Root Complex).
- PTM Root — источник общего времени PTM для иерархии PTM; одновременно выполняет роль PTM Responder.
Как работает PTM
PTM использует следующий принцип:
- Операционная система отправляет запрос на измерение времени к PHC.
- PHC фиксирует точное время получения запроса (на аппаратном уровне).
- PHC возвращает измеренное значение в ОС.
- ОС сравнивает системное время отправки запроса с полученным от PHC временем.
- Разница между этими значениями — искомая задержка (PTM offset).
Условия автоматической аннулизации контекста PTM
Контекст PTM автоматически становится недействительным в следующих случаях:
- Остановка тактового сигнала или его работа на некорректной частоте
- (например, при изменении скорости соединения).
- Отключение функции PTM.
- Превышение времени ожидания ответа PTM
- (инициатор перезапускает диалог PTM, когда выполняются условия запуска автоматического или ручного обновления).
- Получение дубликата PTM TLP или отправка TLP с повторной передачей
- (если ожидается ответ, инициатор ждёт 100 мкс с момента отправки последнего недодублированного запроса, прежде чем разрешить начало нового диалога PTM).
Требования к оборудованию
Для работы PTM необходимы:
- Сетевая карта (NIC) с поддержкой PTP и доступом к PHC.
- Драйверы, предоставляющие интерфейс для работы с PHC и PTM (обычно через
ioctlилиnetlink). - Поддержка PTM в ядре Linux (начиная с версии 4.19).
Важные замечания
- PTM измеряет одностороннюю задержку между системными часами и PHC.
- Измеренное смещение (PTM offset) не является постоянной величиной — оно может меняться из‑за температурных колебаний, джиттера и других факторов.
- Для стабильной работы рекомендуется периодически повторять измерения PTM.
- PTM не заменяет синхронизацию PTP/NTP — это вспомогательный механизм для повышения точности.
Типичные значения PTM offset
В реальных системах PTM offset обычно находится в диапазоне:
- 100–500 нс — для качественных сетевых карт с PTP;
- до 1 мкс — для оборудования среднего уровня;
- более 1 мкс — при отсутствии оптимизации или устаревшем оборудовании.
Ограничения PTM
- Работает только с PTP‑совместимыми сетевыми картами.
- Требует поддержки в драйверах и ядре ОС.
- Не учитывает задержку в программном стеке выше драйвера.
- Эффективность зависит от стабильности аппаратных часов (PHC).
Практическое применение
PTM особенно полезен в сценариях, где:
- требуется точность синхронизации менее 1 мкс;
- используется гибридная синхронизация (PTP + NTP);
- необходимо диагностировать источники погрешности в системе времени.
Подробнее узнать можно здесь - https://www.intel.com/content/www/us/en/docs/programmable/683140/21-4-4-0-0/precision-time-measurement-ptm-58323.html