[发明专利]一种基于飞腾平台的网络checksum算法优化方法有效
申请号: | 202011420425.X | 申请日: | 2020-12-08 |
公开(公告)号: | CN112612518B | 公开(公告)日: | 2022-04-01 |
发明(设计)人: | 胡海;刘正元;刘云;肖林逵;黄锦慧;李佑鸿;彭灿;孙立明;张铎;李唯实;曾驰 | 申请(专利权)人: | 麒麟软件有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F9/32;H04L41/0896 |
代理公司: | 天津诺德知识产权代理事务所(特殊普通合伙) 12213 | 代理人: | 栾志超 |
地址: | 300450 天津市滨海新区*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 飞腾 平台 网络 checksum 算法 优化 方法 | ||
本发明公开了一种基于飞腾平台的网络checksum算法优化方法,其实现过程为:首先装载128bit数据到NEON 128位寄存器中,以减少循环次数;然后采用NEON向量成对相加指令,将NEON 128位寄存器中数据划分为8个16bit数据进行成对相加,而当数据流处理到一定长度时则切换到arm64汇编来处理;然后再进行64bit转16bit算法操作。本发明的一种基于飞腾平台的网络checksum算法优化方法与现有技术相比,有效降低了网络UDP接收数据时checksum算法所带来的延时,从而达到提高UDP包数据传输效率的目地,具有自主可控性、实现方式的独创性、实现效果明显等优点。
技术领域
本发明属于通信及计算机技术领域,具体涉及一种基于飞腾平台的网络checksum算法优化方法。
背景技术
国产飞腾系列处理器是基于ARM64体系结构,全面兼容ARMV8指令集,内部实现了NEON拓展指令。这种拓展指令SIMD部分弥补了飞腾处理器在CPU频率方面存在的弱势,可提高数据密集型应用内存访问和数据计算的速度。其中,常见的数据密集型应用包括有图形计算、娱乐影音、数据校验等。
以太网是当今现有局域网采用的最通用的通信协议标准,在传输层有多种协议可选,其中UDP协议因为结构精简、传输开销小而在局域网上应用非常广泛。UDP协议是一个简单的面向数据报的传输层协议,提供的是非面向连接的、不可靠的数据流传输。UDP协议是在以太网的数据包中的数据段,UDP封装包头中包括源端口、目的端口、UDP长度以及UDP的checksum,对于16bit UDP的checksum校验和计算会包括UDP的checksum域后面的所有数据负载。
据悉,现有的UDP的checksum校验和计算方法是先将UDP伪包头、UDP包头和数据段划分为16bit的十六进制数,再对数据进行分组循环相加,产生的进位加在本次运算的个位上,然后对逐次循环相加的结果按bit位取反,将计算得到的结果回填到UDP的checksum校验和。因而,想要计算出UDP的checksum校验和,需要将数据流中的所有16bit数进行逐步的循环相加,而随着DUP包中所需要传输数据数量的增加,逐步循环相加的次数也会相应随着增加,这极大降低了UDP包数据传输的效率。
中国发明专利“UDP校验和的计算方法”(申请号CN:201210087407.3),该发明提出了一种UDP校验和的计算方法,其具体实现是:首先将UDP校验和设置为常量;然后按照传统的UDP校验和计算方法进行计算;最后,在UDP数据部分的尾部添加所获得的结果。该方法采用计算方法,简化了UDP数据包的打包流程,使所有数据只读一次就可以立即打包发送,但是并没有采取有效方法减少计算checksum校验和时数据流逐步相加的次数。
中国发明专利“一种校验和的计算方法及网络处理器”(申请号CN201510536324.1),该发明提出了一种校验和的计算方法及网络处理器,其具体实现是:首先多线程微引擎获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;然后所述计算单元进行校验和计算,同时线程调度模块调度所述当前线程进入休眠状态;然后当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;然后当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。该方法将checksum计算嵌入到多线程微引擎的流水线中,减少了调度环节,提高了网络处理器的性能。但是同样没有采取针对减少计算checksum逐步相加次数的有效方法。
发明内容
为解决上述问题,本发明提供了一种基于飞腾平台的网络checksum算法优化方法,所述方法包括步骤:
S1:确定NEON指令循环次数cnt_neon和汇编循环次数cnt_asm;
S2:定义NEON寄存器变量VA和VB,并初始化为0;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011420425.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:天线结构及移动终端
- 下一篇:超载监控方法、装置、计算机设备和存储介质