CN106484503B - 一种校验和的计算方法及网络处理器 - Google Patents

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

Info

Publication number
CN106484503B
CN106484503B CN201510536324.1A CN201510536324A CN106484503B CN 106484503 B CN106484503 B CN 106484503B CN 201510536324 A CN201510536324 A CN 201510536324A CN 106484503 B CN106484503 B CN 106484503B
Authority
CN
China
Prior art keywords
thread
current thread
calculating
computing unit
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510536324.1A
Other languages
English (en)
Other versions
CN106484503A (zh
Inventor
胡达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen ZTE Microelectronics Technology Co Ltd
Original Assignee
Shenzhen ZTE Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen ZTE Microelectronics Technology Co Ltd filed Critical Shenzhen ZTE Microelectronics Technology Co Ltd
Priority to CN201510536324.1A priority Critical patent/CN106484503B/zh
Priority to PCT/CN2016/089700 priority patent/WO2017032178A1/zh
Publication of CN106484503A publication Critical patent/CN106484503A/zh
Application granted granted Critical
Publication of CN106484503B publication Critical patent/CN106484503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

一种校验和的计算方法及网络处理器
技术领域
本发明涉及网络处理器技术领域,尤其涉及一种校验和的计算方法及网络处理器。
背景技术
校验和是在数据处理和数据通信领域中用于校验目的一组数据项的和。通常用在通信中,尤其是远距离通信中保证数据的完整性和正确性。在一个报文的IP头、TCP头以及UDP头中都有校验和字段。在报文转发过程中,通过对校验和字段的计算、修改和校验来保证传输的正确性,因此,校验和的计算对于网络处理器来说是一个非常重要的功能并且不可或缺。
目前,网络处理器校验和计算的实现方式有多种,一种完全独立的校验和计算协处理器,每次计算都需要微引擎把需要计算的数据读出并发送给协处理器,计算完成再把结果返回给微引擎,这种方式资源最省,可以多个微引擎共用一个协处理器,但是会增加数据进出协处理器的调度过程,增加协处理器的额外开销以及增加报文在网络处理器中的停留时间,影响网络处理器的性能。
发明内容
有鉴于此,本发明实施例期望提供一种校验和的计算方法及网络处理器,以实现将校验和计算嵌入至网络处理器的流水线中,减少调度环节,提高校验和计算的效率和网络处理器的性能。
为达到上述目的,本发明的技术方案是这样实现的:
第一方面,本发明实施例提供一种校验和的计算方法,所述方法包括:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,同时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,所述计算单元将计算得到的校验和写入所述当前线程的校验和寄存器,并指示所述线程调度模块调度所述当前线程进入唤醒状态;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。
在上述方案中,所述多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,包括:所述多线程微引擎接收并解析所述用户指令,获得解析结果;所述多线程微引擎在确认所述用户指令为校验和计算指令之后,基于所述解析结果以及所述描述符字段,获得所述当前线程对应的计算参数。
在上述方案中,所述计算单元基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算,包括:所述计算单元根据所述源数据和所述计算参数,按16位进行累加。
在上述方案中,所述网络处理器还包括计算完成寄存器;相应地,所述方法还包括:当计算完成时,所述计算单元将计算完成标识置于所述计算完成寄存器中;当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置,包括:当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态,且所述多线程微引擎在所述计算完成寄存器中读到所述计算完成标识时,所述多线程微引擎将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。
在上述方案中,在所述线程调度模块调度所述当前线程进入休眠状态之后,所述方法还包括:所述多线程微引擎获取下一个线程对应的计算参数,并发送给所述计算单元;所述计算单元基于所述下一个线程对应的计算参数,进行校验和计算,其中,所述当前线程处于休眠状态。
第二方面,本发明实施例提供一种网络处理器,包括:多线程微引擎、数据存储单元、寄存器单元、计算单元以及线程调度模块;其中,所述多线程微引擎,用于基于接收到的用户指令以及数据存储单元中的描述符字段获取当前线程对应的计算参数,并将所述计算参数发送给计算单元;还用于当所述线程调度模块调度所述当前线程由唤醒状态进入工作状态时,将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置;所述计算单元,用于基于由所述数据存储单元中读取的源数据和所述计算参数,进行校验和计算;当计算完成时,将计算得到的校验和写入所述寄存器单元中所述当前线程对应的校验和寄存器,并并指示所述线程调度模块调度所述当前线程进入唤醒状态;所述线程调度模块,用于在所述计算单元计算所述当前线程的校验和时,调度所述当前线程进入休眠状态;还用于根据所述计算单元的指示调度所述当前线程进入唤醒状态;还用于调度所述当前线程由唤醒状态进入工作状态;所述数据存储单元,用于存储用于校验和计算的所述源数据以及所述描述符字段;所述寄存器单元,具有多个校验和寄存器,其中,所述校验和寄存器用于存储所述计算得到的校验和。
在上述方案中,所述多线程微引擎,具体用于接收并解析所述用户指令,获得解析结果;在确认所述用户指令为校验和计算指令之后,基于所述解析结果以及所述描述符字段,获得所述当前线程对应的计算参数。
在上述方案中,所述计算单元,具体用于根据所述源数据和所述计算参数,按16位进行累加。
在上述方案中,所述网络处理器还包括计算完成寄存器;相应地,所述计算单元,还用于当计算完成时,将计算完成标识置于所述计算完成寄存器中;所述多线程微引擎,具体用于在所述计算完成寄存器中读到所述计算完成标识时,将所述计算得到的校验和写入所述数据存储单元中所述当前线程所对应的位置。
在上述方案中,所述多线程微引擎,还用于在所述线程调度模块调度所述当前线程进入休眠状态之后,获取下一个线程对应的计算参数,并发送给所述计算单元;所述计算单元,还用于基于所述下一个线程对应的计算参数,进行校验和计算,其中,所述当前线程处于休眠状态。
本发明实施例提供了一种校验和的计算方法及网络处理器,网络处理器中的多线程微引擎根据接收到的用户指令以及数据存储单元中的描述符字段获取计算参数,并发送给计算单元;然后,计算单元基于由数据存储单元读取的源数据和上述计算参数,进行校验和计算,在计算的同时,线程调度模块就调度当前线程进入休眠状态;当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器中,并通知线程调度模块调度当前线程进入唤醒状态;最后,当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将校验和写入数据存储单元中当前线程对应的位置。如此,便实现了将校验和计算嵌入到多线程微引擎的流水线中,减少调度环节,并且,由于多个线程的计算并行进行,大大提高了校验和计算的效率和网络处理器的性能。
附图说明
图1为本发明实施例中的网络处理器的结构示意图;
图2为本发明实施例中的一种校验和的计算方法流程示意图;
图3为本发明实施例中的线程切换的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例的基本思想是:网络处理器中的多线程微引擎根据接收到的用户指令以及数据存储单元中的描述符字段获取用于计算校验和的计算参数,并发送给计算单元;然后,计算单元基于由数据存储单元读取的源数据和这些计算参数,进行校验和计算,此时,线程调度模块调度所述当前线程进入休眠状态;当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器中,并指示线程调度模块调度当前线程进入唤醒状态;最后,当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将校验和写入数据存储单元中当前线程对应的位置。如此,便实现了将校验和计算嵌入到多线程微引擎的流水线中,减少调度环节,并且,由于多个线程的计算并行进行,大大提高了校验和计算的效率和网络处理器的性能。
下面对上述技术方案进行详细的说明。
本发明实施例提供一种校验和的计算方法,该方法应用于一网络处理器中,如图1所示,该网络处理器至少包括多线程微引擎11、数据存储单元12、寄存器单元13计算单元14以及线程调度单元15。
其中,多线程微引擎11包含多个可以并行处理的线程,用于接收用户指令,基于用户指令以及数据存储单元12中的描述符字段获取用于计算校验和的计算参数,然后,将计算参数发送给计算单元14;还用于当线程调度模块15调度当前线程由唤醒状态进入工作状态时,将计算得到的校验和写入数据存储单元12中当前线程所对应的位置;
在具体实施过程中,上述计算参数是由解析用户指令所获得的解析结果以及数据存储单元12中存储的源数据的描述符字段组成的,比如,源数据在数据存储单元中的起始位置、要参与计算的数据的数据长度(以两字节为单位)等。
数据存储单元12,用于存储有用于校验和计算的源数据以及用于确定计算参数的数据;进一步地,数据存储单元12可以被多线程微引擎11进行读写操作,也可以被计算单元14进行读操作;
寄存器单元13,包含多线程微引擎11的通用寄存器和专用寄存器,专用寄存器都是离散的,包括校验和寄存器和计算完成寄存器;多线程微引擎11中每一个线程对应一个校验和寄存器和计算完成寄存器;其中,校验和寄存器用于存储所述计算得到的校验和;
计算单元14,用于对从数据存储单元读出的源数据做加法,并判断计算是否完成,若计算已结束,将校验完成标识置位于该线程对应的计算完成寄存器中,并把校验和写入该线程对应的校验和寄存器中;若计算还没有结束,调整微引擎传递过来的计算参数,再次读取数据存储单元中的描述符字段,继续进行校验和计算;
线程调度模块15,用于在计算单元14计算当前线程的校验和时,调度当前线程进入休眠状态;还用于根据计算单元14的指示调度当前线程进入唤醒状态;还用于调度当前线程由唤醒状态进入工作状态。
下面结合上述网络处理器,对本发明实施例提供的校验和的计算方法进行说明。
参见图2所示,该校验和的计算方法包括:
S201:多线程微引擎基于接收到的用户指令以及数据存储单元中的描述符字段,获取当前线程对应的计算参数,并将计算参数发送给计算单元;
在具体实施过程中,S201包括:多线程微引擎接收并解析用户指令,获得解析结果;多线程微引擎在确认用户指令为校验和计算指令之后,基于解析结果以及描述符字段,获得当前线程对应的计算参数。
具体来说,由于不同用户对应多线程微引擎中的不同线程,所以,多线程微引擎接收用户指令,并解析该用户指令,在确认该指令为校验和计算指令之后,根据该用户指令就能够知道其所对应的线程,也就是当前线程,进而由解析结果以及描述符字段获得该当前线程对应的计算参数,每个线程可以有不同的计算参数。在获得当前线程的计算参数之后,将这些参数发送给计算单元。
S202:计算单元基于由数据存储单元中读取的源数据和计算参数,进行校验和计算,同时,线程调度模块调度当前线程进入休眠状态;
具体来说,计算单元在接收到计算参数之后,根据该参数,读取数据存储单元中当前线程对应的源数据,这里,源数据用于计算当前线程的校验和的,然后,计算单元根据源数据和计算参数,按16bit进行累加,得到当前线程的校验和。在计算单元进行校验和计算的过程中,线程调度模块调度当前线程进入休眠状态,以等待校验和的计算。
例如,IP头数据为:4500 0030 804c 4000 8006b52e d343 117b cb51 153d,报文经过修改,将TTL减一,那么,修改后的IP头数据为:4500 0030 804c 40007f06b52e d343117b cb51 153d。
那么,校验和的具体计算过程如下:
首先,将修改后的IP头数据中的校验和清零,即将上面报文中的0xb52e换为0x0000,得到待计算数据,然后,将待计算数据以16bit为单位相加,即4500+0030+804c+4000+7f06+0000+d343+117b+cb51+153d=349ce,然后,将进位加到结果的低位,即49ce+3=49d1,最后,对得到的结果取反,获得最终结果,也就是校验和为0xb62e。
S203:当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器,并指示线程调度模块调度当前线程进入唤醒状态;
具体来说,当计算完成时,计算单元将计算结果,也就是计算的得到的校验和写入当前线程的校验和寄存器,与此同时,指示线程调度模块调度当前线程进入唤醒状态,线程调度模块收到指示之后,将当前线程由休眠状态调度为唤醒状态,这样,当线程时序到达该线程时,多线程微引擎就能够将该线程唤醒,并进行后续操作。
S204:当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将计算得到的校验和写入数据存储单元中当前线程所对应的位置。
具体来说,线程调度模块按照线程时序逐一地将处于唤醒状态的线程调度进入工作状态,那么,当当前线程被调度进入工作状态时,多线程微引擎将计算的得到的校验和写入数据存储单元中当前线程所对应的位置。
在具体实施过程中,当计算完成时,计算单元还可以将计算完成标识置于当前线程对应的计算完成寄存器中;
相应地,S204就可以包括:当线程调度模块调度当前线程由唤醒状态进入工作状态,且多线程微引擎在计算完成寄存器中读取到计算完成标识时,将计算得到的校验和写入数据存储单元中当前线程对应的位置。
在另一实施例中,为了提高校验和计算的效率和网络处理器的性能,在当前线程进入休眠模式之后,切换到下一个线程,对下一个线程进行校验和计算。参见图3所示,具体过程如下:
S301:多线程微引擎获取下一个线程对应的计算参数,并发送给计算单元;
S302:计算单元基于下一个线程对应的计算参数,进行校验和计算。
需要说明的是,在对下一个线程进行校验和计算的过程中,计算单元同时执行S203,当计算单元开始计算下一个线程的的校验和时,下一个线程也进入休眠状态;当当前线程的校验和计算完成时,线程时序还在下一个线程时,则继续进行下一个线程的计算,直至线程时序到达当前线程,再执行S204。这样,多线程微引擎可以使用一个计算单元同时进行多个线程的校验和计算,当在一个线程的校验和计算的过程中,其它线程可以在后台进行计算,在提高计算效率的同时也在一定程度上节省了资源。
至此,便实现了在网络处理器的流水线中进行校验和计算的过程。
在本实施例中,网络处理器中的多线程微引擎根据接收到的用户指令获取计算参数,并发送给计算单元;然后,计算单元基于由数据存储单元读取的源数据和上述计算参数,进行校验和计算,在计算的同时,线程调度模块就调度当前线程进入休眠状态;当计算完成时,计算单元将计算得到的校验和写入当前线程的校验和寄存器中,并通知线程调度模块调度当前线程进入唤醒状态;最后,当线程调度模块调度当前线程由唤醒状态进入工作状态时,多线程微引擎将校验和写入数据存储单元中当前线程对应的位置。如此,便实现了将校验和计算嵌入到多线程微引擎的流水线中,减少调度环节,并且,由于多个线程的指令执行是并行进行,相当于把校验和计算掩藏在其它线程的指令执行过程中,节省了校验和计算的时间,大大提高了校验和计算的效率和网络处理器的性能。
基于同一发明构思,本发明实施例还提供一种网络处理器,与上述一个或者多个实施例中的网络处理器一致。
如图1所示,该网络处理器至少包括多线程微引擎11、数据存储单元12、寄存器单元13、计算单元14以及线程调度模块15。
其中,多线程微引擎11,用于基于接收到的用户指令以及数据存储单元12中的描述符字段获取当前线程对应的计算参数,并将计算参数发送给计算单元14;还用于当线程调度模块15调度当前线程由唤醒状态进入工作状态时,将计算得到的校验和写入数据存储单元12中当前线程所对应的位置;
计算单元14,用于基于由数据存储单元12中读取的源数据和计算参数,进行校验和计算;当计算完成时,将计算得到的校验和写入寄存器单元13中当前线程对应的校验和寄存器,并指示线程调度模块15调度当前线程进入唤醒状态;
线程调度模块15,用于在计算单元14计算当前线程的校验和时,调度当前线程进入休眠状态;还用于根据计算单元14的指示调度当前线程进入唤醒状态;还用于调度当前线程由唤醒状态进入工作状态;
数据存储单元12,用于存储有用于校验和计算的源数据以及用于确定计算参数的数据;
寄存器单元13,具有多个校验和寄存器,其中,校验和寄存器用于存储计算得到的校验和。
需要说明的是,寄存器单元13包含多线程微引擎11的通用寄存器和专用寄存器,其中,专用寄存器至少包括上述校验和寄存器;多线程微引擎11中每一个线程对应一个校验和寄存器。
在上述方案中,多线程微引擎11,具体用于接收并解析用户指令,获得解析结果;在确认用户指令为校验和计算指令之后,基于解析结果以及数据存储单元12中的描述符字段,获得当前线程对应的计算参数。
在上述方案中,计算单元14,具体用于根据源数据和计算参数,按16位进行累加。
在上述方案中,网络处理器还包括:计算完成寄存器;
相应地,计算单元14,还用于当计算完成时,将计算完成标识置于计算完成寄存器中;多线程微引擎11,具体用于在计算完成寄存器中读到计算完成标识时,将计算得到的校验和写入数据存储单元12中当前线程所对应的位置。
在上述方案中,多线程微引擎11,还用于在线程调度模块15调度当前线程进入休眠状态之后,获取下一个线程对应的计算参数,并发送给计算单元14;
计算单元14,还用于基于下一个线程对应的计算参数,进行校验和计算,其中,当前线程处于休眠状态。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

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

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510536324.1A CN106484503B (zh) 2015-08-27 2015-08-27 一种校验和的计算方法及网络处理器
PCT/CN2016/089700 WO2017032178A1 (zh) 2015-08-27 2016-07-11 一种校验和的计算方法、网络处理器及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510536324.1A CN106484503B (zh) 2015-08-27 2015-08-27 一种校验和的计算方法及网络处理器

Publications (2)

Publication Number Publication Date
CN106484503A CN106484503A (zh) 2017-03-08
CN106484503B true CN106484503B (zh) 2019-10-18

Family

ID=58099566

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510536324.1A Active CN106484503B (zh) 2015-08-27 2015-08-27 一种校验和的计算方法及网络处理器

Country Status (2)

Country Link
CN (1) CN106484503B (zh)
WO (1) WO2017032178A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196975B (zh) * 2017-11-21 2021-09-17 深信服科技股份有限公司 基于多校验和的数据验证方法、装置及存储介质
US11468037B2 (en) * 2019-03-06 2022-10-11 Semiconductor Components Industries, Llc Memory device and data verification method
CN113972989B (zh) * 2020-07-06 2023-09-15 宇龙计算机通信科技(深圳)有限公司 数据校验方法及存储介质、电子设备
CN112612518B (zh) * 2020-12-08 2022-04-01 麒麟软件有限公司 一种基于飞腾平台的网络checksum算法优化方法
CN113973111B (zh) * 2021-10-29 2023-12-22 珠海天融信网络安全技术有限公司 数据转发方法、装置、网关设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751665B2 (en) * 2002-10-18 2004-06-15 Alacritech, Inc. Providing window updates from a computer to a network interface device
CN1677952A (zh) * 2004-03-30 2005-10-05 武汉烽火网络有限责任公司 线速分组并行转发方法和装置
CN1964312A (zh) * 2005-11-10 2007-05-16 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
CN101221550A (zh) * 2008-01-30 2008-07-16 许新朋 一种串行通讯的方法及芯片
CN101309184A (zh) * 2008-05-28 2008-11-19 华为技术有限公司 检测微引擎故障的方法及装置
CN101878475A (zh) * 2007-07-31 2010-11-03 Netlogic微系统公司 向星形拓扑串行总线接口委托网络处理器操作
CN103595706A (zh) * 2013-10-15 2014-02-19 航天科工深圳(集团)有限公司 一种感温数据通用服务器及其通信方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751665B2 (en) * 2002-10-18 2004-06-15 Alacritech, Inc. Providing window updates from a computer to a network interface device
CN1677952A (zh) * 2004-03-30 2005-10-05 武汉烽火网络有限责任公司 线速分组并行转发方法和装置
CN1964312A (zh) * 2005-11-10 2007-05-16 中国科学院计算技术研究所 一种网络处理器中维护ip分组出入顺序的方法
CN101878475A (zh) * 2007-07-31 2010-11-03 Netlogic微系统公司 向星形拓扑串行总线接口委托网络处理器操作
CN101221550A (zh) * 2008-01-30 2008-07-16 许新朋 一种串行通讯的方法及芯片
CN101309184A (zh) * 2008-05-28 2008-11-19 华为技术有限公司 检测微引擎故障的方法及装置
CN103595706A (zh) * 2013-10-15 2014-02-19 航天科工深圳(集团)有限公司 一种感温数据通用服务器及其通信方法

Also Published As

Publication number Publication date
WO2017032178A1 (zh) 2017-03-02
CN106484503A (zh) 2017-03-08

Similar Documents

Publication Publication Date Title
CN106484503B (zh) 一种校验和的计算方法及网络处理器
CN103744730B (zh) 一种任务调度方法和装置
CN109871326A (zh) 一种脚本录制的方法和装置
CN109934433A (zh) 一种人员能力评估方法、装置及云服务平台
CN103870327A (zh) 一种实时多任务调度方法和装置
US20120185864A1 (en) Integrated Environment for Execution Monitoring and Profiling of Applications Running on Multi-Processor System-on-Chip
CN107315889A (zh) 仿真引擎的性能测试方法及存储介质
CN103995778A (zh) 一种基于事件和动作的脚本文件生成方法及其装置
CN108733839A (zh) 一种海量数据的统计方法及装置
CN106021083A (zh) 一种评估实时操作系统实时性的方法及装置
CN102740332B (zh) 移动终端测试方法及测试装置
CN107678955B (zh) 一种功能接口时延的计算方法、装置、设备及存储介质
CN104182283A (zh) 一种任务同步方法
CN110221914B (zh) 文件处理方法及装置
CN103218219A (zh) 紧凑函数跟踪
CN110457224A (zh) 生成测试数据的方法及装置
Kunz et al. Expanding the event horizon in parallelized network simulations
CN106202162B (zh) 一种用于测试推荐房间数据列表的测试系统及方法
CN106201841A (zh) 一种应用程序运行数据的统计方法和装置
CN103745287A (zh) 软件项目进度管理方法及系统
We et al. Functionally and temporally correct simulation of cyber-systems for automotive systems
CN107769987B (zh) 一种报文转发性能评估方法和装置
CN106856496A (zh) 数据处理方法及装置
US11579959B2 (en) Systems and methods for margin based diagnostic tools for priority preemptive schedulers
CN115391158A (zh) 一种时延确定方法、系统、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant