掌桥专利:专业的专利平台
掌桥专利
首页

取模运算方法、电路、电子设备和计算机可读存储介质

文献发布时间:2023-06-19 13:45:04


取模运算方法、电路、电子设备和计算机可读存储介质

技术领域

本申请涉及取模运算技术领域,特别是涉及一种取模运算方法、电路、电子设备和计算机可读存储介质。

背景技术

在数字通信、信号处理、取模运算、密码学等众多领域中,经常会涉及到取模运算。为了加速数据处理,取模运算多应用于集成电路中。但是,在集成电路设计中,硬件描述语言并没有可综合的取模或除法语句。传统的取模运算实现方法是采用竖式除法的方式,通过多次移位、比较和减法操作的迭代计算,从被除数中重复地减去除数移位后的值,直到被除数小于除数为止,得到的结果即为余数。

但传统的取模运算实现方法需要较多次数的迭代才能得到取模结果,导致运算效率过低。

发明内容

本申请实施例提供了一种取模运算方法、电路、电子设备和计算机可读存储介质,能够避免需要多次迭代得到取模结果,而造成的运算效率过低的问题。

一种取模运算方法,所述取模运算方法应用于取模运算电路中,所述方法包括:

根据除数和所述除数所在除数集合的公倍数确定修正因子。

根据被除数、所述修正因子和所述公倍数确定修正模。

根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。

一种取模运算方法,所述取模运算方法应用于取模运算电路中,所述方法还包括:

获取被除数和除数。

根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。

根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。

一种取模运算电路,所述取模运算电路用于执行上述的取模运算方法。

一种取模运算装置,所述装置包括:

第一确定模块,用于根据除数和所述除数所在除数集合的公倍数确定修正因子;

第二确定模块,用于根据被除数、所述修正因子和所述公倍数确定修正模;

第三确定模块,用于根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。

一种取模运算装置,所述装置包括:

获取模块,用于获取被除数和除数;

第一确定模块,用于根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括所述除数和参数组之间的对应关系;

第二确定模块,用于根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。

一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

根据除数和所述除数所在除数集合的公倍数确定修正因子。

根据被除数、所述修正因子和所述公倍数确定修正模。

根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。

一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

获取被除数和除数。

根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。

根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

根据除数和所述除数所在除数集合的公倍数确定修正因子。

根据被除数、所述修正因子和所述公倍数确定修正模。

根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取被除数和除数。

根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。

根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。

上述取模运算方法、电路、电子设备和计算机可读存储介质,通过除数和除数所在除数集合的公倍数确定的修正因子,结合被除数以及公倍数确定修正模;根据修正模和修正因子,确定被除数和除数的模。能够快速计算得到取模运算结果,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法的由于较多次的迭代计算过程,导致的运算效率过低的问题。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中取模运算方法的应用环境图;

图2为一个实施例中取模运算方法的流程图示意图;

图3为一个实施例中取模运算方法的流程图示意图;

图4为一个实施例中取模运算方法的流程图示意图;

图5为一个实施例中取模运算方法的流程图示意图;

图6为一个实施例中取模运算电路的结构框图;

图7为一个实施例中取模运算方法的流程图示意图;

图8为一个实施例中取模运算方法的流程图示意图;

图9为一个实施例中取模运算方法的流程图示意图;

图10为一个实施例中取模运算装置的结构框图;

图11为又一个实施例中取模运算装置的结构框图;

图12为一个实施例中电子设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。

在数字通信、信号处理、图像处理、密码学等众多领域中,经常会涉及到整数取模运算。对于无符号整数而言,a对b的模等于被除数a除以除数b后的余数,可以表示为

以通信领域为例,(5th-Generation wireless communication technology,5G)新空口(new radio,NR)通信系统的发射机和接收机功能模块图如图1所示。其中,对应于发射机的编码模块和接收机的解码模块,5G NR系统的物理上行共享信道和物理下行共享信道的数据编码采用了低密度奇偶校验码(low density parity check,LDPC)码,LDPC码的校验矩阵中包含循环移位矩阵,而循环移位值P

表1

但是,在集成电路设计中,硬件描述语言并没有可综合的取模或除法语句。传统的取模运算实现方法是采用竖式除法的方式,通过多次移位、比较和减法操作的迭代计算,从被除数中重复地减去除数移位后的值,直到被除数小于除数为止,得到的结果即为余数。当被除数位数较大时,需要较多的迭代次数才能得到取模结果,导致取模运算效率过低。

下面将结合图1,以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。

图2为一个实施例中取模运算方法的流程图。该取模运算方法应用于取模运算电路中,该取模运算电路可以应用于图1所示的发射机的编码模块和/或接收机的解码模块中,但并不仅限于此。如图2所示,取模运算方法包括步骤202-步骤206。

步骤202、根据除数和除数所在除数集合的公倍数确定修正因子。

可选的,除数所在除数集合的公倍数可以为该除数集合的最小公倍数。

例如,如表1所示,对于除数集合{2,4,8,16,32,64,128,256}的公倍数可以为256或者512等。又如,对于除数集合{3,6,12,24,48,96,192,384}的公倍数可以为384或者768等。

具体的,被除数a对除数b取模,相当于获取被除数a除以除数b的余数,若被除数a与商除数b表示为

进一步的,结合上述,假设除数所在除数集合的公倍数为g,根据下式计算得到修正因子f:

f=g/b

可以理解的,当除数集合包含i个除数b时,各除数b

f

步骤204、根据被除数、修正因子和公倍数确定修正模。

其中,被除数与除数在进行取模运算的过程中均为无符号整数。在一些实施例中,当被除数和除数均为有符号整数时,需要将被除数和除数均转化为无符号整数进行取模运算。

在本实施例中,可以采用修正因子对被除数进行修正,然后采用修正后的被除数和公倍数计算得到修正模。例如,可以预先设置公倍数对应的参数组,根据除数的公倍数确定对应的目标参数组之后,根据该目标参数组和修正后的被除数计算修正模,还可以是对修正后的被除数进行二进制转化,对转化得到的二进制数进行移位运算,用移位运算后的结果和公倍数计算得到修正模。

步骤206、根据修正模和修正因子,确定被除数和除数的模。

具体的,被除数和除数的模可以表示为:

r=amodb

其中,a表示被除数;b表示除数,r表示被除数a和除数b的模。

对于任意一个修正因子f,根据取模运算的性质,有如下关系:

r′=afmodbf=(amodb)·f=rf

r=amodb=(afmodbf)/f=r′/f

其中,r′表示修正模。可以理解的,上式中的被除数a和除数b的模即等于修正模r′与修正因子f的商。

进一步的,当除数集合包含i个除数b时,则被除数a和除数b

r

需要说明的是,本申请实施例中相同的字符所代表的含义均相同,在上述已进行说明的字符,后面不再赘述。

上述取模运算方法,通过除数和除数所在除数集合的公倍数确定的修正因子,结合被除数以及公倍数确定修正模;根据修正模和修正因子,确定被除数和除数的模。由于不需要进行多次迭代运算就能够快速计算得到取模运算结果,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法的由于较多次的迭代计算过程,导致的运算效率过低的问题。

在一个实施例中,结合图2,参照图3,步骤204具体包括:

步骤302、根据被除数、修正因子,确定修正后的被除数。

具体的,根据下式计算的到修正后的被除数a′:

a′=af

可以理解的,当除数集合包含i个除数b时,各除数b

a′=af

需要说明的是,下述均以除数集合包含i个除数b进行说明。

步骤304、根据修正后的被除数和公倍数,确定修正模。

本实施例中,利用被除数、修正因子确定的修正后的被除数,结合公倍数确定修正模,无需迭代运算,即可快速得到修正模的运算结果。

在一个实施例中,结合图3,参照图4,步骤304具体包括:

步骤402、对修正后的被除数和公倍数进行求商运算,得到第一商值。

具体的,将修正后的被除数和公倍数根据下式计算得到第一商值:

其中,q′

步骤404、根据修正后的被除数、公倍数和第一商值,计算得到修正模。

具体的,将修正后的被除数a′、公倍数和第一商值根据下式计算得到修正模:

r′

本实施例中,能够通过修正后的被除数和公倍数计算得到的第一商值,进一步结合修正后的被除数和公倍数计算得到修正模,从而提高被除数与除数的模的运算效率。

在一个实施例中,结合图4,参照图5,步骤404包括:

步骤502、若公倍数不为2的整数次幂,则根据预设的第一映射关系确定公倍数对应的第一参数组。

其中,第一映射关系包括公倍数参数组之间的对应关系。

需要说明的是,公倍数不为2的整数次幂可以表示为g≠2

示例性的,预先存储的第一映射关系具体可参照下表2:

表2

例如,公倍数g为384时,对应的第一参数组(N

步骤504、根据第一参数组以及修正后的被除数,计算得到第一商值。

具体的,将第一参数组以及修正后的被除数根据下式计算得到第一商值:

在实际应用中,将得到第一商值的除法运算,转换为乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路60中包括乘法器601、加法器602和移位器603;其中移位器603可以是移位寄存器。具体的,首先利用乘法器601计算M

本实施例中,当公倍数不为2的整数次幂时,通过公倍数在预先存储的第一映射关系中对应的第一参数组以及修正后的被除数,计算得到第一商值,从而提高被除数与除数的模的运算效率。另外,针对除数集合的形成,只需存储一组公倍数对应的第一映射关系,无需对每个除数单独存储,节省了参数存储资源。

在一个实施例中,结合图4,参照图5,步骤404包括:包括:

步骤506、若公倍数为2的整数次幂,则对修正后的被除数进行二进制转化,得到修正后的被除数的二进制数。

需要说明的是,公倍数为2的整数次幂可以表示为g=2

例如,假设g=256=2

步骤508、根据公倍数对应的2的次幂数对修正后的被除数的二进制数进行移位运算,得到所述第一商值。

结合步骤506的示例,将a′=1010000010000和g=2

本实施例中,当公倍数为2的整数次幂时,则根据修正后的被除数的二进制数以及公倍数计算得到第一商值,简化了第一商值的计算过程,从而进一步提高了被除数与除数的模的运算效率。

在一个实施例中,结合图2,参照图7,步骤206包括:

步骤702、若修正因子不为2的整数次幂,则根据预设的第二映射关系确定修正因子对应的第二参数组。

其中,第二映射关系包括修正因子与参数组之间的对应关系。

具体的,修正因子不为2的整数次幂可以表示为f

步骤704、根据第二参数组以及修正模,计算得到被除数和除数的模。

具体的,将第二参数组以及修正模根据下式计算得到被除数和除数的模:

在实际应用中,将得到第一商值的除法运算,转换为乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路60中包括乘法器601、加法器602和移位器603。具体的,首先利用乘法器601计算M

本实施例中,当修正因子不为2的整数次幂时,通过修正因子在预先存储的第二映射关系中对应的第二参数组以及修正模,计算得到被除数和除数的模,从而提高被除数与除数的模的运算效率。

在一个实施例中,结合图2,参照图7,步骤206包括:

步骤706、若确定修正因子为2的整数次幂,则对修正模进行二进制转化,得到修正模的二进制数。

需要说明的是,修正因子为2的整数次幂可以表示为f

示例性的,当除数集合b

表3

需要说明的是,对于表3中的修正因子f

步骤708、根据修正因子对应的2的次幂数对修正模的二进制数进行移位运算,得到被除数和除数的模。

例如,结合表2和表3,假设f

本实施例中,若确定修正因子为2的整数次幂,则根据修正因子对应的2的次幂数对修正模进行二进制转化得到的修正模的二进制数进行移位运算,得到被除数与除数的模,简化了被除数与除数的模的计算过程,从而进一步提高了被除数与除数的模的运算效率。

综上,参照图8,取模运算方法的步骤可以总结为:

步骤801、对于除数集合{b

步骤802、计算修正后的被除数a′=af

步骤803、计算修正后的被除数a′除以最小公倍数g的商

步骤804、计算修正后的被除数a′除以最小公倍数g的余数r′

步骤805、计算最终的取模结果为r=amodb=r′

为了更好的理解本申请实施例所提供的取模运算方法,下面以5G NR系统或未来的通信系统中的物理上行共享信道和物理下行共享信道的数据编码采用了LDPC码为例进行示例性说明,LDPC码的校验矩阵中包含循环移位矩阵,而循环移位值P

假设a

结合表1和表3可知,b

查表2可得,公倍数g

由于f

在一个实施例中,参照图9,本申请实施例还提供一种取模运算方法,该方法包括:

步骤902、获取被除数和除数。

需要说明的是,本步骤中关于被除数和除数可参照上述的步骤202,此处不再赘述。

步骤904、根据预设的第三映射关系确定所述除数对应的第三参数组。

其中,第三映射关系包括除数和参数组之间的对应关系。

另外,第三参数组可以表示为(N

步骤906、根据被除数、第三参数组以及除数,确定被除数和除数的模。

具体的,将被除数、第三参数组以及除数根据以下公式,计算得到被除数和除数的模:

在实际应用中,将得到被除数和除数的模的除法运算,转换为减法、乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路还可以包括减法器604。具体的,首先利用乘法器601计算M

本实施例中,根据被除数、修正因子对应第三参数组以及除数,可直接计算得到被除数和除数的模,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法由于较多次的迭代计算过程,导致的运算效率过低的问题。

应该理解的是,虽然图2-5、7、8的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-5、7、8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,提供一种取模运算电路,该取模运算电路用于执行本申请实施例提供的取模运算方法。

在一种实现方式中,本申请实施例提供的取模运算电路60的结构可参考图6,此处不再赘述。

上述图6中的取模运算电路中各个模块的划分仅仅用于举例说明,在其他实施例中,可将取模运算电路按照需要划分为不同的模块,以完成上述取模运算电路执行取模运算方法的全部或部分功能。

在一个实施例中,参照图10,本申请实施例提供一种取模运算装置100,该装置100包括:

第一确定模块1001,用于根据除数和除数所在除数集合的公倍数确定修正因子。

第二确定模块1002,用于根据被除数、修正因子和公倍数确定修正模。

第三确定模块1003,用于根据修正模和修正因子,确定被除数和除数的模。

在其中一个实施例中,第二确定模块1002,用于根据所述被除数、所述修正因子,确定修正后的被除数;根据所述修正后的被除数和所述公倍数,确定所述修正模。

在其中一个实施例中,第二确定模块1002,用于对所述修正后的被除数和所述公倍数进行求商运算,得到第一商值;根据所述修正后的被除数、所述公倍数和所述第一商值,计算得到所述修正模。

在其中一个实施例中,第二确定模块1002,用于若所述公倍数不为2的整数次幂,则根据预设的第一映射关系确定所述公倍数对应的第一参数组,所述第一映射关系包括公倍数参数组之间的对应关系;根据所述第一参数组以及所述修正后的被除数,计算得到所述第一商值。

在其中一个实施例中,第二确定模块1002,用于若所述公倍数为2的整数次幂,则对所述修正后的被除数进行二进制转化,得到所述修正后的被除数的二进制数;

根据所述公倍数对应的2的次幂数对所述修正后的被除数的二进制数进行移位运算,得到所述第一商值。

在其中一个实施例中,第三确定模块1003,用于若所述修正因子不为2的整数次幂,则根据预设的第二映射关系确定所述修正因子对应的第二参数组,所述第二映射关系包括修正因子与参数组之间的对应关系;根据所述第二参数组以及所述修正模,计算得到所述被除数和所述除数的模。

在其中一个实施例中,第三确定模块1003,用于若确定所述修正因子为2的整数次幂,则对所述修正模进行二进制转化,得到所述修正模的二进制数;根据所述修正因子对应的2的次幂数对所述修正模的二进制数进行移位运算,得到所述被除数和所述除数的模。

在其中一个实施例中,所述公倍数为最小公倍数。

在一个实施例中,参照图11,本申请实施例提供又一种取模运算装置110,该装置110包括:

获取模块1101,用于获取被除数和除数。

第一确定模块1102,用于根据预设的第三映射关系确定除数对应的第三参数组;第三映射关系包括除数和参数组之间的对应关系.

第二确定模块1103,用于根据被除数、第三参数组以及除数,确定被除数和除数的模。

图11为一个实施例中电子设备的内部结构示意图。该电子设备可以是手机、平板电脑、笔记本电脑、台式电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、穿戴式设备等任意终端设备。该电子设备包括通过系统总线连接的处理器和存储器。其中,该处理器可以包括一个或多个处理模块。处理器可为CPU(Central Processing Unit,中央处理模块)或DSP(Digital Signal Processing,数字信号处理器)等。存储器可包括非易失性存储介质及内存储器。非易失性存储介质存储有操作系统和计算机程序。该计算机程序可被处理器所执行,以用于实现以下各个实施例所提供的一种取模运算方法。内存储器为非易失性存储介质中的操作系统计算机程序提供高速缓存的运行环境。

本申请实施例中提供的取模运算电路中的各个模块的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在电子设备的存储器上。该计算机程序被处理器执行时,实现本申请实施例中所描述方法的步骤。

本申请实施例还提供了一种计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当计算机可执行指令被一个或多个处理器执行时,使得处理器执行取模运算方法的步骤。

本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行取模运算方法。

本申请所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。非易失性存储器可包括ROM(Read-Only Memory,只读存储器)、PROM(Programmable Read-only Memory,可编程只读存储器)、EPROM(Erasable ProgrammableRead-Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically ErasableProgrammable Read-only Memory,电可擦除可编程只读存储器)或闪存。易失性存储器可包括RAM(Random Access Memory,随机存取存储器),它用作外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如SRAM(Static Random Access Memory,静态随机存取存储器)、DRAM(Dynamic Random Access Memory,动态随机存取存储器)、SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存取存储器)、双数据率DDRSDRAM(Double Data Rate Synchronous Dynamic Random Access memory,双数据率同步动态随机存取存储器)、ESDRAM(Enhanced Synchronous Dynamic Random Access memory,增强型同步动态随机存取存储器)、SLDRAM(Sync Link Dynamic Random Access Memory,同步链路动态随机存取存储器)、RDRAM(Rambus Dynamic Random Access Memory,总线式动态随机存储器)、DRDRAM(Direct Rambus Dynamic Random Access Memory,接口动态随机存储器)。

以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 取模运算方法、电路、电子设备和计算机可读存储介质
  • 一种矩阵运算方法、电子设备及计算机可读存储介质
技术分类

06120113793309