CN107769987A - 一种报文转发性能评估方法和装置 - Google Patents

一种报文转发性能评估方法和装置 Download PDF

Info

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
look
instruction
command sequence
temporal information
interval
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
Application number
CN201610681506.2A
Other languages
English (en)
Other versions
CN107769987B (zh
Inventor
潘静
程丽华
王春雷
石金锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanechips Technology Co Ltd
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
Shenzhen ZTE Microelectronics Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen ZTE Microelectronics Technology Co Ltd filed Critical Shenzhen ZTE Microelectronics Technology Co Ltd
Priority to CN201610681506.2A priority Critical patent/CN107769987B/zh
Priority to PCT/CN2017/091780 priority patent/WO2018032897A1/zh
Publication of CN107769987A publication Critical patent/CN107769987A/zh
Application granted granted Critical
Publication of CN107769987B publication Critical patent/CN107769987B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays

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所述的装置,其特征在于,所述装置还包括信息提供模块:获取所述指令序列的运行信息指令,提供指令排布指导信息;
所述运行信息包括:指令执行流程、周期、指令总数。
CN201610681506.2A 2016-08-16 2016-08-16 一种报文转发性能评估方法和装置 Active CN107769987B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 康烁 指令执行的控制方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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
WO2018032897A1 (zh) 2018-02-22
CN107769987B (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
WO2020207214A1 (zh) 一种数据处理方法、装置、电子设备及存储介质
Addanki et al. Placeto: Learning generalizable device placement algorithms for distributed machine learning
Alipourfard et al. {CherryPick}: Adaptively unearthing the best cloud configurations for big data analytics
Cheung et al. A large-scale spiking neural network accelerator for FPGA systems
CN105183650B (zh) 基于llvm的科学计算程序自动性能预测方法
CN109313567A (zh) 虚拟化精确的基于事件的采样
Qiu et al. Automated smartnic offloading insights for network functions
CN103365727A (zh) 一种云计算环境中的主机负载预测方法
CN107769987A (zh) 一种报文转发性能评估方法和装置
CN115150471B (zh) 数据处理方法、装置、设备、存储介质及程序产品
CN110263328A (zh) 一种学科能力类型标注方法、装置、存储介质及终端设备
CN115951989B (zh) 一种基于严格优先级的协同流量调度数值模拟方法与系统
CN105094949A (zh) 一种基于指令计算模型与反馈补偿的模拟方法与系统
CN106649067B (zh) 一种性能和能耗预测方法及装置
Casale et al. Modelling exogenous variability in cloud deployments
CN110389840A (zh) 负载消耗预警方法、装置、计算机设备和存储介质
Butkova et al. A Modest approach to modelling and checking Markov automata
CN111898766B (zh) 基于自动机器学习的以太坊燃料限制预测方法及装置
CN108173948A (zh) 一种分布式试验数据实时交换方法
Joseph et al. A cycle-accurate network-on-chip simulator with support for abstract task graph modeling
Reineke et al. Architecture-parametric timing analysis
Paul et al. On label languages of homogeneous variant of SNPSSP (HSNPSSP)
CN104991884B (zh) 异构多核SoC的体系结构设计方法
Rouberte et al. DF‐DTM: Dynamic Task Memoization and reuse in dataflow
Madougou et al. Using colored petri nets for GPGPU performance modeling

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