CN1489841A - 使用媒介访问控制(mac)层同步符号的异步网络的同步化 - Google Patents
使用媒介访问控制(mac)层同步符号的异步网络的同步化 Download PDFInfo
- Publication number
- CN1489841A CN1489841A CNA018113001A CN01811300A CN1489841A CN 1489841 A CN1489841 A CN 1489841A CN A018113001 A CNA018113001 A CN A018113001A CN 01811300 A CN01811300 A CN 01811300A CN 1489841 A CN1489841 A CN 1489841A
- Authority
- CN
- China
- Prior art keywords
- node
- signal
- data
- network
- serdes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0658—Clock or time synchronisation among packet nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L7/00—Arrangements for synchronising receiver with transmitter
- H04L7/04—Speed or phase control by synchronisation signals
- H04L7/08—Speed or phase control by synchronisation signals the synchronisation signals recurring cyclically
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0641—Change of the master or reference, e.g. take-over or failure of the master
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0638—Clock or time synchronisation among nodes; Internode synchronisation
- H04J3/0647—Synchronisation among TDM nodes
Abstract
本发明描述了一种在异步网络内同步的分配和应用的方法和结构。通过一个异步网络经过定期地插入在MAC层上的同步符号来分配同步。这个符号的优先权确保此符号在MAC层中在所有其它类型的符号前面被插入数据流。同步符号在一个进行的数据帧中间的插入被提供。另外,一种在异步网络各处的同步符号分配的方法和一种基于来自同步源的最小数目的转跳而切换到一个新的同步路径(如果初始同步路径丢失了的话)的方法一起被提出。另外,描述了一种方法,用于接收同步符号的计数和间隔以及发送同步符号的计数和间隔的应用以便产生使用于设备内部硬件的频率锁定到来自另外一个设备中的接收的同步符号上的过程中的一个纠错信号。使用同步符号所需要的优先化的插入性能,各种其它MAC层控制符号被定义来执行其它功能,例如相邻节点之间的传播时间测量。
Description
发明领域
本发明涉及通信网络,并且特别涉及一种构成异步网络的设备同步的机制和一种用于实现专门的媒介访问控制(MAC)分层协议的设备。
背景技术
租用线路服务的传送常规地已经出现在利用同步光纤网(SONET)协议的光纤网(optical network)上。这是因为SONET网络的一个基本特征是同步操作,例如,在各SONET网络元件上的的公共同步或者频率源的有效性。SONET网络依靠来自公共定时源中的同步分配。
公共定时源是一种称为阶层时钟(Stratum clock)的非常精确的时钟。阶层分层结构的不同级以及每一级的特性描述于TelcordiaGR-1244-CORE规范中,在此结合其全部内容以作为参考。一种通常被使用的外部同步源是阶层1全球定位系统(GPS)定时源。对于一个SONET光纤城市接入网,外部同步源可以被直接附加给网络中被称为同步源设备的一个设备。如果没有直接被附加的外部同步源,则同步源设备也可以从网络运营者所配置的其任何外部租用线路接口中导出同步。网络中的每一个其它设备被配置来接收来自其高速SONET接口之一的同步。一个示例在图1中被示出为一个城市接入双向环。在图1A中,在其上分布同步的那些路径发源于一个同步源设备12,该同步源设备12从它的外部接口之一中获得同步。在SONET环中的所有其它设备从其高速SONET接口之一上传入数据的同步帧结构中得出同步。SONET环外部的设备,例如连接到节点10上的设备13(在SONET环外部)以及连接到节点12上的设备14(在SONET环外部),能够从SONET网络中的节点中导出定时。
不幸的是:SONET网络不是城市接入网中打包数据传送的最佳解决方案。无连接、异步、分组交换网络是这种传送的最节约成本并且容量利用率高的解决方案。可是,这些网络从不需要为它们的操作而进行同步分配。仅仅是现在,异步网络中的同步分配才变得重要起来,因为服务提供者努力实现优化的网络基础结构,用以进行打包数据的传送,同时还能够进行租用线路服务的传送。执行这种功能的机制是降低城市接入网基础结构成本的关键。
在本说明书中,术语“同步(synchronization)”将用于诸如“同步源(synchronizationSource)”之类的字句中,该术语可与术语“定时(timing)”或者“计时(clocking)”替换使用。
在本说明书中描述的机制在媒介访问控制(MAC)层上利用新的功能和性能。某些用于网络同步的常规性能,诸如在MAC层上的控制符号的优先化的插入,使得能够在MAC层上执行与网络同步不相关的其它新功能。
发明内容
在此描述一种方法和结构,其用于在异步网络内进行同步的分配和应用。通过定期地在MAC层上插入同步符号(synchronizationSymbol)而在整个异步网络上分配同步。这个符号的优先权确保此符号在所有其它类型的符号之前被插入MAC层数据流。支持在进行的数据帧的中间插入同步符号。另外,提出了一种用以在整个异步网络上进行同步符号分配的方法,以及一种基于来自同步源的最小数目的转跳(hop)而切换到一个新的同步路径(如果初始同步路径丢失了的话)的方法。此外,描述了一种方法,以此利用被接收的同步符号的计数和间隔以及被发送的同步符号的计数和间隔,从而生成纠错信号,该纠错信号用于设备内部硬件的频率锁定过程——锁定到来自另外一个设备中的被接收的同步符号上。
利用同步符号所需要的优先化的插入性能,规定各种其它MAC层控制符号来执行其它功能,例如相邻节点之间的传播时间测量等。
附图简要说明
图1A说明了属于一个给定虚拟网络的一种示范性SONET环互连设备。虚拟网络外部的两个设备也被示出,其通过以粗虚线表示的线路连接到所述虚拟网络。该网络内的同步路径则以虚线示出。
图1B说明了属于一个给定虚拟网络的一种示范性异步环互连设备。虚拟网络外部的两个设备也被示出,其通过以粗虚线表示的线路连接到所述虚拟网络。该网络内的同步路径则以虚线示出。
图2A说明了没有同步符号优先化插入的MAC层数据帧的示范性传输。
图2B说明了具有同步符号优先化插入的MAC层数据帧的示范性传输。
图3说明了一个LMAC启用的虚拟网络的设备中的相关功能单元。
图4说明了在虚拟网状网络(virtual mesh network)中用于同步符号分配的同步路径。
图5说明了图3中分支接口卡(tributary unterface)的补充细节。
图6说明了图3中交换卡的补充细节。
图7说明了图5中交换卡上的同步模块的补充细节。
图8说明了LMAC的一个FPGA实施。
具体实施方式
在此所描述的本发明提供了一种方法和结构,用于在异步网内进行同步的分配和应用,并用于各种其它MAC层控制功能。优选实施例的特定方面为:
a.一种同步符号,其定期地使用于异步网上各个设备之间的MAC层上。(此符号对更高的网络层来说是不可见的)。这个符号的优先级确保在同步符号周期满期之后,这个符号在所有其它类型的符号之前立即先被插入在MAC层数据流中。
b.一种用于MAC层上同步符号的优先化插入的方法,例如,能够把一个同步符号插入在一个进行的数据帧中间。
c.一种用于在异步网各处的同步符号分配的方法(类似于网状网络中的广播)。
d.一种基于来自同步源的最小数目的转跳而切换到一个新的同步路径(在丢失初始的同步路径的情况下)的方法。
e.一种方法,其应用接收的同步符号的计数和间隔以及发送的同步符号的计数和间隔,从而产生纠错信号,该信号用于一个设备内部硬件的频率锁定过程,以接收来自另一设备的同步符号。
f.一种方法,其用于“ping”和“pong”符号的优先化插入,以启动网络中各相邻设备之间传播时间的精确计量。
g.一种以“receive_buffer_full”以及“receive_buffer_available”符号的优先化插入来启动网络中的流量控制的方法。
h.一种在网络中用于优先地把“控制开始”插入来启动MAC层控制分组在一个MAC层数据流中的插入。
在说明了可应用在此所述的本发明的网络之后,将详细描述上述这些方面。
网络的说明
本发明适用于规定的虚拟网络拓扑结构中的各设备。如果一个设备具有把它连接到虚拟网络中的其它设备上的至少一个全双工接口,并且如果使用在互连该设备的链路上的媒介访问控制(MAC)协议能够进行同步分配,则该设备被认为是该虚拟网络的一部分。这个MAC协议被称为Luminous MAC(LMAC)协议(使用这一名称纯粹是为了方便,用来对应于本说明书中的MAC协议,并且本名称未必一定就是对应于该协议的永久名称)。运用所述LMAC协议的各链路被称为LMAC兼容的链路。一个LMAC兼容的链路具有下列特性:(a)在链路端点处的两个设备是不同步的,例如,链路是异步的;(b)在链路上传送的数据取分组、单元或帧的形式;以及(c)数据的MAC层编码使得称为LMAC的各设备能够在链路入口端将同步符号插入到数据流中的任意位置,而在出口端将其删除,从而使同步符号对处理数据分组的更高层组件来说是不可见的。
虚拟网络的目的是把来自各种不同类型的外部接口中的数据传送到在网络中别处相应的兼容外部接口去。在任何设备处始发的每一数据分组被多路复用在LMAC兼容的链路上并且在其上被传送,直到它达到它的目的地,在目的地点处它从虚拟网络中被删除并被发送到相应的出口外部接口。图1示出了两个不同虚拟网络双向环拓扑结构的示例,一个是SONET环(图1A)而另外一个是异步的基于LMAC的环(图1B)。粗箭头表示从虚拟网络外部到虚拟网络的示范性接口。这些接口包括诸如DS1之类的同步/准同步帧数据接口以及诸如快速以太网(100BaseT)之类的异步无连接打包数据接口。另外还有一个从外部同步源到同步源设备22的外部接口。此接口可以是诸如DS1之类的一个同步帧数据接口,或者可以是诸如OC-12之类的一个更高速度的同步数据接口。虚拟网络中的线路互连设备在SONET环中具有同步SONET成帧格式,并且在异步环中所有的都是LMAC兼容的。粗线表示虚拟网络的外部接口以及从虚拟网络内的设备到虚拟网络外部的设备的连接。虚线(不论其是否是粗线)表示整个网络内的示范性同步分配路径。非粗线的虚线表示从设备22到虚拟网络中其它设备的示范性同步分配路径。附加到设备20和附加到设备22上的示范性外部设备23和24(其产生从设备20到设备22传送的一个DS1并且反之亦然)两者都是虚拟网络的线路定时关闭(line-timed off),并因此用虚线被连接到虚拟网络。线路定时描述于“SONET”一书中,本说明书中在前面将其全部内容结合作为参考资料。这种形式下线路定时的使用是在DS1的端点处向设备提供均一计时的一种方法。
重要的是要注意到:到如图1A和1B所示的两个环形网上的外部接口是完全相同的。可是,用于在两个网络中分配同步以便支持同步帧数据接口的机件是完全不同的。
其它MAC层功能,诸如“ping”、“pong”、“接收缓冲器满(receivebuffer full)”以及“接收缓冲器可用(receive buffer available)”之类,可以在通过一对光纤链路而互连(以使在两个方向上的通信都是可能的)的任何两个设备之间被使用。在双向环中,情况总是如此。对于使用在网状网络中的这些功能,相邻设备必须按照一种双向形式被连接。
MAC层功能“控制开始”不需要待使用的相邻设备之间的双向连接。
同步符号以及同步符号的优先化插入的说明
在如图1B所示的异步网络内分配的同步符号作为LMAC协议的一部分先前已经被提及。在LMAC协议中,数据的MAC层编码使得被称为LMAC的设备可以在一个LMAC兼容的链路的入口端将同步符号插入到数据流中的任意位置,而在出口端处将其删除,从而使同步符号对处理数据分组的更高层组件来说不是可见的。该同步符号必须是一个相异的并且可以确认的比特串。这个比特串可以被分裂为子组,比如一个分组内分开的字段,或者它可以具有单个含意。同步符号必须由LMAC在每一LMAC兼容的链路的入口端处在周期性基础上插入到数据流中。它必须具有比常规优先级数据更高的优先级,从而使其能够以尽可能精确的定时插入到数据流中。同步符号可以是在比如8B/10B编码(使用于千兆比特以太网)之类的MAC层编码方案中的一个控制符号。8B/10B编码和千兆比特以太网详细描述于RichSeifert所著的“Gigabit Ethernet(千兆比特以太网)”一书(Addison Wesley Longman有限公司出版,1998年第一版),在此结合其全部内容作为参考资料。它也可以是在诸如Internet协议(IP)、异步传输模式(ATM)或帧中继(FR)之类的协议内定义的一个特定控制分组、单元或者帧。
在8B/10B编码中,例如,一个特定的十二个十比特码组(控制代码)被分配用于控制功能,比如分组开始或分组结束的MAC层指示。然而,不是所有的这十二个十比特码当前都被分配IEEE802.3-1998标准(在此结合该标准全部内容作为参考资料)内的控制功能。因此,未使用的十比特码之一可作为同步符号直接分配。作为选择,连续的两个十比特码可以被使用作为同步符号,第一个是一个控制代码而第二个是一个数据代码。
这个同步符号的插入在千兆比特以太网中以及在作者已知的所有其它MAC协议中是有问题的,因为这里没有控制符号的优先化插入,例如,一个控制符号不能在发送中间被插入到一个数据帧内。对于千兆比特以太网的这种情况的一个示例如图2A所示。控制代码描绘出在以太网数据帧之间的边界,在此例如每个数据帧包含在诸如Internet协议(IP)之类的一个更高分层协议内定义的一个分组或分组小组。请注意:图2A和图2B中的术语“分组”和“帧”的使用符合IEEE802.3-1998标准(本说明书中此前结合该标准全部内容作为参考资料)中这些术语的使用。在本说明书的上下文中,“分组”是指多个数据帧的传输,而不是指在一个更高分层协议内所规定的分组。这不是术语“分组”的一种标准用法。在此文件中的其它地方,术语“分组”的使用符合在更高分层协议内所规定的该术语的用法。在一个数据帧内不允许控制代码的插入。图2B示出了具有经过在数据帧1中间优先插入的一个同步符号的同一发送。优先化插入被明确定义为在任何其它队列数据或控制代码之前一个同步符号的插入。可是,同步符号的插入并不预先清空(pre-empt)已经在发送处理中的代码。因此,在同步符号的插入中有抖动(jitter)。
需要优先化的插入,从而把插入时最坏情况的抖动限制到10比特时间(bit-time)(在每秒1.25千兆比特时为8纳秒,千兆比特以太网的线路速率)。如果没有优先化插入,在同步符号插入上的最坏情况的抖动变成用于一个最大传输单元(MTU)的传输时间,其比一个经常使用的大约1600字节的MTU的12,000比特时间更大。如果将来提供超过9000字节的巨大帧(jumbo frame),则有关同步符号插入的最坏情况的抖动变成比100,000比特时间更大。此抖动的降低是在MAC层上进行优先化插入的主要动机。同时,在MAC层上控制字的插入可以被执行,其具有最小量的传入数据缓冲,在MAC层具有最小的附加复杂性,并且不必向处理数据分组、单元或帧的较高层传送任何附加的复杂性。在当前被发送分组中间的一个特定数据分组的预先清空(Pre-emptive)的插入要求分组处理层支持分裂(fragmentation)和重新组装,这对提供同步功能来说是不必要的附加复杂性。
执行在MAC层数据流中符号的优先化插入的一个MAC层设备的实施例在本说明书的最后一部分给出,该部分标题为“Description of theLuminous Media Access Controller(LMAC)”(光媒体接入控制器的说明)。具体地说,在描述此处内容的该部分中的小节为“SERDES Tx状态机”。
其它MAC层控制符号的描述
“ping”与“pong”两者的目的都是作为MAC层保持运行的机制,并且其作为精确的机制,用于测量相邻节点(比如节点20和21以及图1B)之间的传播延迟。“ping”符号由使用优先化插入的每个LMAC定期地在可配置间隔上发送,但是其具有比同步符号更低的优先级。一俟收到“ping”符号,则“pong”符号立即被发送,其同样具有优先化插入。“ping”的发送时间和“pong”的接收时间被锁定到以一个速率(比如62.5MHz)被更新的寄存器中。通过把“ping”发送时间和“pong”接收时间之间的差值除2,从而使CPU(图6中的CPU 46)能够估计在相邻设备之间的每个方向上的传播距离。
对于这一时钟速率,传播时间测量上的最大抖动大约为40纳秒,并且主要地起因于寄存器可以以此来锁存的16纳秒分辨率。这是传播时间的一个非常精确的MAC层测量值。这种方法主要的不精确源是:如果两个光纤被用来连接相邻的设备(每一个发送方向一个),则精度取决于两个光纤长度的差值。长度上16米的差值将导致传播时间测量的不精确度达到62.5MHz寄存器更新速率的最坏情况抖动的大约相同的幅度。
为了在可能使“ping”或“pong”恶化的差错情况下的稳定性,在CPU上运行的软件应用程序必须进行许多测量,并且废弃所注意的任何杂散值(spurious value)。
“接收缓冲器充满”(“RBF”)和“接收缓冲器可用”(“RBA”)的目的是提供一个链路层开关流量控制机制,从而避免接收缓冲器(比如一个先进先出(FIFO)缓冲器)中的溢出差错。当它的接收FIFO填充超出一个可配置水印电平时,一个“RBF”被设备发送。如果它的接收FIFO清空超出一个可配置水印电平时,则一个“RBA”被同一设备发送。由于优先化插入在LMAC中是可用的,所以当一个FIFO填充超出“RBF”水印时,与没有优先化插入可用时相比,LMAC的响应时间要快得多(对于1600字节分组大小而言,在1.25Gbps的最坏情况下大约为12微秒——假设与同步符号没有争用)。
为了在可能使“RBA”恶化的差错情况下的稳定性,发送LMAC(其一俟收到一个“RBF”就中止传输)将在最大的可配置时间之后再一次开始发送。如果在这一可配置时间之前接收到一个“RBA”,则该LMAC将更快地开始发送。通过快速连续地发送多个“RBF”来确保它们中至少一个达到目的地,即可以处理“RBF”恶化的可能情况。
“控制开始”(“SOC”)的目的是提供一种性能以用于高优先级MAC层控制消息的发送。这些控制消息可以是可变长度,并且其最初由“SOC”而最后由“分组结束”(“EOP”)来描绘。这些控制消息可以使用优先化插入来被插入,并且因此可以处于一个进行的数据帧中间。
在本说明书的最后一部分标题为“Description of the LuminousMedia Access Controller(LMAC)”(光媒体接入控制器的说明)中给出了一个MAC层设备的实施例,其在MAC层数据流中执行在本节中所描述的符号的优先化插入。
虚拟网络中的设备说明
图3说明了单个设备内的相关功能单元,该单个设备比如是图1B中的虚拟网络内的设备20。每个设备被光学接口卡(optical interface card)30和32连接到相邻设备。图3所示的特定情况用于一个双向环拓扑结构,不过对可以使用在一个设备中的相异的光学接口卡数目没有固有的限制,并且也没有固有的理由不支持网格。这些光学接口卡把在光纤电缆34和36上的进入的光信号转换为电子数字信号,以应用于切换卡38。每个设备通过分支接口卡也被连接到虚拟网络外部的其它设备,在该分支接口卡中,卡51和52是示范性的。各分支接口卡的进入信号可以是光学的或者电子的。如果一个分支接口卡的进入信号是光学的,则其把该进入信号转换为应用于切换卡38的电子数字信号。分支接口卡经过底板线路也被连接到切换卡用于控制目的。备用控制器(shelfcontroller)62只执行控制功能并且不在数据路径上。它通过底板线路被连接到其它卡。控制平面协议可以是100BaseT交换以太网。在备用控制器上还有一个对外部管理系统的接口。
同步符号分配的说明
图4示出了在一个虚拟网状网络内同步符号分配的一个示例。虚线示出了示范性同步分配路径路径(SDP)。所示SDP组是图3中网络的SDP有效配置的一个示例。为一组有效的SDP所遵从的准则包括:(a)所有的SDP在一个同步源设备处始发;(b)除了同步源设备(组)之外,在虚拟网络内的所有设备是每个都在一个SDP上,例如除了在同步源设备处之外,各SDP不交错;(c)SDP不循环,例如,一个设备在一个——并且只有一个接口——上接收来自它的SDP中的同步。单个SDP也可以有多个分支。在图4中,从虚拟网络内任何设备沿着连接两个设备的SDP而到达同步源设备的距离(该距离以转跳的数目为单位)是介于虚拟网络内这两个设备之间的最小转跳路径。作为选择,可以不是这种情况。
在一个给定设备处可以有多个最小转跳路径可用。例如,设备8有两条3转跳路径,把它连接到同步源设备1,即{1,2,5,8}和{1,3,6,8}。{1,2,5,8}是在它自己掌握中的一个SDP,而{1,3,6,8}如果被使用,则是也服务于设备9的SDP的一个分支。在这个实施例中,设备8本地选择它将成为哪一SDP的一部分。用于选择多个最小转跳路径之间的标准是任意的并且未作指定。
一个同步源设备和那个设备的接口(在那个接口上来接收来自一个外部同步源的同步)经由一个外部管理系统通过图3中的备用控制器62来被配置。在Vinay Bannai等人于2000年5月5日申请的序列号为09/567,555、标题为“An Architecture for Transport of MultipleServices inConnectionless Packet-Based Communication Networks(一种在基于无连接分组的通信网中用于多个服务传送的结构)”的共同待决的专利申请中详细描述了备用控制器和各种机制——通过该机制,外部管理系统可以设置设备20的各配置参数,在此结合其全部内容作为参考资料。同步源设备然后以周期速率来分配同步符号,该周期速率基于从外部同步源(比如8kHz)接收到的周期速率,该外部同步源出自同步源设备的每个LMAC兼容的接口。LMAC位于图3中的切换卡38上。切换卡稍后在本说明书中被详细描述。虽然LMAC把关于从虚拟网络中其它设备中收到的同步符号的信息收集在它的寄存器中(稍后在本说明书中再一次描述),在切换卡上在CPU 46上运行的管理同步分配的软件应用程序(如图6所示)忽略了此信息,因为它与虚拟网络的整个同步不相干。
通过由虚拟网络上同步源设备发送的一个广播控制分组,虚拟网络中的所有其它设备被通知:虚拟网络中的哪些设备(组)是同步源设备。此信息可以装载在已经包含在使用于拓扑结构重新配置中一个广播邻近状态消息中的信息上,正如在J.Fan等人2000年3月3日申请的序列号09/518956、标题为“Automatic Network Topology Identification byNodes in the Network(网络中节点的自动网络拓扑结构识别)”的共同待决的专利申请中所详细描述的,在此结合其全部内容作为参考资料。用于发送和接收控制分组的机制在共同待决的申请“An Architecturefor Transport of MultipleServices in Connectionless Packet-BasedCommunication Networks(一种基于无连接分组的通信网中用于多个服务传送的结构)”中被详细描述,本说明书中此前将其全部内容结合作为参考资料。基于本说明书中此前将其全部内容结合作为参考资料的标题为“Automatic Network Topology Identification by Nodes in theNetwork(网络中节点的自动网络拓扑结构识别)”的共同待决的专利申请中详细描述的拓扑结构重新配置方法,虚拟网络中的每个设备按照一种即插即用的形式独立地构成,并且验证它自己的虚拟网络拓扑结构的映射(而不需要一个外部管理系统的存在)。这通过在每个设备内的CPU 46(图6)上运行的一个软件应用来执行。一旦获得拓扑结构映射,则诸如Dijkstra算法之类的一个标准路由算法(该算法描述于Addison Wesley Longman有限公司于2000年出版,Radia Perlman所著的“InterconnectionsSecond Edition”一书上,在此结合其全部内容作为参考资料)即可用于确定以转跳为单位(或者更普遍地,以加权或耗费为单位)的距离,以及介于虚拟网络中任何一对设备之间的最小转跳路径。因此,虚拟网络中的每个设备,基于其所知道的虚拟网络拓扑结构,可以基于作为到达同步源设备的最小转跳路径一部分的接口的选择,独立地确定它应该从该设备的哪一个LMAC兼容的入口接口来接收同步符号。正如本节中前面所指出的那样,用于在多个最小转跳路径之间进行选择的标准是任意的并且未被指定。每个设备然后以周期速率来分配同步,该周期速率基于从它每个LMAC兼容的接口之外的相应入口接口中收到的周期速率。
不仅由于拓扑结构改变(比如一个新的节点的插入或者一个光纤的损耗),而且由于关于接口的同步信息的损耗(即使数据仍然正在那个接口被接收),一个设备可以改变它从其接收同步的那个接口。用于对此加以确定的机制在“切换卡内同步块的说明”部分中作了描述。
例如,上述同步路径的重新配置可以以一种完全自动的形式发生,而不必任何操作员干预。另一方面,这可能不是所期望的。另外两种模式的同步路径建立可以被使用。一种是完全人工的方法:每个设备被一个外部管理系统配置来接收来自一个特定LMAC兼容的入口接口中的同步。另外一种是这样一种模式:即,只有当一个设备丢失来自它从中接收同步的那个当前接口中的同步时,才改变它从中接收同步的那个接口。在对网络的初始插入之后,设备基于上述最小转跳方法来自动地确定从哪一接口来接收同步。可是,从转发的那个点,设备从同一接口中接收同步,除非同步被丢失,或者除非它被命令基于来自一个外部管理系统中的配置来进行切换。
上面的方案在其中同一阶层级有多个同步源设备的那些网络中也同样工作良好。
对于完全自动的同步分配实施例来说,有着操作上的优点。它与拓扑结构重新配置完全地集成,正如在标题为“Automatic NetworkTopology Identification by Nodes in the Network(网络中节点自动网络拓扑结构识别)”的共同待决的专利申请中所描述的一样,本说明书中于此之前结合其全部内容作为参考资料。当网路拓扑中出现改变时,适当的LMAC兼容的入口接口(在每个设备处,从该适当的LMAC兼容的入口接口中接收同步符号)被确定作为拓扑结构映射结构的一部分。该设备的切换卡38上的CPU 46(图6)然后直接地切换来监控在那个接口上的LMAC。因此它不须操作员干预或者来自一个外部管理系统的干预。因为对一个设备来说,为了在同步分配损失的情况下延期(hold-over)的目的,在每个设备上有一个内部较低级阶层时钟(比如阶层3)(正如在“切换卡内同步块的说明”那部分中所描述的),所以这里不要求高速切换。因此,用于同步路径确定的一种拓扑结构重新配置算法的使用完全足够了。另外,处于延期中的一个阶层3或者更高的时钟保持与其锁定至少一天的时钟的一个极其近似的值,正如在Telcordia GR1244-核心规范中所描述的——此前已将其全部内容结合作为参考资料。因此,甚至在出现拓扑结构重新配置的罕见情形下,在从一个同步路径切换到另外一个之后,没有理由预期在设备内的长锁定时间(或者在任何服务中的任何显明的恶化)。
分支接口卡的说明
图5更详细地说明了用于同步或准同步帧数据51的一个分支接口卡,示出了从与虚拟网络外部的设备进行接口的入口数据端口到分支接口卡和切换卡之间的底板接口所产生的路径。为了增加可靠性,这里可以有两组底板接口来实现与一对冗余切换卡的通信。
分支接口卡的这一实施例具有对于虚拟网络外部的设备的多个DS1接口。DS1是一种众所周知的同步帧接口,并且在TelcordiaGR-499-CORE规范中被规定,在此将该规范的全部内容结合作为参考资料。物理接口由DS1 Phy设备76处理,该设备76称为线路接口单元(LIU)。在LIU之后,DS1数据进入帧调节器(framer)78。帧调节器的功能是在入口方向上从输入DS1流中恢复各帧,或者在出口方向上反之亦然。LIU和帧调节器的功能的组合由一个转换器(其为一个人所熟知的组件)和一个帧调节器处理。该转换器可以是一个脉冲PE68624表面安装共式扼流圈(common mode choke)或者另一类似的组件。一个适当的帧调节器的示例是一个PMC-Sierra4351 COMET T1/E1收发机,在此将其数据表全部内容结合作为参考资料。
跟随帧调节器的是一个封包器/解包器80。此设备的功能是把各组DS1帧按照一种完全透明的形式进行封包/解包,例如无论如何不影响DS1帧内的比特。来自一个给定端口的组合了每一分组的连续DS1帧数可由CPU 82进行配置,并且通常设置为4帧,以便在数据吞吐率(它支持长分组)和端对端的延迟减少(它支持短分组以便将打包延迟最小化)之间进行折衷。在本结构的组成中,以一种透明形式对各组DS1帧进行封包的这一方法是关键的决定。对于DS1而言,这是一种比处理DS1内各单独的DS0的那些系统简单得多的模型。DS1的透明传送使得虚拟网络表现为这样一种导线:其对于任何给定DS1交叉连接具有一个恒定延迟。为了确保没有帧滑动,对于每一输出DS1端口需要在对虚拟网络的出口处缓冲足够的DS1帧,以便补偿通过该网络的最坏情况抖动。所需要的缓冲总值被直接通过网络模拟或者通过分析估计来加以估计。
封包器/解包器可以实施为一个FPGA或者实施为一个ASIC。优选实施例被分成两部分:发送FPGA和接收FPGA。这一实施方案详细描述于共同待决的申请“An Architecture for Transport of MultipleServicesin Connectionless Packet-Based Communication Networks(一种基于无连接分组通信网中的多个服务传送的结构)”中,在本说明书中结合其全部内容作为参考资料。
图7中的存储器81代表在节点中除了用于查询表的存储器之外的那些存储器,不过应该理解,其中可以有分布SSRAM、SDRAM、闪速存储器和EEPROM,用以满足系统所必需的速度和功能要求。
CPU 82连接到一个四路以太网Phy设备83,该四路以太网Phy设备83例如为先进微装置公司所提供的AM79C875KC或者任何其它适当的类型。这个设备把分支接口卡连接到一个管理网络底板接口,或者作为选择,为了冗余度的目的连接到一个以上的管理网络底板接口上。CPU也被连接到帧调节器78、封包器/解包器80和MAC84。通过它对封包器/解包器的连接,CPU能够设置用于压缩DS1帧的报头中的各数值。
在封包器/解包器80的输出端,一个媒体接入控制器(MAC)84进行从并行的32比特通用千兆比特接口(GGI)到并行的8比特接口的转换,该并行的8比特接口是在串行转换器/串并转换器(SERDES)86输入端所需要的,反之亦然。MAC是众所周知的,且其描述于Roger Freeman所著“TelecommunicationSystem Engineering(电信系统工程)”一书上(John Wiley & Sons有限公司于1996年出版的第三版),在此结合其全部内容作为参考资料。其中不要求分支接口卡上的MAC具有特定的LMAC性能。
通过一个串行转换器/串并转换器(SERDES)86,MAC84的并行输出被转换成一个串行比特流,反之亦然。在一个示例中,SERDES86使用一个表格把来自MAC84的一个并行8比特组转换为一个10比特串行流,反之亦然。被选择来与8比特码对应的10比特码符合有关每一代码的1和0的数量的平衡标准,并且为了改良的性能,符合关于相邻的1和0的最大数量的平衡标准。例如,大量的连续逻辑1产生基准线漂移,长期平均电压电平的偏移被接收机使用作为一个门限值来区分1和0。通过在底板上利用具有平衡数目的1和0的一个10比特字,基准线漂移被极大地降低,因此使得卡对底板能够更好地交流耦合。SERDES86可以是Vitesse公司所提供的VSC7216型或者任何其它适当的类型。在此结合全部Vitesse VSC7216的数据表作为参考资料。
DS1,作为一个同步接口,必须具有可用于分配给帧调节器以及分配给封包器/解包器的一个8kHz同步源。此同步源可以经由一个外部建立的集成定时源(BITS)或者连接到该设备的GPS时钟、或者经由位于可以通过底板分配定时设备内的一个内部定时源而被提供。外部BITS时钟、GPS时钟以及内部定时源是众所周知的。这些类型的定时源描述于1997年McGraw-Hill出版的Walter Goralski所著“SONET”一书中,在此结合该书全部内容作为参考资料。在同步源设备(图4中所示设备1)处,从一个外部BITS时钟或者连接到一个DS1数据端口的GPS时钟中获得同步。在虚拟网络中的任何其它设备处(图4中的设备2~9),从图3中的切换卡中的一个底板线路中获得同步。
在DS1卡上的一个多路复用器88被CPU82配置来接收来自同一卡上的DS1输入端口中的同步,或者来自切换卡38中的底板线路中的同步。对于每个DS1输入端口,都有从帧调节器78到多路复用器88的一个独立的线路。另一底板线路可用于一个冗余的切换卡。在从同一卡上的一个DS1输入端口中接收同步的情况下,多路复用器启动在底板上的这个同步源的分配,以便该同步源可用于该切换卡(组)。
多路复用器的输出进入一个Mitel 9041AP输出中继线锁相环(PLL)。该锁相环接受一个8kHz定时输入并且产生一个8kHz输出、一个1.544MHz和一个8.192MHz输出,以用于帧调节器以及封包器/解包器的T1定时。
切换卡的说明
切换卡如图6所示。到切换卡的进入分组从底板接口到分支接口卡经过一个SERDES 58和一个MAC 56,其符合那些组件的早先说明。这里不要求分支接口卡上的MAC具有特定的LMAC性能。一个适当的分组处理器54的示例是MMC Networks公司的XPIF-300千兆比特比特流处理器,在此结合其数据表全部内容作为参考资料。分组处理器54与一个外部存储器55(查询表)接口,该查询表包含路由选择信息以将数据路由到它的目的地。
分组处理器54的输出进入切换结构50。一种适当的分组交换是MMC Networks公司的Model nP5400 Packet Switch Module。在一个实施例中,为了更快的通过量,四个这样的切换被连接在每个切换卡中。此实施例被使用在切换卡上。对于本说明书来说,这一切换的容量不是关键。
CPU 46、以太网Phy45、分组处理器48、查询表47、存储器49以及SERDES42符合打包数据的在分支接口卡上这些组件的早先说明。
MAC44可以是多个物理上分立的LMAC,在对一个光学接口卡32的每个连接上都有一个LMAC。MAC44还可以是单个物理芯片,比如一个Xilinx XCV400-6BG560C VirtexFPGA,在其上实施一个或多个LMAC实例。稍后在本说明书的“光媒体接入控制器(LMAC)的说明”部分中描述的LMACFPGA实施方案可以在这样一个FPGA上实现。
在切换卡的情况下,CPU 46已经具有了对MAC设备44和56两者的连接。它还具有对同步块43的连接。同步块及其接口见于后续部分的“切换卡内的同步块的说明”的描述。这个块的说明以及LMAC的后续说明包含本说明书所需要的大部份的硬件说明。
SERDES42通过底板与光学接口卡32接口。图6更加详细地说明了示出光收发机40的一个光学接口卡32。可在卡32中用一个附加开关以在两个切换卡之间进行切换,用于增加可靠性。光收发机可以是一个千兆比特以太网光收发机,其使用市场上可购得的1300nm激光器。图3示出了使用于一个双向环拓扑结构中的设备20的实施例。具有两个以上光学接口卡的设备20可以被使用于网状拓扑结构中或者互连环拓扑结构中。
分组处理器48不改变来自切换结构50中的进入分组。它直接地发送那些分组给MAC44。分组然后通过SERDES42、通过光学接口卡32而在虚拟网络上出来。然而,对于来自光学接口卡32中的进入分组而言,分组处理器48起着关键的作用。分组处理器48确定这些分组是否发往设备20的(“分下(drop)”通信)或者它们是否被传递给其它设备(“传递”通信)。这详细描述于共同待决的申请“An Architecture forTransport of MultipleServices in Connectionless Packet-BasedCommunication Networks(一种基于无连接分组通信网中的多个服务传送的结构)”中,在本说明书中结合其全部内容作为参考资料。
切换卡内同步块的说明
图7示出了直接包含在切换卡38上的同步功能中的组件之详细图表。如图7所示的组件包括图6中同步块43、CPU 46和MACs44的内部。
一个Mitel 9044转接锁相环(PLL)110被用来产生8kHz帧脉冲或者从切换卡通过底板被分配的时钟。在此结合Mitel 9044的数据表全部内容作为参考资料。Mitel 110的F80输出进入一个复杂可编程逻辑设备(CPLD)108。用CPLD表示的所有块可以在诸如Xilinx 95144XL之类的单个物理CPLD上被实现。来自CPLD108的输出线路连接到底板上的线路,用以把8kHz时钟分配给所有的分支接口卡(虽然图3中用于打包数据52的分支接口卡不使用它)并且分配给冗余(备份)切换卡。另外,来自CPLD108的输出线路连接到LMAC44A和44B。这是8kHz时钟,其命令从各LMAC在环上发送同步符号。
Mitel 110有一个主频率源和次频率源以及一个主信号损耗和次信号损耗(LOS)输入,它使用一个稳定的20MHz时钟126对此加以锁定。利用在CPLD中实施的一个多路复用器100来选择Mitel 110的主频率源。多路复用器100的选择选项有:(a)各分支接口卡8kHz时钟的其中之一(只有诸如DS1之类的用于同步/准同步接口的分支接口卡对此是有效的选择);(b)来自其它环卡中的8kHz帧脉冲;和(c)从20MHz时钟划分的8kHz时钟。多路复用器通过由CPU 46设置的控制寄存器102来配置。由CPU 46用来确定如何配置这些寄存器的方法在本节稍后描述。
所选择的主频率源从mux108到达Mitel部分,并且还到达一个可以检测信号损耗的CPLD104。CPLD104随后可将一个LOS指示馈送给Mitel部分。这个CPLD也可由CPU控制,从而能够判断对Mitel部分的信号损耗。一个完全相同的配置被用于次频率源。被CPU 46使用于参考切换的方法在本节中稍后描述。
Mitel部分也可从一个CPLD寄存器加以控制,CPU可访问该CPLD寄存器。由这个寄存器控制的功能是:(a)*TCLR——时间间隔差错(TIE)清除和复位;(b)MS1和MS2——模式选择;(c)RSEL——基准源选择;(d)*RST——复位。HOLDOVER是一个CPLD寄存器的输入(该CPLD寄存器可由CPU 46读取),其指示Mitel 9044已经切换到延期模式。这些功能在Mitel 9044的数据表中被描述,该全部内容已在此前被结合作为参考资料。
20MHz频率源126将是一个符合阶层3E内部计时要求的恒温控制晶体振荡器(OCXO),或者是一个符合阶层3内部计时要求的温度控制电压控制晶体振荡器(TCVCXO)。可用来提供这些功能的各个部分是MTI Milliren部分;OCXO是220系列OCXO而TCVCXO是210系列小型OCXO。
20MHz振荡器的输出在CPLD128中被向下划分为8kHz,然后该8kHz被提供作为CPLD mux108的一个输入。
对于20MHz OCXO/TCVCXO的电压控制输入来自数字模拟转换器(DAC)124。可以用于这一功能的一个组件示例为模拟装置8562,其为12比特并行DAC。
使用CPLD120和122来编程DAC,它具有在一种CPU操作中锁定的较低的8DAC比特并且具有在另一种CPU操作中锁定的较高的4DAC比特。较高的4比特的锁定在DAC8562的*CE上产生一个有效低脉冲。这个脉冲是40纳秒的最小值。
LMAC使用一个62.5MHz时钟117作为输入。这个振荡器可以自由振荡,并且不需要受到温度控制,例如它能够在每兆+/-50部分的范围中偏移。此类振荡器是公知的。执行此功能的一个示范性组件是Abracon ACHL-62.50MHz-CA。
从环中收到的每个同步符号可以被表示为8B/10B控制代码K23.7。每当在Vitesse7216SERDES设备处检测这个码之后,LMAC就在进入Err/Kch/Idle和RXDATA线路上通过适当的比特得到通知。LMAC将使用以125MHz运行的一个24比特计数器(分裂为一个8比特计数器和一个16比特计数器)来测量可配置数目的接收同步符号之间的时间。使用一个10比特计数器来设定所述可配置数目的同步符号(抽取系数)。预期可配置数目的同步符号将被设为100,且因此而LMAC采样点之间的间隔将为12.5ms(断续信号(tick)以8kHz的频率到达而关闭环)。在接收的同步符号数目达到可配置的数值之后,LMAC将把24比特计数器数值锁存到一个保持寄存器中。按照一种类似的形式,LMAC还将测量发送的同步符号的可配置数目之间的时间,其中仍预期同步符号的可配置数目将被设为100。
接收断续信号计数器一旦锁定之后,将对CPU产生一个中断。同样,发送信号计数器锁定会产生一个中断。这些中断可以被CPU屏蔽。这些中断对光硬件抽象层(LHAL)来说是可见的,该光硬件抽象层将对更新软件PLL的应用产生高优先级事件。这个应用必须存储来自早先锁定事件中的发送和接收24比特计数器数值(早先的100个同步符号),从而能够计算用于发送和接收两者的125MHz断续信号数目——该应用采用了这一断续信号数目来发送最近的100个同步符号。由PLL环路滤波器处理的差错信号是这两个值之间的差值。这个应用将包含差错门限值,从而使得由发送或接收上的同步符号的损耗或同步符号的寄生所产生的假差值将不被用于更新该PLL。
CPU 46实现PLL的环路滤波器。可以在CPU上的一个软件应用中执行以下示范性方程,从而确定如何驱动DAC124,以用于有源比例积分环路滤波器:
VcoIn=Ki*ErrInt+Kp*Err
ErrInt=ErrInt+DEC FACT*Err
Err是已经用来在发送时发送最后100个同步符号和在接收时接收最后100个同步符号的125MHz断续信号数量之间的时间(转换成秒)之间的差错。如果这里有由于同步符号的损耗引起的一个假差值或者同步符号的假产生,则Err将被设置为0。DECFACT是测量值之间同步符号的可配置数目,或者说是抽取系数。在此示例中它等于100。ErrInt是时间上的差错积分。Ki被定义为(omega_n/(0.5*loop_freq))2,并且Kp被定义为2*damp_fact*(omegan/(0.5*loop_freq)),其中omega_n是以Hz为单位的PLL截止频率(对于典型环路滤波器,其范围可以约从0.001Hz到2Hz),loop_freq是以Hz为单位的PLL的更新率(在此示例中为8kHz),而damp_fact是PLL的阻尼因数(对于典型环路滤波器,其范围可以从3.0到6.0)。
基于Ronald Best所著“Phase-Locked Loops:Design,Simulation andApplications(锁相环:设计,仿真和应用)”(1999年,McGraw-Hill公司出版,第四版)一书上的PLL描述,可以很容易地引出上面的方程式,在此将其全部内容结合作为参考资料。
在环路滤波器之后,数值VcoIn还可以经过换算,以便以适当的电平驱动DAC。通过实验室中DAC的特性,很容易确定在VcoIn数值和DAC驱动电平之间的一个映射。
CPU 46的mux CPLD100的设置
通过分频器CPLD 128的来自TCVCXO/OCXO中的mux输入被设置为不位于中心局(CO)中的节点(例如一个同步源设备)的活动切换卡上的主同步源。备用(冗余)切换卡的主同步源将是活动切换卡的8kHz输出,例如在底板上从活动切换卡发送到备用切换卡的CPLD108的输出之一。
通过一个诸如DS1卡之类的分支接口卡的外部同步应是一个同步源设备中的主要和次要源而用于活动切换卡。备用切换卡将使用活动切换卡的8kHz输出作为主要源,而以DS1卡(其服务作为用于该活动切换卡的主要源)作为它的次要时钟源。
CPU 46如何处理同步基准切换
有各种各样的同步基准损耗和恶化情形。首先是DS1卡的总损耗(从该DS1卡中获得主同步基准),或者由于其它原因而在DS1卡和环卡之间的路径上的主同步基准的总损耗。在这种情况下,时钟损耗检测CPLD将向Mitel 9044声明LOS,并且在丢失两个和四个预期的8kHz之间的转换之后更新一个同步状态寄存器。在一个LOS周期之后,该时钟损耗检测CPLD还将在检测至少四个连续的8kHz转换后更新同步状态寄存器,但是将不向Mitel 9044去除声明(deassert)LOS。CPU将以在10毫秒和50毫秒之间的一个周期来轮询同步状态寄存器。Mitel 9044将自动进入延期模式而与LOS指示无关(用于进入延期模式的标准是:该基准是否从Mitel内部基准偏移大于+/-36,000ppm。在LOS的情形下延期频率将是在LOS之前的基准频率)。来自主切换到次同步基准的同步基准的损耗中的延迟由与Mitel 9044一起使用的保护时间调整电路来确定。保护时间将被设置为100毫秒。此100毫秒从LOS被时钟损耗检测CPLD声明的那个时刻开始。
在切换到次基准之后,在CPU 46上运行的一个软件应用将把次基准重新配置处理为主基准并且选择新的次基准。作为这个重新配置的一部分,CPU将通过主LOS和次LOS启动线路在不同的时间命令主和次LOS。CPU负责用于保持每个DS1卡状态的跟踪(从图3中备用控制器62中接收)以及用于选择哪一DS1卡将担任新的次要源并设置适当的mux控制寄存器。
在从LOS返回一个同步基准之后,CPU将通过一个输入到时钟损耗检测CPLD的命令来确定何时以及是否删除LOS指示。
Accunet T1.5规范描述了除了LOS之外的基准恶化情况。这些情况包括在一个规定持续时间上的错误猝发以及在规定容限上的输入抖动。这些恶化的检测发生在DS1卡上。如果一个端口变成中止或者恶化,则在一个DS1卡上的各端口之间的切换直接发生在该卡上。
如果同步基准偏移,则在一个大约+/-300ppm的偏移之后启用Mitel9044上的自动延期方式。自动延期频率为离精确的DS1频率+/-273ppm。延期插脚不被声明。为了检测这样一个方案,必须从DS1卡本身传送一个指示。通过DS1卡上的PMC Comet帧调节器,+/-230ppm的偏移是可检测的。这将引起对DS1卡上的一个新端口的切换。暂时,这种状态将通过内部控制平面被传送给环CPU。如果可能,则CPU将驱使对另一个卡的切换。
上述的CPLDFPGA模块已经被分解成为各功能块,其简单得足以让本领域普通技术人员进行制造,因为需要用以首先每个功能块的可编程逻辑都是众所周知的。
光媒体接入控制器(LMAC)的说明
介绍
LMAC提供在MMCXPIF的32比特同步GGI总线接口(请参见XPIF-300A3数据表的第29~39页)和Vitesse SERDES 7216设备的8比特接口(第4、5、10和15页特别有益)之间的一个总线协议转换和缓冲功能。上述两种组件的数据表已在此之前结合其全部内容作为参考资料。
GGI总线定义了两个单向的32比特数据总线,一条总线用于发送数据(从XPIF到LMAC的数据)而一条总线用于接收数据(从LMAC到XPIF的数据流)。
在两个方向上的数据协议本质上是相同的。当XPIF在发送数据时它是数据传送的始发音。GGITXV_L信号被声明来指示在GGI发送总线(GGITXD)上一个32比特字有效。当GGITXV_L有效时每一时钟传送一个32比特字。时钟速率为52MHz。从XPIF到LMAC的数据传送可以由LMAC通过声明GGI_TX_FULL_L信号来阻塞(throttle)。这里有两时钟流水线延迟,用于在GGI_TX_FULL_L被声明时暂缓和开始数据传送。
在GGI发送总线上,XPIF正在发送的帧处于一个特定32比特控制字(TXSOF)之后,并且由一个特定32比特控制字(TXEOF)所终止。当单个LMAC被附加到一个XPIF时,发送数据传送可由LMAC通过向XPIF声明TX_FULL_L信号而被阻塞。不幸,当两个LMAC被附加给单个XPIF时,一旦一个转送已开始,则该XPIF忽略TX_FULL_L信号。换言之,该LMAC必须能够接受最大尺寸的帧(1522字节以太网MTU加环报头字节(Ring Header Byte);例如,1600字节发送缓冲)。
XPIF还可以通过去掉声明GGITXV_L来阻塞发送时的数据传送,即,不需要每一时钟传送一个数据字。
当XPIF从MMC GMAC-B3千兆比特媒体接入控制器中接收数据时,协议本质上是对称的——除了在一个分组之前和终止该分组的控制字格式(分别地为RXSOF和RXEOF)对于GGI接收总线稍微不同之外。在此结合MMC GMAC-B3的数据表全部内容作为参考资料。在数据被XPIF接收(帧被接收)时的另一复杂因素是:在从LMAC将数据发给XPIF之前,LMAC必须声明RX_FAV_L信号并且XPIF必须声明RX_GO_L信号,但是这只是在一个二元LMAC结构中。
来自XPIF的发送数据被储存在一个发送FIFO中。GGI发送总线上的TXSOF和TXEOF控制字被写入发送FIFO中,控制信号SOP(分组的开始)和分组结束(EOP)被设置。这些数据字未被SERDES发送(因此实际上可以写入任意数据),而是仅仅被使用来划定分组边界。EOP字表示分组的前一个字中的有效字节的数目(即,EOP字前面的字)并且将被用于在正确字节界限上终止发送。
以125MHz而一次一个字节地把数据从发送FIFO中读出并将其发送给Vitesse SERDES设备(实际上,该数据是在时钟的两个边缘以62.5MHz来传送的)。对Vitesse来说,发送接口很简单。有一个8比特发送数据总线和一个命令/数据信号,该命令/数据信号表示该8比特总线是否是数据或者是一个“特殊K”字符(频带控制字符之外)。分组开始的“特殊K”字符(K27.7)必须在一帧的第一个字节前面,并且分组结束的“特殊K”字符(K29.7)必须终止一个帧。当数据未被发送时,表示空闲的“特殊K”字符必须通过把命令/数据线路驱动为命令来被发送并且8比特发送数据总线为“10111100”。
Vitesse SERDES设备的发送接口的设计还必须包括把“特殊K”字符优先插入到发送数据流中。例如,“特殊K”字符被发送来执行“脉动(heartbeat)”和“定时同步”功能。反过来,当这些“特殊K”字符由Vitesse SERDES接收到时,作为响应,可能需要通过把一个“特殊K”字符优先插入在发送数据流中而立即加以发送。同时,当接收缓冲器碰到一个水印时实现一个链路级流量控制机制(XON/XOFF)。在接收缓冲器溢出之前,通过发送一个“特殊K”字符,发送机必须被关掉。在一个XOFF“特殊K”字符被发送之前,XOFF字符在到达接收缓冲器的数据源时的延迟时间乘千兆比特数据速率可能需要有关接收缓冲器的一个非常低的水印。
从Vitesse SERDES设备来的接收接口本质上由一个8比特接收数据总线和4个控制信号组成,这4个控制信号是:RSDET、ERR、KCH、IDLE。数据在时钟的两个边缘上以62.5MHz被传送,其在概念上等于以一个125MHz速率传送一个字节。通过一个延迟锁定环的使用,FPGA内部的SERDES接口以125MHz计时。
当RSDET信号未被声明时,没有进入信号到达SERDES,并且ERR、KCH和IDLE信号没有含意。当RSDET被声明时,ERR、KCH和IDLE信号通过一个真值表来表示如何来解释接收字节。真值表表示一个接收字节是否是一个有效数据字节,或者是否发生了一个低估/溢出差错、接收到除了IDLE之外的一个特定“K”字符、或者检测到一个IDLE、或者检测到一个频带外差错或非奇偶性差错或者同步损耗。
当接收到一个“分组开始”、“特殊K”字符时(ERR/KCH/IDLE=“010”),在接收数据总线上来自SERDES的8比特数据被装载到一个16比特流水线寄存器中,以匹配接收FIFO的16比特数据路径宽度。(数据路径宽度是以在所选择的FPGA技术和FPGA设备中可用的RAM粒度为基础的一个折衷)。分组的连续数据字节在16比特流水线寄存器中被组合并写入到接收FIFO中。分组通过“分组结束”、“特殊K”字符来分界。“EOP”和“SOP”控制信号在写入接收FIFO以便划定分组边界时被声明。此外,产生一个关于“分组结束”字节是否在输入流水线寄存器的高阶或低阶16比特中的指示。
接收FIFO也许小于最大的分组尺寸(在二元的LMAC情况中大约为512字节)。这意味着需要一个链路层流量控制(XON/XOFF)来避免接收FIFO溢出差错。幸运的是,二元的LMAC情况只是发生于中平面上,这限制了发送机对XOFF(“接收缓冲器满”)消息响应的最大等待时间。125MHz的512字节大约是4000ns。当接收FIFO达到“半满”标记(或者某种其它的水印TBD)时,一个“接收缓冲器满”“特殊K”字符就被发给进入接收FIFO中的数据源。该发送机然后停止发送,直到它看到一个“接收缓冲器可用”“特殊K”字符为止。
SERDES接收接口上的差错情形被发送给SERDES接收差错块,其中若干独立的计数器保持SERDES接收接口上的各种差错情形的计数。
把接收数据从16比特宽的接收FIFO中读出并将其组合成为32比特字用于通过GGI RX总线转发给XPIF。GGI RX总线协议需要的RXSOF和RXEOF字从接收FIFO的“EOP”和“SOP”控制输出中产生。
LMAC还在SERDES发送接口上发送被称为“Ping”的周期性“特殊K”字符给它附近的LMAC;发送频率以1ms为单位。作为响应,一个接收“Ping”“特殊K”字符的LMAC需要在它的SERDES发送接口上立即发送一个“Pong”“特殊K”字符(即发送一个“Pong”给“Ping”的发送方)。
基于被称为“TICK_IN”的一个8kHz方波时钟输入,用于网络同步的周期性的“TICK”“特殊K”字符在SERDES发送接口上被发送。这些“TICK_IN”输入的计数被保持。从SERDES接口中收到的“TICK”字符数目的分别计数被保持。这些计数器被使用作为一个PLL电路的一部分,其提供控制信息给一个VCO,VCO接着保持与网络时钟的一个本地时钟同步。
主要块的说明
如图8所示,基于LMAC的划分,提供一个通过Synplicity而由机器形成的LMAC数据路径的框图。会同下列各个部分来参看该框图可能很有帮助。
寄存器块
寄存器块实现在下面的“LMAC程序员手册”部分中定义的命令和状态寄存器。
CPU接口包括一个16比特双向I/O总线“mpd[15:0]”和由PPC860CPU产生的相关控制信号。寄存器块的时钟输入“clk”被认为与来自PPC860的“as_l”、“cs_l”、“rd_wr_l”和“mpad[10:0]”信号异步,这表示地址总线“mpad”何时有效、高阶地址比特的解码何时有效以及操作是否分别是一个读或写。
在寄存器块中大约有22个寄存器。
应当指出,对于PPC860处理器,最高有效比特是在比特[0]上,而最小有效比特是在比特[15]上。对于地址和数据两者均是如此。在内部,最小有效比特是在比特[0]上。在寄存器块中应执行地址和数据的适当交换。
GGI TX状态机
GGI Tx状态机通过同步GGI发送总线把数据从XPIF传送到LMAC。ggi_txv_l信号指示何时在GGL_txd[31:0]单向数据总线上有有效数据。在GGI发送总线上传送的所有分组通过TXSOF和TXEOF控制字来分界,其通过GGI_txc信号的声明来指示。来自寄存器块的tx_gmac_address[7:0]输入被用来匹配TXSOF字的GMAC_Address[27:20]字段。如果不存在匹配,则分组将被GGI TX状态机忽略。
ggi_txp信号是GGI_txd[31:0]和GGI_txc信号上的奇校验。在GGI_txp上具有奇偶校验差错的分组将被标记但是另外被发送。
发送FIFO实现一个同步写入端口。将向GGI TX状态机的clk输入的上升沿声明表示分组开始和结束的txffo_write_enable信号和tx_fifo_write_data[31:0]以及tx_fifo_write_sop tx_fifo_write_eop。分组的上一个字中的有效字节数目在TXEOF字的比特[27:26]中被表示。(应当明确指出:TXSOF和TXEOF字将被写入发送FIFO中并且txfifo_write_sop和txffo_write_eop信号被分别声明。)
来自发送FIFO字块中的txffo_three_words_before_full输入信号从发送FIFO中启动GGI Tx状态机块,以及时阻塞GGI发送总线(通过声明GGI_tx_full_l信号),从而避免发送FIFO溢出;有两个GGI发送总线的时钟延迟来停止或开始数据传送。对于诊断读取能力,tx_sm[15:0]总线包含GGI TX状态机到寄存器块的所有状态机比特(并且或许还有些输出)。
发送FIFO
发送FIFO支持用于读取和写入端口的独立时钟。在两个端口上的数据宽度为32比特。当在write_clock信号的前沿之前write_enable信号被声明时,Write_data被写入FIFO,它相当于GGI Tx状态机的GGI_clk(52MHz)信号。write_eop和write_sop信号把分组开始和结束分界并且包含来自GGI发送总线的TXSOF和TXEOF字。通过向read_clock声明该read_enable信号同步来把数据从发送FIFO中读出。read_clock以62.5MHz被定时。这向SERDES Tx状态机块提供了一个挑战,它以125MHz被定时。(关于read_enable信号是否在62.5MHz时钟的下降沿或上升沿上被声明存在着不明确性,这可以通过提供62.5MHz时钟作为SERDES发送块的一个输入来解决。当然在62.5MHz时钟和125MHz时钟之间也有相位差,DLL可以对此加以解决或者不加以解决)。
read_sop和read_eop信号表示来自GGI发送总线的TXSOF和TXEOF字。发送FIFO的read_data[31:0]在read_clock的下一上升沿有效并且直到下一读操作都保持有效。在复位或者一个FIFO空的状态之后,在发送FIFO外的第一数据字有效之前必须执行一个读操作。
发送FIFO提供tx_fifo_empty和tx_fifo_full标记。与read_clock同步地产生空标记并且相对于write_clock产生full_flag。three_words_before_full信号(与写时钟同步)允许GGI Tx状态机及时阻塞GGI发送总线以避免发送FIFO溢出,从而在阻塞GGI发送总线时支持两个时钟延迟。
tx_fifo_read_ptr和tx_fifo_wrt_ptr分别与read_clock和write_clock同步,并且被发送给寄存器块用于诊断读取能力。
未使用的最高有效FIFO指针比特应为零填充。
SERDES Tx状态机
当SERDES Tx状态机处于空闲状态时,它必须声明Serdes_tx_cmd_data_l信号为“高”电平(来指示“特定K”字符)并且Serdes_tx_data[7:0]输出到“101 11100”状态以使当没有数据正被发送时Vitesse SERDES设备将发送空闲的“特殊K”字符。
当发送FIFO非空时,即tx_fifo_empty为假时,SERDES Tx状态机通过声明txffo_read_enable信号来读取发送FIFO外的32比特字(tx_fifo_read_data[31:0])。发送FIFO的读端口以62.5MHz被定时并且SERDES发送状态机以125MHz被定时。应该小心运用以使txffo_read_data[31:0]被正确地登记在SERDES Tx状态机内。(DLL保证62.5MHz的上升沿和125MHz信号的上升沿被对准。然而,直到数据有效之前125MHz时钟沿的数量为2或3个时钟。一种适当的设计方法是在登记tx_fifo_read_data[31:0]之前总是等待3个时钟。通过声明Serdes_tx_cmd_data_l信号为“高”电平(来指示“特殊K”字符)并且Serdes_tx_data[7:0]分别输出到“111 11011状态”和“111 11101”状态,则来自发送FIFO的txfifo_read_sop和txffo_read_eop信号被用来产生来自Vitesse SERDES的“特殊K”字符“SOP”(K27.7)和“EOP”(K29.7)。基于与tx_fifo_read_eop相关的字的比特[27:26],txfifo_read_eop输入信号表示从发送FIFO中读出的前一个字中的有效字节数。SERDES Tx状态机将在前面读取数据以使没有无关系的字符被发送给VitesseSERDES。注意:对于下一帧,必须将至少一个空闲字符插入一个EOP字符和一个SOP字符之间。
除了从发送FIFO发送数据到Vitesse SERDES之外,需要SERDESTx状态机甚至在一个进行的分组传输中间时优先发送“特殊K”字符,这取决于某些特定事件的发生。send_tick输入的声明是最高优先级的优先“特殊K”字符发送条件。一旦SERDES Tx状态机可以做得到的时候,SERDES Tx状态机就将立刻控制Vitesse SERDES发送“K23.7”“特殊K”字符。当rxffo_status[4:0]表示接收FIFO变成充满时,下一最高优先发送条件出现,并且必须将一个“K28.1”RBF字符发送给点到点链路上另一端的发送机。当rx_fifo_status[4:0]信号指示接收FIFO状态不如引起RBF字符发送的状态满(磁滞现象)时,将发送RBA字符。
当ping_rcvd信号被声明时,下一最高优先发送条件出现,作为响应,其要求发送“K28.6”“特殊K”(PONG)字符。当一个Send_ping输入被声明时,“K28.2”字符被发送。
当rbf_rcvd信号被声明指示SERDES Tx状态机接收端处的接收FIFO的发送正变成充满时,SERDES Tx状态机将立刻停止数据传输并且改为开始命令Vitesse SERDES设备发送“K28.5”空闲字符。上述优先的“特殊K”字符必须继续被发送。当rba_rovd输入信号被声明指示在SERDES Tx状态机接收端处的接收FIFO的发送现在具有可用空间时,SERDES Tx状态机将重新启动帧传输。如果在一个“rbf_rcvd”声明之后在由Serdes_tx_time_out_interval[15:0]输入从寄存器块中规定的125MHz处的时钟数内,rba_rovd输入未被声明,则SERDES Tx状态机将中断当前分组传输,声明Serdes_tx_time_out_interrupt,并且增加Serdes_tx_time_out_cnt[7:0]信号。
send_tick、ping_rcvd、rbf_rcvd、send_ping和rba_rovd信号是电平输入并且当Send_tick_ack、ping_rcvd_ack、rbf_rcvd_ack、send_ping_ack以及rba_rcvd_ack输出信号被声明时被清除。
SERDES Rx状态机
SERDES Rx状态机接收8比特数据Serdes_rx_data[7:0]和来自Vitesse SERDES设备的四个控制信号:rsdet、err、kch和idle。rsdet输入状态中的改变引起rsdet_state_change_interrupt的声明。当rsdet被去掉声明时,SERDES Rx状态机位于空闲状态中并且没有数据被接收。err、kch和idle信号执行如Vitesse7216SERDES手册第15页上所述的一个真值表。
“特殊K”字符被定义如下(当Err/Kch/Idle=010或者011时)
代码 | RX_DATA | 含义 | 代码 | RX_DATA | 含义 |
K28.0 | 000 11100 | SOC | K28.6 | 110 11100 | PONG |
K28.1 | 001 11100 | RBF | K28.7 | 111 11100 | UNUSED |
K28.2 | 010 11100 | PING | K23.7 | 111 10111 | TICK |
K28.3 | 011 11100 | RBA | K27.7 | 111 11011 | SOP |
K28.4 | 100 11100 | TFA | K29.7 | 111 11101 | EOP |
K28.5 | 101 11100 | IDLE | K30.7 | 111 11110 | UNUSED |
数据和控制信号与DLL驱动125MHz时钟同步。当err、kch和idle信号表示一个IDLE字符的接收时丢弃数据。
如果在Vitesse7216SERDES手册中的第15页上每一真值表都指示一个错误,则Serdes_rx_err输出信号以及Serdes_err_type[2:0]输出一起被声明,serdes_err_type[2:0]输出对于如真值表中呈现的差错情形而复制比特格式。
当检测到一个“特殊K”字符时,serdes_rx_data[7:0]输入被检查来确定每一上述“特殊K”表的控制字符类型。如果一个SOC(控制分组的开始)被检测,则所有的数据字符被忽略直到下一EOP对于LMAC的此修正为止(即,没有高优先级的控制分组流水线被支持)。然而,其它“特殊K”字符仍然需要被正确处理。如果一个RBF字符被检测,则rbf_rovd信号将被声明直到对于一个时钟声明rbf_rcvd_ack输入为止,以使SERDES Tx状态机能够停止数据发送。如果一个PING、PONG、RBA、TICK被接收,则ping_rcvd、pong_rcvd、rba_rcvd和tick_rcvd被分别声明,直到对于一个时钟,相应的ping_fcvd_ack、pong_fcvd_ack、rba_rcvd_ack和tick_rcvd_ack信号被声明为止。
注意:特定的字符可能随时到来,并且状态机设备应该知道这个事实。
如果在接收到一个RBF字符之后,在所述125MHz时钟的一个Serdes_rx_time_out_interval[15:0]计数内未接收到一个RBA字符,则SERDES Rx状态机将实现一个超时特征。这种情形意味着由SERDESTx状态机发送的数据组在一个合理的周期中没有清空它的接收FIFO,并且表示一个错误状态(即,在一个XOFF字符被看到之后,期待的XON字符耗费了比期望更长的时间到达)。serdes_rx_time_out_interrupt输出被声明,并且Serdes_time_out_cnt[7:0]输出被增加。
如果一个SOP字符从Vitesse SERDES设备中被接收,则SOP字符和后续数据字符被装载到一个16比特流水线寄存器中。SOP字符被零填补以便形成第一个16比特字。(这样就取消了在接收FIFO的输出端使16比特字对准成为32比特字以用于GGI Rx状态机)。
当16比特寄存器被充满时,通过把寄存器输出放置到rx_fifo_write_data[15:0]输出总线上,使寄存器装到接收FIFO中。对于两个125MHz时钟周期(接收FIFO的写端口以62.5MHz定时),声明rxfifo_write_enable信号以便把数据写入RxFIFO中。SOP和EOP字符被写入RxFIFO中,rx_fifo_write_sop和rx_fifo_eop信号会同rx_fifo_write_enable信号一起被声明。当EOP字符被包含在低位字节rx_fifo_write_data[7:0]中时,eop_offset输出为“低”,或者当EOP字符被包含在高字节rx_fifo_write_data[15:8]中时为“高”。
SERDES Rx状态机还产生Serdes_rx_sm[15:0]输出,其包含用于诊断读回的寄存器块的状态机比特和一些输出。
接收FIFO
接收FIFO对于读和写端口提供独立的时钟。在两个端口上的数据宽度为16比特。当在write_clock信号的上升沿之前write_enable信号被声明时,Write_data[15:0]被写入FIFO,它相当于SERDES Tx状态机的phy_clk(62.MHz)信号。write_eop和write_Sop输入信号对分组的开始和结束进行分界(这些信号永远不会被同时声明)。eop_offset输入指示EOP字符是否在write_data[15:8]或者write_data[7:0]中。
通过向read_clock声明该read_enable信号同步来把数据从接收FIFO中读出。read_clock以104MHz定时。这向GGI Rx状态机块提供了一个挑战,该GGI Rx状态机块以52MHz定时。(对于多个104MHz时钟周期,GGI Rx状态机必须避免驱动read_enable,并且可能意味着GGI Rx状态机可能具有运行于104MHz上的一部分。替换选项是:因为无论如何是需要32比特字的,所以它可以读取两个字。在这种情况下,EOP标记可以用于确定上一个有效字TBD)。
read_sop和read_eop输出信号指示来自Vitesse SERDES设备的SOP和EOP字符。read_eop_offset输出表示EOP字符是否在read_data[15:8]或read_data[7:0]中。接收FIFO的read_data[15:0]在read_clock的下一上升沿有效并且直到下一读操作都保持有效。在复位或者一个FIFO空的状态之后,在接收FIFO外的第一数据字有效之前必须执行一个读操作。
接收FIFO提供rx_fifo_empty和rx_fifo_full标记。与read_clock同步地产生空标记,并且相对于write_clock产生满标记。接收FIFO还提供rx_fifo_status[4:0]信号,它以1/16递增量为单位指示接收FIFO的“满状态”,即,1/16充满、2/16/充满、3/16充满等等。rx_fifo_status[4:0]输出信号被SERDES Tx状态机块使用,在接收缓冲器变成充满时发送一个RBF(接收缓冲器满)字符并且接收FIFO的源数据流需要被关闭以便避免接收FIFO上的溢出情形。在接收FIFO清空到它可以被再次填充的那一点上时,rx_fifo_status[4:0]输出信号还被SERDES Tx状态机块用来产生RBA信号。
rx_fifo_read_ptr[11:0]和rx_fifo_wrt_ptr[11:0]信号与read_clock和write_clock分别同步,并且被发送给寄存器块以用于诊断读取能力。未使用的最高有效比特将被零填补。
GGI Rx状态机
GGI Rx状态机通过同步GGI接收总线把数据从LMAC传送到XPIF。按照16比特字的形式从接收FIFO中读出数据并且在通过GGI接收总线协议被传送给XPIF之前将其分组为32比特实体。
接收FIFO实现一个同步读取端口。与接收FIFO的read_clock输入同步地声明rx_fifo_read_enable信号。接收FIFO的rx_fifo_read_data[15:0]输出以及rx_fifo_read_sop、rx_fifo_read_eop和rx_fifo_read_eop_offset输出在104MHz read_clock的下一上升沿上是有效的。连续的rx_fifo_yead_data[15:0]字经过连接,从而形成用于GGI接收总线的一个32比特字。当声明输入到GGI Rx状态机的rxffo_read_sop时,表示一帧的开始,并且应产生RXSOF字(XPIF-300A2手册第29页)并驱动到GGI接收总线上。
GGI接收总线协议具有一个局部变体,这取决于XPIF被连接到一个LMAC还是两个LMAC。GGI Rx状态机块确定来自寄存器块中的dual_lmac_mode输入需要两个协议的哪一个。这个电平输入表示——当被声明时,GGI Rx状态机在其有一帧要发送给XPIF时,应当声明GGI_rx_fav_l输出。(参考XPIF300A2文件的图30)并且在开始对XPIF的数据传送之前等待GGI_rx_go_l信号被声明。当dual_lmac_mode被去掉声明时,GGI Rx状态机将不会声明GGI_rx_fav_l信号并忽略GGI_rx_go_l输入。
ggi_rxv_l输出信号由GGI Rx状态机加以声明,以表示何时在GGI_rxd[31:0]单向数据总线上存在有效的数据。在GGI发送总线上传送的所有分组优于?TXSOF和TXEOF控制字,其通过GGI_txc信号会同GGI_rxv_l输出的声明来指示。RXSOF的UNIFO字段等于来自寄存器块的GGI_rx_uinfo[7:0]输入。当rx_fifo_read_eop输入被声明时产生RXEOF字并且从来自接收FIFO中的rx_fifo_read_eop_offset输入中得到“ALN”字段(比特[27:26])。如果GGI_rx_full_l信号被声明,则GGI Rx状态机将停止对XPIF的数据传送。在停止并开始传送中有两个时钟的延迟。在帧接收期间,接收FIFO可以好几次处于清空情形。当在GGI_rxd[31:0]总线上没有有效数据时,GGI Rx状态机将不会驱动GGI_rxv_l输出。
ggi_rxp输出是在GGI_rxd[31:0]和GGI_rxc输出上产生的奇校验。ggi_rx_sm[5:0]总线包含GGI Rx状态机到寄存器块的所有状态机比特(和也许一些输出)用于诊断读取能力。
接收断续信号发送断续信号块(Receive TickSend Tick Block)
接收断续信号发送断续信号块提供硬件设备来确定SERDES Rx状态机的连续的TICK(K23.7)字符之间的时间间隔,由tick_rcvd信号来表示。TICK字符的到达时间中的抖动可以通过确定被接收的多个TICK字符的时间间隔以及求平均值来被衰减。来自寄存器块中的rcv_tick_dec_count[9:0]输入定义由SERDES Rx状态机接收的TICK字符的“抽取频率”或者平均间隔。例如,当rcv_tick_dec_count[9:0]=0000000001时,一个自由运行的24比特计数器的内容,以125MHz运行,被登记在SERDES Rx状态机的每个TICK字符的接收上。当rcv_tick_dec_count[9:0]输入=0000001111时,一个自由运行的24比特计数器的内容以125MHz运行,被登记在SERDES Rx状态机接收的每第15个TICK字符的接收上。当由rcv_tick_dec_count[9:0]规定的TICK数被接收并且自由运行的24比特计数的登记值在rcv_tick_interval[23:0]上被输出时,对于好几个时钟(准确数为TBD),rcv_tick_interrupt信号被声明。对接收的TICK字符数进行计数的计数器然后被清除并且重复该过程。
接收断续信号发送断续信号块还提供硬件设备,以确定由SERDESTx状态机发送的连续的TICK(K23.7)字符之间的时间间隔,由Send_tick信号来表示。一个TICK字符被SERDES Tx状态机在Send_tick输入的上升沿(或多或少)上发送。Send_tick信号名义上是一个8kHz方波。来自寄存器块中的tx_tick_dec_count[9:0]输入规定了由SERDES Tx状态机发送的TICK字符的“抽取频率”或者平均时间间隔。例如,当tx_tick_dec_count[9:0]=0000000001时,一个以125MHz运行的自由运行的24比特计数器的内容(与由SERDES Rx状态机接收的使用于计算TICK字符相同的自由运行计数器),被登记在SERDES Rx状态机的每个Send_tick字符的上升沿上。当tx_tick_dec_count[9:0]输入=0000001111时,一个自由运行的24比特计数器的内容(与用于计数tick_rcvd信号相同的自由运行的计数器)——其以125MHz运行,即被寄存在被SERDESRx状态机发送的每第15个TICK字符(即Send_tick输入的第15个声明)的传输上,依此进行。当由tx_tick_dec_count[9:0]规定数目的TICK被发送,并且自由运行的24比特计数的寄存数值在Send_tick_interval[23:0]总线上被输出时,对应于若干时钟(准确数为TBD,接收发送断续信号块和寄存器块处于不同的时钟域中),声明send_tick断续信号。对发送的TICK字符数(send_tick声明)进行计数的计数器然后被清除并且重复该过程。
SERDES接收差错块
SERDES接收差错块对于SERDES接收接口保持差错计数器和统计。serdes_rx_err输入被声明时,差错类型被Serdes_rx_err_type[2:O]表示。在每个时钟周期(125MHz)期间,可以指示一个新的差错类型。
Serdes_rx_err_type[2] | Serdes_rx_err_type[1] | Serdes_rx_err_type[0] | 差错类型 |
0 | 0 | 0 | 低估/溢出 |
1 | 0 | 1 | 频带外差错 |
1 | 0 | 0 | 非奇偶性差错 |
1 | 1 | 1 | 同步损耗 |
1 | 1 | 0 | 重新同步状态中 |
一个分开的16比特计数器被实现来对低估/溢出差错数、频带外差错和非奇偶性差错进行计数。这些计数器值分别在under_run_errcnt[15:0]、out_of_band_errcnt[15:0]和disparity_errcnt[15:0]上输出。
当检测到一个同步差错损耗时,计数其中同步差错损耗一直持续的连续时钟周期的数目。(一种实现这个(16比特)计数器的合理方式是当Serdes_rx_err信号未被声明时,或者当Serdes_rx_err_type不同于同步损耗时,重置该计数器,并且当Serdes_rx_err_type指示一个同步损耗时使计数递增。)这个计数器的计数值被输出作为LOS_of_fsync_interval[15:0]。
当检测到一个“in resync”差错时,计数其中一个“in resync”差错状态一直持续的连续的时钟周期数。(一种实现这个(16比特)计数器的合理方式是当Serdes_rx_err信号未被声明时,或者当Serdes_rx_err_type不同于“in resync”差错状态时,重置该计数器,并且当Serdes_rx_err输入被声明并且Serdes_err_type表示“in resyncState”时,使该计数递增)。这个计数器的计数值被输出作为LOS_of_fsync_interval[15:0]。
当进入和退出“in resync”差错状态时,对于一个未指定的时钟数,声明loss_of_fsync_state_chng_int信号。
Ping定时器块
Ping定时器块通过SERDES Tx状态机来周期性地触发PING字符的发送。send_tick输入是一个8KHz标准方波。来自寄存器块中的ping_interval[7:0]定义了一个频率,在该频率上,PING字符以各PING之间125μs的最小值到大约为255*125μs=32ms的最大值发送。通过计数Send_tick输入的ping_interval[7:0]的数目来产生Send_ping输出。
当Send_ping输出被声明时,一个自由运行的计数器(125MHz时间基准)被寄存并且在ping_time[15:0]上输出。当pong_revd输入被声明时,同一自由运行的计数器被寄存并且在pong_time[15:0]上输出。
LMAC程序员手册
这个寄存器映射应用到LMAC的版本0.0。所有的寄存器都是16比特宽,虽然不需要实现一个寄存器的所有比特。在上电时所有的寄存器都被清除。在未定义的一个寄存器比特字段的读回上,数值为“0”。括弧中的数据比特反映ppc860方式中的比特。在两个LMAC块包含在同一FPGA中的情况下,MPAD[0]在一组控制寄存器和另外一组之间选择。
1.0 LMAC控制寄存器 R/W MPAD[0:10]=0x0000
比特 | 名称 | 定义 |
D1(d14) | Dual_LMAC模式 | 当复位时,单个LMAC系统在使用中。当被设置时,一个二元LMAC系统在使用中。 |
D0(d15) | LMAC内部复位 | 当被设置时,LMAC被复位。除了这个寄存器之外,此LMAC中所有的状态机和寄存器被复位。 |
1.1 GMAC地址寄存器 R/W MPAD[0:10]=0x0001
比特 | 名称 | 定义 |
D15:D8(d8:d15) | TX GMAC地址 | 由GGI TX状态机用于比较TXSOF字的比特(27∶20)。它可以是使这个寄存器的比特D15∶D8相等这个寄存器的比特D7∶D0的一种要求。滤除不与TX GMAC地址字段匹配的来自XPIF的发送帧。 |
D7:D0(d0:d7) | RX UINFO | 用于产生RXSOF字的比特(27:20)并且识别一个多GMAC结构中的GMAC设备。被GGI RX状态机使用。 |
RX_UNIFO和TX GMAC地址字段在正常操作中应该完全相同。
1.2 PING定时器寄存器 R/W MPAD[0:10]=0x0002
比特 | 名称 | 定义 |
D7:D0(d0:d7) | Ping间隔定时器 | 被发送的Ping之间的时间间隔是包含在Ping间隔定时器中的数值。1sb等于125μs此参数由Ping定时器块使用。 |
1.3 上一个Ping发送寄存器的时间 RO MPAD[0:10]=ou0003
比特 | 名称 | 定义 |
D15:D0(d0:d15) | Ping时间 | 当SERDES发送状态机块发送一个Ping时,以TBD Hz定时的一个自由运行的16比特计数器值被锁住。此状态字由Ping定时器块提供 |
1.4 Pong接收时间寄存器 RO MPAD[0:10]=0x0004
比特 | 名称 | 定义 |
D15:D0(d0:d15) | Pong时间 | 当SERDES接收状态机块接收一个Pong时,以TBDHz定时的一个自由运行的16比特计数器值被锁住。 |
1.5 信号间隔寄存器的SERDES损失 RO MPAD[0:10]=0x0005
比特 | 名称 | 定义 |
D15:D0(d0:d15) | LOS间隔 | 自从信号状态的损耗已经被检测(来自SERDES的RSDET信号为假)时的时时间间隔的一个16比特计数。以微秒为单位的计数器决定为TBD。此状态字被SERDES接收差错记录块提供。 |
1.6 同步间隔寄存器的SERDES接收损耗 RO MPAD[0:10]=0x0006
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 同步间隔的损耗 | 自从同步损耗已经被检测时的时间间隔的一个16比特计数。计数器决定为TBD。此状态字由SERDES接收差错记录块提供。 |
1.7 SERDES接收低估/溢出寄存器 RO MPAD[0:10]=0x0007
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 低估/溢出差错计数 | 在接收SERDES上检测到的低估/溢出差错数此状态字由SERDES接收差错记录块提供。 |
1.8 SERDES频带外差错寄存器 RO MPAD[0:10]=0x0008
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 检测到的频带外差错计数 | 在接收SERDES上检测到的频带外差错数此状态字由SERDES接收差错记录块提供。 |
1.9 SERDES非奇偶性差错寄存器 RO MPAD[0:10]=0x0009
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 检测到的非奇偶性差错数的计数 | 在接收SERDES接口上检测到的非奇偶性差错数。此状态字由SERDES接收差错记录块提供。 |
1.10 抽取接收断续信号计数寄存器R/W MPAD[0:10]=0x000A
比特 | 名称 | 定义 |
D9:D0(d0:d9) | 接收断续信号抽取计数 | 表示在产生被环定时同步算法使用的接收断续信号中断之前计数的接收断续信号数。(当达到一个抽取计数时,一个自由运行的计数器还要被锁住其在接收断续信号的抽取计数之间提供一个时间间隔的良好测量)。此参数被接收断续信号/发送断续信号计数器块使用。 |
1.11 抽取发送断续信号计数寄存器R/W MPAD[0:10]=0x000B
比特 | 名称 | 定义 |
D9:D0(d0:d9) | 发送断续信号抽取计数 | 表示在锁住一个自由运行的计数器(其提供一个时间间隔的良好测量)之前要计数的发送断续信号的数目。此参数被接收断续信号/发送断续信号计数器块使用。 |
1.12 发送断续信号间隔寄存器HI R/W MPAD[0:10]=0x000C
比特 | 名称 | 定义 |
D7:D0(d0:d7) | 发送断续信号间隔寄存器HI。 | 表示以62.5MHz定时的一个24比特计数器的较高的8比特,该计数器在发送断续信号的发送断续信号抽取计数被发送时被锁住。此参数被接收断续信号/发送断续信号计数器块提供。 |
1.13 发送断续信号间隔寄存器LO R/W MPAD[0:10]=0x000D
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 发送断续信号间隔寄存器LO | 表示以62.5MHz定时的一个24比特计数器的较低的16比特,该计数器在发送断续信号的发送断续信号抽取计数被发送时被锁住。此参数被接收断续信号/发送断续信号计数器块提供。 |
1.14 接收断续信号间隔寄存器HI R/W MPAD[0:10]=0x000E
比特 | 名称 | 定义 |
D7:D0(d0:d7) | 接收断续信号间隔寄存器HI。 | 表示以62.5MHz定时的一个24比特计数器的较高的8比特,该计数器在接收断续信号的接收断续信号抽取计数被接收时被锁住。此参数被接收断续信号/发送断续信号计数器块提供。 |
1.15 接收断续信号间隔寄存器LO RO MPAD[0:10]=0x000F
比特 | 名称 | 定义 |
D7:D0(d0:d7) | 接收断续信号间隔寄存器LO | 表示以62.5MHz定时的一个24比特计数器的较高的8比特,该计数器在接收断续信号的接收断续信号抽取计数被接收时被锁住。此参数被接收断续信号/发送断续信号计数器块提供。 |
1.16 接收SERDES状态机超时R/W MPAD[0:10]=0x0010
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 接收状态机超时间隔 | 表示一个计数间隔未获得在超时间隔内的任何数据,一个SERDES接收状态机以该计数间隔来预期数据(例如,由一个RBA序列执行的一个RBF)。一个中断产生并且SERDES接收超时差错计数器递增。此参数被接收SERDES状态机块使用。 |
1.17 发送SERDES状态机超时R/W MPAD[0:10]=0x0011
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 接收状态机超时间隔 | 表示一个计数间隔未获得在超时间隔内的一个RBA,一个SERDES发送状态机以该计数间隔被盼望来传送数据(例如,由一个丢失的RBA跟随的一个RBF)。一个中断产生并且SERDES发送超时差错计数器被增加。此参数被发送SERDES状态机块使用。 |
1.18 发送SERDESSM超时差错计数器 RO MPAD[0:10]=0x0012
比特 | 名称 | 定义 |
D7:D0(d0:d7) | SERDES发送状态机超时差错计数器 | 发送SERDES状态机中的超时差错数此参数被发送SERDES状态机块提供。 |
1.19 接收SERDESSM超时差错计数器 RO MPAD[0:10]=0x0013
比特 | 名称 | 定义 |
D7:D0(d0:d7) | SERDES接收状态机超时差错计数器 | 接收SERDES状态机中的超时差错数此参数由接收SERDES状态机块提供。 |
1.20 PHY控制寄存器R/W MPAD[0:10]=0x0014
比特 | 名称 | 定义 |
D3(d12) | PTXEN | 为SERDES启动的发送 |
D2(d13) | LOOP_EN | 为SERDES启动的返馈 |
D1(d14) | BIST | 对SERDES的内置式自测输入 |
D0(d15) | PHY_RST | 对SERDES的复位输入 |
1.21 PHY状态寄存器RO MPAD[0:10]=0x0015
比特 | 名称 | 定义 |
D1(d14) | PBERR | 来自SERDES的PBERR |
D0(d15) | RSDET | 来自SERDES的RSDET |
1.22 接收FIF0数据寄存器HI RO MPAD[0:10]=0x0016
比特 | 名称 | 定义 |
D15:D0(d0:d15) | FIFO数据 | 在接收FIFO输出处的FIFO数据,D[15:0]。 |
1.23 接收FIFO写指针寄存器RO MPAD[0:10]=0x0017
比特 | 名称 | 定义 |
D12(d3) | Fifo_Full | 接收FIFO充满 |
D11:D0(d4:d15) | Fifo写指针 | 接收FIFO写指针 |
1.24 接收FIFO读取指针寄存器RO MPAD[0:10]=0x0018
比特 | 名称 | 定义 |
D12(d3) | Fifo_Empty | 接收FIFO空 |
D11:D0(d4:d15) | Fifo读取指针 | 接收FIFO读取指针 |
1.25 TXFIFO数据寄存器HI RO MPAD[0:10]=0x0019
比特 | 名称 | 定义 |
D15:D0(d0:d15) | TxFIFO数据HI | 在发送输出处的FIFO数据FIFO.D[31:16] |
1.26 TXFIFO数据寄存器 LO RO MPAD[0:10]=0x001A
比特 | 名称 | 定义 |
D15:D0(d0:d15) | TxFIFO数据LO | 在发送FIFO输出处的FIFO数据D[15:O] |
1.27 TXFIFO写指针寄存器RO MPAD[0:10]=0x001B
比特 | 名称 | 定义 |
D12(d3) | Fifo_Full | FIFO充满 |
D11:D0(d4:d15) | Fifo写指针 | 发送FIFO写指针 |
1.28 发送FIFO读取指针寄存器RO MPAD[0:10]=0x001C
比特 | 名称 | 定义 |
D12(d3) | Fifo_Empty | 发送FIFO空 |
D11:D0(d4:d15) | Fifo读取指针 | 发送FIFO读取指针 |
1.29 SERDES发送状态机R/O R/W MPAD[0:10]=0x001D
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 状态寄存器 | SERDES发送状态机状态比特由SERDES发送状态机提供。 |
1.30 SERDES接收状态机R/O MPAD[0:10]=0x001E
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 状态寄存器 | SERDES接收状态机状态比特由SERDES接收状态机提供。 |
1.31 GGI发送状态机R/O MPAD[0:10]=0x001F
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 状态寄存器 | GGI发送状态机状态比特由GGI发送状态机提供。 |
1.32 GGI接收状态机R/O MPAD[0:10]=0x0020
比特 | 名称 | 定义 |
D15:D0(d0:d15) | 状态接收存器 | GGI接收状态机状态比特由GGI接收状态机提供。 |
1.33中断寄存器RO MPAD[0:10]=0x0021
比特 | 名称 | 定义 |
D5(d10) | 收到的Pong | 来自SERDES Rx状态机 |
D4(d11) | 同步状态转变的损耗 | 来自SERDES Rx状态机 |
D3(d12) | RSDET状态转变 | 来自SERDES Rx状态机 |
D2(d13) | 接收Tick中断 | 来自发送Tick/接收Tick块 |
D1(d14) | SERDES TX超时 | 来自SERDES Tx状态机 |
D0(d15) | SERDES RX超时 | 来自SERDES Rx状态机 |
对寄存器的读取使该寄存器清除。
1.34 中断屏蔽寄存器RO MPAD[0:10]=0x0022
比特 | 名称 | 定义 |
D5(d10) | 收到的Pong启动 | 启动寄存器0x21中的相应中断 |
D4(d11) | 同步状态转变的损耗启动 | |
D3(d12) | RSDET状态转变启动 | |
D2(d13) | 接收Tick中断启动 | |
D1(d14) | SERDES TX超时启动 | |
D0(d15) | SERDES TX超时启动 |
用于实现本发明一个实施例的以上硬件描述足以让本领域普通技术人员构造本发明,因为用于分组交换和路由的常规硬件已是非常熟知的了。本领域的技术人员能够很容易地编程MAC、分组处理器、CPU46以及执行在此描述的各个步骤的其它功能单元。可用固件或软件来实现在此描述的步骤。
虽然显示和描述了本发明的特定实施例,但是,对本领域技术人员来说很明显,在本发明宽广的各个方面中不偏离本发明就可以做出改变和修改,所附加权利要求书则包含处于上述各个方面的范围之内的所有落入本发明实际精神和范围之内的这些改变和修改。
Claims (19)
1.一种在通信网中执行的方法,所述通信网包括节点,所述节点中至少有一个在所述网络上发送一个数据帧,所述节点中的第一个节点产生一个控制信号,而且在所述网络上的所述数据帧的传输期间,将所述控制信号在所述网络上发送给所述节点中的至少第二个节点,所述方法包括:
由所述节点中的所述第二个节点在只接收所述数据帧的一部分之后接收所述控制信号;和
由所述节点中的所述第二个节点在待到所述数据帧已经完全被接收之前执行所述控制信号所要求的一个动作。
2.如权利要求1所述的方法,其中,所述发送所述控制信号包括:发送一个主时钟信号,所述方法进一步包括:
由所述节点中的所述第二个节点内的一个本地时钟产生本地时钟信号,其中,所述执行一个动作包括:
基于在只接收所述数据帧的一部分之后,由所述第二节点接收所述主时钟信号的时间,来纠正所述本地时钟内的任何定时差错,从而使定时抖动被限制为低于一个数据帧周期。
3.如权利要求2所述的方法,其中,所述主时钟信号是一个8KHz时钟。
4.如权利要求3所述的方法,其中,所述8KHz时钟是一个全球定位系统(GPS)时钟。
5.如权利要求1所述的方法,其中,所述数据帧按照一个以太网协议而发送。
6.如权利要求1所述的方法,其中,所述控制信号是一个8B/10B编码控制字符。
7.如权利要求1所述的方法,其中,所述数据帧是一个分组。
8.如权利要求1所述的方法,其中,所述控制信号是一个主时钟信号。
9.如权利要求1所述的方法,其中,所述执行一个动作包括:由一个媒体接入控制器(MAC)执行动作。
10.如权利要求1所述的方法,其中,所述控制信号是一个主时钟信号,并且其中,所述执行一个动作包括:采取行动以纠正所述节点中的所述第二个节点内的一个本地时钟与所述主时钟信号之间的一个定时差错。
11.如权利要求10所述的方法,其中,所述本地时钟以125MHz输出信号。
12.如权利要求10所述的方法,其中,所述控制信号是一个8B/10B编码字符,并且其中,所述定时差错经过纠正,从而使所述节点中的所述第二个节点内的一个时钟抖动大约为所述8B/10B编码字符的周期。
13.如权利要求1所述的方法,其中,所述执行一个动作包括:使所述节点中的所述第二个节点内的一个本地时钟与所述控制信号同步。
14.一种在通信网中执行以使所述网络中各节点同步的方法,所述节点中的第一个作为一个源节点,其周期性地产生同步信号,并且在所述网络上广播所述同步信号,所述方法包括:
由所述节点中的第二个节点创建对应于所述网络内各节点的相对位置的一个网路拓扑映射;
由所述节点中的所述第二个节点接收来自所述源节点的一个通知:所述源节点是所述同步信号的广播站;
由所述节点中的所述第二个节点自动地选择与邻近节点的一个接口,自该接口根据特定成本准则而接收所述同步信号;和
在与所述邻近节点的所述接口处自动地接受所述同步信号。
15.如权利要求14所述的方法,其中,所述成本准则是从所述节点中的所述第二个节点到所述源节点的节点转跳的最小数目。
16.如权利要求14所述的方法,其中,当所述节点中的所述第二个节点被插入到所述网络中时,发生所述的创建一个网路拓扑映射。
17.一种在通信网中执行的方法,所述通信网包括节点,第一个节点在所述网络上发送一个数据帧,所述方法包括:
由第二节点接收所述数据帧的至少一部分;和
由所述第二节点向所述第一节点发送一个接收缓冲器充满的代码,向所述第一节点指示:所述第二节点中的一个接收缓冲器基本上充满,且停止向所述第二节点发送数据。
18.如权利要求17所述的方法,其进一步包括:由所述第二节点发送一个接收缓冲器可用码给所述第一节点,指示:所述接收缓冲器可用来接收另外的数据。
19.一种在通信网中执行的方法,所述通信网包括节点,所述方法包括:
由第一节点在所述网络上发送第一信号给第二节点;
由所述第二节点接收所述第一信号;
在接收所述第一信号之后,由所述第二节点在所述网络上立即发送第二信号给所述第一节点;和
通过测量在发送所述第一信号和接收所述第二信号之间的时间,来测量介于所述第一节点和所述第二节点之间的传输延迟。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/574,745 | 2000-05-18 | ||
US09/574,745 US7251256B1 (en) | 2000-05-18 | 2000-05-18 | Synchronization of asynchronous networks using media access control (MAC) layer synchronization symbols |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1489841A true CN1489841A (zh) | 2004-04-14 |
Family
ID=24297447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA018113001A Pending CN1489841A (zh) | 2000-05-18 | 2001-05-16 | 使用媒介访问控制(mac)层同步符号的异步网络的同步化 |
Country Status (9)
Country | Link |
---|---|
US (1) | US7251256B1 (zh) |
EP (1) | EP1380128B1 (zh) |
JP (1) | JP2004522329A (zh) |
CN (1) | CN1489841A (zh) |
AT (1) | ATE421812T1 (zh) |
AU (1) | AU2001264673A1 (zh) |
CA (1) | CA2408621A1 (zh) |
DE (1) | DE60137546D1 (zh) |
WO (1) | WO2001089121A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007109940A1 (fr) * | 2006-03-26 | 2007-10-04 | Huawei Technologies Co., Ltd. | Procédé concernant la couche mac pour exécuter une instruction d'opération dans un réseau d'évolution à long terme et application de ce procédé |
CN100442897C (zh) * | 2006-08-28 | 2008-12-10 | 华为技术有限公司 | 终端与服务器通信的方法、系统和装置 |
CN101388817B (zh) * | 2008-10-30 | 2011-03-30 | 上海大学 | 一种百兆以太网额外信息传输方法及其传输实现系统 |
CN1901509B (zh) * | 2006-07-26 | 2013-05-29 | 白杰 | 网络节点间同步数据的同步方法 |
CN104485998A (zh) * | 2014-12-15 | 2015-04-01 | 北京理工大学 | 一种光通信收发组件响应时间的校准装置和方法 |
CN111247753A (zh) * | 2017-10-23 | 2020-06-05 | 伯斯有限公司 | 多个音频设备的同步 |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002058317A2 (en) * | 2000-12-20 | 2002-07-25 | Primarion, Inc. | Pll/dll dual loop data synchronization |
US7050420B2 (en) * | 2001-03-21 | 2006-05-23 | Broadcom Corporation | System for maintaining synchronization between multiple asynchronous communication links |
US8194536B2 (en) * | 2001-08-31 | 2012-06-05 | Continental Automotive Systems, Inc. | Vehicle active network with fault tolerant devices |
US20030070075A1 (en) * | 2001-10-04 | 2003-04-10 | Frederic Deguillaume | Secure hybrid robust watermarking resistant against tampering and copy-attack |
US7151945B2 (en) * | 2002-03-29 | 2006-12-19 | Cisco Systems Wireless Networking (Australia) Pty Limited | Method and apparatus for clock synchronization in a wireless network |
US7492773B2 (en) * | 2002-05-23 | 2009-02-17 | Motorola, Inc. | Media access control and distributed data processing using mediation devices in an asynchronous network |
US7440462B2 (en) * | 2002-05-23 | 2008-10-21 | Motorola, Inc. | Quality of service (QOS) control mechanisms using mediation devices in an asynchronous network |
US7251764B2 (en) * | 2003-05-27 | 2007-07-31 | International Business Machines Corporation | Serializer/deserializer circuit for jitter sensitivity characterization |
CN100566412C (zh) * | 2004-03-09 | 2009-12-02 | 诺基亚西门子通信有限责任两合公司 | 对经分组网络路由的连接进行计费的装置和方法 |
US20070121624A1 (en) * | 2005-11-30 | 2007-05-31 | Kimbrough Mahlon D | Method and system of network clock generation with multiple phase locked loops |
US7697529B2 (en) * | 2006-02-28 | 2010-04-13 | Cisco Technology, Inc. | Fabric channel control apparatus and method |
JP5148613B2 (ja) * | 2006-08-22 | 2013-02-20 | ジュニパー ネットワークス, インコーポレイテッド | 配信ネットワーク上のパケットサービス同期化配信の機器および方法 |
US7590061B2 (en) * | 2006-08-22 | 2009-09-15 | Brilliant Telecommunications, Inc. | Apparatus and method of controlled delay packet forwarding |
EP2102721B1 (en) * | 2006-08-22 | 2019-05-08 | Juniper Networks, Inc. | Apparatus and method for thermal stabilization of pcb-mounted electronic components within an enclosed housing |
WO2008024819A2 (en) * | 2006-08-22 | 2008-02-28 | Brilliant Telecommunications, Inc. | Apparatus and method of using spread pulse modulation to increase the control resolution of an electronic device |
US9100133B2 (en) * | 2006-12-26 | 2015-08-04 | Ciena Corporation | Methods and systems for carrying synchronization over ethernet and optical transport network |
JP4932546B2 (ja) * | 2007-03-07 | 2012-05-16 | 日本電気株式会社 | 通信ノード及び該通信ノードを有するネットワーク・システムとデータ伝送方法 |
US7930462B2 (en) * | 2007-06-01 | 2011-04-19 | Apple Inc. | Interface controller that has flexible configurability and low cost |
US8284792B2 (en) * | 2007-06-01 | 2012-10-09 | Apple Inc. | Buffer minimization in interface controller |
US8831435B2 (en) | 2008-03-28 | 2014-09-09 | Centurylink Intellectual Property Llc | System and method for dual wavelength communications of a clock signal |
US8390993B1 (en) | 2008-04-16 | 2013-03-05 | Cyan, Inc. | Light source in chassis to provide frontal illumination of a faceplate on the chassis |
US8155520B1 (en) * | 2008-04-16 | 2012-04-10 | Cyan, Inc. | Multi-fabric shelf for a transport network |
US8064200B1 (en) | 2008-04-16 | 2011-11-22 | Cyan Optics, Inc. | Cooling a chassis by moving air through a midplane between two sets of channels oriented laterally relative to one another |
US9405342B2 (en) * | 2009-04-01 | 2016-08-02 | Schneider Electric It Corporation | System and method for providing timing |
US8031747B2 (en) | 2009-04-29 | 2011-10-04 | Juniper Networks, Inc. | Apparatus and method of compensating for clock frequency and phase variations by processing packet delay values |
US8559828B2 (en) | 2011-01-22 | 2013-10-15 | Viasat, Inc. | Frame formatting for high rate optical communications |
US8687974B2 (en) | 2011-01-22 | 2014-04-01 | Viasat, Inc. | Skew compensation and tracking in communications systems |
US8693897B2 (en) | 2011-01-22 | 2014-04-08 | Viasat, Inc. | Digital demodulator architecture |
US8578222B2 (en) * | 2011-02-17 | 2013-11-05 | Qualcomm Incorporated | SerDes power throttling as a function of detected error rate |
US9252904B2 (en) * | 2011-06-01 | 2016-02-02 | Coriant Operations, Inc. | Method and apparatus for distributing network timing in a mesh optical network |
US8798038B2 (en) | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
US8711867B2 (en) * | 2011-08-26 | 2014-04-29 | Sonics, Inc. | Credit flow control scheme in a router with flexible link widths utilizing minimal storage |
CN104113488A (zh) * | 2013-04-16 | 2014-10-22 | 中兴通讯股份有限公司 | 接口切换方法和装置 |
US9407574B2 (en) * | 2014-04-17 | 2016-08-02 | Adva Optical Networking Se | Using SerDes loopbacks for low latency functional modes with full monitoring capability |
KR101596756B1 (ko) * | 2014-11-03 | 2016-03-07 | 현대자동차주식회사 | 리던던트 그랜드마스터를 이용한 차량 내 네트워크 시간 동기화 제공 방법 및 장치 |
US10152112B2 (en) | 2015-06-10 | 2018-12-11 | Sonics, Inc. | Power manager with a power switch arbitrator |
CN105634807B (zh) * | 2015-12-30 | 2019-01-08 | 北京东土科技股份有限公司 | 一种端口状态同步方法及装置 |
US11032684B2 (en) * | 2016-06-27 | 2021-06-08 | Intel Corporation | Autonomous sharing of data between geographically proximate nodes |
US11907074B2 (en) | 2021-09-24 | 2024-02-20 | International Business Machines Corporation | Low-latency deserializer having fine granularity and defective-lane compensation |
US11646861B2 (en) | 2021-09-24 | 2023-05-09 | International Business Machines Corporation | Low-latency, high-availability and high-speed SerDes interface having multiple synchronization modes |
WO2024039794A1 (en) * | 2022-08-19 | 2024-02-22 | Tesla, Inc. | Link timer for ethernet |
US11870554B1 (en) * | 2022-09-07 | 2024-01-09 | Analog Devices, Inc. | Enhanced ethernet timestamping on RGMII using existing DLL |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5271001A (en) * | 1990-10-31 | 1993-12-14 | Nec Corporation | Synchronous terminal station system |
US5726607A (en) * | 1992-06-15 | 1998-03-10 | Adc Telecommunications, Inc. | Phase locked loop using a counter and a microcontroller to produce VCXO control signals |
FI95976C (fi) * | 1994-02-25 | 1996-04-10 | Nokia Telecommunications Oy | Verkkojärjestely |
JP3408617B2 (ja) * | 1994-03-16 | 2003-05-19 | 富士通株式会社 | 画像符号化データの同期ワード多重化方式 |
US6278718B1 (en) * | 1996-08-29 | 2001-08-21 | Excel, Inc. | Distributed network synchronization system |
JP3420898B2 (ja) * | 1996-10-04 | 2003-06-30 | 富士通株式会社 | シンクロナイゼーションメッセージ受信処理装置 |
US6611537B1 (en) * | 1997-05-30 | 2003-08-26 | Centillium Communications, Inc. | Synchronous network for digital media streams |
NO307728B1 (no) * | 1997-06-03 | 2000-05-15 | Abb Research Ltd | Fremgangsmåte for å skaffe tidssynkronisering i et nettverk |
KR100251710B1 (ko) * | 1997-07-07 | 2000-04-15 | 윤종용 | 비동기 전송 모드망과 플레스이오크로너스 디지탈 계층구조망 간의 접속에 따른 지터와 원더 감소 장치 |
US6078595A (en) * | 1997-08-28 | 2000-06-20 | Ascend Communications, Inc. | Timing synchronization and switchover in a network switch |
US6370161B1 (en) * | 1998-05-20 | 2002-04-09 | Aspect Communications | Time synchronization of distributed computer telephony communication applications in a computer network |
US6272131B1 (en) * | 1998-06-11 | 2001-08-07 | Synchrodyne Networks, Inc. | Integrated data packet network using a common time reference |
US6665316B1 (en) * | 1998-09-29 | 2003-12-16 | Agilent Technologies, Inc. | Organization of time synchronization in a distributed system |
JP4026255B2 (ja) * | 1998-12-18 | 2007-12-26 | ソニー株式会社 | データ伝送方法及び装置 |
ATE345613T1 (de) * | 2000-04-07 | 2006-12-15 | Broadcom Corp | Rahmenbasierte übertragung von nutzdaten mit veränderlicher datenrate |
US6574225B2 (en) * | 2000-04-07 | 2003-06-03 | Omneon Video Networks | Clock recovery in a packet-based data network |
-
2000
- 2000-05-18 US US09/574,745 patent/US7251256B1/en not_active Expired - Lifetime
-
2001
- 2001-05-16 AT AT01939119T patent/ATE421812T1/de not_active IP Right Cessation
- 2001-05-16 WO PCT/US2001/016087 patent/WO2001089121A2/en active Application Filing
- 2001-05-16 JP JP2001585432A patent/JP2004522329A/ja active Pending
- 2001-05-16 DE DE60137546T patent/DE60137546D1/de not_active Expired - Lifetime
- 2001-05-16 CA CA002408621A patent/CA2408621A1/en not_active Abandoned
- 2001-05-16 AU AU2001264673A patent/AU2001264673A1/en not_active Abandoned
- 2001-05-16 CN CNA018113001A patent/CN1489841A/zh active Pending
- 2001-05-16 EP EP01939119A patent/EP1380128B1/en not_active Expired - Lifetime
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007109940A1 (fr) * | 2006-03-26 | 2007-10-04 | Huawei Technologies Co., Ltd. | Procédé concernant la couche mac pour exécuter une instruction d'opération dans un réseau d'évolution à long terme et application de ce procédé |
CN1901509B (zh) * | 2006-07-26 | 2013-05-29 | 白杰 | 网络节点间同步数据的同步方法 |
CN100442897C (zh) * | 2006-08-28 | 2008-12-10 | 华为技术有限公司 | 终端与服务器通信的方法、系统和装置 |
CN101388817B (zh) * | 2008-10-30 | 2011-03-30 | 上海大学 | 一种百兆以太网额外信息传输方法及其传输实现系统 |
CN104485998A (zh) * | 2014-12-15 | 2015-04-01 | 北京理工大学 | 一种光通信收发组件响应时间的校准装置和方法 |
CN111247753A (zh) * | 2017-10-23 | 2020-06-05 | 伯斯有限公司 | 多个音频设备的同步 |
CN111247753B (zh) * | 2017-10-23 | 2022-06-14 | 伯斯有限公司 | 多个音频设备的同步 |
Also Published As
Publication number | Publication date |
---|---|
AU2001264673A1 (en) | 2001-11-26 |
WO2001089121A3 (en) | 2003-11-20 |
US7251256B1 (en) | 2007-07-31 |
CA2408621A1 (en) | 2001-11-22 |
ATE421812T1 (de) | 2009-02-15 |
JP2004522329A (ja) | 2004-07-22 |
EP1380128B1 (en) | 2009-01-21 |
DE60137546D1 (de) | 2009-03-12 |
EP1380128A2 (en) | 2004-01-14 |
WO2001089121A2 (en) | 2001-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1489841A (zh) | 使用媒介访问控制(mac)层同步符号的异步网络的同步化 | |
CN102104476B (zh) | 时钟同步装置及方法 | |
CN106992830B (zh) | 一种fc-ae-1553网络中的时钟同步方法 | |
US7035247B2 (en) | Link transmission control with common time reference | |
US7792157B2 (en) | Method, system and device for clock transmission between sender and receiver | |
CN101534185B (zh) | 时间同步装置、方法和系统 | |
CN102598556B (zh) | 用于优化分组定时传输的方法和设备 | |
WO2009071029A1 (fr) | Système et procédé de synchronisation d'informations de temps et équipement associé | |
US20020080828A1 (en) | Time frame switching method using time frame labels and a common time reference | |
CN101741853B (zh) | 时钟时间同步的方法、线卡单板和网络设备 | |
WO2008125025A1 (en) | Inter-packet gap network clock synchronization | |
CN101977104A (zh) | 基于ieee1588精确时钟同步协议系统及其同步方法 | |
WO2008125051A1 (en) | Network clock synchronization floating window and window delineation | |
CN1196852A (zh) | 分布式网络同步系统 | |
JP2000332717A (ja) | マルチプレクサ、デマルチプレクサおよびインターフェース装置 | |
CN101005349B (zh) | 一种时钟同步方法和系统 | |
JP5592001B2 (ja) | 組込みクロック信号の多重化および逆多重化を含むデータ送信 | |
CN105553595B (zh) | 一种分布式系统中的设备及其同步方法 | |
CN101212290B (zh) | 同步时分以太网传输方法及相应的传输装置 | |
CN110278065A (zh) | 一种补偿时延的方法和设备 | |
CN112994819B (zh) | 一种用于时钟同步的消息处理方法、时钟同步方法及装置 | |
WO2017054559A1 (zh) | 时钟频率识别的方法和装置 | |
US9521095B2 (en) | Transport system and transport apparatus | |
US7558260B2 (en) | Byte-timeslot-synchronous, dynamically switched multi-source-node data transport bus system | |
CN114641952A (zh) | 用于使用时间同步传输层进行通信的节点的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |