用于确定网络端口的延时的装置和方法

文档序号:7771187阅读:244来源:国知局
用于确定网络端口的延时的装置和方法
【专利摘要】一个实施例涉及一种用于确定网络端口的延时的方法。同时对用于FIFO的读取指针和写入指针进行采样。确定在读取指针和写入指针的多个样本之间的平均差值。另一实施例涉及一种用于在网络端口向分组提供时间戳的装置。寄存器使用采样时钟来对FIFO的读取指针和写入指针进行采样。逻辑电路装置确定读取指针与写入指针之间的平均差值,并且加时间戳电路装置接收平均差值并且向分组中插入时间戳。还公开了其它实施例和特征。
【专利说明】用于确定网络端口的延时的装置和方法
【技术领域】
[0001 ] 本发明总体涉及数据通信。
【背景技术】
[0002]诸如例如IEEE-1588标准之类的时间戳协议可以用来将跨数据网络的时钟同步到非常高的精确度。然而同步准确度的限制取决于置于进入和离开网络端口的分组上的时间戳的准确度。
[0003]因此,为了生成时间戳,有必要估计收发器内的数据路径中的电路结构的延时。对于高速收发器信道,在诸如IEEE-1588的协议之下对分组加时间戳以足够准确的方式估计延时是有挑战性的任务。

【发明内容】

[0004]一个实施例涉及一种用于确定网络端口的延时的方法。同时对用于FIFO的读取指针和写入指针进行采样。确定在读取指针和写入指针的多个样本之间的平均差值。
[0005]另一实施例涉及一种用于在网络端口处向分组提供时间戳的装置。寄存器使用采样时钟来对FIFO的读取指针和写入指针进行采样。逻辑电路装置确定在读取指针与写入指针之间的平均差值,以及加时间戳电路装置接收该平均差值并且向分组中插入时间戳。
[0006]另一实施例涉及一种串行接口电路,该串行接口电路包括:发射FIFO缓冲器,用于在第一时钟域中接收并行数据信号并且在第二时钟域中输出并行数据信号;发射变速箱(gearbox),用于将并行数据信号从第一宽度转换成第二宽度;以及串行化器,用于将具有以位为单位的第二宽度的并行数据信号转换成串行数据信号。该串行接口电路还包括:第一寄存器和第二寄存器,用于使用采样时钟来对用于发射FIFO缓冲器的读取指针和写入指针进行采样;逻辑电路装置,用于确定读取指针与写入指针之间的平均差值;以及加时间戳电路装置,用于接收平均差值并且在第一时钟域中向并行数据信号中插入时间戳。
[0007]另一实施例涉及一种串行接口电路,该串行接口电路包括:去串行化器,用于接收串行数据信号并且将串行数据信号转换成并行数据信号;接收器变速箱,用于将并行数据信号从第一宽度转换成第二宽度;以及接收器FIFO缓冲器,用于在第一时钟域中接收并行数据信号并且在第二时钟域中输出并行数据信号。该串行接口电路还包括:第一寄存器和第二寄存器,用于使用采样时钟来对用于接收器FIFO缓冲器的读取指针和写入指针进行采样;逻辑电路装置,用于确定读取指针与写入指针之间的平均差值;以及时间戳电路装置,用于接收平均差值并且在第二时钟域中向并行数据信号中插入时间戳。
[0008]还公开了其它实施例和特征。
【专利附图】

【附图说明】
[0009]图1描绘可以实施本发明的一个实施例于其内的收发器。
[0010]图2A是示出根据本发明的一个实施例的读取时钟与写入时钟之间的第一示例相位关系的时序图。
[0011]图2B是示出根据本发明的一个实施例的在读取时钟与写入时钟之间的第二示例相位关系的时序图。
[0012]图3是根据本发明的一个实施例的用于确定网络端口的延时的示例装置的电路框图。
[0013]图4A是根据本发明的另一实施例的用于确定网络端口的RXFIFO的延时的示例装置的电路框图。
[0014]图4B是根据本发明的另一实施例的用于确定网络端口的TXFIFO的延时的示例装置的电路框图。
[0015]图5是根据本发明的一个实施例的用于确定具有FIFO的网络端口的延时的不例方法的流程图。
[0016]图6是根据本发明的一个实施例的包括收发器电路的现场可编程门阵列(FPGA)的简化部分框图,在这些收发器电路内可以实施这里公开的装置和方法。
[0017]图7是根据本发明的一个实施例的示例数字系统的框图,在该数字系统内可以利用这里公开的装置和方法。
【具体实施方式】
[0018]一种用于提供高精确度时间戳的技术涉及到在网络端口的实际串行发射器和接收器附近运行甚高频计数器。然后可以在分组离开或者到达端口时捕获计数器值。
[0019]遗憾的是,使用这样的高频计数器在电路资源方面开销大并且需要对于并行数字电路来说在实践中可能难以实现的频率。另外,一些协议(比如对IEEE / 1588标准的最近添加)可能要求恰好正在发射的分组内放置有高精确度时间戳。在这一情况下,该时间戳必须在介质访问控制(MAC)电路装置以内以高准确度的方式获取,该MAC电路装置一般在比串行发射电路装置慢得多的频率操作。
[0020]另一种用于提供高精确度时间戳的技术可以是在从MAC电路装置到串行引脚的路径中提供恒定延时。然而当在这一路径中存在多个时钟域时,提供恒定延时并不可行。
[0021]本公开提供用于精确地估计网络端口中的延时的结构和方法。这些结构和方法能够将延时进行估计达到比用于对数据进行采样并且计算该估计的硬件的周期更小的不准确度(即达到比该周期更好的准确度)。这些结构和方法可以例如应用于在IEEE-1588之下对分组加时间戳的问题。在一个特定实现方式中,公开的结构和方法可以用来在以6.4纳秒的周期操作的硬件上运行之时来针对IOGb以太网实现200皮秒的理论准确度。
[0022]例如考虑在图1中描绘的收发器电路装置内的多个时钟域。如图所示,多个时钟域可以包括串行时钟域110、数据有效(中间)时钟域120和协议并行时钟域130。在一个示例中,串行时钟域110可以具有10.3千兆赫(GHz)的时钟频率,数据有效时钟域120可以具有258兆赫(MHz)的时钟频率,并且协议并行时钟域可以具有156MHz的时钟频率。在其它实现方式中,时钟域可以具有其它时钟频率。
[0023]在接收器(RX)路径中,RX去串行化器电路142将串行时钟域110中的串行位流转换成数据有效时钟域120中的M位宽的并行位流。RX(M到N)变速箱电路144将M位字转换成N位字,其中N大于M。例如M可以是四十并且N可以是六十六。在其它实现方式中M和N可以是其它数。
[0024]由于N大于M,所以RX变速箱电路144没有足够数据带宽传入而以每个循环提供更宽的字(N位宽)。这样,RX变速箱电路144还输出数据有效信号145。对于M到N变速箱144,在N个时钟周期的循环中确立数据有效信号145M次。换而言之,在N个时钟循环的时段期间,数据有效信号在M个时钟循环期间确立并且在(N-M)个时钟循环期间取消确立(de-assert)。例如,如果M=40并且N=66,则RX40-66变速箱并且在三十三个时钟周期的循环中确立数据有效信号145 二十次。
[0025]RX块对准电路146确定时钟边界并且将接收的数据与那些时钟边界对准。确定时钟边界可以例如通过搜寻用于N位块的多位首部(header)。对准的N位块被向RX FIFO(先入先出)缓冲器148传送。RX块对准电路146也向RX FIFO缓冲器148传递数据有效信号145,其中处于更高时钟速率的数据移向更低频率(串行速率除以协议的数据宽度)而无有效信号(即数据在每个时钟循环有效)。
[0026]RX FIFO缓冲器148用作从数据有效时钟域120到协议并行时钟域130的时钟交叉桥(clock crossing bridge)。RX FIFO缓冲器148可以具有Dk个块的深度。例如深度可以是十六个块(即Dk=16)。可以实施其它深度。
[0027]RX MAC电路装置149在协议并行时钟域130中操作。RXMAC电路装置149接收RXFIF0148输出的N位宽数据块(字)并且根据MAC层要求来处理接收的数据。
[0028]在发射(TX)路径中,TX MAC电路装置162在协议并行时钟域130中操作。TX MAC电路装置162根据MAC层要求来处理待发射的数据并且向TX FIFO缓冲器164提供N位数据块。
[0029]TX FIFO缓冲器164用作从协议并行时钟域130到数据有效时钟域120的时钟交叉桥。TX FIFO缓冲器164可以具有Dt个块的深度。例如深度可以是十六个块(即DT=16)。可以实施其它深度。
[0030]在确立数据有效信号165时,TX (N到M)变速箱电路166可以接收N位字并且将其转换成M位字,其中如以上关于RX变速箱电路144讨论的那样N大于M。TX串行化器电路168将数据有效时钟域120中的M位宽并行位流转换成串行时钟域110中的串行位流。
[0031]在图1的收发器100中的数据有效时钟域120和协议并行时钟域130可以视为出于实际目的而具有任意的相位关系。不同域的时钟信号可以在集成电路内被不同地分发并且可以由于过程-电压-温度(PVT)变化而具有基本不同的时钟插入延迟。出于这一原因,这些时钟域与FIFO缓冲器(148和164)交叉。FIFO缓冲器可以无论相位如何都跨域来移动数据,但是FIFO缓冲器向发射和接收路径中引入非确定性的延时。在未确定这些延时时,准确地对传出和传入分组加时间戳的能力基本受限。
[0032]例如考虑IEEE-1588的加时间戳协议。根据IEEE-1588的定义,应当在分组的在帧定界符之后的第一位进入或者离开芯片时测量时间戳。实际应用可以要求约为百皮秒的精确度。在用当前技术的实际系统中,这一精确度水平比数据有效时钟域120和协议并行时钟域130中的时钟周期更精确并且要求考虑串行化器和去串行化器(SERDES)电路(142和168)的行为。
[0033]本公开内容提供用于估计FIFO缓冲器的精确延时的结构和方法。在与收发器路径中的其余数字(物理编码子层)和模拟(物理介质附着)电路装置的兼容设计组合时,这些结构和方法可以用来提供用于在加时间戳技术诸如例如IEEE-1588中使用的极为准确的延时估计。其余路径电路装置的兼容设计一般应当没有由系统的半随机引导状态来可变地确定的任何其它存储装置。如果在其余路径电路装置中有可变存储装置,则它必须可见并且在延时计算中被考虑。
[0034]本公开内容考虑两个类型的FIFO缓冲器:具有读取时钟和写入时钟的第一类型的FIFO,这些时钟具有相同标称频率,但是其中相位关系是未知和/或缓慢变化的;以及第二类型的FIFO,与变速箱串接(tandem)使用以将处于一个频率和宽度的数据向另一频率和带宽传送。
[0035]对于第一类型的FIFO,在FIFO的写入端口和读取端口在相同频率运行时,FIFO的占用(occupancy)(因此FIFO的延时)然后是两个时钟的相位的函数。例如为第一类型的FIFO考虑图2A和2B中描绘的两个场景。
[0036]在图2A中描绘的第一场景中,读取时钟204中的用于触发的读取时钟沿在写入时钟202中的用于触发的沿之后不久。对照而言,在图2B中描绘的第二场景中,读取时钟214中的用于触发的读取时钟沿在写入时钟212中的用于触发的下一个沿之后不久。
[0037]所有其它的是相等的,由于在写入沿与读取沿之间的不同相位关系,图2中的FIFO的延时将有望比图2B中的FIFO的延时更短。更广义而言,FIFO的延时取决于写入时钟与读取时钟之间的相位关系。
[0038]遗憾的是,直接获得关于写入时钟与读取时钟之间的相位关系的信息是有问题的。这是因为边缘(marginal)FIFO寄存器一般在写入沿变成被占用而在读取沿变空。换而言之,一般没有由电路装置提供的关于实际读取或者写入沿的时钟之间的相位关系的相位信息。
[0039]回避对直接测量相位关系的需要
[0040]幸运地,本公开内容提供用于回避对获得关于写入时钟与读取时钟之间的相位关系的直接信息的需要的有利技术。在这些技术中,通过测量FIFO的平均占用来间接获得相位关系。
[0041]这里公开的一种技术是进行对称为利特尔法则(Little’ s Law)的数学定理的创新使用以用于估计延时的目的以便生成时间戳。可以定义利特尔法则如下:
[0042]在相关时间段内在统计上稳定的商店内,身处商店内的客户的长期平均数目C等于客户的长期平均有效到达速率A乘以客户花费在等候上的平均时间W ;或者在代数上表达为:C=AW(等式I)。
[0043]出于数字FIFO缓冲器的目的,可以改写这一法则如下:
[0044]在相关时间段内在统计上稳定的FIFO缓冲器内,位中的长期平均FIFO占用0等于长期平均有效位写入频率F乘以由于FIFO缓冲器所致的位的平均时间滞后L ;或者在代数上表达为:0=FL (等式2)。
[0045]在我们的情况下,想要知道由于FIFO缓冲器所致的位的平均时间滞后。根据以上表达式,由于FIFO缓冲器所致的位的平均时间滞后L等于位中的长期平均FIFO占用0除以长期平均有效位写入频率F ;或者在代数上表达为:L=0 / F (等式3)。
[0046]再次考虑图2A和2B。由于图2A中所示第一场景中的相位关系,其中占用边缘FIFO寄存器的时间段206与其中边缘FIFO寄存器为空(未占用)的时间段208比较相对短。对照而言,由于在图2B中所示第二场景中的相位关系,因此其中占用边缘FIFO寄存器的时间段206与其中边缘FIFO寄存器为空(未占用)的时间段208比较相对长。在这一情况下,在FIFO寄存器中存储的位的长期平均数目在第一场景(图2A)中更小而在第二场景(图2B)中更大。
[0047]例如考虑在占用边缘寄存器时的时间段(206或者216)期间,FIFO缓冲器具有由数据字占用的五个寄存器(而FIFO中的其余寄存器为空),以及在边缘寄存器为空时的时间段(208或者218)期间,FIFO缓冲器具有由数据字占用的四个寄存器(而FIFO中的其余寄存器为空)。在FIFO缓冲器中存储的位的长期平均数目将在第一场景(图2A)中在四个字中的位数多一点,而在FIFO缓冲器中存储的位的长期平均数目将在第二场景(图2B)中在五个字中的位数少一点。
[0048]确定平均占用
[0049]有用于确定FIFO的占用的至少两种不同技术。第一技术涉及到快速采样时钟,而第二技术可以使用更慢的采样时钟并且涉及到利特尔法则的变体的应用。两种技术可以应用于第一类型的FIFO(其中读取时钟和写入时钟具有相同标称频率)或者第二类型的FIFO (在变速箱中串接使用)。
[0050]第一技术使用具有如下周期Pfast的很快的采样时钟,该周期分别比FIFO读取时钟和写入时钟的周期Prad和P?ito短许多倍。换而言之。Pfast〈〈P—并且Pfast〈〈P_。在这一第一技术中,快速采 样时钟可以用来在每个循环上确定FIFO缓冲器的实时占用水平。例如如果P_d=P?ite=10纳秒(ns)并且Pfast=IOO皮秒(ps),则快速采样时钟将每读取或者写入循环提供100个采样并且因此能够确定FIFO的实时占用达到一个字的百分之一并且因此确定读取时钟与写入时钟之间的相位关系达到时钟循环的百分之一。然而在这一示例中生成快速采样时钟不是很实际。
[0051]第二技术使用具有周期Pslm^A更慢的采样时钟以在大量循环内对FIFO缓冲器的占用水平进行采样。更慢采样时钟的周期Psltw可以分别与FIFO读取时钟和写入时钟的周期Pread和p?ite相似或者更长。例如如果Pread=Pwite=IOns (对应于频率100MHz)并且Pfast=I0.1ns (对应于频率99MHz),则慢速采样时钟将提供FIFO的平均占用达到一个字的百分之一并且因此提供读取时钟与写入时钟之间的相位关系达到时钟循环的百分之一。在这一示例中生成慢速采样时钟比在先前示例中生成快速采样时钟可行得多。
[0052]在第二技术中,为了获得采样点的良好分布以便实现高精确度滞后估计,Pslow和Pread的最大公约数(GCD)(以及Ps1ot和Pwit6的GCD)应当很小。在上例中,假设Pslow=I0.2ns (对应于频率 98MHz)并且 Pread=Pwrite=IOns (对应于频率 100MHz),则 GCD 是
0.2ns=200皮秒(ps)。滞后时间估计的标称精确度因此是200ps。
[0053]在另一示例中,假设Pslmt=9.9ns (对应于频率101MHz)并且Pread=Pmite=IOns (对应于频率100MHz),则G⑶是0.1ns=IOOps0滞后时间估计的标称精确度因此则是lOOps。
[0054]在又一示例中,假设Pslmt=99.9ns (对应于频率 10.01MHz)并且 Pread=Pmite=IOns (对应于频率100MHz),则G⑶是0.1ns=IOOps0滞后时间估计的标称精确度因此则是lOOps。
[0055]在又一示例中,假设Ps1qw=20.5ns (对应于频率傲78MHz)并且Pread=Pwrite=IOns (对应于频率100MHz),则G⑶是0.05ns=50ps。滞后时间估计的标称精确度因此是50ps。
[0056]在又一示例中,假设Psl?=4.016ns (对应于频率249MHz)并且Pread=Pwrite=4ns (对应于频率250MHz),则GCD是0.016ns=16ps。滞后时间估计的标称精确度因此是16ps。
[0057]尽管以上给出用于第二技术的采样和读取/写入时钟的若干假想示例,但是存在将工作的采样和读取/写入时钟的无限数目的这样的示例。在一些示例中,采样点可以类似于在标称读取/写入周期内的随机点。
[0058]在使用更慢时钟的第二技术中,取在多个循环内的占用采样的平均值将最终在正确平均占用水平上收敛(converge)。对照而言,使用快速时钟的第一技术获得在单个循环中的平均占用水平的实时估计。因此,第二技术一般估计FIFO滞后的用时比第一技术需要更久。
[0059]设想采样时钟的时钟周期与读取时钟和写入时钟的时钟周期之间的最大公约数将优选地很小。如果最大公约数不是很小,则该公约数将限制第二技术的精确度。例如如果FIFO时钟具有周期8ns并且采样时钟具有周期9ns,则采样平均值将不能区分平均占用达到FIFO周期的小于I / 8。因此,如在以上给出的示例中那样,优选地选择采样时钟周期以便具有很小的与FIFO时钟周期的最大公约数。虽然将限制技术的精确度,但是还设想采样时钟的时钟周期与读取时钟和写入时钟的时钟周期之间的最大公约数可以是读取时钟和写入时钟的时钟周期的上至四分之一或者甚至二分之一。
[0060]在理论上,如果采样时钟周期和FIFO时钟周期“相对地是质数”使得最大公约数无穷小,则第二技术的精确度可以接近无穷。然而在实践中,在寄存器的采样窗中的模糊度将限制求平均的精确度。这一采样窗近似为设置时间与保持时间之和。例如采样窗在28nm线宽硅工艺中制作的集成电路中近似为100ns。另外,在收发器中和在发射介质(例如铜或者光纤)中的可变性以及在通信路径中的其它组件中的可变性将限制加时间戳的最终精确性。
[0061 ] 示例电路装置和方法
[0062]图3是根据本发明的一个实施例的用于确定网络端口的延时的示例装置300的电路框图。装置300可以在单个集成电路上实现。如图所示,装置300可以包括在输入/输出(I / 0)电路装置中实现的组件和在可编程结构330中实现的组件。可编程结构330可以包括例如现场可编程门阵列(FPGA)或者其它可编程逻辑器件的芯。还设想了其他实现方式。例如所述组件可以完全在I / 0电路装置中实现。
[0063]如图3中所示,在I / 0电路装置310中的组件可以包括FIFO读取指针寄存器312、FIFO写入指针寄存器314、格雷(gray)读取指针寄存器316、格雷写入指针寄存器318、采样读取指针寄存器320和采样写入指针寄存器322。在可编程结构330中的组件可以包括采样时钟生成器332、延时确定电路装置334和时间戳生成器336。
[0064]在FIFO缓冲器中,读取指针和写入指针在FIFO读取指针312和FIFO写入指针314寄存器中被维持为二进制值。这些读取指针和写入指针被转换成格雷码以便与其它时钟域交叉。因此,利用基于FIFO读取时钟(rd_clk)的定时,FIFO读取指针寄存器312中的指针被转换成格雷读取指针寄存器316中的格雷码。类似地,利用基于FIFO写入时钟(wr_elk)的定时,FIFO写入指针寄存器314中的指针被转换成格雷写入指针寄存器318中的格雷码。FIFO读取时钟和写入时钟可以根据收发器电路装置的设计来在相同频率或者在不同频率操作。
[0065]利用基于米样时钟(sam_clk)的定时,可以对格雷读取指针寄存器316中的格雷读取指针进行采样,并且可以在采样读取指针寄存器320中存储采样的值。类似地,利用也基于采样时钟(sam_clk)的定时,可以对格雷写入指针寄存器318中的格雷写入指针进行采样,并且采样的值可以在采样写入指针寄存器322中存储。
[0066]根据本发明的一个实施例,采样时钟用来同时对读取指针和写入指针二者进行采样。如图3中描绘的那样,采样时钟可以由可以在可编程结构330中配置的采样时钟生成器332生成。可替换地,如果数据有效时钟域120在I / 0电路装置310内自含(self-contained),则可以使用FIFO写入时钟(wr_clk)而不是在可编程结构330中生成的采样时钟来执行采样。
[0067]采样读取指针和写入指针可以由延时确定电路装置334获得。如果使用更慢的时钟方式,则延时确定电路装置334可以被配置用于确定采样读取指针与写入指针之间的平均差值。在稳定操作期间,平均差值应当收敛到与用于FIFO缓冲器的延时对应的平均差值上。延时确定电路装置334可以基于平均差值来确定FIFO延时的估计。在可编程结构330中对延时确定电路装置334进行配置提供实施的更大灵活性。例如在一些情况下,用户可以应用快速时钟或者慢速时钟方式以估计FIFO的延时。
[0068]在可编程电路装置310中的时间戳生成器325可以接收延时数据并且将它与其它数据一起用来生成时间戳。时间戳可以附于发射的数据分组或者可以置于单独控制分组中。
[0069]图4A是根据本发明的另一实施例的用于确定网络端口的RXFIFO的延时的示例装置400的电路框图。这一实施例能够通过两个途径来生成延时信息。
[0070]第一途径使用以上关于图3描述的电路装置。具体而言,从I / 0电路装置310中的采样寄存器(320和322)向可编程结构330中的延时确定电路装置334提供采样的读取指针和写入指针。如果如在以上讨论的第二技术中那样使用更慢采样时钟,则延时确定电路装置334然后可以确定采样的读取指针和写入指针的平均差值以估计FIFO延时。然后可以向时间戳生成器336提供平均差值信息。
[0071]第二路径在I / 0电路装置310中执行采样和求平均二者。这可以使用两个采样寄存器(402和404)、两个格雷到二进制转换器(406和408)、平均差值计算电路410和采样平均寄存器412来实现。在这一途径中,可以假设数据有效时钟为写入时钟(wr_clk)。在这一结构中的平均值应当相对稳定、因此允许向用户设计时钟频率中的域交叉具有最小误差。求平均机制可以执行充分数目的采样的移动平均(running average)以捕获变速箱循环的一个完整迭代。然后该平均差值信息可以向时间戳生成器336提供。
[0072]此外,设想数据有效时钟率也可以用以平均FIFO的占用。数据有效时钟周期没有与其本身的小的最大公约数,因此无法确保平均占用将与实际占用匹配。然而由于数据有效信号的周期性,所以实际平均占用与测量的平均占用之间的差值(处于数据有效时钟速率)恒定。在40位去串行化器的情况下,平均FIFO深度不准确度达到19.5位。这一恒定误差可以易于在延时计算电路或者将占用数据转换成延时估计的软件内校正。这对于66-40,66-64,67-40 和 66-64 变速箱 / FIFO 组合二者成立。
[0073]图4B是根据本发明的另一实施例的用于确定网络端口的TXFIFO的延时的示例装置450的电路框图。与图4A对照,FIFO读取时钟(rd_clk)用来执行向图4B中的寄存器402和404中的采样。[0074]图5是根据本发明的一个实施例的用于确定具有FIFO的网络端口的延时的示例方法500的流程图。按照块502,可以生成处于预定频率的采样时钟。采样时钟可以按照以上讨论的第一和第二技术为快速或者更慢。
[0075]按照块504对读取指针进行采样,并且按照块506对写入指针进行采样。使用采样时钟使得同时对读取指针和写入指针进行采样。可以针对采样时钟的多个时钟循环来执行这一采样以便获得读取指针和写入指针的大量样本。
[0076]按照块508获得采样的读取指针和写入指针。如果读取指针和写入指针为格雷码,则随后可以在块510中将它们从格雷码转换成二进制。
[0077]按照块512,可以确定采样的读取指针与写入指针之间的平均差值。可以对充分大量采样执行求平均以便实现平均差值的收敛。
[0078]按照块514,可以将平均差值信息与其它与时间有关的信息一起用来生成时间戳。如果FIFO是发射FIFO,则可以在从网络端口传出的分组中插入时间戳。如果FIFO是接收器FIFO,则可以在向网络端口传入的分组中插入时间戳。
[0079]图6是根据本发明的一个实施例的包括收发器电路的现场可编程门阵列(FPGA) 10的简化部分框图,在这些收发器电路内可以实现这里公开的装置和方法。应当理解,可以在许多类型的集成电路、比如FPGA、可编程逻辑器件(PLD)、复杂可编程逻辑器件(CPLD)、可编程逻辑阵列(PLA)、数字信号处理器(DSP)和专用集成电路(ASIC)中使用本发明的实施例。
[0080]FPGA10在它的“芯”内包括由可变长度和速度的列和行互连导体的网络互连的可编程逻辑阵列块(或者LAB) 12的二维阵列。LAB12包括多个(例如十个)逻辑元件(或者LE)。LE是提供用户定义的逻辑功能的高效实施的可编程逻辑块。FPGA具有可以被配置用于实现各种组合和时序功能的许多逻辑元件。各逻辑元件具有对可编程互连结构的访问。可编程互连结构可以被编程用于在几乎任何期望的配置中互连逻辑元件。
[0081]FPGA10也可以包括分布式存储器结构,该存储器结构包括在整个阵列内提供的可变大小的随机访问存储器(RAM)块。RAM块例如包括块14、块16和块18。这些存储器块也可以包括移位寄存器和FIFO缓冲器。
[0082]FPGA10还可以包括数字信号处理(DSP)块20,这些DSP块可以例如实施具有加法或者减法功能的乘法器。例如位于芯片的周界周围的输入/输出元件(10E)22支持许多单端和差分输入/输出标准。每个10E22耦合到FPGA10的外部端子(即引脚)。可以例如如图所示布置收发器(TX / RX)信道阵列而每个TX / RX信道电路30耦合到若干LAB。TX /RX信道电路30可以包括这里描述的电路装置以及其它电路装置。
[0083]将理解这里仅出于示例目的而描述FPGA10并且可以在许多不同类型的PLD、FPGA和ASIC中实现本发明。
[0084]也可以在具有FPGA作为若干组件之一的系统中实施本发明。图7是根据本发明的一个实施例的如下示例数字系统50的框图,可以在该数字系统内利用这里公开的装置和方法。
[0085]系统50可以是编程的数字计算机系统、数字信号处理系统、专用的数字切换网络或者其它处理系统。另外,可以设计这样的系统用于广泛多种应用、比如电信系统、汽车系统、控制系统、客户电子装置、个人计算机、因特网通信和联网以及其它应用。另外,可以在单个板上、在多个板上或者在多个附件(enclosure)内提供系统50。
[0086]系统50包括由一个或者多个总线互连的处理单元52、存储器单元54和输入/输出(I / 0)单元56。根据这一示例实施例,在处理单元52中嵌入FPGA58。FPGA58可以用于系统50内的许多不同目的。FPGA58可以例如是处理单元52的逻辑构建块,该逻辑构建块支持它的内部和外部操作。FPGA58被编程用于实现为了执行它在系统操作中的特定作用而必需的逻辑功能。FPGA58可以特别地通过连接60耦合到存储器54并且通过连接62耦合到I / 0单元56。
[0087]处理单元52可以将数据引向适当系统组件用于处理或者存储、执行存储器54中存储的程序、经由I / 0单元56接收和发射数据或者其它相似功能。处理单元52可以是中央处理单元(CPU)、微处理器、浮点协同处理器、图形协同处理器、硬件控制器、微控制器、被编程用于用作控制器、网络控制器或者任何类型的处理器或者控制器的现场可编程门阵列。另外,在许多实施例中,经常无需CPU。
[0088]例如取代CPU,代之以一个或者多个FPGA58可以控制系统的逻辑操作。作为另一示例,FPGA58充当可以如需要的那样被重新编程以用于处置特定计算任务的可重新配置处理器。可替换地,FPGA58可以本身包括嵌入式微处理器。存储器单元54可以是随机存储器存储器(RAM)、只读存储器(ROM)、硬盘或者软盘介质、闪存、磁带或者任何其它存储装置或者这些存储装置的任何组合。
[0089]在以上描述中,给出许多具体细节以提供本发明的实施例的透彻理解。然而本发明的所示实施例的以上描述未旨在于穷举本发明或者使本发明限于公开的精确形式。相关领域技术人员将认识到可以未用具体细节中的一个或者多个具体细节或者用其它方法、组件等实现本发明。
[0090]在其它实例中,未具体示出或者描述公知结构或者操作以免模糊本发明的方面。尽管这里出于示例目的而描述本发明的具体实施例和用于本发明的示例,但是如相关领域技术人员将认识到的那样,各种等效修改在本发明的范围内是可能的。可以按照以上具体描述对本发明进行这些修改。
【权利要求】
1.一种用于确定网络端口的延时的方法,所述方法包括: 在采样频率生成采样时钟,其中所述采样时钟的时钟周期不同于先入先出(FIFO)缓冲器的读取时钟和写入时钟的时钟周期; 使用所述采样时钟的沿来对用于所述FIFO缓冲器的读取指针进行采样; 使用所述采样时钟的所述沿来对用于所述FIFO缓冲器的写入指针进行采样; 获得所述读取指针的多个样本和所述写入指针的多个样本;以及 确定所述读取指针和所述写入指针的所述多个样本之间的平均差值。
2.根据权利要求1所述的方法,其中所述采样时钟的时钟周期与所述读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的一半,并且其中所述采样时钟的时钟周期与所述写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的一半。
3.根据权利要求1所述的方法,其中所述采样时钟的时钟周期与所述读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的四分之一,并且其中所述采样时钟的时钟周期与所述写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的四分之一。
4.根据权利要求3所述的方法,其中所述采样时钟比所述读取时钟和所述写入时钟慢。
5.根据权利要求1所述的方法,其中所述读取时钟和所述写入时钟具有相同的速度。
6.根据权利要求1所述的方法,其中所述平均差值在生成时间戳中使用。
7.根据权利要求1所述的方法,其中确定所述平均差值被确定达到与200皮秒或者更少的滞后时间精确度对应的精确度。
8.一种用于在网络端口向分组提供时间戳的装置,所述装置包括: 采样时钟生成电路,用于生成采样时钟; 第一寄存器,用于使用所述采样时钟来对用于所述网络端口的先入先出(FIFO)缓冲器的读取指针进行采样; 第二寄存器,用于使用所述采样时钟来对用于所述FIFO缓冲器的写入指针进行采样; 逻辑电路装置,用于确定所述读取指针与所述写入指针之间的平均差值;以及 加时间戳电路装置,用于接收所述平均差值并且向分组中插入时间戳。
9.根据权利要求8所述的装置,其中所述采样时钟的时钟周期与读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的一半,并且其中所述采样时钟的时钟周期与写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的一半。
10.根据权利要求8所述的装置,其中所述采样时钟的时钟周期与读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的四分之一,并且其中所述采样时钟的时钟周期与写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的四分之一。
11.根据权利要求10所述的装置,其中所述采样时钟比所述读取时钟和所述写入时钟慢。
12.根据权利要求8所述的装置,其中读取时钟和写入时钟具有相同的速度。
13.根据权利要求8所述的装置,其中所述平均差值被确定达到与200皮秒或者更少的滞后时间精确度对应的精确度。
14.根据权利要求8所述的装置,其中用于确定所述平均差值的所述逻辑电路装置被配置在可编程电路装置中。
15.一种串行接口电路,包括: 发射先入先出(FIFO)缓冲器,用于在第一时钟域中接收并行数据信号并且在第二时钟域中输出所述并行数据信号; 发射变速箱,用于将所述并行数据信号从第一宽度转换成第二宽度; 串行化器,用于将具有以位为单位的所述第二宽度的所述并行数据信号转换成串行数据信号; 第一寄存器,用于使用采样时钟来对用于所述发射FIFO缓冲器的读取指针进行采样;第二寄存器,用于使用所述采样时钟来对用于所述发射FIFO缓冲器的写入指针进行采样; 逻辑电路装置,用于确定所述读取指针与所述写入指针之间的平均差值;以及加时间戳电路装置, 用于接收所述平均差值并且在所述第一时钟域中向所述并行数据信号中插入时间戳。
16.根据权利要求15所述的串行接口电路,其中所述采样时钟的时钟周期与读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的一半,并且其中所述采样时钟的时钟周期与写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的一半。
17.根据权利要求15所述的串行接口电路,其中所述采样时钟比读取时钟和写入时钟慢。
18.根据权利要求15所述的串行接口电路,其中读取时钟和写入时钟具有相同的速度。
19.根据权利要求15所述的串行接口电路,其中所述平均差值被确定达到与200皮秒或者更少的滞后时间精确度对应的精确度。
20.—种串行接口电路,包括: 去串行化器,用于接收串行数据信号并且将所述串行数据信号转换成并行数据信号; 接收器变速箱,用于将所述并行数据信号从第一宽度转换成第二宽度; 接收器先入先出(FIFO)缓冲器,用于在第一时钟域中接收所述并行数据信号并且在第二时钟域中输出所述并行数据信号; 第一寄存器,用于使用采样时钟来对用于所述接收器FIFO缓冲器的读取指针进行采样; 第二寄存器,用于使用所述采样时钟来对用于所述接收器FIFO缓冲器的写入指针进行采样; 逻辑电路装置,用于确定在所述读取指针与所述写入指针之间的平均差值;以及加时间戳电路装置,用于接收所述平均差值并且在所述第二时钟域中向所述并行数据信号中插入时间戳。
21.根据权利要求20所述的串行接口电路,其中所述采样时钟的时钟周期与读取时钟的时钟周期之间的最大公约数小于所述读取时钟的时钟周期的一半,并且其中所述采样时钟的时钟周期与写入时钟的时钟周期之间的最大公约数小于所述写入时钟的时钟周期的一半。
22.根据权利要求20所述的串行接口电路,其中所述采样时钟比读取时钟和写入时钟慢。
23.根据权利要求20所述的串行接口电路,其中读取时钟和写入时钟具有相同的速度。
24.根据权利要求20所述的串行接口电路,其中所述平均差值被确定达到与200皮秒或者更少的滞后时间精确 度对应的精确度。
【文档编号】H04J3/06GK103684902SQ201310433581
【公开日】2014年3月26日 申请日期:2013年9月16日 优先权日:2012年9月21日
【发明者】H·施密特 申请人:阿尔特拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1