工业以太网协议栈优化方法及相关设备与流程
本发明涉及工业以太网,尤其涉及一种工业以太网协议栈优化方法及相关设备。
背景技术:
1、基于loongarch指令集架构的处理器已应用于plc、工业边缘控制器等工业自动化设备,此类设备往往需要同时运行ethercat主站、profinet设备、epa从站等多个工业实时以太网协议栈,对协议帧处理效率与多协议栈切换的确定性提出了较高要求。
2、现有工业以太网协议栈软件方案中,协议帧解析、协议类型识别与分发、目标协议栈代码执行、多协议栈实例调度这几个处理环节通常各自独立完成,环节之间未建立数据层面的直接衔接关系,且采用通用标量指令或操作系统通用调度策略实现,未结合loongarch指令集本身具备的向量处理、自定义指令、二进制翻译等特性对上述环节进行针对性适配。进而导致该类处理器平台在多协议并行运行时,各处理环节相互割裂、彼此独立执行,前一环节的处理结果无法直接支撑后一环节的判断与执行,难以形成协同优化的处理链路,所以导致龙芯平台上多协议工业以太网通信处理效率与切换确定性低的技术问题。
技术实现思路
1、本发明提供一种工业以太网协议栈优化方法及相关设备,本发明解决了现有技术中多协议工业以太网通信处理效率与切换确定性低的技术问题。
2、第一方面,本技术实施例提供了一种工业以太网协议栈优化方法,包括:
3、将多个第一工业以太网协议帧的帧头数据加载至向量寄存器执行参数提取和校验计算,并对校验结果为通过的第二工业以太网协议帧进行协议特征分类,得到协议分类结果;
4、根据所述协议分类结果确定所述第二工业以太网协议帧的归属协议栈实例并通过所述归属协议栈实例进行二进制翻译,生成处理完成信号;
5、根据所述处理完成信号确定待调度上处理器运行的目标协议栈实例,将当前协议栈实例占用的通用寄存器选择性保存至对应的上下文保存区,并根据所述目标协议栈实例选择性恢复通用寄存器,完成所述当前协议栈实例与所述目标协议栈实例之间的上下文切换。
6、可选的,在本发明第一方面的第一种实现方式中,所述将多个第一工业以太网协议帧的帧头数据加载至向量寄存器执行参数提取和校验计算,并对校验结果为通过的第二工业以太网协议帧进行协议特征分类,得到协议分类结果,包括:
7、调用lsx向量加载指令或lasx向量加载指令,将多个第一工业以太网协议帧的帧头数据加载至向量寄存器,得到帧头数据和帧头数据基地址;
8、调用向量比较指令和向量位操作指令提取所述向量寄存器中的协议类型字段和地址字段;获取各第一工业以太网协议帧对应的帧校验状态,得到校验结果;
9、根据所述帧头数据在向量寄存器中所处的通道位置,将同一通道位置的第一工业以太网协议帧对应的所述协议类型字段、所述地址字段、所述校验结果及所述帧头数据基地址进行关联,并将所述校验结果为通过的第一工业以太网协议帧作为第二工业以太网协议帧;
10、对所述第二工业以太网协议帧进行协议特征分类,得到协议分类结果。
11、可选的,在本发明第一方面的第二种实现方式中,所述对所述第二工业以太网协议帧进行协议特征分类,得到协议分类结果,包括:
12、创建所述第二工业以太网协议帧的自定义分类指令,并根据所述第二工业以太网协议帧的帧头数据基地址读取所述帧头数据中的协议特征字段;
13、将所述协议特征字段与协议特征模板表中的各条协议特征模板进行并行比对,按各条协议特征模板在所述协议特征模板表中的排列次序取首个比对成功的协议特征模板;各条协议特征模板均未比对成功时,将所述协议特征模板表中的默认协议特征模板作为首个比对成功的协议特征模板;
14、将所述首个比对成功的协议特征模板对应的协议类型编码、匹配优先级及协议栈实例索引分别写入目的寄存器,得到协议分类结果。
15、可选的,在本发明第一方面的第三种实现方式中,所述根据所述协议分类结果确定所述第二工业以太网协议帧的归属协议栈实例并通过所述归属协议栈实例进行二进制翻译,生成处理完成信号,包括:
16、根据所述协议分类结果中的协议栈实例索引确定所述第二工业以太网协议帧的归属协议栈实例,并基于所述归属协议栈实例的帧处理函数二进制代码对动态翻译缓存进行查询,得到缓存查询结果;
17、根据所述缓存查询结果确定本地指令序列并执行,得到执行结果,并基于所述执行结果生成所述归属协议栈实例对所述第二工业以太网协议帧的处理完成信号。
18、可选的,在本发明第一方面的第四种实现方式中,所述根据所述缓存查询结果确定本地指令序列并执行,得到执行结果,并基于所述执行结果生成所述归属协议栈实例对所述第二工业以太网协议帧的处理完成信号,包括:
19、当所述缓存查询结果为命中时,从所述动态翻译缓存中读取本地指令序列并跳转执行;
20、当所述缓存查询结果为未命中时,调用动态二进制翻译模块对所述帧处理函数二进制代码进行翻译,并结合loongarch二进制翻译扩展完成翻译加速,得到本地指令序列并执行;
21、获取所述本地指令序列的执行结果并生成所述归属协议栈实例对所述第二工业以太网协议帧的处理完成信号。
22、可选的,在本发明第一方面的第五种实现方式中,所述根据所述处理完成信号确定待调度上处理器运行的目标协议栈实例,将当前协议栈实例占用的通用寄存器选择性保存至对应的上下文保存区,并根据所述目标协议栈实例选择性恢复通用寄存器,完成所述当前协议栈实例与所述目标协议栈实例之间的上下文切换,包括:
23、在各协议栈实例的编译阶段,对帧处理函数实际读写的通用寄存器进行静态分析,生成各协议栈实例对应的寄存器使用位图;
24、当所述处理完成信号指示当前协议栈实例已处理完时,根据所述协议分类结果中的匹配优先级确定目标协议栈实例;
25、调用原子寄存器保存指令,以所述当前协议栈实例对应的寄存器使用位图为掩码,仅将所述寄存器使用位图中标记为已使用的通用寄存器保存至所述当前协议栈实例的上下文保存区;
26、以所述目标协议栈实例对应的寄存器使用位图为掩码,对所述目标协议栈实例上一次切出处理器时存入其上下文保存区的已保存寄存器数据进行选择性恢复,完成所述当前协议栈实例与所述目标协议栈实例之间的上下文切换。
27、第二方面,本技术实施例提供了一种工业以太网协议栈优化装置,包括:
28、协议分类模块,用于将多个第一工业以太网协议帧的帧头数据加载至向量寄存器执行参数提取和校验计算,并对校验结果为通过的第二工业以太网协议帧进行协议特征分类,得到协议分类结果;
29、处理模块,用于根据所述协议分类结果确定所述第二工业以太网协议帧的归属协议栈实例并通过所述归属协议栈实例进行二进制翻译,生成处理完成信号;
30、上下文切换模块,用于根据所述处理完成信号确定待调度上处理器运行的目标协议栈实例,将当前协议栈实例占用的通用寄存器选择性保存至对应的上下文保存区,并根据所述目标协议栈实例选择性恢复通用寄存器,完成所述当前协议栈实例与所述目标协议栈实例之间的上下文切换。
31、第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述工业以太网协议栈优化方法的步骤。
32、第四方面,本技术实施例提供了一种可读存储介质,该可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述工业以太网协议栈优化方法的步骤。
33、第五方面,本技术实施例提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序在被处理器执行时实现上述工业以太网协议栈优化方法的步骤。
34、上述工业以太网协议栈优化方法及相关设备所提供的一个方案中,通过向量加载指令将多个工业以太网协议帧的帧头数据一次性加载至向量寄存器,再通过向量比较指令和向量位操作指令对同一向量寄存器中的多帧数据同时完成字段提取,并获取各工业以太网协议帧对应的帧校验状态,使多个协议帧的解析动作在同一处理周期内并行展开,区别于逐帧调用标量指令依次处理的方式,使解析结果与分类环节之间建立起明确的数据传递关系,避免了解析环节与分类环节相互独立、结果互不流通的问题。本发明将帧头数据基地址与协议特征模板表基地址一并输入自定义分类指令进行并行匹配,把原本依赖软件循环逐条比对协议特征字段的处理逻辑,收拢至处理器硬件执行单元完成的单条指令之内,本发明既有协议栈关键函数二进制代码无需重新编写或重新编译即可在龙芯处理器上运行,并通过对高频调用路径的热路径判断与动态翻译缓存查询,使重复调用的协议栈关键函数可以直接执行缓存中已完成翻译的本地指令序列,减少了同一函数被反复翻译带来的处理开销,本发明根据前序步骤输出的匹配优先级与处理完成信号确定待切换的目标协议栈实例,并根据各协议栈实例预先生成的寄存器使用位图,仅对该实例实际使用的通用寄存器子集执行选择性保存与恢复,不再对全部通用寄存器统一执行保存恢复操作,使协议栈实例间的上下文切换过程更为精简,且切换时机与前序步骤输出的优先级信息及执行状态直接绑定,不再由通用调度策略单独决定。本发明能够更充分地契合龙芯loongarch指令集特性在工业以太网多协议并行处理场景下的应用需求。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com