本技术涉及通信,特别是涉及一种指令处理方法、装置、转发芯片及介质。
背景技术:
1、对于交换机和路由器的转发芯片而言,转发芯片接收到报文后,基于报文头对报文进行处理及转发是转发芯片的关键任务。目前,转发芯片中具有专门的处理器核,例如第五代精简指令集(reduced instruction set computer-five,rsic-v)核,如图1所示,转发芯片接收到报文后,为报文分配存储空间,将报文存入该存储空间,然后处理器中的处理器核解析该报文中的报文头,并且处理器核可通过预先配置的指令集确定该报文头中的字段匹配的处理指令,若处理指令包括表项查找指令,则查找表项存储空间中的转发表,从而得到报文的下一跳及出接口,进而基于该下一跳及出接口更新报文头中的字段,并输出更新后的报文头,以便于转发芯片基于更新后的报文头向下一跳转发报文。
2、然而,由于报文的类型较多,转发功能的复杂度、转发表项的种类也在增多,导致目前通过处理器核无法实现高性能高效率的报文转发。
技术实现思路
1、本技术实施例的目的在于提供一种指令处理方法、装置、转发芯片及介质,以实现高性能高效率的报文转发。具体技术方案如下:
2、第一方面,本技术实施例提供一种指令处理方法,应用于转发芯片中的混合指令加速处理装置,所述方法包括:
3、获取报文的报文头匹配的多个指令;
4、识别所述多个指令包括的复杂功能指令和大数据量处理指令;
5、将所述复杂功能指令和所述大数据量处理指令中需要拆分的指令分别拆分为多个执行步骤;
6、以流水线pipeline方式执行未拆分的指令和所述多个执行步骤;
7、当未拆分的指令和所述多个执行步骤均执行完成后,通知所述转发芯片的处理器核转发所述报文。
8、在一种可能的实现方式中,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令和未被拆分的大数据量处理指令;在所述识别所述多个指令包括的复杂功能指令和大数据量处理指令之后,所述方法还包括:
9、通知所述处理器核执行所述简单指令。
10、在一种可能的实现方式中,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令、未被拆分的大数据量处理指令以及所述简单指令。
11、在一种可能的实现方式中,所述多个指令均包括指令类型编码;所述识别所述多个指令包括的复杂功能指令和大数据量处理指令,包括:
12、将所述多个指令中,指令类型编码属于第一预设编码集合中的指令确定为所述复杂功能指令,所述第一预设编码集合包括预先配置的复杂功能指令包括的各指令类型编码;
13、将所述多个指令中,指令类型编码属于第二预设编码集合中的指令确定为所述大数据量处理指令,所述第二预设编码集合包括预先配置的大数据量处理指令包括的各指令类型编码。
14、在一种可能的实现方式中,所述将所述复杂功能指令和所述大数据量处理指令中需要拆分的指令分别拆分为多个执行步骤,包括:
15、将所述复杂功能指令和所述大数据量处理指令缓存于资源缓存区;
16、依次轮询所述资源缓存区中的每条指令,判断轮询到的指令是否需要进行拆分;
17、若是,则将轮询到的指令拆分为多个执行步骤。
18、在一种可能的实现方式中,所述多个指令均包括指令类型编码;所述判断轮询到的指令是否需要进行拆分,包括:
19、判断轮询到的指令包括的指令类型编码是否属于待拆分指令编码集合,若是,则确定需要对轮询到的指令进行拆分;若否,则确定不需要对轮询到的指令进行拆分;或者,
20、判断轮询到的指令所对应的待数据处理量是否大于等于预设阈值或者轮询到的指令包括的算法逻辑步骤数量是否大于等于预设数量,若是,则确定需要对轮询到的指令进行拆分;若否,则确定不需要对轮询到的指令进行拆分。
21、在一种可能的实现方式中,所述将轮询到的指令拆分为多个执行步骤,包括:
22、若轮询到的指令为大数据量处理指令,则获取所述轮询到的指令对应的目标待处理数据量;按照所述目标待处理数据量和预设单次处理数据量,将所述轮询到的指令拆分为多个执行步骤,每个执行步骤对应的数据量为所述预设单次处理数据量;
23、若轮询到的指令为复杂功能指令,则按照所述轮询到的指令的算法逻辑步骤将所述轮询到的指令拆分为多个执行步骤。
24、在一种可能的实现方式中,在所述以流水线pipeline方式执行未拆分的指令和所述多个执行步骤之后,所述方法还包括:
25、每执行完一条未拆分的指令,将执行完的未拆分的指令占用的缓存资源释放;
26、每执行完所述多个执行步骤包括的一个执行步骤,将执行完的执行步骤占用的缓存资源释放。
27、第二方面,本技术实施例提供一种指令处理装置,应用于转发芯片中的混合指令加速处理装置,所述装置包括:
28、获取模块,用于获取报文的报文头匹配的多个指令;
29、识别模块,用于识别所述多个指令包括的复杂功能指令和大数据量处理指令;
30、拆分模块,用于将所述复杂功能指令和所述大数据量处理指令中需要拆分的指令分别拆分为多个执行步骤;
31、执行模块,用于以流水线pipeline方式执行未拆分的指令和所述多个执行步骤;
32、通知模块,用于当未拆分的指令和所述多个执行步骤均执行完成后,通知所述转发芯片的处理器核转发所述报文。
33、在一种可能的实现方式中,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令和未被拆分的大数据量处理指令;所述装置还包括:
34、通知模块,用于通知所述处理器核执行所述简单指令。
35、在一种可能的实现方式中,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令、未被拆分的大数据量处理指令以及所述简单指令。
36、在一种可能的实现方式中,所述多个指令均包括指令类型编码;所述识别模块,具体用于:
37、将所述多个指令中,指令类型编码属于第一预设编码集合中的指令确定为所述复杂功能指令,所述第一预设编码集合包括预先配置的复杂功能指令包括的各指令类型编码;
38、将所述多个指令中,指令类型编码属于第二预设编码集合中的指令确定为所述大数据量处理指令,所述第二预设编码集合包括预先配置的大数据量处理指令包括的各指令类型编码。
39、在一种可能的实现方式中,所述拆分模块,具体用于:
40、将所述复杂功能指令和所述大数据量处理指令缓存于资源缓存区;
41、依次轮询所述资源缓存区中的每条指令,判断轮询到的指令是否需要进行拆分;
42、若是,则将轮询到的指令拆分为多个执行步骤。
43、在一种可能的实现方式中,所述多个指令均包括指令类型编码;所述拆分模块,具体用于:
44、判断轮询到的指令包括的指令类型编码是否属于待拆分指令编码集合,若是,则确定需要对轮询到的指令进行拆分;若否,则确定不需要对轮询到的指令进行拆分;或者,
45、判断轮询到的指令所对应的待数据处理量是否大于等于预设阈值或者轮询到的指令包括的算法逻辑步骤数量是否大于等于预设数量,若是,则确定需要对轮询到的指令进行拆分;若否,则确定不需要对轮询到的指令进行拆分。
46、在一种可能的实现方式中,所述拆分模块,具体用于:
47、若轮询到的指令为大数据量处理指令,则获取所述轮询到的指令对应的目标待处理数据量;按照所述目标待处理数据量和预设单次处理数据量,将所述轮询到的指令拆分为多个执行步骤,每个执行步骤对应的数据量为所述预设单次处理数据量;
48、若轮询到的指令为复杂功能指令,则按照所述轮询到的指令的算法逻辑步骤将所述轮询到的指令拆分为多个执行步骤。
49、在一种可能的实现方式中,所述装置还包括:
50、资源释放模块,用于:
51、每执行完一条未拆分的指令,将执行完的未拆分的指令占用的缓存资源释放;
52、每执行完所述多个执行步骤包括的一个执行步骤,将执行完的执行步骤占用的缓存资源释放。
53、第三方面,本技术实施例提供一种转发芯片,包括处理器核和混合指令加速处理装置,所述混合指令加速处理装置用于实现上述第一方面所述的方法。
54、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
55、第五方面,本技术实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。
56、采用上述技术方案,可以由转发芯片中的混合指令加速装置获取报文头匹配的多个指令,并将其中的复杂功能指令和大数据量处理指令中需要拆分的指令分别拆分为多个执行步骤,进而以流水线pipeline方式执行未拆分的指令和多个执行步骤,通相比于相关技术中由处理器核串行依次执行每个指令,本技术实施例以流水线的方式执行未拆分的指令和多个执行步骤,在均执行完成后,通知转发芯片的处理器核转发报文,能够减少等待时间,提升指令执行效率,从而使得一个报文对应的多个指令的整体执行效率提升,进而提升报文的转发效率。
57、当然,实施本技术的任一产品或方法并不一定需要同时达到以上所述的所有优点。
1.一种指令处理方法,其特征在于,应用于转发芯片中的混合指令加速处理装置,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令和未被拆分的大数据量处理指令;在所述识别所述多个指令包括的复杂功能指令和大数据量处理指令之后,所述方法还包括:
3.根据权利要求1所述的方法,其特征在于,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令、未被拆分的大数据量处理指令以及所述简单指令。
4.根据权利要求1所述的方法,其特征在于,所述多个指令均包括指令类型编码;所述识别所述多个指令包括的复杂功能指令和大数据量处理指令,包括:
5.根据权利要求1或2所述的方法,其特征在于,所述将所述复杂功能指令和所述大数据量处理指令中需要拆分的指令分别拆分为多个执行步骤,包括:
6.根据权利要求5所述的方法,其特征在于,所述多个指令均包括指令类型编码;所述判断轮询到的指令是否需要进行拆分,包括:
7.根据权利要求5或6所述的方法,其特征在于,所述将轮询到的指令拆分为多个执行步骤,包括:
8.根据权利要求5所述的方法,其特征在于,在所述以流水线pipeline方式执行未拆分的指令和所述多个执行步骤之后,所述方法还包括:
9.一种指令处理装置,其特征在于,应用于转发芯片中的混合指令加速处理装置,所述装置包括:
10.根据权利要求9所述的装置,其特征在于,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令和未被拆分的大数据量处理指令;所述装置还包括:
11.根据权利要求9所述的装置,其特征在于,所述多个指令中除所述复杂功能指令和所述大数据量处理指令之外的指令为简单指令,所述未拆分的指令包括未被拆分的复杂功能指令、未被拆分的大数据量处理指令以及所述简单指令。
12.根据权利要求9所述的装置,其特征在于,所述多个指令均包括指令类型编码;所述识别模块,具体用于:
13.根据权利要求9或10所述的装置,其特征在于,所述拆分模块,具体用于:
14.根据权利要求13所述的装置,其特征在于,所述多个指令均包括指令类型编码;所述拆分模块,具体用于:
15.根据权利要求13或14所述的装置,其特征在于,所述拆分模块,具体用于:
16.根据权利要求13所述的装置,其特征在于,所述装置还包括:
17.一种转发芯片,其特征在于,包括处理器核和混合指令加速处理装置,所述混合指令加速处理装置用于实现权利要求1-8任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8任一项所述的方法。
