在多个mac中实现ieee1588不同时戳格式包封装的方法及装置的制作方法

文档序号:7967696阅读:274来源:国知局
专利名称:在多个mac中实现ieee 1588不同时戳格式包封装的方法及装置的制作方法
技术领域
本发明涉及网络通讯技术领域,尤其涉及一种在多个MAC中实现IEEE 1588不同时戳格式包封装的方法及装置。
背景技术
IEEE 1588标准定义了一个网络测量和控制系统的精密时间同步协议(Precision Time Synchronization Protocol, PTP),它使用时间戳来同步本地时间,它所达到的微妙级精度使得这项技术适用于基于以太网的系统。在以太网封装包通过媒体访问控制器 (Media Access Control, MAC)传输时,其包负载中的时间戳格式会存在两种格式32比特秒加30比特纳秒构成当前时间戳,或者64比特纳秒构成当前时间戳。因此,为了支持不同的时间戳表示格式,这里就涉及到如何去实现这两种表示格式之间的转化问题。目前可以见到的时间戳格式实现方案为在各个MAC中独自实现时间戳秒加纳秒格式,并通过乘法器转成纳秒格式。也就是说在各个MAC中内置一个时间计数器累加秒和纳秒得到当前时刻的时间戳,并通过秒位乘以10的9次方变成纳秒,然后再加上纳秒位得到纳秒表示格式的时间戳。然而该方案在各个MAC中独自实现时间戳,这里会用到一个32比特乘以30比特的乘法器,以及一个64比特的加法器,这对于通常有多个MAC(例如现在主流的都有M个、 48个或多于48个)的以太网交换芯片来说,芯片逻辑资源的消耗很大,从而导致芯片成本的上升。因此,有必要提供一种在多个MAC中实现IEEE 1588不同时戳格式包封装的方法及装置以克服上述问题。

发明内容
本发明的目的在于提供在多个MAC中实现IEEE 1588不同时戳格式包封装的方法。本发明的另一目的在于提供在多个MAC中实现IEEE 1588不同时戳格式包封装的装置,所述装置应用在多个MAC中实现IEEE 1588不同时戳格式包封装的方法。相应地,一种在多个MAC中实现IEEE 1588不同时戳格式包封装的方法,所述方法包括以下步骤
Si,获取在参考时钟域内得到的秒加纳秒格式的时间戳;
S2,将上述秒加纳秒格式的时间戳同步到一个比参考时钟快至少2倍的核心时钟的核心时钟域;
S3,在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳转换为纳秒格式的时间戳;
S4,在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,与参考时钟域对应的
4除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;
S5,MAC根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。作为本发明的进一步改进,所述Sl步骤具体为首先根据输入的参考时钟,每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取参考时钟域的秒加纳秒格式的时间戳。作为本发明的进一步改进,所述S3步骤还包括设置PTP传输信号区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示秒加纳秒格式时间戳,用PTP传输信号值为0表示纳秒格式时间戳。作为本发明的进一步改进,所述S5步骤中MAC在发送和接收方向均采用S4步骤广播的时间戳。作为本发明的进一步改进,一种在多个MAC中实现IEEE 1588不同时戳格式包封装的装置,包括PTP引擎和若干MAC ;所述PTP引擎包括
时钟计数器,用于获取在参考时钟域内得到的秒加纳秒格式的时间戳; 所述时钟计数器还用于将上述秒加纳秒格式的时间戳同步到PTP引擎内一个比参考时钟快至少2倍的核心时钟的核心时钟域;
转换模块,用于在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳转换为纳秒格式的时间戳;及
广播模块,用于在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;
所述MAC用于根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。作为本发明的进一步改进,所述时钟计数器在用于获取时间戳时具体是用于首先根据输入的参考时钟,每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取参考时钟域的秒加纳秒格式的时间戳。作为本发明的进一步改进,所述转换模块还用于设置PTP传输信号区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示秒加纳秒格式时间戳,用PTP传输信号值为0表示纳秒格式时间戳。作为本发明的进一步改进,所述MAC在发送和接收方向均采用广播模块广播的时间戳。本发明的有益效果是通过在PTP引擎内设置比参考时钟快至少2倍的核心时钟,并将参考时钟域得到的秒加纳秒格式的时间戳在一个核心时钟域内同步转换为纳秒格式的时间戳,从而可利用单个PTP引擎分时广播不同表示格式的时间戳到多个MAC,以实现不同时戳格式包封装的传输,并且不增加多余总线,不需要控制逻辑来区分不同MAC的时间戳请求,在很大程度上减少了 PTP引擎的设计复杂度,而且对于MAC的扩展也很容易。


图1是本发明一具体实施方式
PTP引擎将时间戳广播到MAC的示意图;图2是本发明一具体实施方式
在多个MAC中实现IEEE 1588不同时戳格式包封装的方法的流程图3是本发明PTP引擎将时间戳分时广播的时序示意图4是本发明一具体实施方式
在多个MAC中实现IEEE 1588不同时戳格式包封装的装置的模块图。
具体实施例方式以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。请参阅图1至图3所示,本发明一具体实施方式
在多个MAC中实现IEEE 1588不同时戳格式包封装的方法,主要包括以下步骤
Si,获取在参考时钟域内得到的32比特秒加30比特纳秒的时间戳(ptpCnt);其中该步骤具体是首先根据输入的参考时钟(clockRef),每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取精确的参考时钟域的秒加纳秒格式的时间戳 (ptpCnt);
S2,将上述秒加纳秒格式的时间戳(ptpCnt)同步到一个比参考时钟快至少2倍的核心时钟(clockCore)的核心时钟域;该核心时钟(clockCore)在逻辑实现时设置为比参考时钟(clockRef)快至少2倍以上,主要是为了能够实现分时传输不同表示格式的时间戳;
S3,在与参考时钟域对应的其中一个核心时钟域内将在参考时钟域得到的秒加纳秒格式的时间戳(PtpCnt)转换为纳秒格式的时间戳;其中该步骤还包括设置PTP传输信号 (ptpTsType)区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示 32比特秒加30比特纳秒格式时间戳(ptpCnt),用PTP传输信号值为0表示64比特纳秒格式时间戳;假如参考时钟(clockRef)设定为8纳秒,核心时钟(clockCore)设定为2. 5 纳秒,那么在该8纳秒的时间周期内,PTP传输信号(ptpTsType)为1占用一个核心时钟 (clockCore)的时钟周期,即2. 5纳秒,其余时间将该信号值置低,也就是在除上述一个核心时钟域外的其他核心时钟域内将该信号值置低;
S4,在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳 (ptpCnt);
S5,MAC根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。MAC在发送和接收方向均采用S4步骤广播的时间戳,即当MAC接收或发送一个PTP事件信息报文时,根据需要打时戳的格式类型在核心时钟域采用PTP引擎广播而来的时间戳放入到包中,从而实现不同时戳格式报文的传输。请参阅图4所示,本发明一具体实施方式
在多个MAC中实现IEEE 1588不同时戳格式包封装的装置,包括PTP引擎和若干MAC ;所述PTP引擎包括
时钟计数器,用于获取在参考时钟域内得到的秒加纳秒格式的时间戳(PtpCnt),具体来说是用于首先根据输入的参考时钟(clockRef),每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取参考时钟域的秒加纳秒格式的时间戳 (ptpCnt);
所述时钟计数器还用于将上述秒加纳秒格式的时间戳(PtpCnt)同步到PTP引擎内一个比参考时钟(clockRef)快至少2倍的核心时钟(clockCore)的核心时钟域;
转换模块,用于在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳(ptpCnt)转换为纳秒格式的时间戳,同时还用于设置PTP传输信号区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示秒加纳秒格式时间戳(ptpCnt),用PTP 传输信号值为O表示纳秒格式时间戳;及
广播模块,用于在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;
所述MAC用于根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。其中所述 MAC在发送和接收方向均采用广播模块广播的时间戳。综上所述,本发明在多个MAC中实现IEEE 1588不同时戳格式包封装的方法及装置通过在PTP引擎内设置比参考时钟(clockRef)快至少2倍的核心时钟(clockCore),并将参考时钟域得到的秒加纳秒格式的时间戳(ptpCnt)在一个核心时钟域内同步转换为纳秒格式的时间戳,从而可利用单个PTP引擎分时广播不同表示格式的时间戳到多个MAC,以实现不同时戳格式包封装的传输。当然在共享一个PTP引擎时,也可以通过请求加响应的方式实现时间戳两种格式同时传给MAC。也就是说,所有MAC共享一个PTP引擎,每个MAC产生一个请求信号去向PTP 引擎申请当前时间戳,PTP引擎根据请求信号在下一个时钟周期同时返回两种不同表示格式时间戳。然而,该种方案虽然不需要MAC独自实现PTP时间戳,但是它也增加了 PTP引擎的实现复杂度。因为每个MAC的请求信号来的时间不固定,有可能所有MAC在同一时刻都会请求,这样就需要对每一个MAC都有一套请求响应的控制逻辑。此外,总线宽度也是相当大的,对每个MAC时间戳就需要64乘2比特宽度的信号,这将会增加芯片后端布线的难度。由此可见,本发明利用单个PTP引擎分时广播不同表示格式的时间戳到多个MAC, 不仅可以实现不同时戳格式包封装的传输,并且还不增加多余总线,不需要控制逻辑来区分不同MAC的时间戳请求,在很大程度上减少了 PTP引擎的设计复杂度,而且对于MAC的扩展也很容易。为了描述的方便,描述以上装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各模块或单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备 (可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的模块或单元可以是或者也可以不是物理上分开的,作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块或单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置,或通信设备中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
权利要求
1.一种在多个MAC中实现IEEE 1588不同时戳格式包封装的方法,其特征在于,所述方法包括以下步骤Si,获取在参考时钟域内得到的秒加纳秒格式的时间戳;S2,将上述秒加纳秒格式的时间戳同步到一个比参考时钟快至少2倍的核心时钟的核心时钟域;S3,在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳转换为纳秒格式的时间戳;S4,在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;S5, MAC根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。
2.根据权利要求1所述的在多个MAC中实现IEEE1588不同时戳格式包封装的方法, 其特征在于,所述Sl步骤具体为首先根据输入的参考时钟,每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取参考时钟域的秒加纳秒格式的时间戳。
3.根据权利要求1所述的在多个MAC中实现IEEE1588不同时戳格式包封装的方法, 其特征在于,所述S3步骤还包括设置PTP传输信号区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示秒加纳秒格式时间戳,用PTP传输信号值为0表示纳秒格式时间戳。
4.根据权利要求1所述的在多个MAC中实现IEEE1588不同时戳格式包封装的方法, 其特征在于,所述S5步骤中MAC在发送和接收方向均采用S4步骤广播的时间戳。
5.一种在多个MAC中实现IEEE 1588不同时戳格式包封装的装置,其特征在于,所述装置包括PTP引擎和若干MAC ;所述PTP引擎包括时钟计数器,用于获取在参考时钟域内得到的秒加纳秒格式的时间戳;所述时钟计数器还用于将上述秒加纳秒格式的时间戳同步到PTP引擎内一个比参考时钟快至少2倍的核心时钟的核心时钟域;转换模块,用于在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳转换为纳秒格式的时间戳;及广播模块,用于在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;所述MAC用于根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。
6.根据权利要求5所述的在多个MAC中实现IEEE1588不同时戳格式包封装的装置, 其特征在于,所述时钟计数器在用于获取时间戳时具体是用于首先根据输入的参考时钟, 每一个时钟周期累加一次时钟时间;然后再根据远端时钟作调整同步本地时间,以获取参考时钟域的秒加纳秒格式的时间戳。
7.根据权利要求5所述的在多个MAC中实现IEEE1588不同时戳格式包封装的装置, 其特征在于,所述转换模块还用于设置PTP传输信号区分上述秒加纳秒和纳秒两种格式时间戳,即用PTP传输信号值为1表示秒加纳秒格式时间戳,用PTP传输信号值为0表示纳秒格式时间戳。
8.根据权利要求5所述的在多个MAC中实现IEEE 1588不同时戳格式包封装的装置, 其特征在于,所述MAC在发送和接收方向均采用广播模块广播的时间戳。
全文摘要
本发明提供一种在多个MAC中实现IEEE1588不同时戳格式包封装的方法,包括以下步骤S1,获取在参考时钟域内得到的秒加纳秒格式的时间戳;S2,将上述秒加纳秒格式的时间戳同步到一个比参考时钟快至少2倍的核心时钟的核心时钟域;S3,在与参考时钟域对应的其中一个核心时钟域内将秒加纳秒格式的时间戳转换为纳秒格式的时间戳;S4,在上述一个核心时钟域内向所有MAC广播纳秒格式时间戳,在与参考时钟域对应的除上述一个核心时钟域外的其他核心时钟域内向所有MAC广播秒加纳秒格式的时间戳;S5,MAC根据需要打时戳的格式类型在上述一个核心时钟域和其他核心时钟域选择上述广播而来的两种时间戳并放入包封装中进行不同时戳格式报文的传输。
文档编号H04L7/00GK102420687SQ20111035180
公开日2012年4月18日 申请日期2011年11月9日 优先权日2011年11月9日
发明者杨崇朋, 许俊 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1