一种循环冗余校验方法以及多核处理器技术

技术编号:14482027 阅读:144 留言:0更新日期:2017-01-26 00:00
本发明专利技术公开了一种循环冗余校验方法以及多核处理器。本申请实施例公开了一种CRC方法,能够提升多核处理器的CRC处理效率。本申请提供的CRC方法包括:第一内核将原报文段切割成P个子报文段;第一内核将所述P个子报文段的切割信息发送给对应的Q个内核;Q个内核根据对应的子报文段的切割信息获取对应的子报文段;Q个内核确定对应的子报文段的校验信息并发送给第一内核;第一内核根据P个子报文段的校验信息,确定原报文段的CRC码。本申请还提供了相关的多核处理器。

【技术实现步骤摘要】

本申请涉及通信领域,尤其涉及一种循环冗余校验方法以及多核处理器
技术介绍
循环冗余校验(英文:cyclicredundancycheck,缩写:CRC)是利用除法及余数原理来进行错误侦测(英文:errordetecting)的方法。网络设备,如基站控制器、核心网设备等在通信过程中,发送端与接收端约定好一个CRC常量。发送端以该CRC常量作为除数对待发送的原报文段进行取余运算,得到的余数为原报文段的CRC码。发送端将计算得到的原报文段的CRC码附加在原报文段末尾发送给接收端。接收端接收到原报文段后重新计算原报文段的CRC码,并将计算得到的CRC码与发送端发送的CRC码比较。若两个CRC码不同,则认为通信出现了错误。CRC校验一般在上层协议中由网络设备的处理器来实现。但是现阶段的处理器进行CRC校验的效率较低,在实际应用中尤其是视频等海量数据通信的场景中无法满足应用要求。
技术实现思路
本申请提供了一种循环冗余校验方法,用于提升多核处理器的CRC处理效率。本申请中还提供了相关的多核处理器。本申请的第一方面提供了一种CRC方法,适用于多核处理器。其中,该多核处理器包括第一内核在内的多个内核。第一内核将待进行CRC校验的原报文段切割成P个子报文段,该P个子报文段按照从前往后的顺序依次为第一子报文段至第P子报文段,P为大于等于2的正整数。第一内核确定用于处理该P个子报文段的Q个内核,每个内核与其处理的子报文段对应。其中一个内核可以对应一个或多个子报文段,但是一个子报文段只能对应一个内核,Q≤P。第一内核在确定了P个子报文段对应的内核后,将该P个子报文段的切割信息分别发送给对应的内核,切割信息用于唯一确定各子报文段,例如可以为各子报文段的地址信息、或各子报文段在原报文段中的位置信息,也可以为其它类型的信息。该Q个内核获取了对应的子报文段的切割信息后,根据该切割信息,以及内存中的原报文段,获取对应的子报文段。然后该Q个内核分别确定自身对应的子报文段的校验信息,并将自身对应的子报文段的校验信息发送给第一内核。在该Q个内核均向第一内核发送了对应的子报文段的校验信息后,第一内核根据该P个子报文段的校验信息,计算得到原报文段的CRC码。通过这样的方法,第一内核不需要计算整个原报文段的CRC码,而是分配了Q个内核来计算子报文段的校验信息。第一内核只需要进行简单的原报文段切割操作以及P个子报文段的校验信息的运算操作即可。这样就将原报文段的CRC码的计算操作分摊给Q个内核来承担,大大减少了第一内核的计算量,均衡了处理器中各内核的负荷,有利于提升处理器进行CRC校验的效率。可选的,该P个子报文段中,第i子报文段的切割信息包括第i子报文段相对于原报文段的偏移量offset_i、以及第i子报文段的长度length_i,1≤i≤P。第i子报文段对应的内核能够根据offset_i以及length_i,确定第i子报文段是从原报文段的第offset_i字节开始,长为length_i字节的报文序列。可选的,该Q个内核确定对应的子报文段的校验信息,具体可以为该Q个内核计算对应的子报文段的等价校验码。其中等价校验码用于表示在第i子报文段的末尾补上j个0后得到的报文段的CRC码,j=原报文段的长度length_sum-offset_i–length_i。第一内核根据P个子报文段的校验信息确定原报文段的CRC码,具体可以为将该P个子报文段的校验信息进行异或,得到原报文段的CRC码。这样只需要进行简单的原报文段切割操作以及P个子报文段的等价校验码的异或操作即可,进一步减少了第一内核的计算量。可选的,该Q个内核计算对应的子报文段的等价校验码,具体可以为该Q个内核计算对应的子报文段的CRC码,然后根据对应的子报文段的CRC码计算对应的子报文段的等价校验码,以减少直接计算对应的子报文段的等价校验码的查表次数。可选的,该Q个内核可以通过查找第一CRC表,确定对应子报文段的CRC码。其中第一CRC表列举了单个字节的序列的CRC码。可选的,该Q个内核可以根据对应的子报文段的CRC码查找第二CRC表,得到对应的子报文段的等价校验码。第二CRC表中列举了多个单比特有效序列的CRC码,单比特有效序列用于表示第一比特位为1其它比特位为0的序列。可选的,该Q个内核查找第二CRC表格,具体可以是该Q个内核分别确定对应的子报文段的CRC码中每个比特位对应的单比特有效序列,然后在第二CRC表中查找每个比特位对应的单比特有效序列的CRC码,最后将每个比特位对应的单比特有效序列的CRC码进行亦或,就得到了对应的子报文段的等价校验码。这样相比于直接查找第一CRC表格得到对应子报文段的等价校验码,能够减少查表次数。可选的,多核处理器中还包括内存,该Q个内核根据对应的子报文段的切割信息获取对应的子报文段,具体可以是通过共享内存方式从内存中获取原报文段,然后根据对应子报文段的切割信息以及原报文段得到对应的子报文段。本申请第二方面提供了一种多核处理器,该多核处理器包括第一内核在内的多个内核。其中,第一内核用于:将待进行CRC校验的原报文段切割成P个子报文段,该P个子报文段按照从前往后的顺序依次为第一子报文段至第P子报文段,P为大于等于2的整数。确定用于处理该P个子报文段的Q个内核,其中每个内核与其处理的子报文段对应,Q≤P。将该P个子报文段的切割信息发送给对应的内核。该Q个内核用于:在获取了对应的子报文段的切割信息后,根据切割信息,获取对应的子报文段。获取了对应的子报文段后,计算对应的子报文段的校验信息,然后将对应子报文段的校验信息发送给第一内核。第一内核还用于:接收该Q个内核中每个内核发送的对应子报文段的校验信息,得到该P个子报文段的校验信息。然后根据该P个子报文段的校验信息,计算原报文段的CRC码。本申请提供的多核处理器中,第一内核只需要进行简单的原报文段切割操作以及P个子报文段的校验信息的运算操作即可。这样就将原报文段的CRC码的计算操作分摊给Q个内核来承担,大大减少了第一内核的计算量,处理器中各内核的负荷更为均衡,进行CRC校验的效率较高。可选的,该P个子报文段中,第i子报文段的切割信息包括第i子报文段相对于原报文段的偏移量offset_i、以及第i子报文段的长度length_i,1≤i≤P。第i子报文段对应的内核具体用于:根据offset_i以及length_i,确定第i子报文段是从原报文段的第offset_i字节开始,长为length_i字节的报文序列。可选的,该Q个内核具体用计算对应的子报文段的等价校验码。其中等价校验码用于表示在第i子报文段的末尾补上j个0后得到的报文段的CRC码,j=原报文段的长度length_sum-offset_i–length_i。第一内核具体用于将该P个子报文段的校验信息进行异或,得到原报文段的CRC码。这样第一内核只需要进行简单的原报文段切割操作以及P个子报文段的等价校验码的异或操作即可,能够进一步减少第一内核的计算量。可选的,该Q个内核具体用于计算对应的子报文段的CRC码,然后根据对应的子报文段的CRC码计算对应的子报文段的等价校验码,以减少直接计算对应的子报文段的等价校验码的查表次数。可选的,该Q个内核还用于通过查找第一CRC表,确定本文档来自技高网...
一种循环冗余校验方法以及多核处理器

【技术保护点】
一种循环冗余校验CRC方法,适用于多核处理器,其特征在于,所述多核处理器包括不少于两个内核,所述方法包括:第一内核将待校验的原报文段切割成P个子报文段,所述P个子报文段从前往后依次为第一子报文段、第二子报文段、……第P子报文段,P为大于等于2的正整数;所述第一内核分别确定用于处理所述P个子报文段的Q个内核,并将所述P个子报文段的切割信息分别发送给对应的内核,其中,所述Q个内核中的每个内核与其处理的子报文段对应,且所述Q个内核中每个内核对应一个或多个子报文段,所述P个子报文段中每个子报文段对应一个内核,Q≤P;所述Q个内核根据对应的子报文段的切割信息,获取对应的子报文段;所述Q个内核确定对应的子报文段的校验信息,并将所述P个子报文段的校验信息发送给所述第一内核;所述第一内核根据所述P个子报文段的校验信息,确定所述原报文段的CRC码。

【技术特征摘要】
1.一种循环冗余校验CRC方法,适用于多核处理器,其特征在于,所述多核处理器包括不少于两个内核,所述方法包括:第一内核将待校验的原报文段切割成P个子报文段,所述P个子报文段从前往后依次为第一子报文段、第二子报文段、……第P子报文段,P为大于等于2的正整数;所述第一内核分别确定用于处理所述P个子报文段的Q个内核,并将所述P个子报文段的切割信息分别发送给对应的内核,其中,所述Q个内核中的每个内核与其处理的子报文段对应,且所述Q个内核中每个内核对应一个或多个子报文段,所述P个子报文段中每个子报文段对应一个内核,Q≤P;所述Q个内核根据对应的子报文段的切割信息,获取对应的子报文段;所述Q个内核确定对应的子报文段的校验信息,并将所述P个子报文段的校验信息发送给所述第一内核;所述第一内核根据所述P个子报文段的校验信息,确定所述原报文段的CRC码。2.根据权利要求1所述的CRC方法,其特征在于,所述P个子报文段中,第i子报文段的切割信息包括:所述第i子报文段相对于所述原报文段的偏移量offset_i、以及所述第i子报文段的长度length_i,1≤i≤P。3.根据权利要求2所述的CRC方法,其特征在于,所述Q个内核确定对应的子报文段的校验信息包括:所述Q个内核确定对应的子报文段的等价校验码,其中,所述第i子报文段的等价校验码等于:在所述第i子报文段末尾补齐j个0后得到的报文段的CRC码,其中j=所述原报文段的长度length_sum-offset_i–length_i;所述第一内核根据所述P个子报文段的校验信息,确定所述原报文段的CRC码包括:所述第一内核将所述P个子报文段的等价校验码进行异或,得到所述原报文段的CRC码。4.根据权利要求3所述的CRC方法,其特征在于,所述Q个内核确定对应的子报文段的等价校验码包括:所述Q个内核确定对应的子报文段的CRC码;所述Q个内核根据所述对应的子报文段的CRC码,确定对应的子报文段的等价校验码。5.根据权利要求4所述的CRC方法,其特征在于,所述Q个内核确定对应的子报文段的CRC码包括:所述Q个内核通过查找第一CRC表,确定对应的子报文段的CRC码,其中,所述第一CRC表中包括多个长度为一个字节的序列的CRC码;所述Q个内核根据所述对应的子报文段的CRC码,确定对应的子报文段的等价校验码包括:所述Q个内核根据所述对应的子报文段的CRC码,查找第二CRC表,得到对应的子报文段的等价校验码,其中,所述第二CRC表中包括多个单比特有效序列的CRC码,所述单比特有效序列为第一比特位为1且其它比特位为0的序列。6.根据权利要求5所述的CRC方法,其特征在于,所述根据所述对应的子报文段的CRC码,查找第二CRC表,得到所述对应的子报文段的等价校验码包括:确定对应的子报文段的CRC码的每个比特位对应的单比特有效序列;在所述第二CRC表中,查找所述每个比特位对应的单比特有效序列的CRC码;将查找到的所述每个比特位对应的单比特有效序列的CRC码进行异或,得到所述对应的子报文段的等价校验码。7.根据权利要求2至6中任一项所述的CRC方法,其特征在于,所述多核处理器还包括内存,所述内存用于保存所述原...

【专利技术属性】
技术研发人员:王辉林
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1