CN107769987A - 一种报文转发性能评估方法和装置 - Google Patents
一种报文转发性能评估方法和装置 Download PDFInfo
- Publication number
- CN107769987A CN107769987A CN201610681506.2A CN201610681506A CN107769987A CN 107769987 A CN107769987 A CN 107769987A CN 201610681506 A CN201610681506 A CN 201610681506A CN 107769987 A CN107769987 A CN 107769987A
- Authority
- CN
- China
- Prior art keywords
- instruction
- look
- interval
- lookup
- table look
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000008569 process Effects 0.000 claims abstract description 22
- 238000011156 evaluation Methods 0.000 claims description 13
- 230000001934 delay Effects 0.000 claims description 10
- 238000005259 measurement Methods 0.000 claims description 8
- 230000002123 temporal effect Effects 0.000 abstract 5
- 230000014509 gene expression Effects 0.000 description 16
- 238000011161 development Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 13
- 238000012360 testing method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000013101 initial test Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种报文转发性能评估方法,根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。本发明还公开了一种报文转发性能评估装置。
Description
技术领域
本发明涉及网络处理器转发技术,尤其涉及一种报文转发性能评估方法和装置。
背景技术
随着现代网络对网络处理设备带宽和转发性能的需求越来越高,大吞吐量、大速率的转发设备成为网络时代的必需品;目前,网络处理设备中的网络处理器有可编程和不可编程两种,对于可编程网络处理器,可以向用户提供灵活的业务编程实现,用户可根据自己网络业务需求编写和开发相应的微码程序或指令;由于可编程的网络处理器大规模应用,配套的仿真测试环境必不可少,仿真器用于模拟网络处理器的功能,实现报文转发,使得用户能够在脱离网络处理设备的集成开发环境(IDE,Integrated DevelopmentEnvironment)下完成微码的开发与调试工作。
传统的报文转发性能评估是在网络处理设备进行应用测试中,根据报文的转发速率、流量和带宽等折算出来;如果测试结果不符合预期性能,就需要微码开发人员调整微码指令或表项布局,这样,会导致项目前期的微码规划、开发、调试、测试工作需要重新设计,极大地影响项目正常进程,对于业务研发人员来说也是费时费力。
因此,如何在网络处理器开发前期通过仿真器实现报文转发性能评估,减小网络处理器开发风险,是亟待解决的问题。
发明内容
有鉴于此,本发明实施例期望提供一种报文转发性能评估方法和装置,能在网络处理器开发前期通过仿真器实现报文转发性能评估,减小网络处理器开发风险。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种报文转发性能评估方法,所述方法包括:
根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表类指令的第一查表执行时间信息;
确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
根据所述第一查表执行时间信息和所述第二查表执行时间信息,确定所述报文的转发性能。
上述方案中,所述第一查表执行时间信息包括:对表项进行查表的查表延时;
所述确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息包括:确定所述指令序列中各查表指令在仿真器中运行的查表指令间隔。
上述方案中,所述表项与第一查表执行时间信息对应关系确定的方法包括:
根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息。
上述方案中,所述根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息,包括:
根据网络处理器内核与外部存储器交互时的等待时间,确定所述各表项对应的查表延时。
上述方案中,所述根据所第一查表执行时间信息和所述第二查表执行时间信息,确定所述报文的转发性能,包括:
将网络处理器的内核时钟频率、内核数和内核线程数之积,除以指令序列中各查表指令查表延时的均值和保守查表次数之积,将除得的商确定为所述报文的转发速率;其中,
将预设目标性能下的最大指令数与第一可变因子之积减去微码达不到查表指令间隔性能损失,将相减的差除以理论查表指令间隔之商确定为所述保守查表次数;
所述预设目标性能下的最大指令数为内核时钟频率与内核数的乘积除以预设目标性能之商;
所述微码达不到查表指令间隔性能损失为所述理论查表指令间隔与所述在仿真器中运行的查表指令间隔之差乘以第二可变因子之积;
所述理论查表指令间隔为所述指令序列中各查表指令对应的查表延时与内核时钟频率乘积除以***时钟之商;
所述第一可变因子用于调节网络处理器的实际最大指令数;
所述第二可变因子用于调节所述微码达不到查表指令间隔性能。
上述方案中,所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商。
上述方案中,所述方法还包括:获取所述指令序列的运行信息,提供指令排布指导信息;
所述运行信息包括:指令执行流程、周期、指令总数。
本发明实施例还提供了一种报文转发性能评估装置,所述装置包括:第一确定模块、第二确定模块和运算模块;其中,
所述第一确定模块,用于根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;
所述第二确定模块,用于确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
所述运算模块,用于根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。
上述方案中,所述第一查表执行时间信息包括:对表项进行查表的查表延时;
第二确定模块具体用于:确定所述指令序列中各查表指令在在仿真器中运行的查表指令间隔。
上述方案中,所述装置还包括:第三确定模块,用于根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息。
上述方案中,第三确定模块,具体用于:
根据网络处理器内核与外部存储器交互时的等待时间,确定所述各表项对应的查表延时。
上述方案中,所述运算模块,具体用于:
将网络处理器的内核时钟频率、内核数和内核线程数之积,除以指令序列中各查表指令查表延时的均值和保守查表次数之积,将除得的商确定为所述报文转发速率;其中,
将预设目标性能下的最大指令数与第一可变因子之积减去微码达不到查表指令间隔性能损失,将相减的差除以理论查表指令间隔之商确定为所述保守查表次数;
所述预设目标性能下的最大指令数为:内核时钟频率与内核数的乘积除以预设目标性能之商;
所述微码达不到查表指令间隔性能损失为:所述理论查表指令间隔与所述在仿真器中运行的查表指令间隔之差乘以第二可变因子之积;
所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商;
所述第一可变因子用于调节网络处理器的实际最大指令数;
所述第二可变因子用于调节所述微码达不到查表指令间隔性能。
上述方案中,所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商。
上述方案中,所述装置还包括信息提供模块:获取所述指令序列的运行信息指令,提供指令排布指导信息;
所述运行信息包括:指令执行流程、周期、指令总数。
本发明实施例所提供的报文转发性能评估方法和装置,根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。如此,在网络处理器开发前期,通过在仿真器上进行报文转发,获取指令序列,从而可以确定网络处理器在转发所述报文时的转发速率,进而确定报文转发性能,减小网络处理器开发风险。
附图说明
图1为本发明实施例报文转发性能评估方法的流程示意图;
图2为本发明实施例仿真器实现报文转发性能评估方法的流程示意图;
图3为本发明实施例报文转发性能评估装置的组成结构示意图。
具体实施方式
本发明实施例中,根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。
下面结合实施例对本发明再作进一步详细的说明。
本发明实施例提供的报文转发性能评估方法,如图1所示,所述方法包括:
步骤101:根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;
这里,可以利用仿真器模拟网络处理器的功能,将报文输入仿真器;仿真器具有指令加载、分析、运算等一系列功能,能对进入仿真器的报文进行编辑、转发等处理;仿真器的实现机制、转发机制与相应的网络处理器一致;
仿真器接收报文后,报文经过前级解析确定需要执行的指令序列,内核读入指令序列并开始执行;所述指令序列中指令的指令类型包括:运算指令、搬移指令、跳转指令、查表指令、复制指令等;
这里,当网络处理器处理非查表指令的时候,由于非查表指令所需要的***周期是固定的,不涉及存储器访问等,因此,网络处理器的转发性能是确定的;当网络处理器处理查表指令的时候,由于涉及查表延时,查表指令性能和处理器性能等有关,因此,在估算性能时,可以只需要考虑查表指令引入的不确定因素;
具体的,所述第一查表执行时间信息包括:各表项对应的查表延时;可以在指令序列中确定各查表指令,解析各查表指令具体对应的表项,在数据库存储中获取各查表指令的表项对应的查表延时;分别确定为各查表指令对应的查表延时;并将这些数据存储到内存中;其中,指令与表项的对应关系可以由开发人员在微码开发时预设。
进一步的,所述表项与第一查表执行时间信息对应关系确定的方法包括:根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息;
这里,所述表项是网络处理器实现报文转发需要的网络处理器的相关配置,如网络的路由路径等;不同业务的报文需要不同的配置;通常表项都是在报文进入网络处理器之前,存储到网络处理器中不同的存储单元中;查表延时是指查表指令获取表项所需要的时间;查表指令获取所述表项时需要内核与外部存储设备或内部存储设备进行交互,其中,所述外部存储设备可以是第三代双倍数据率同步动态随机存取存储器(DDR3,Double-Data-Rate Three Synchronous Dynamic Random Access Memory)、三态内容寻址存储器(TCAM,Ternary Content Addressable Memory)等,所述内部存储设备可以是内置随机存取存储器(ERAM,embedded Random Access Memory)等;查表指令共同特性是从发出指令动作到完成该操作,需要内核等待较长的时间;这里的等待时间称为查表延时,且随着查表指令的表项配置、排布的不同,查表延时也不同,而查表延时长短是影响转发性能的决定性因素。各查表指令都具有对应的表项配置;因此,可以预先根据网络处理器初始测试阶段或验证阶段得到的各查表延时数据建模,确定各表项对应的查表延时,并作为理论参考值;前期获得的数据信息越多、越详细、越准确,后面计算出来的性能就越接近实际转发性能。其中,所述查表指令包括:专用查表指令,协处理指令,计数指令等;
在查表延时期间,通常可以用查表指令间隔来掩盖查表延时,使其他指令在查表延时时间段内继续执行;查表延时通常体现为查表指令之间执行的指令数;理论查表指令间隔旨在理论上最优化性能,掩盖查表延时,在查表延时内执行其他指令;这里,可以根据所述各表项对应的查表延时,按照预设计算规则确定所述理论查表指令间隔;这里,可以估算出一个统一的理论查表指令间隔,作为后续性能估算使用;其中,理论查表指令间隔可以是用个查表延时中最大的延时确定出的理论最大查表指令间隔确保所述理论查表指令间隔可以掩盖查表延时;其中,所述影响因子可以是在以往设计中取得的一些经验值,如取1.2等;
无法获取表项的查表延时的情况下,因为有表项存储单元的影响因素、报文流发起查表时机因素,比如查表请求的拥塞程度等等,所以,只能是估算出一个延时,同时也估算出理论查表指令间隔。
实际应用中,可以根据所述各表项以及各表项对应的查表执行时间信息,建立一个数据库,将网络处理器初始测试阶段或验证阶段得到的大量延时数据维护到数据库中;将后续步骤可以从数据库中获取各表项以及各表项对应的查表执行时间信息。
步骤102:确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
这里,所述第二查表执行时间信息包括:在仿真器对指令序列中各查表指令运行时,获取的各查表指令的在运行过程中查表指令间隔。实际应用中,可以由仿真器获取所述各查表指令的在运行过程中查表指令间隔;进一步的,也可以同时获取指令序列中所有指令的运行信息;所述指令的运行信息包括:指令执行流程、指令周期、指令总数;所述指令的运行信息用于指令排布分析;其中,所述指令执行流程是指指令序列中各指令的执行顺序,如在一个查表指令间隔中有数个非查表指令等。
实际应用中,所述的仿真器对加载在指令序列中的指令进行分析,解析该指令的指令类型和指令内容;根据指令类型分析该指令所属指令集,根据指令内容解析得出具体的指令的运行信息,并记录到指令存储内存中;可以依次执行指令序列中的各指令,并依次记录各指令的执行状况,如指令执行周期等,对查表指令可以在数据库中获取该查表指令的查表延时和理论查表指令间隔。
步骤103:根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能;
这里,所述报文转发性能指报文的转发速率;具体的,如果网络处理器仅仅需要处理非查表指令,由于非查表指令所需要的***周期是固定的,因此可以根据网络处理器执行非查表指令所需要的***周期,确定非查表指令的转发速率;比如,假设一个报文转发流程仅由加法运算指令组成,如果加法运算指令只需要一个***周期,那么,网络处理器的内核时钟900MHZ,能完成900M条指令;假设每个报文转发流程需要9条这样的指令,那么,转发性能可以达到100MPPS,即每秒可以处理100M个报文;
如果网络处理器处理的指令中包含有查表指令,针对查表指令引入的不确定因素,可以根据网络处理器的架构、处理频率、指令设计等参数建模,网络处理器的转发速率与Pestimate对应处理器性能参数等的关系可以用表达式(1)表示:
在计算公式中,时间单位可以用指令数来表示;在***里面可以使用时钟周期来表示时间,而执行指令的时间也是以时钟周期为单位。所以,时间长度和指令数可以是等价的;根据表达式(1)可以求得网络处理器的转发速率Pestimate,可以用表达式(2)表示:
其中,Tcore表示网络处理器的内核时钟频率,Mcore表示网络处理器的内核数,Nthread表示网络处理器的内核线程数,Ssrh_num是查表次数,Daverage是查表平均延时,所述查表平均延时为所述指令序列中各查表指令的查表延时的平均值,CLKsys是***时钟周期;
查表次数Ssrh_num可以采用表达式(3)估算:
其中,Iinstr_max是目标性能Qtarget下的最大指令数,目标性能Qtarget可以根据***需求来设定;Lgap是微码达不到查表指令间隔带来的性能损失,即如果需要在查表指令间隔中***20条指令,也就是查表指令间隔是20,而需要***20条非查表指令来掩盖这个查表延时,从而达到内核最佳运行状态;
但是,实际的执行指令序列中,查表指令间隔没有达到20条,那么,内核会出现等待查表延时,也就是性能有损失了;Jinstr_gap是根据指令序列中各查表指令对应的查表延时确定的理论查表指令间隔,这里,可以采用保守查表指令间隔,如取各查表指令对应的查表延时中最大指令延时估算的理论最大查表指令间隔;α是大于0小于1的第一可变因子,用于调节网络处理器的实际最大指令数,Iinstr_max估算公式可以用表达式(4)表示:
Jinstr_gap可以用表达式(5)表示:
其中,Dmax是最大查表延时,是所述指令序列中各查表指令对应的查表延时中最大的查表延时,这里,采用最大查表延时可以用于计算出保守的查表指令间隔;
Lgap可以用表达式(6)表示:
Lgap=(Jinstr_gap-Kinstr_gap)×β (6)
其中,β是大于0小于1的第二可变因子,用于根据以往实验数据或实际情况调整微码达不到查表指令间隔带来的性能损失;Kinstr_gap是指令序列的中查表指令在仿真器中运行时的查表指令间隔;
如此,根据表达式(1)至(6),根据查表指令的查表延时、和/或理论查表指令间隔,估算出了报文转发的速率;微码开发人员可以分析输出的结果,得到业务报文的转发性能,并根据业务报文在特定应用场景中所需性能,进行微码指令或表项的调整。实际应用中,还可以采用其他建模方式来估算出报文的转发速率。
进一步的,根据获取的指令序列的指令执行流程、指令周期、指令总数,以及查表指令的理论查表指令间隔等参数,输出各指令排布指导信息,这里,所述指令排布指导信息,包括各指令的内容、周期、指令在所述指令执行流程位置、查表指令间隔等;用开发人员根据仿真器记录所述指令排布指导信息调整指令的排布。
采用本发明实施例的方法,可以在微码业务开发前期,帮助开发人员在业务开发、调试、测试阶段,预估算出该业务报文在网络处理设备中的转发性能;微码业务开发人员可根据性能预估结果,对微码和表项布局进行调整。业务调试和修改工作控制在项目研发前期,不会暴露到后期实际的网络处理设备应用测试环节,对提高整个项目交付效率大有益处。
下面结合具体示例对本发明产生的积极效果作进一步详细的描述。
本示例通过仿真器实现报文转发性能评估,实现机制是:仿真器对加载的指令集进行分析,解析出查表、跳转等各种指令,通过数据库,获取查表指令的查表延时和理论查表指令间隔,并将指令执行流水、周期、总数、查表延时等信息进行存储,最后根据记录的指令信息和查表延时等,结合性能估算算法,得到该业务报文的转发性能以及微码参考排布信息。如图2所示,通过仿真器实现报文转发性能评估包含以下步骤:
步骤201:开启仿真,用户下载微码指令和表项数据,存储到仿真器内核和表项存储模块中;
步骤202:接收用户报文,报文经过前级解析后进入内核,内核读入指令序列并开始执行;
步骤203:对执行的指令进行分析,解析该指令的类型,根据指令的类型,分析该指令所属指令集。指令类型包括但不限于:运算指令,搬移指令,跳转指令,查表指令,协处理指令,计数指令,复制指令等;
步骤204:提取指令的内容,解析得出具体的指令结构、操作流水、指令执行周期,记录该条指令和执行该条指令所需要的周期并存储到内存中;
步骤205:判断是否是查表指令,查表指令包括但不限于:专用查表指令,协处理指令,计数指令等;如果是查表指令,则进入步骤206,否则,进入步骤207;
步骤206:解析该查表指令具体对应的表项配置信息,在数据库存储中获取该应用表项对应的查表延时和理论查表指令间隔,并将这些数据存储到内存中。执行该条查表指令,进行表项查找,统计计数,循环冗余校验(CRC,Cyclic Redundancy Check)计算等操作;执行步骤208;
步骤207:非查表指令,执行该条指令;
步骤208:取下一条指令继续执行;
步骤209:重复执行步骤203~208,直至该报文全部指令序列执行完毕;
步骤210:上述指令执行完毕,报文出内核,调度到后级发送处理;
步骤211:后级读取内存中存储的指令执行流程、指令周期、指令总数、查表类延时、查表指令理论查表指令间隔等信息送给性能预估;
步骤212:性能预估根据上述,结合性能计算算法,计算出该报文对应的转发性能;
步骤213:分析所有指令获取查表间隔、指令周期等参数,结合存储内存中的理论查表指令间隔,给出微码指令和查表的排布指导信息;
步骤214:将步骤212和步骤213中的结果输出到指定的文件中存储;
步骤215:继续后级流水处理,直至所有转发流程处理完毕。
本发明实施例提供的报文转发性能评估装置,如图3所示,所述装置包括:第一确定模块31、第二确定模块32和运算模块33;其中
所述第一确定模块31,用于根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;
这里,可以利用仿真器模拟网络处理器的功能,将报文输入仿真器;仿真器具有指令加载、分析、运算等一系列功能,能对进入仿真器的报文进行编辑、转发等处理;仿真器的实现机制、转发机制与相应的网络处理器一致;
仿真器接收报文后,报文经过前级解析确定需要执行的指令序列,内核读入指令序列并开始执行;所述指令序列中指令的指令类型包括:运算指令、搬移指令、跳转指令、查表指令、复制指令等;
这里,当网络处理器处理非查表指令的时候,由于非查表指令所需要的***周期是固定的,不涉及存储器访问等,因此,网络处理器的转发性能是确定的;当网络处理器处理查表指令的时候,由于涉及查表延时,查表指令性能和处理器性能等有关,因此,在估算性能时,可以只需要考虑查表指令引入的不确定因素;
具体的,所述第一查表执行时间信息包括:各表项对应的查表延时;可以在指令序列中确定各查表指令,解析各查表指令具体对应的表项,在数据库存储中获取各查表指令的表项对应的查表延时;分别确定为各查表指令对应的查表延时;并将这些数据存储到内存中;其中,指令与表项的对应关系可以由开发人员在微码开发时预设。
进一步的,本发明实施例提供的装置,还包括第三确定模块34,用于根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息;
这里,所述表项是网络处理器实现报文转发需要的网络处理器的相关配置,如网络的路由路径等;不同业务的报文需要不同的配置;通常表项都是在报文进入网络处理器之前,存储到网络处理器中不同的存储单元中;所述第一查表执行时间信息包括:各表项对应的查表延时;查表延时是指查表指令获取表项所需要的时间;查表指令获取所述表项时需要内核与外部存储设备或内部存储设备进行交互,其中,所述外部存储设备可以是DDR3、TCAM等,所述内部存储设备可以是ERAM等;查表指令共同特性是从发出指令动作到完成该操作,需要内核等待较长的时间;这里的等待时间称为查表延时,且随着查表指令的表项配置、排布的不同,查表延时也不同,而查表延时长短是影响转发性能的决定性因素。各查表指令都具有对应的表项配置;因此,可以预先根据网络处理器初始测试阶段或验证阶段得到的各查表延时数据建模,确定各表项对应的查表延时,并作为理论参考值;前期获得的数据信息越多、越详细、越准确,后面计算出来的性能就越接近实际转发性能。其中,所述查表指令包括:专用查表指令,协处理指令,计数指令等;
在查表延时期间,通常可以用查表指令间隔来掩盖查表延时,使其他指令在查表延时时间段内继续执行;查表延时通常体现为查表指令之间执行的指令数;理论查表指令间隔旨在理论上最优化性能,掩盖查表延时,在查表延时内执行其他指令;这里,可以根据所述各表项对应的查表延时,按照预设计算规则确定所述理论查表指令间隔;这里,可以估算出一个统一的理论查表指令间隔,作为后续性能估算使用;其中,理论查表指令间隔可以是用个查表延时中最大的延时确定出的理论最大查表指令间隔确保所述理论查表指令间隔可以掩盖查表延时;其中,所述影响因子可以是在以往设计中取得的一些经验值,如取1.2等;
无法获取表项的查表延时的情况下,因为有表项存储单元的影响因素、报文流发起查表时机因素,比如查表请求的拥塞程度等等,所以,只能是估算出一个延时,同时也估算出理论查表指令间隔。
实际应用中,可以根据所述各表项以及各表项对应的查表执行时间信息,建立一个数据库,将网络处理器初始测试阶段或验证阶段得到的大量延时数据维护到数据库中;将后续步骤可以从数据库中获取各表项以及各表项对应的查表执行时间信息。
所述第二确定模块32,用于确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
这里,所述第二查表执行时间信息包括:在仿真器对指令序列中各查表指令运行时,获取的各查表指令的在运行过程中查表指令间隔;。实际应用中,可以由仿真器获取所述各查表指令的在运行过程中查表指令间隔;
进一步的,所述装置还可以包括信息提供模块35,用于获取指令序列中所有指令的运行信息;所述指令的运行信息包括:指令执行流程、指令周期、指令总数;所述指令的运行信息用于指令排布分析;其中,所述指令执行流程是指指令序列中各指令的执行顺序,如在一个查表指令间隔中有数个非查表指令等。
实际应用中,所述的仿真器对加载在指令序列中的指令进行分析,解析该指令的指令类型和指令内容;根据指令类型分析该指令所属指令集,根据指令内容解析得出具体的指令的运行信息,并记录到指令存储内存中;可以依次执行指令序列中的各指令,并依次记录各指令的执行状况,如指令执行周期等,对查表指令可以在数据库中获取该查表指令的查表延时和理论查表指令间隔。
所述运算模块33,用于根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。
这里,所述报文转发性能指报文的转发速率;具体的,如果网络处理器仅仅需要处理非查表指令,由于非查表指令所需要的***周期是固定的,因此可以根据网络处理器执行非查表指令所需要的***周期,确定非查表指令的转发速率;比如,假设一个报文转发流程仅由加法运算指令组成,如果加法运算指令只需要一个***周期,那么,网络处理器的内核时钟900MHZ,能完成900M条指令;假设每个报文转发流程需要9条这样的指令,那么,转发性能可以达到100MPPS,即每秒可以处理100M个报文;
如果网络处理器处理的指令中包含有查表指令,针对查表指令引入的不确定因素,可以根据网络处理器的架构、处理频率、指令设计等参数建模,网络处理器的转发速率与Pestimate对应处理器性能参数等的关系可以用表达式(1)表示;
在计算公式中,时间单位可以用指令数来表示;在***里面可以使用时钟周期来表示时间,而执行指令的时间也是以时钟周期为单位。所以,时间长度和指令数可以是等价的;根据表达式(1)可以求得网络处理器的转发速率Pestimate,可以用表达式(2)表示;其中,Tcore表示网络处理器的内核时钟频率,Mcore表示网络处理器的内核数,Nthread表示网络处理器的内核线程数,Ssrh_num是查表次数,Daverage是查表平均延时,所述查表平均延时为所述指令序列中各查表指令的查表延时的平均值,CLKsys是***时钟周期;
查表次数Ssrh_num可以采用表达式(3)估算;其中,Iinstr_max是目标性能Qtarget下的最大指令数,目标性能Qtarget可以根据***需求来设定;Lgap是微码达不到查表指令间隔带来的性能损失,即如果需要在查表指令间隔中***20条指令,也就是查表指令间隔是20,而需要***20条非查表指令来掩盖这个查表延时,从而达到内核最佳运行状态;
但是,实际的执行指令序列中,查表指令间隔没有达到20条,那么,内核会出现等待查表延时,也就是性能有损失了;Jinstr_gap是根据指令序列中各查表指令对应的查表延时确定的理论查表指令间隔,这里,可以采用保守查表指令间隔,如取各查表指令对应的查表延时中最大指令延时估算的理论最大查表指令间隔;α是大于0小于1的第一可变因子,用于调节网络处理器的实际最大指令数,Iinstr_max估算公式可以用表达式(4)表示;Jinstr_gap可以用表达式(5)表示;其中,Dmax是最大查表延时,是所述指令序列中各查表指令对应的查表延时中最大的查表延时,这里,采用最大查表延时可以用于计算出保守的查表指令间隔;
Lgap可以用表达式(6)表示;其中,β是大于0小于1的第二可变因子,用于根据以往实验数据或实际情况调整微码达不到查表指令间隔带来的性能损失;Kinstr_gap是指令序列的中查表指令在仿真器中运行时的查表指令间隔;
如此,根据表达式(1)至(6),根据查表指令的查表延时、和/或理论查表指令间隔,估算出了报文转发的速率;微码开发人员可以分析输出的结果,得到业务报文的转发性能,并根据业务报文在特定应用场景中所需性能,进行微码指令或表项的调整。实际应用中,还可以采用其他建模方式来估算出报文的转发速率。
进一步的,所述信息提供模块35根据获取的指令序列的指令执行流程、指令周期、指令总数,以及查表指令的理论查表指令间隔等参数,输出各指令排布指导信息,这里,所述指令排布指导信息,包括各指令的内容、周期、指令在所述指令执行流程位置、查表指令间隔等;用开发人员根据仿真器记录所述指令排布指导信息调整指令的排布。
采用本发明实施例的方法,可以在微码业务开发前期,帮助开发人员在业务开发、调试、测试阶段,预估算出该业务报文在网络处理设备中的转发性能;微码业务开发人员可根据性能预估结果,对微码和表项布局进行调整。业务调试和修改工作控制在项目研发前期,不会暴露到后期实际的网络处理设备应用测试环节,对提高整个项目交付效率大有益处。
在实际应用中,第一确定模块31、第二确定模块32、运算模块33、第三确定模块34和信息提供模块35可以由仿真***的中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)等实现。
以上所述,仅为本发明的最佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种报文转发性能评估方法,其特征在于,所述方法包括:
根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表类指令的第一查表执行时间信息;
确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
根据所述第一查表执行时间信息和所述第二查表执行时间信息,确定所述报文的转发性能。
2.根据权利要求1所述的方法,其特征在于,所述第一查表执行时间信息包括:对表项进行查表的查表延时;
所述确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息包括:确定所述指令序列中各查表指令在仿真器中运行的查表指令间隔。
3.根据权利要求1所述的方法,其特征在于,所述表项与第一查表执行时间信息对应关系确定的方法包括:
根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息。
4.根据权利要求3所述的方法,其特征在于,所述根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息,包括:
根据网络处理器内核与外部存储器交互时的等待时间,确定所述各表项对应的查表延时。
5.根据权利要求2所述的方法,其特征在于,所述根据所第一查表执行时间信息和所述第二查表执行时间信息,确定所述报文的转发性能,包括:
将网络处理器的内核时钟频率、内核数和内核线程数之积,除以指令序列中各查表指令查表延时的均值和保守查表次数之积,将除得的商确定为所述报文的转发速率;其中,
将预设目标性能下的最大指令数与第一可变因子之积减去微码达不到查表指令间隔性能损失,将相减的差除以理论查表指令间隔之商确定为所述保守查表次数;
所述预设目标性能下的最大指令数为内核时钟频率与内核数的乘积除以预设目标性能之商;
所述微码达不到查表指令间隔性能损失为所述理论查表指令间隔与所述在仿真器中运行的查表指令间隔之差乘以第二可变因子之积;
所述理论查表指令间隔为所述指令序列中各查表指令对应的查表延时与内核时钟频率乘积除以***时钟之商;
所述第一可变因子用于调节网络处理器的实际最大指令数;
所述第二可变因子用于调节所述微码达不到查表指令间隔性能。
6.根据权利要5所述的方法,其特征在于,所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商。
7.根据权利要1所述的方法,其特征在于,所述方法还包括:获取所述指令序列的运行信息,提供指令排布指导信息;
所述运行信息包括:指令执行流程、周期、指令总数。
8.一种报文转发性能评估装置,其特征在于,所述装置包括:第一确定模块、第二确定模块和运算模块;其中,
所述第一确定模块,用于根据转发的报文,确定转发报文的指令序列,并根据所述指令序列中各查表指令对应的表项及所述表项与第一查表执行时间信息的对应关系,确定所述指令序列中各查表指令的第一查表执行时间信息;
所述第二确定模块,用于确定所述指令序列中各查表指令在运行过程中的第二查表执行时间信息;
所述运算模块,用于根据所述指令序列中各查表指令对应的第一查表执行时间信息和第二查表执行时间信息,确定报文转发性能。
9.根据权利要求8所述的装置,其特征在于,所述第一查表执行时间信息包括:对表项进行查表的查表延时;
第二确定模块具体用于:确定所述指令序列中各查表指令在在仿真器中运行的查表指令间隔。
10.根据权利要求8所述的装置,其特征在于,所述装置还包括:第三确定模块,用于根据网络处理器实际测量数据,确定各表项对应的第一查表执行时间信息。
11.根据权利要求10所述的装置,其特征在于,第三确定模块,具体用于:
根据网络处理器内核与外部存储器交互时的等待时间,确定所述各表项对应的查表延时。
12.根据权利要求9所述的装置,其特征在于,所述运算模块,具体用于:
将网络处理器的内核时钟频率、内核数和内核线程数之积,除以指令序列中各查表指令查表延时的均值和保守查表次数之积,将除得的商确定为所述报文转发速率;其中,
将预设目标性能下的最大指令数与第一可变因子之积减去微码达不到查表指令间隔性能损失,将相减的差除以理论查表指令间隔之商确定为所述保守查表次数;
所述预设目标性能下的最大指令数为:内核时钟频率与内核数的乘积除以预设目标性能之商;
所述微码达不到查表指令间隔性能损失为:所述理论查表指令间隔与所述在仿真器中运行的查表指令间隔之差乘以第二可变因子之积;
所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商;
所述第一可变因子用于调节网络处理器的实际最大指令数;
所述第二可变因子用于调节所述微码达不到查表指令间隔性能。
13.根据权利要12所述的装置,其特征在于,所述理论查表指令间隔包括:理论最大查表指令间隔;
所述理论最大查表指令间隔为:所述指令序列中各查表指令对应的查表延时中最大的查表延时与内核时钟频率乘积除以***时钟之商。
14.根据权利要8所述的装置,其特征在于,所述装置还包括信息提供模块:获取所述指令序列的运行信息指令,提供指令排布指导信息;
所述运行信息包括:指令执行流程、周期、指令总数。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681506.2A CN107769987B (zh) | 2016-08-16 | 2016-08-16 | 一种报文转发性能评估方法和装置 |
PCT/CN2017/091780 WO2018032897A1 (zh) | 2016-08-16 | 2017-07-05 | 报文转发性能评估方法、装置和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610681506.2A CN107769987B (zh) | 2016-08-16 | 2016-08-16 | 一种报文转发性能评估方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107769987A true CN107769987A (zh) | 2018-03-06 |
CN107769987B CN107769987B (zh) | 2021-05-11 |
Family
ID=61196437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610681506.2A Active CN107769987B (zh) | 2016-08-16 | 2016-08-16 | 一种报文转发性能评估方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107769987B (zh) |
WO (1) | WO2018032897A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287158B (zh) * | 2019-05-05 | 2023-05-26 | 平安科技(深圳)有限公司 | 监测分布式文件***io时延的方法、装置及存储介质 |
CN112350844B (zh) * | 2019-08-09 | 2024-03-29 | 华为技术有限公司 | 用于数据传输的方法和装置 |
CN113835941A (zh) * | 2021-09-06 | 2021-12-24 | 锐捷网络股份有限公司 | 基于可编程芯片的用例测试方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090252055A1 (en) * | 2008-04-03 | 2009-10-08 | Alaxala Networks Corporation | Packet forwarding device |
CN103560928A (zh) * | 2013-10-22 | 2014-02-05 | 东软集团股份有限公司 | 测试网络设备转发性能的方法及*** |
CN105227390A (zh) * | 2014-06-27 | 2016-01-06 | 中兴通讯股份有限公司 | 快速测试cpu转发性能的方法及装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5961971B2 (ja) * | 2011-10-12 | 2016-08-03 | 富士通株式会社 | シミュレーション装置,方法,およびプログラム |
CN102624548B (zh) * | 2012-02-29 | 2016-09-07 | 大连梯耐德网络技术有限公司 | 一种双向配置的网络行为监控方法 |
EP2898436A1 (en) * | 2012-09-18 | 2015-07-29 | Siemens Aktiengesellschaft | Multiple programmable logic controller simulator |
CN103207821B (zh) * | 2013-05-03 | 2017-04-05 | 北京百度网讯科技有限公司 | Cpu性能评估方法与装置 |
CN104731557A (zh) * | 2014-12-10 | 2015-06-24 | 康烁 | 指令执行的控制方法及装置 |
-
2016
- 2016-08-16 CN CN201610681506.2A patent/CN107769987B/zh active Active
-
2017
- 2017-07-05 WO PCT/CN2017/091780 patent/WO2018032897A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090252055A1 (en) * | 2008-04-03 | 2009-10-08 | Alaxala Networks Corporation | Packet forwarding device |
CN103560928A (zh) * | 2013-10-22 | 2014-02-05 | 东软集团股份有限公司 | 测试网络设备转发性能的方法及*** |
CN105227390A (zh) * | 2014-06-27 | 2016-01-06 | 中兴通讯股份有限公司 | 快速测试cpu转发性能的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107769987B (zh) | 2021-05-11 |
WO2018032897A1 (zh) | 2018-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH11232147A (ja) | パワーエスティメーション装置、パワーエスティメーション方法、及びパワーエスティメーションプログラムを記録した機械読み取り可能な記録媒体 | |
TWI507990B (zh) | 多核心指令集模擬之高平行化同步方法 | |
CN108885579B (zh) | 用于根据核追踪进行数据挖掘的方法和设备 | |
US10606970B2 (en) | Selection of corners and/or margins using statistical static timing analysis of an integrated circuit | |
CN107769987B (zh) | 一种报文转发性能评估方法和装置 | |
Huybrechts et al. | A new hybrid approach on WCET analysis for real-time systems using machine learning | |
Burns et al. | Wcet analysis of superscalar processors using simulation with coloured petri nets | |
US7110934B2 (en) | Analysis of the performance of a portion of a data processing system | |
CN116149917A (zh) | 评估处理器性能的方法及装置、计算设备、可读存储介质 | |
JP6723483B2 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
Wolf et al. | Execution cost interval refinement in static software analysis | |
US8826075B2 (en) | Solving constraint satisfaction problems having loosely interconnected sub-problems | |
US8341577B1 (en) | Parallel circuit simulation with partitions | |
Anuradha et al. | Efficient workload characterization technique for heterogeneous processors | |
JP2010286892A (ja) | 処理時間見積り装置および処理時間見積りプログラム | |
US11182265B2 (en) | Method and apparatus for test generation | |
Uddin et al. | Signature-based high-level simulation of microthreaded many-core architectures | |
CN114021733A (zh) | 模型训练优化方法、装置、计算机设备及存储介质 | |
TW201232408A (en) | Cycle-count-accurate (CCA) processor modeling for system-level simulation | |
US10565335B2 (en) | Event-driven design simulation | |
Blume et al. | Hybrid functional and instruction level power modeling for embedded processors | |
Gregorek et al. | A transaction-level framework for design-space exploration of hardware-enhanced operating systems | |
Rodrigo et al. | Accelerating complex event processing through gpus | |
CN117313595B (zh) | 用于功能验证的随机指令生成方法、设备及*** | |
US11537394B2 (en) | Systems and methods for analyzing computational architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |