在媒体访问控制模块中实现精确时钟协议的方法和装置的制造方法

文档序号:10572448阅读:359来源:国知局
在媒体访问控制模块中实现精确时钟协议的方法和装置的制造方法
【专利摘要】本发明提供一种在媒体访问控制模块中实现精确时钟协议的方法和装置。所述装置包括:媒体访问控制模块及时戳控制模块。所述媒体访问控制模块包括相互之间依次连接的接口转换子模块、媒体独立接口控制子模块、速率调整子模块及物理编解码子模块。其中,所述时戳控制模块设置于所述速率调整子模块与所述物理编解码子模块之间,所述时戳控制模块用于对所述媒体访问控制模块中的时间戳进行处理,以在所述媒体访问控制模块中实现精确时钟协议。上述装置能提高精确时钟协议的时间戳精度。
【专利说明】
在媒体访问控制模块中实现精确时钟协议的方法和装置
技术领域
[0001] 本发明属于芯片设计领域,具体涉及一种在交换机芯片设计中在媒体访问控制 (Gigabit Media Access Control,简称GMAC)模块上实现精确时钟协议的方法和装置。
【背景技术】
[0002] 目前,分布式系统广泛运用于网络中,而分布式系统,往往需要一个全局的时钟, 来确定系统中各事件发生的先后顺序,以及协调事件间传输的信息。这就要求系统中的各 个部件有一个统一的时钟,并且能够在各个部件之间传递时间信息。如何在网络上提供可 靠的时间服务已经成为一个重要的研究课题。
[0003] 精确时钟协议(Precision Time Protocol,简称PTP)是一种对标准以太网终端设 备进行时间和频率同步的协议,也称为IEEE 1588协议。PTP协议能够在不改变现有网络结构 的前提下,利用以太网的帧传输时间信息,并且能够保证时间的精度。由于PTP协议实现简 单,占用的网络和计算资源少等优点使其广泛应用于分布式系统中。
[0004] PTP协议可以采用软件实现。但采用软件实现PTP协议时,由于网络的不平稳性,交 换机对数据包的缓存以及操作系统进程的调度的影响,使得网络不能提供很高精度的时间 服务,通常软件实现的时间精度只能够达到毫秒级(ms)。显然这样的时间精度是无法满足 交换机芯片设计的中一些高标准的要求。如何提高上述时间精度对本领域技术人员而言是 急需要解决的技术问题。

【发明内容】

[0005] 有鉴于此,本发明实施例的目的在于提供一种能在媒体访问控制模块中实现PTP 协议的方法和装置,以解决现有技术中在媒体访问控制模块中实现PTP协议时间精度不高 的技术问题。
[0006] 就实现PTP协议的装置而言,本发明实施例提供一种在媒体访问控制模块中实现 精确时钟协议的装置。所述装置包括:媒体访问控制模块及时戳控制模块,所述媒体访问控 制模块包括相互之间依次连接的接口转换子模块、媒体独立接口控制子模块、速率调整子 模块及物理编解码子模块。其中,所述时戳控制模块设置于所述速率调整子模块与所述物 理编解码子模块之间,所述时戳控制模块用于对所述媒体访问控制模块中的时间戳进行处 理,以在所述媒体访问控制模块中实现精确时钟协议。
[0007] 进一步地,所述装置中的所述时戳控制模块包括:发送子模块及接收子模块。所述 发送子模块包括多级流水线处理单元、信息锁存单元、替换控制单元、计数器、时戳调整单 元、寄存器及循环冗余码校验单元。其中,所述信息锁存单元对输入帧的处理信息进行锁存 备用。所述替换控制单元与所述信息锁存单元、多级流水线处理单元及计时器连接。所述时 戳调整单元的一侧输入端输入系统的实时时间,另一侧输入端与所述寄存器连接,所述时 戳调整单元的输出端与所述多级流水线处理单元连接。所述循环冗余码校验单元与所述多 级流水线处理单元连接用于对新的帧内容进行重新计算循环冗余码校验的值。所述接收子 模块包括时戳捕获单元,所述时戳捕获单元用于在接收到一个帧开始时,捕获下当前的系 统时间。
[0008] 进一步地,所述装置中的所述时戳控制模块通过媒体独立接口与所述速率调整子 模块及物理编解码子模块相连。所述媒体独立接口包括用于发送有效信号的数据线、发送 数据信号的数据线及发送错误信号的数据线,所述多级流水线处理单元对所述媒体独立接 口输入的数据进行处理后输出。
[0009] 进一步地,所述装置中的所述多级水线处理单元为5级流水线处理单元。
[0010] 进一步地,所述装置中所述寄存器存储有用于进行时间戳校准的校准信号。所述 校准信号包括标志位和需要进行校准的时间值,所述时戳调整单元根据所述标志位对所述 时间戳进行相应时间值的调整。
[0011] 就实现PTP协议的方法而言,本发明实施例提供一种在媒体访问控制模块中实现 精确时钟协议的方法,所述媒体访问控制模块包括相互之间依次连接的接口转换子模块、 媒体独立接口控制子模块、速率调整子模块及物理编解码子模块,所述方法包括:采用时戳 控制模块对所述媒体访问控制模块的时间戳进行处理以实现精确时钟协议,其中所述时戳 控制模块设置在所述速率调整子模块与所述物理编解码子模块之间。
[0012] 进一步地,所述方法中的所述时戳控制模块包括:发送子模块及接收子模块。所述 发送子模块包括多级流水线处理单元、信息锁存单元、替换控制单元、计数器、时戳调整单 元、寄存器及循环冗余码校验单元。其中,所述信息锁存单元对输入帧的处理信息进行锁存 备用。所述替换控制单元与所述信息锁存单元、多级流水线处理单元及计时器连接。所述时 戳调整单元的一侧输入端输入系统的实时时间,另一侧输入端与所述寄存器连接,所述时 戳调整单元的输出端与所述多级流水线处理单元连接。所述循环冗余码校验单元与所述多 级流水线处理单元连接用于对新的帧内容进行重新计算循环冗余码校验的值。所述接收子 模块包括时戳捕获单元,所述时戳捕获单元用于在接收到一个帧开始时,捕获下当前的系 统时间。
[0013] 进一步地,所述方法中的所述多级水线处理单元为5级流水线处理单元。
[0014] 进一步地,所述方法中的所述寄存器存储有用于进行时间戳校准的校准信号。所 述校准信号包括标志位和需要进行校准的时间值,所述时戳调整单元根据所述标志位对所 述时间戳进行相应时间值的调整。
[0015] 相对于现有技术,本发明提供的在媒体访问控制模块中实现精确时钟协议的方法 和装置,将打时间戳的地方设置在交换机芯片中所有的缓存之后的Gmac模块中,相对于采 用软件实现的方式可以极大的提高了时间精度。
[0016] 为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合 所附附图,作详细说明如下。
【附图说明】
[0017] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附 图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对 的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附 图获得其他相关的附图。
[0018] 图1为本发明实施例提供的媒体访问控制模块的设计架构图。
[0019] 图2为本发明实施例提供的在媒体访问控制模块中实现精确时钟协议的装置的设 计架构图。
[0020] 图3为封装了PTP报文的以太网帧格式。
[0021]图4为本发明实施例提供的时戳控制模块的设计架构图。
[0022]主要元件符号说明
[0023]

【具体实施方式】
[0024] 下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整 地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在 此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因 此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明 的,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出 创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0025] 请参照图1,图1是本发明实施例提供的媒体访问控制模块100的设计架构图。所述 媒体访问控制模块1 〇〇包括:接口转换子模块11 〇、媒体独立接口控制子模块120、速率调整 子模块130及物理编解码子模块140。所述接口转换子模块110、媒体独立接口控制子模块 120、速率调整子模块130及物理编解码子模块140依次电性连接。所述接口转换子模块110 的主要功能是进行接口位宽转换,
[0026] 并通过异步输入输出缓存(First Input First output,简称FIFO)进行跨时钟域 处理。所述媒体独立接口控制子模块120用于将网络报文封装成IEEE802.3协议规定的帧格 式和从帧格式中解出网络报文。所述速率调整子模块130用于使用异步FIFO进行不同速率 间的调整(比如,1 〇M/100M/1000M)。所述物理编解码子模块140用于进行物理编解码。
[0027]根据上面描述可知,所述接口转换子模块110与速率调整子模块130均含有异步输 入输出缓存。因此为了保证时间戳的精度,打印时间戳的操作放置在所述速率调整子模块 130之后。具体地,请参照图2,为实现精确时钟协议的装置10包括媒体访问控制模块100及 时戳控制模块200,具体地,时戳控制模块200设置于媒体访问控制模块100的速率调整子模 块130与物理编解码子模块140之间,所述时戳控制模块200用于进行时间戳处理。
[0028]在本实施中,时间戳(TimeStamp)域为80比特的时戳信息。为了使PTP报文能够在 以太网中传输,其必须封装在以太网的帧格式中,请参照图3。为了能给PTP帧中打上实时时 间戳,需要要知道TimeStamp域在帧中的位置,这个工作是在包处理引擎中解析的。
[0029]请参照图4,图4是所述时戳控制模块200的具体设计功能模块图。所述时戳控制模 块200包括:发送子模块210及接收子模块220。
[0030]所述发送子模块210包括:多级流水线处理单元211、信息锁存单元212、替换控制 单元213、计数器214、循环冗余码校验单元215、时戳调整单元216及寄存器217。其中,所述 信息锁存单元212对输入帧的处理信息进行锁存备用。所述替换控制单元213与所述信息锁 存单元212、多级流水线处理单元211及计数器214连接。所述时戳调整单元216的一侧输入 端输入系统的实时时间,所述时戳调整单元216的另一侧输入端与所述寄存器217连接,所 述时戳调整单元216的输出端与所述多级流水线处理单元211连接。所述循环冗余码校验单 元215与所述多级流水线处理单元211连接用于对新的帧内容进行重新计算循环冗余码校 验的值。
[0031]所述接收子模块220包括时戳捕获单元221,用于在接收到一个帧开始时,捕获当 前的系统时间。并将所述系统时间给后面的包处理引擎块使用。
[0032]在本实施例中,所述时戳控制模块200采用多级流水线(Pipeline)设计,可以节省 数据处理时间以满足打印时间戳及重算循环冗余码校验的值所需要的时间。在本实施例 中,所述多级水线处理单元可以为5级流水线处理单元,采用5级流水线对帧数据进行处理。 [0033]所述时戳控制模块200通过媒体独立接口与所述速率调整子模块130及物理编解 码子模块140相连,所述媒体独立接口包括用于发送有效信号(txEn)的数据线、发送数据信 号(txd[7:0])的数据线及发送错误信号(txEr)的数据线,所述多级流水线处理单元211对 所述媒体独立接口输入的数据进行处理后输出。
[0034] 所述信息锁存单元212对输入的输入帧的处理信息,如msg[7 : 0] ({tsEn,offset [6:0]}),进行锁存备用。其中,msg[7:0]中包括了编辑帧所需的信息:tsEn为1表示该帧是 PTP报文,需要进行打时间戳操作;of f set [ 6:0 ]表示时间戳(TimeStamp)域的位置在帧中的 偏移。在帧开始的时候启动所述计数器214,当所述计数器214的值等于of f set [6:0 ]时,并 且tsEn为1时,进行打时间戳操作,时间戳的位宽为80比特,因此打时间戳的操作要持续10 个时钟周期。
[0035]在所述时戳控制模块200中需要输入一个系统的实时时钟(ts [ 79:0 ])作为打时间 戳的基准时间。由于打时间戳的操作放在物理编解码子模块140之前,并不是真正的网络出 口,但时戳控制模块200真正的网络出口的延时在设计中是固定的,因此增加了一组校准信 号来进行时间戳的校准。所述校准信号存储在所述寄存器217中,所述校准信号包括标志位 (tsAddSign)和需要进行校准的时间值(tsAddData[15:0]),使所述时戳调整单元216可根 据所述标志位对所述时间戳进行相应时间值的调整。具体地,当tsAddSign为1时,对所述时 间戳增加 tsAddData[ 15 :0]的时间值;当tsAddSign为0时,对所述时间戳减小tsAddData [15:0]的时间值。
[0036] 所述循环冗余码校验单元215在完成时间戳的打印操作后,根据新的帧的内容重 新计算循环冗余校验(Cyclic Redundancy Check,简称CRC)的值,并将其写入帧的校验域 (Frame Check Sequence,简称FCS中)〇
[0037] 时戳控制模块200的发送子模块210的主要功能就是根据offset的值,通过计数器 214找到需要打时间戳的位置,并将80比特的时间戳打到指定的位置。由于打时间戳操作改 变了原来帧的内容,因此需要重新计算CRC的值。
[0038] 时戳控制模块200的接收子模块220的主要功能是在收到的帧开始的时候,记录帧 在网络入口的时间,给后面的包处理引擎模块使用。
[0039] 与此同时,本实施例还提供一种采用上面描述的装置实现精确时钟协议的方法。
[0040] 所述方法是在媒体访问控制模块100的速率调整子模块130及物理编解码子模块 140之间,增加了一个时戳控制模块200来进行PTP协议的时间戳处理。
[0041 ] 具体地,媒体访问控制模块100的输入为GMII接口信号(txEn,txd[7:0],txEr),将 输入的帧进入多级流水线进行处理,输出接口同样为GMII接口(txEnTs,txdTs[7:0], txErTs,其中所述多级流水线为5级流水处理。
[0042]将输入帧的处理信息msg[7:0]在帧开始的时候进行锁存备用,msg[7:0]中包含两 个信息:tsEn和of?set[6:0]。tsEn为l表示该帧是PTP报文,需要进行打时间戳操作;offset [6:0]表示TimeStamp域的位置在帧中的偏移。
[0043] 在帧开始的时候启动一个计数器214,当计数器214的值等于offSet[6:0]时,并且 tsEn为1时,进行打时间戳操作,时间戳的位宽为80比特,因此打时间戳的操作要持续10个 时钟周期。
[0044] ts[79:0]是系统的实时时间,由于打时间戳的操作放在物理编解码子模块140之 前,并不是真正的网络出口,但时戳控制模块200到真正的网络出口的延时在设计中是固定 的,因此增加了一组信号(tsAddSign和tsAddData[ 15 : 0])来进行时间戳的校准,其中 tsAddSign为标志位,1表示加,0表示减;tsAddData[ 15:0]为需要增加或减小的时间值。
[0045] 在完成打时间戳操作后,根据新的帧的内容重新计算CRC的值,并写入帧的FCS域。
[0046] 时戳控制模块200接收方向收到一个帧的开始时,记录下当前的系统时间,给后面 的包处理引擎模块使用。
[0047] 综上所述,本实施例提供的在媒体访问控制模块100中实现精确时钟协议的方法 及装置。在Gmac网口上进行打时间戳的操作,保证了PTP协议时间戳的精度,同时采用流水 线设计,不会引入时间戳的抖动。考虑到打时间戳的操作到真正的网络出口还有一段固定 延时,因此增加了一组寄存器217来进行时间戳的校准。本发明只对PTP报文进行时间戳处 理,对网络的其它报文不做任何处理,因此保证了 Gmac模块原有功能的正确性。
[0048] 以上所述,仅为本发明的【具体实施方式】,但本发明的保护并不局限于此,任何熟悉 本技术领域的技术人员在本发明揭露的技术内,可轻易想到变化或替换,都应涵盖在本发 明的保护之内。因此,本发明的保护应所述以权利要求的保护为准。
【主权项】
1. 一种在媒体访问控制模块中实现精确时钟协议的装置,其特征在于,包括:媒体访问 控制模块及时戳控制模块,所述媒体访问控制模块包括相互之间依次连接的接口转换子模 块、媒体独立接口控制子模块、速率调整子模块及物理编解码子模块,其中,所述时戳控制 模块设置于所述速率调整子模块与所述物理编解码子模块之间,所述时戳控制模块用于对 所述媒体访问控制模块中的时间戳进行处理,以在所述媒体访问控制模块中实现精确时钟 协议。2. 如权利要求1所述的装置,其特征在于,所述时戳控制模块包括:发送子模块及接收 子模块; 所述发送子模块包括多级流水线处理单元、信息锁存单元、替换控制单元、计数器、时 戳调整单元、寄存器及循环冗余码校验单元,其中,所述信息锁存单元对输入帧的处理信息 进行锁存备用,所述替换控制单元与所述信息锁存单元、多级流水线处理单元及计时器连 接,所述时戳调整单元的一侧输入端输入系统的实时时间、另一侧输入端与所述寄存器连 接,所述时戳调整单元的输出端与所述多级流水线处理单元连接,所述循环冗余码校验单 元与所述多级流水线处理单元连接用于对新的帧内容进行重新计算循环冗余码校验的值; 所述接收子模块包括时戳捕获单元,所述时戳捕获单元用于在接收到一个帧开始时, 捕获当前的系统时间。3. 如权利要求2所述的装置,其特征在于,所述时戳控制模块通过媒体独立接口与所述 速率调整子模块及物理编解码子模块相连,所述媒体独立接口包括用于发送有效信号的数 据线、发送数据信号的数据线及发送错误信号的数据线,所述多级流水线处理单元对所述 媒体独立接口输入的数据进行处理后输出。4. 如权利要求2~3中任意一项所述的装置,其特征在于:所述多级水线处理单元为5级 流水线处理单元。5. 如权利要求2所述的装置,其特征在于,所述输入帧的处理信息包括:精确时钟协议 标签及时间戳域的位置在帧中的偏移。6. 如权利要求2所述的装置,其特征在于,所述寄存器存储有用于进行时间戳校准的校 准信号,所述校准信号包括标志位和需要进行校准的时间值,所述时戳调整单元根据所述 标志位对所述时间戳进行相应时间值的调整。7. -种在媒体访问控制模块中实现精确时钟协议的方法,其特征在于,所述媒体访问 控制模块包括相互之间依次连接的接口转换子模块、媒体独立接口控制子模块、速率调整 子模块及物理编解码子模块,所述方法包括: 采用时戳控制模块对所述媒体访问控制模块的时间戳进行处理以实现精确时钟协议, 其中所述时戳控制模块设置在所述速率调整子模块与所述物理编解码子模块之间。8. 如权利要求7所述的方法,其特征在于, 所述时戳控制模块包括:发送子模块及接收子模块; 所述发送子模块包括多级流水线处理单元、信息锁存单元、替换控制单元、计数器、时 戳调整单元、寄存器及循环冗余码校验单元,其中,所述信息锁存单元对输入帧的处理信息 进行锁存备用,所述替换控制单元与所述信息锁存单元、多级流水线处理单元及计时器连 接,所述时戳调整单元的一侧输入端输入系统的实时时间,另一侧输入端与所述寄存器连 接,所述述时戳调整单元的输出端与所述多级流水线处理单元连接,所述循环冗余码校验 单元与所述多级流水线处理单元连接用于对新的帧内容进行重新计算循环冗余码校验的 值; 所述接收子模块包括时戳捕获单元,所述时戳捕获单元用于在接收到一个帧开始时, 捕获当前的系统时间。9. 如权利要求8所述的方法,其特征在于: 所述多级水线处理单元为5级流水线处理单元。10. 如权利要求8所述的方法,其特征在于: 所述寄存器存储有用于进行时间戳校准的校准信号,所述校准信号包括标志位和需要 进行校准的时间值,所述时戳调整单元根据所述标志位对所述时间戳进行相应时间值的调 整。
【文档编号】H04L12/931GK105933086SQ201610510846
【公开日】2016年9月7日
【申请日】2016年7月1日
【发明人】郭敏, 谢海春, 蒋汉柏, 廖北平
【申请人】醴陵恒茂电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1