一种校验和的计算方法及网络处理器技术

技术编号:14783430 阅读:52 留言:0更新日期:2017-03-10 04:36
本发明专利技术实施例公开了一种校验和的计算方法,所述方法包括:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,同时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。本发明专利技术实施例同时还公开了一种网络处理器。

【技术实现步骤摘要】

本专利技术涉及网络处理器
,尤其涉及一种校验和的计算方法及网络处理器
技术介绍
校验和是在数据处理和数据通信领域中用于校验目的一组数据项的和。通常用在通信中,尤其是远距离通信中保证数据的完整性和正确性。在一个报文的IP头、TCP头以及UDP头中都有校验和字段。在报文转发过程中,通过对校验和字段的计算、修改和校验来保证传输的正确性,因此,校验和的计算对于网络处理器来说是一个非常重要的功能并且不可或缺。目前,网络处理器校验和计算的实现方式有多种,一种完全独立的校验和计算协处理器,每次计算都需要微引擎把需要计算的数据读出并发送给协处理器,计算完成再把结果返回给微引擎,这种方式资源最省,可以多个微引擎共用一个协处理器,但是会增加数据进出协处理器的调度过程,增加协处理器的额外开销以及增加报文在网络处理器中的停留时间,影响网络处理器的性能。
技术实现思路
有鉴于此,本专利技术实施例期望提供一种校验和的计算方法及网络处理器,以实现将校验和计算嵌入至网络处理器的流水线中,减少调度环节,提高校验和计算的效率和网络处理器的性能。为达到上述目的,本专利技术的技术方案是这样实现的:第一方面,本专利技术实施例提供一种校验和的计算方法,所述方法包括:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,同时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。在上述方案中,所述多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,包括:所述多线程微引擎接收并解析所述用户指令,获得解析结果;所述多线程微引擎在确认所述用户指令为校验和计算指令之后,基于所述解析结果以及所述描述符字段,获得所述当前线程对应的计算参数。在上述方案中,所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,包括:所述计算单元根据所述源数据和所述计算参数,按16位进行累加。在上述方案中,所述网络处理器还包括计算完成寄存器;相应地,所述方法还包括:当计算完成时,所述计算单元将计算完成标识置于所述计算完成寄存器中;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置,包括:当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态,且所述多线程微引擎在所述计算完成寄存器中读到所述计算完成标识时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。在上述方案中,在所述线程调度模块调度所述当前线程进入休眠状态之后,所述方法还包括:所述多线程微引擎获取下一个线程对应的计算参数,并发送给所述计算单元;所述计算单元基于所述下一个线程对应的计算参数,进行校验和计算,其中,所述当前线程处于休眠状态。第二方面,本专利技术实施例提供一种网络处理器,包括:多线程微引擎、数据存储单元、寄存器单元、计算单元以及线程调度模块;其中,所述多线程微引擎,用于基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;还用于当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置;所述计算单元,用于基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算;当计算完成时,将计算得到的校验和写入所述寄存器单元中所述当前线程对应的校验和寄存器,并并指示所述线程调度模块调度所述当前线程进入唤醒状态;所述线程调度模块,用于在所述计算单元计算所述当前线程的校验和时,调度所述当前线程进入休眠状态;还用于根据所述计算单元的指示调度所述当前线程进入唤醒状态;还用于调度所述当前线程由唤醒状态进入工作状态;所述数据存储单元,用于存储用于校验和计算的所述源数据以及所述描述符字段;所述寄存器单元,具有多个校验和寄存器,其中,所述校验和寄存器用于存储所述计算得到的校验和。在上述方案中,所述多线程微引擎,具体用于接收并解析所述用户指令,获得解析结果;在确认所述用户指令为校验和计算指令之后,基于所述解析结果以及所述描述符字段,获得所述当前线程对应的计算参数。在上述方案中,所述计算单元,具体用于根据所述源数据和所述计算参数,按16位进行累加。在上述方案中,所述网络处理器还包括计算完成寄存器;相应地,所述计算单元,还用于当计算完成时,将计算完成标识置于所述计算完成寄存器中;所述多线程微引擎,具体用于在所述计算完成寄存器中读到所述计算完成标识时,将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。在上述方案中,所述多线程微引擎,还用于在所述线程调度模块调度所述当前线程进入休眠状态之后,获取下一个线程对应的计算参数,并发送给所述计算单元;所述计算单元,还用于基于所述下一个线程对应的计算参数,进行校验和计算,其中,所述当前线程处于休眠状态。本专利技术实施例提供了一种校验和的计算方法及网络处理器,网络处理器中的多线程微引擎根据接收到的用户指令以及数据存储单元中的描述符字段获取计算参数,并发送给计算单元;然后,计算单元基于由数据存储单元读取的源数据和上述计算参数,进行校验和计算,在计算的同时,线程调度模块就调度当前线程进入休眠状态;当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器中,并通知线程调度模块调度当前线程进入唤醒状态;最后,当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将校验和写入数据存储单元中当前线程对应的位置。如此,便实现了将校验和计算嵌入到多线程微引擎的流水线中,减少调度环节,并且,由于多个线程的计算并行进行,大大提高了校验和计算的效率和网络处理器的性能。附图说明图1为本专利技术实施例中的网络处理器的结构示意图;图2为本专利技术实施例中的一种校验和的计算方法流程示意图;图3为本专利技术实施例中的线程切换的流程示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。本专利技术实施例的基本思想是:网络处理器中的多线程微引擎根据接收到的用户指令以及数据存储单元中的描述符字段获取用于计算校验和的计算参数,并发送给计算单元;然后,计算单元基于由数据存储单元读取的源数据和这些计算参数,进行校验和计算,此时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器中,并指示线程调度模块调度当前线程进入唤醒状态;最后,当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将校验和写入数据存储单元中当前线程对应的位置。如此,便实本文档来自技高网...
一种校验和的计算方法及网络处理器

【技术保护点】
一种校验和的计算方法,其特征在于,所述方法包括:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,同时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。

【技术特征摘要】
1.一种校验和的计算方法,其特征在于,所述方法包括:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,同时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。2.根据权利要求1所述的方法,其特征在于,所述多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,包括:所述多线程微引擎接收并解析所述用户指令,获得解析结果;所述多线程微引擎在确认所述用户指令为校验和计算指令之后,基于所述解析结果以及所述描述符字段,获得所述当前线程对应的计算参数。3.根据权利要求1所述的方法,其特征在于,所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,包括:所述计算单元根据所述源数据和所述计算参数,按16位进行累加。4.根据权利要求1所述的方法,其特征在于,所述网络处理器还包括计算完成寄存器;相应地,所述方法还包括:当计算完成时,所述计算单元将计算完成标识置于所述计算完成寄存器中;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程
\t所对应的位置,包括:当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态,且所述多线程微引擎在所述计算完成寄存器中读到所述计算完成标识时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。5.根据权利要求1所述的方法,其特征在于,在所述线程调度模块调度所述当前线程进入休眠状态之后,所述方法还包括:所述多线程微引擎获取下一个线程对应的计算参数,并发送给所述计算单元;所述计算单元基于所述下一个线程对应的计算参数,进行校验和计算,其中,所述当前线程处于休眠状态。6...

【专利技术属性】
技术研发人员:胡达
申请(专利权)人:深圳市中兴微电子技术有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1