本发明涉及计算机通信,具体涉及一种压缩推送报文的方法、系统及介质。
背景技术:
1、在通信soc系统中,报文头解析和处理能力决定了系统报文处理能力,报文头在系统内的传输往往又受限于系统总线带宽,提升报文头推送能力对系统性能有重要影响。
技术实现思路
1、本发明所要解决的技术问题是:传统推送方法在推送过程的填充域传输了大量无效数据,浪费系统总线带宽,降低总线带宽损耗;本发明目的在于提供一种压缩推送报文的方法、系统及介质,在传统推送方法的基础上进行方法上的改进,通过优化推送数据结构,对推送的数据内容进行压缩,在满足cpu易用性的同时,有效降低总线带宽损耗,提升了系统在各应用场景的处理能力。
2、本发明通过下述技术方案实现:
3、本实施例提供一种压缩推送报文的方法,包括:
4、步骤一:获取待推送报文;
5、步骤二:对待推送报文进行预处理;
6、步骤三:对预处理后的待推送报文进行压缩处理:将待推送报文中的冗余报文头压缩;
7、步骤四:将压缩处理后的待推送报文通过总线推送给cpu。
8、本方案工作原理:传统推送方法在推送过程的填充域传输了大量无效数据,浪费系统总线带宽,降低总线带宽损耗;本发明目的在于提供一种压缩推送报文的方法、系统及介质,在传统推送方法的基础上进行方法上的改进,通过优化推送数据结构,对推送的数据内容进行压缩,在满足cpu易用性的同时,有效降低总线带宽损耗,提升了系统在各应用场景的处理能力。
9、进一步优化方案为,所述对待推送报文进行预处理,包括方法:从待推送报文提取出元数据,将待推送报文划分出报文头数据和元数据。
10、进一步优化方案为,所述对预处理后的待推送报文进行压缩处理,包括方法:
11、获取待推送报文的报文头数据长度;
12、按照总线位宽配置总线周期,以总线周期的长度作为推送长度填入元数据,在充元数据的总线周期内空余位置填入报文头数据长度;
13、以总线周期的长度作为推送长度填充报文头数据。
14、进一步优化方案为,所述以总线周期的长度作为推送长度填充报文头数据,包括方法:
15、判断报文头数据长度与推送长度:若报文头数据长度大于推送长度,则按照推送长度将报文头数据截取成多个总线周期进行填充后依次推送;若报文头数据长度小于推送长度,以总线周期的长度作为推送长度填入报文头数据,并将当前总线周期填充满后依次推送。
16、进一步优化方案为,对于聚合报文,所述对预处理后的待推送报文进行压缩处理,包括方法:
17、对于聚合报文中的每个报文:先按照总线位宽配置总线周期,以总线周期的长度作为推送长度填入元数据,在充元数据的总线周期内空余位置填入报文头数据长度;以总线周期的长度作为推送长度填充报文头数据;
18、所述聚合报文包括包含多个同一类型的报文。
19、以太网报文数据最小长度为64byte,最大长度为15.5kb,当报文数据不小于224byte时,按照224byte进行报文头截取,当报文数据小于224byte时,为简化cpu处理,需要对推送数据进行填充,推送的报文头长度仍未224byte,例如报文数据长度为128b时,推送格式如图3所示;对于聚合报文推送,同一类型的报文数据可使用聚合报文推送,减少cpu处理压力,如相同五元组报文,可聚合多个报文一次性推送,不同长度报文按照相同长度推送,方便cpu进行报文定界。如图4所示,3个报文数据以聚合方式推送,第一个报文数据长128b,第二个报文数据长64b,第三个报文数据长160b,3个报文数据的聚合推送共占用24个总线周期。
20、聚合报文头压缩与单报文压缩类似,在每个报文的元数据域填充实际报文头长度,每个报文头按总线边界填充,如图6所示,第一个报文长128b,第二个报文长64b,第三个报文长160b,压缩后,实际聚合报文推送所占用总线周期由24个减少至14个。
21、进一步优化方案为,对于聚合报文,若元数据的总线周期内能存放多个报文头数据长度,且聚合报文的多个同一类型的报文的元数据相同时,则只填入一组元数据。
22、若元数据域能存放多个报文的实际长度,且报文提取元数据相同时,聚合报文推送可进一步进行压缩,即元数据的合并,仍以上述3个报文聚合推送为例,将3个报文的长度填充至同一个报文头中,则聚合报文推送变为1个元数据和3个报文头,所占用总线周期由14个变为12个。
23、进一步优化方案为,所述方法应用于通信soc系统中。
24、本方案还提供一种压缩推送报文的系统,用于实现上述的一种压缩推送报文的方法,包括:
25、采集模块,用于获取待推送报文;
26、预处理模块,用于对待推送报文进行预处理;
27、压缩模块,用于对预处理后的待推送报文进行压缩处理:将待推送报文中的冗余报文头压缩;
28、推送模块,用于将压缩处理后的待推送报文通过总线推送给cpu。
29、进一步优化方案为,所述推送模块与cpu之间通过总线架构通信。
30、本方案还提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行可实现如上所述的一种压缩推送报文的方法。
31、本发明与现有技术相比,具有如下的优点和有益效果:
32、本发明提供的一种压缩推送报文的方法、系统及介质;在传统推送方法的基础上进行方法上的改进,通过优化推送数据结构,对推送的数据内容进行压缩,在满足cpu易用性的同时,有效降低总线带宽损耗,提升了系统在各应用场景的处理能力;本方案通过压缩冗余报文头的方式,提升总线利用率,提高了系统报文处理能力。
1.一种压缩推送报文的方法,其特征在于,包括:
2.根据权利要求1所述的一种压缩推送报文的方法,其特征在于,所述对待推送报文进行预处理,包括方法:从待推送报文提取出元数据,将待推送报文划分出报文头数据和元数据。
3.根据权利要求2所述的一种压缩推送报文的方法,其特征在于,所述对预处理后的待推送报文进行压缩处理,包括方法:
4.根据权利要求3所述的一种压缩推送报文的方法,其特征在于,所述以总线周期的长度作为推送长度填充报文头数据,包括方法:
5.根据权利要求4所述的一种压缩推送报文的方法,其特征在于,对于聚合报文,所述对预处理后的待推送报文进行压缩处理,包括方法:
6.根据权利要求5所述的一种压缩推送报文的方法,其特征在于,对于聚合报文,若元数据的总线周期内能存放多个报文头数据长度,且聚合报文的多个同一类型的报文的元数据相同时,则只填入一组元数据。
7.根据权利要求1所述的一种压缩推送报文的方法,其特征在于,所述方法应用于通信soc系统中。
8.一种压缩推送报文的系统,其特征在于,用于实现权利要求1-7任意一项所述的一种压缩推送报文的方法,包括:
9.根据权利要求8所述的一种压缩推送报文的系统,其特征在于,所述推送模块与cpu之间通过总线架构通信。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行可实现如权利要求1-7中任意一项所述的一种压缩推送报文的方法。