掌桥专利:专业的专利平台
掌桥专利
首页

一种降低芯片Pipeline时间戳总线位宽的方法及应用

文献发布时间:2023-06-19 19:30:30


一种降低芯片Pipeline时间戳总线位宽的方法及应用

技术领域

本发明是关于电子通信领域,特别是关于一种降低芯片Pipeline时间戳总线位宽的方法及应用。

背景技术

报文在交换芯片转发时,会基于入方向端口的MAC层产生入方向时间戳(ingresstimestamp),入方向时间戳会存入pipeline总线的报文信息(PI,PacketInformation)中,随着报文pipeline处理一步一步传到编辑模块,编辑模块将入方向时间戳填入报文中,用于满足多种协议应用,比如INT(In-band Telemetry,带内遥测),ErspanV3(EncapsulatedRemoteSwitchPortAnalyzer,封装远程端口镜像),PTP(PrecisionTimeProtocol,高精度时钟协议)。

芯片pipeline处理报文需要分别经历IPE(ingressPipelineEngine,入方向流水线处理),BSR(BufferStoreRetrieve,缓存存储获取)和EPE(Egress PipelineEngine,出方向流水线处理)三个主要流水线处理。入方向时间戳表示报文进入交换芯片的时间戳,一般是入方向端口的MAC层产生capture信号到TsEngine(高精度时钟引擎),TsEngine立即产生一组时间戳。当需要将入方向时间戳编辑到报文时,需要将入方向时间戳传入到EPE的编辑模块,才能将入方向时间戳编辑到报文里面。

在现有技术中,当入方向端口的MAC层capture到入方向的时间戳,将M位的入方向时间戳编码到报文信息中,报文信息是携带报文处理信息的bus(总线),贯穿交换芯片的IPE、BSR以及EPE。随着报文在pipeline处理,M位入方向时间戳随着报文信息被传入到EPE的edit模块,edit模块直接从报文信息中获取M位的入方向时间戳,编辑到报文预先定义的位置,比如INT协议的Metadata部分,ErspanV3报文的extendheader部分。此时交换芯片入方向时间戳为64位的值,即M为64。

由于报文信息贯穿芯片的IPE、BSR和EPE,报文信息的总线宽度制约着芯片设计复杂度和制造成本。64位的入方向时间戳会较大增加IPE、BSR和EPE的报文信息总线宽度,也增加了芯片设计复杂度和制造成本。

公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。

发明内容

本发明的目的在于提供一种降低芯片Pipeline时间戳总线位宽的方法及应用,其能够降低交换芯片携带的位时间戳的pipeline总线宽度,从而降低了芯片pipeline总线宽度带来的设计复杂度和芯片制造成本。

为实现上述目的,本发明的实施例提供了一种降低芯片Pipeline时间戳总线位宽的方法。

在本发明的一个或多个实施方式中,所述方法包括:当入方向的时间戳捕获模块捕捉到M位入方向时间戳时,将所述M位入方向时间戳的低位N位入方向时间戳编码到报文信息总线中,其中N小于M;所述出方向的时间戳捕获模块向时钟引擎发送捕获信号,所述时钟引擎捕捉到M位出方向时间戳并传入时间戳转换模块;所述时间戳转换模块基于M位出方向时间戳和所述报文信息总线中低位N位入方向时间戳转换得到M位入方向时间戳;以及报文编辑模块接收所述M位入方向时间戳,并将所述M位入方向时间戳编辑到报文预先定义的位置。

在本发明的一个或多个实施方式中,将所述M位入方向时间戳的低位N位入方向时间戳编码到报文信息总线中,包括:当报文从入方向端口进入芯片时,入方向的时间戳捕获模块通知高精度时钟引擎产生M位入方向时间戳;以及所述入方向的时间戳捕获模块对所述M位入方向时间戳进行截断,获得低位N位入方向时间戳,并把所述低位N位入方向时间戳编码到报文信息中。

在本发明的一个或多个实施方式中,所述时间戳转换模块基于M位出方向时间戳和所述报文信息总线中低位N位入方向时间戳转换得到M位入方向时间戳,包括:所述时间戳转换模块获取报文信息中所述低位N位入方向时间戳,结合所述M位出方向时间戳,将所述M位出方向时间戳截取出低位N位出方向时间戳编码,经过转换算法计算得到所述M位入方向时间戳。

在本发明的一个或多个实施方式中,所述经过转换算法计算得到所述M位入方向时间戳,包括:比较所述N位出方向时间戳和所述N位入方向时间戳的大小;当所述N位入方向时间戳小于所述N位出方向时间戳时,使用所述N位入方向时间戳替换所述M位出方向时间戳中的低位N位出方向时间戳,得到M位入方向时间戳。

在本发明的一个或多个实施方式中,所述经过转换算法计算得到所述M位入方向时间戳,还包括:当所述N位入方向时间戳大于所述N位出方向时间戳时,所述N位入方向时间戳与所述N位出方向时间戳经过借位补偿方式计算出时间差值,转换出期望的M位入方向时间戳。

在本发明的一个或多个实施方式中,所述经过借位补偿方式计算出时间差值,包括:对所述N位出方向时间戳借位补偿第N+1位的值1,使得N+1位出方向时间戳比所述N位入方向时间戳大,则N+1位出方向时间戳减去所述N位入方向时间戳得到正值的时间差,即报文转发的驻留时间;以及所述M位出方向时间戳减去所述时间差,获得M位入方向时间戳。

在本发明的一个或多个实施方式中,所述方法还包括:M为64,30≤N≤40。

在本发明的另一个方面当中,提供了一种降低芯片Pipeline时间戳总线位宽的装置,其包括入方向处理模块、出方向处理模块、时间戳转换模块和报文编辑模块。

入方向处理模块,用于当入方向的时间戳捕获模块捕捉到M位入方向时间戳时,将所述M位入方向时间戳的低位N位入方向时间戳编码到报文信息总线中,其中N小于M。

出方向处理模块,用于所述出方向的时间戳捕获模块向时钟引擎发送捕获信号,所述时钟引擎捕捉到M位出方向时间戳并传入时间戳转换模块。

时间戳转换模块,用于所述时间戳转换模块基于M位出方向时间戳和所述报文信息总线中低位N位入方向时间戳转换得到M位入方向时间戳。

报文编辑模块,用于报文编辑模块接收所述M位入方向时间戳,并将所述M位入方向时间戳编辑到报文预先定义的位置。

在本发明的一个或多个实施方式中,所述入方向处理模块还用于:当报文从入方向端口进入芯片时,入方向的时间戳捕获模块通知高精度时钟引擎产生M位入方向时间戳;以及所述入方向的时间戳捕获模块对所述M位入方向时间戳进行截断,获得低位N位入方向时间戳,并把所述低位N位入方向时间戳编码到报文信息中。

在本发明的一个或多个实施方式中,所述出方向处理模块还用于:所述时间戳转换模块获取报文信息中所述低位N位入方向时间戳,结合所述M位出方向时间戳,将所述M位出方向时间戳截取出低位N位出方向时间戳编码,经过转换算法计算得到所述M位入方向时间戳。

在本发明的一个或多个实施方式中,所述时间戳转换模块还用于:比较所述N位出方向时间戳和所述N位入方向时间戳的大小;当所述N位入方向时间戳小于所述N位出方向时间戳时,使用所述N位入方向时间戳替换所述M位出方向时间戳中的低位N位出方向时间戳,得到M位入方向时间戳。

在本发明的一个或多个实施方式中,所述时间戳转换模块还用于:当所述N位入方向时间戳大于所述N位出方向时间戳时,所述N位入方向时间戳与所述N位出方向时间戳经过借位补偿方式计算出时间差值,转换出期望的M位入方向时间戳。

在本发明的一个或多个实施方式中,所述时间戳转换模块还用于:对所述N位出方向时间戳借位补偿第N+1位的值1,使得N+1位出方向时间戳比所述N位入方向时间戳大,则N+1位出方向时间戳减去所述N位入方向时间戳得到正值的时间差,即报文转发的驻留时间;以及所述M位出方向时间戳减去所述时间差,获得M位入方向时间戳。

在本发明的一个或多个实施方式中,所述入方向处理模块还用于:M为64,30≤N≤40。

在本发明的另一个方面当中,提供了一种电子设备,包括:至少一个处理器;以及存储器,所述存储器存储指令,当所述指令被所述至少一个处理器执行时,使得所述至少一个处理器执行如上所述的降低芯片Pipeline时间戳总线位宽的方法。

在本发明的另一个方面当中,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如所述的降低芯片Pipeline时间戳总线位宽的方法的步骤。

与现有技术相比,根据本发明实施方式的降低芯片Pipeline时间戳总线位宽的方法及应用,能够解决过大消耗pipeline总线位宽的问题,通过pipeline获取时间戳并结合较短位宽的目标时间戳,经过转换模块的算法运算获得较长位宽的目标时间戳,有效地降低交换芯片携带64位时间戳的pipeline总线宽度;解决时间戳计算时的交换芯片数值翻转的问题,创新使用了借位补偿方式,能够基于二进制数据进行借位减法运算,实现对时间戳转换算法的完善,大大降低了芯片pipeline总线宽度带来的设计复杂度和芯片制造成本。

附图说明

图1是根据本发明一实施方式的降低芯片Pipeline时间戳总线位宽的方法的流程图;

图2是根据本发明一实施方式的降低芯片Pipeline时间戳总线位宽的方法的具体结构流程图;

图3是根据本发明一实施方式的降低芯片Pipeline时间戳总线位宽的方法的时间戳转换算法的流程图;

图4是根据本发明一实施方式的降低芯片Pipeline时间戳总线位宽的装置的结构图;

图5是根据本发明一实施方式的降低芯片Pipeline时间戳总线位宽的计算设备的硬件结构图。

具体实施方式

下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。

除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。

以下结合附图,详细说明本发明各实施例提供的技术方案。

实施例1

如图1至图3所示,介绍本发明的一个实施例中降低芯片Pipeline时间戳总线位宽的方法,该方法包括如下步骤。

在步骤S101中,当入方向的时间戳捕获模块捕捉到M位入方向时间戳时,将所述M位入方向时间戳的低位N位入方向时间戳编码到报文信息总线中,其中N小于M。

在本实施例中,当报文从入方向端口进入芯片时,入方向的时间戳捕获模块通知高精度时钟引擎产生M位入方向时间戳;以及所述入方向的时间戳捕获模块对所述M位入方向时间戳进行截断,获得低位N位入方向时间戳,并把所述低位N位入方向时间戳编码到报文信息中。

如图2所示,在ASIC芯片的IPEpipeline中,入方向时间戳捕获模块(ingresstimestampcapturemodule)促发高精度时间引擎(TsEngine)捕捉到M位入方向时间戳(Mbitingresstimestamp),高精度时间引擎将M位入方向时间戳传入入方向时间戳捕获模块,该入方向时间戳捕获模块将M位入方向时间戳的低位N位时间戳(Nbittimestamp)编码到PI中。

具体的,为了能够满足INT协议和ErspanV3协议等,交换芯片入方向时间戳一般为64位的值,即M为64。N位时间戳是比M位时间戳位数更短的时间戳,N的值定义为[30,40]之间。因为芯片报文从IPEpipeline到EPEpipeline最长不会超过1s,因此,N典型参考值为30位,足够表示报文在芯片经IPE,BSR至EPE转发的延迟时间。

在步骤S102中,所述出方向的时间戳捕获模块向时钟引擎发送捕获信号,所述时钟引擎捕捉到M位出方向时间戳并传入时间戳转换模块。

具体的,在交换芯片EPE中新增时间戳转换模块,EPE的出方向的时间戳捕获模块在EPE编辑报文之前,促发高精度时钟引擎捕捉到M位出方向时间戳,其中M位出方向时间戳和M位入方向时间戳的位数一致,并传入到EPE时间戳转换模块进行后续处理。

如图2所示,在ASIC芯片的EPEpipeline中,出方向时间戳捕获模块(egresstimestampcapturemodule)促发高精度时间引擎(TsEngine)捕捉到M位出方向时间戳(Mbitengresstimestamp),高精度时间引擎将M位出方向时间戳传入出方向时间戳捕获模块,该出方向时间戳捕获模块将M位出方向时间戳传入时间戳转发模块(timestamptranslatemodule)。

在步骤S103中,所述时间戳转换模块基于M位出方向时间戳和所述报文信息总线中低位N位入方向时间戳转换得到M位入方向时间戳。

在本实施例中,所述时间戳转换模块获取报文信息中所述低位N位入方向时间戳,结合所述M位出方向时间戳,将所述M位出方向时间戳截取出低位N位出方向时间戳编码,经过转换算法计算得到所述M位入方向时间戳。

具体的,转换算法具体为,比较所述N位出方向时间戳和所述N位入方向时间戳的大小。当所述N位入方向时间戳小于所述N位出方向时间戳时,表明报文经IPE、BSR和EPE处理的时间,并没有产生时间进位,则直接使用所述N位入方向时间戳替换所述M位出方向时间戳中的低位N位出方向时间戳,得到M位入方向时间戳。

当所述N位入方向时间戳大于所述N位出方向时间戳时,表明报文经IPE、BSR和EPE处理的时间,已经在N位出方向时间戳基础上产生时间进位到第N+1位,此时无法直接使用低位N位出方向时间戳与N位入方向时间戳做减法运算,所述N位入方向时间戳与所述N位出方向时间戳经过借位补偿方式计算出时间差值,转换出期望的M位入方向时间戳。

进一步地,借位补偿方式为,对所述N位出方向时间戳借位补偿第N+1位的值1,使得N+1位出方向时间戳比所述N位入方向时间戳大,则N+1位出方向时间戳减去所述N位入方向时间戳得到正值的时间差,即报文转发的驻留时间;以及所述M位出方向时间戳减去所述时间差,获得M位入方向时间戳。

如图3所示,P1:比较NbittimestampA和lowNbittimestampB大小,若NbittimestampA小于lowNbittimestampB,则执行P2,否则执行P3。P2:当NbittimestampA小于lowNbittimestampB时,使用NbittimestampA替换Mbit timestampB中lowNbit值,得到MbittimestampA。P3:当NbittimestampA大于lowNbittimestampB时,lowNbittimestampB与NbittimestampA需要经过借位补偿方式计算出时间差值,转换出期望的MbittimestampA。公式如下:

(1){1,NbittimestampB}-{0,Nbittimestamp}={0,Nbittimestampdifference};(2)

{MbittimestampB}-{Nbittimestampdifference}=MbittimestampA。通过公式(2)得到MbittimestampA为最终M位入方向时间戳。

在步骤S104中,报文编辑模块接收所述M位入方向时间戳,并将所述M位入方向时间戳编辑到报文预先定义的位置。

如图2所示,在ASIC芯片的EPEpipeline中,EPE时间戳转发模块将经过转换算法恢复为原M位的入方向时间戳传入报文编辑模块(packetedit module)。

在本实施例中,以64位入方向时间戳和低位30位入方向时间戳为例来描述本发明的具体实施方式。

1)当报文进入入方向端口时,IPE时间戳捕获模块促发TsEngine产生64位入方向时间戳。

2)IPE时间戳捕获模块将64位入方向时间戳截断出低位30位入方向时间戳,并将其编码进报文信息中。

3)报文经过IPE和BSR处理后,进入EPE处理,此时EPE时间戳捕获模块促发TsEngine产生64位出方向时间戳。

4)EPE时间戳转换模块截取64位出方向时间戳的低30位出方向时间戳值与30位入方向时间戳作比较。

5)如果30位出方向时间戳比30位入方向时间戳大,表明报文在芯片的转发时间为30位出方向时间戳减去30位入方向时间戳的时间差,则直接用30位入方向时间戳替换64位出方向时间戳低位30位时间戳,得到64位入方向时间戳。

6)如果30位出方向时间戳比30位入方向时间戳小,直接通过30位出方向时间戳减去30位入方向时间戳时,会得到负数,导致交换芯片数值翻转。因此给30位出方向时间戳借位补偿第31位的值1,使得31位出方向时间戳比30位入方向时间戳大,则31位出方向时间戳减去30位入方向时间戳得到正值的时间差,即为报文转发的驻留时间。最后64位出方向时间戳减去得到的时间差,即可得到64位入方向时间戳。

7)EPE时间戳转换模块将转换出的64位入方向时间戳,交由报文编辑模块处理。报文编辑模块根据协议预先定义的位置,将64位入方向时间戳编辑到报文相应位置。

根据本发明实施方式的降低芯片Pipeline时间戳总线位宽的方法及应用,能够解决过大消耗pipeline总线位宽的问题,通过pipeline获取时间戳并结合较短位宽的目标时间戳,经过转换模块的算法运算获得较长位宽的目标时间戳,有效地降低交换芯片携带64位时间戳的pipeline总线宽度;解决时间戳计算时的交换芯片数值翻转的问题,创新使用了借位补偿方式,能够基于二进制数据进行借位减法运算,实现对时间戳转换算法的完善,大大降低了芯片pipeline总线宽度带来的设计复杂度和芯片制造成本。

如图4所示,介绍根据本发明具体实施方式的降低芯片Pipeline时间戳总线位宽的装置。

在本发明的实施方式中,降低芯片Pipeline时间戳总线位宽的装置包括入方向处理模块401、出方向处理模块402、时间戳转换模块403和报文编辑模块404。

入方向处理模块401,用于当入方向的时间戳捕获模块捕捉到M位入方向时间戳时,将所述M位入方向时间戳的低位N位入方向时间戳编码到报文信息总线中,其中N小于M。

出方向处理模块402,用于所述出方向的时间戳捕获模块向时钟引擎发送捕获信号,所述时钟引擎捕捉到M位出方向时间戳并传入时间戳转换模块。

时间戳转换模块403,用于所述时间戳转换模块基于M位出方向时间戳和所述报文信息总线中低位N位入方向时间戳转换得到M位入方向时间戳。

报文编辑模块404,用于报文编辑模块接收所述M位入方向时间戳,并将所述M位入方向时间戳编辑到报文预先定义的位置。

入方向处理模块401还用于:M为64,30≤N≤40。

入方向处理模块401还用于:当报文从入方向端口进入芯片时,入方向的时间戳捕获模块通知高精度时钟引擎产生M位入方向时间戳;以及所述入方向的时间戳捕获模块对所述M位入方向时间戳进行截断,获得低位N位入方向时间戳,并把所述低位N位入方向时间戳编码到报文信息中。

出方向处理模块402还用于:所述时间戳转换模块获取报文信息中所述低位N位入方向时间戳,结合所述M位出方向时间戳,将所述M位出方向时间戳截取出低位N位出方向时间戳编码,经过转换算法计算得到所述M位入方向时间戳。

时间戳转换模块403还用于:比较所述N位出方向时间戳和所述N位入方向时间戳的大小;当所述N位入方向时间戳小于所述N位出方向时间戳时,使用所述N位入方向时间戳替换所述M位出方向时间戳中的低位N位出方向时间戳,得到M位入方向时间戳。

时间戳转换模块403还用于:当所述N位入方向时间戳大于所述N位出方向时间戳时,所述N位入方向时间戳与所述N位出方向时间戳经过借位补偿方式计算出时间差值,转换出期望的M位入方向时间戳。

时间戳转换模块403还用于:对所述N位出方向时间戳借位补偿第N+1位的值1,使得N+1位出方向时间戳比所述N位入方向时间戳大,则N+1位出方向时间戳减去所述N位入方向时间戳得到正值的时间差,即报文转发的驻留时间;以及所述M位出方向时间戳减去所述时间差,获得M位入方向时间戳。

图5示出了根据本说明书的实施例的用于降低芯片Pipeline时间戳总线位宽的计算设备50的硬件结构图。如图5所示,计算设备50可以包括至少一个处理器501、存储器502(例如非易失性存储器)、内存503和通信接口504,并且至少一个处理器501、存储器502、内存503和通信接口504经由总线505连接在一起。至少一个处理器501执行在存储器502中存储或编码的至少一个计算机可读指令。

应该理解,在存储器502中存储的计算机可执行指令当执行时使得至少一个处理器501进行本说明书的各个实施例中以上结合图1-5描述的各种操作和功能。

在本说明书的实施例中,计算设备50可以包括但不限于:个人计算机、服务器计算机、工作站、桌面型计算机、膝上型计算机、笔记本计算机、移动计算设备、智能电话、平板计算机、蜂窝电话、个人数字助理(PDA)、手持装置、消息收发设备、可佩戴计算设备、消费电子设备等等。

根据一个实施例,提供了一种比如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-5描述的各种操作和功能。具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。

根据本发明实施方式的降低芯片Pipeline时间戳总线位宽的方法及应用,能够解决过大消耗pipeline总线位宽的问题,通过pipeline获取时间戳并结合较短位宽的目标时间戳,经过转换模块的算法运算获得较长位宽的目标时间戳,有效地降低交换芯片携带64位时间戳的pipeline总线宽度;解决时间戳计算时的交换芯片数值翻转的问题,创新使用了借位补偿方式,能够基于二进制数据进行借位减法运算,实现对时间戳转换算法的完善,大大降低了芯片pipeline总线宽度带来的设计复杂度和芯片制造成本。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。

相关技术
  • 系统芯片中cache与总线接口的统一位宽转换方法
  • 系统芯片中cache与总线接口的统一位宽转换结构及其转换方法
技术分类

06120115933140