网路

在 NVIDIA Spectrum 交换机上使用精确定时协议计算和同步时间

PTP 使用一种算法和方法在基于数据包的网络上同步各种设备上的时钟,以提供亚微秒精度。 NVIDIA Spectrum 支持一步和两步模式的 PTP ,可以用作边界或透明时钟。

以下是交换机作为透明时钟时,如何在一步模式下计算和同步时间。在这篇文章的后面,我回顾了 PTP 的整体准确性。

一步模式下计算和同步时间

在一步模式下,当用作透明时钟时,交换机必须实时计算 PTP 数据包的驻留时间。它通过比较数据包到达的时间( t1 )和数据包离开的时间( t2 )来实现这一点。然后,交换机相应地更改数据包的校正字段。

要执行此计算,交换机使用多个硬件功能:

  • ASIC 上的同步时钟
  • 数据包进入交换机时的准确时间戳
  • 数据包离开交换机的时间计算

ASIC 上的同步时钟

由于入口处的 t1 和出口处的 t2 位于两个不同的交换机端口上, ASIC 不同部分之间的时间同步必须具有高分辨率,以保持准确的比较。

在有时工作于不同频率的不同硬件单元之间同步时间戳是一项挑战。频谱系列 ASIC 可以保持小于 4 纳秒的同步误差。

数据包进入交换机时的准确时间戳

为了实现准确的一步 PTP ,交换机必须记录其接收数据包的准确时间。

当交换机从线路接收比特时,它必须将它们组合起来,然后将数据包解析并识别为 PTP 。这个过程需要时间,必须加以考虑,以便数据包上的时间戳和位进入交换机的实际时间之间没有差异。

为了解决这个问题,交换机包括一个指定的硬件计数器,用于计算线路和数据包程序集之间的位数。该计数器可以根据协议转换为延迟,然后从 t1 时间戳中减去,以确定数据包的准确到达时间。

数据包离开交换机的时间计算

计算数据包提前离开交换机的时间也是一个挑战。这是因为延迟通常会受到队列和交换机计算时间戳时无法访问的其他参数的影响。

为了解决这个挑战,交换机为数据包安排一个未来的出口时间,然后根据这个时间给数据包加时间戳。然后, PTP 数据包必须等待确切的出口时间。

Schematic drawing of the PTP packet modification.
图 1.交换机中的 PTP 包修改

PTP 量表

其他供应商使用该软件来匹配 PTP 数据包及其时间戳。 NVIDIA Spectrum-2 和更高版本的 ASIC 采用了不同的方法。它们完全通过硬件处理 PTP 流;软件不需要任何东西。这种实现有很多优点。

频谱方法可以更好地扩展 PTP 流,并且交换机有限的计算资源没有负担。当用作边界时钟时,规模仅受 CPU 主机功能的限制。对于一个不涉及软件的透明时钟,在技术上没有规模限制。

软件处理是串行的,比硬件慢。因此,如果需要软件干预, PTP 数据包在交换机上的驻留时间会更长。该过程增加了网络中主要实体和跟随实体之间的延迟,并可能间接破坏同步过程,该过程假定网络中点到点的遍历时间恒定。

PTP 精度

NVIDIA Spectrum 交换机的总 PTP 精度约为 10 纳秒。对于所有速度和 FEC 配置,均保持此精度。

下图显示了 Spectrum-3 交换机上的 PTP 精度。

Schematic drawing of IXIA serving as primary and follower connected to the Spectrum-3 switch.
图 2.用于测量 PTP 精度的设置
Graph of offset between primary and follower port of IXIA.
图 3.与主设备的偏移量(纳秒)

这些结果来自于一个小时的测试,测试速度为 50 Gbps ,其中 IXIA 作为连接到 NVIDIA Spectrum-3 交换机的先导时钟。交换机用作边界时钟。另一个 IXIA 端口充当跟随器,测量每个数据包与主端口相比的时间偏移。

有关详细信息,请参阅以下资源:

 

Tags