PTM - Precision Time Measurement 

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 использует следующий принцип:

  1. Операционная система отправляет запрос на измерение времени к PHC.
  2. PHC фиксирует точное время получения запроса (на аппаратном уровне).
  3. PHC возвращает измеренное значение в ОС.
  4. ОС сравнивает системное время отправки запроса с полученным от PHC временем.
  5. Разница между этими значениями — искомая задержка (PTM offset).

Условия автоматической аннулизации контекста PTM

Контекст PTM автоматически становится недействительным в следующих случаях:

  1. Остановка тактового сигнала или его работа на некорректной частоте
  2. (например, при изменении скорости соединения).
  3. Отключение функции PTM.
  4. Превышение времени ожидания ответа PTM
  5. (инициатор перезапускает диалог PTM, когда выполняются условия запуска автоматического или ручного обновления).
  6. Получение дубликата PTM TLP или отправка TLP с повторной передачей
  7. (если ожидается ответ, инициатор ждёт 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

Report Page