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

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

Info

Publication number
CN113805846A
CN113805846A CN202111026781.8A CN202111026781A CN113805846A CN 113805846 A CN113805846 A CN 113805846A CN 202111026781 A CN202111026781 A CN 202111026781A CN 113805846 A CN113805846 A CN 113805846A
Authority
CN
China
Prior art keywords
dividend
divisor
modulus
common multiple
determining
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.)
Pending
Application number
CN202111026781.8A
Other languages
English (en)
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.)
Zeku Technology Beijing Corp Ltd
Original Assignee
Zeku Technology Beijing Corp 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 Zeku Technology Beijing Corp Ltd filed Critical Zeku Technology Beijing Corp Ltd
Priority to CN202111026781.8A priority Critical patent/CN113805846A/zh
Publication of CN113805846A publication Critical patent/CN113805846A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/727Modulo N arithmetic, with N being either (2**n)-1,2**n or (2**n)+1, e.g. mod 3, mod 4 or mod 5

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请涉及一种取模运算方法、电路、电子设备和计算机可读存储介质。所述取模运算方法应用于取模运算电路中,所述方法包括:根据除数和所述除数所在除数集合的公倍数确定修正因子。根据被除数、所述修正因子和所述公倍数确定修正模。根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。采用本方法能够避免需要多次迭代得到取模结果,而造成的运算效率过低的问题。

Description

取模运算方法、电路、电子设备和计算机可读存储介质
技术领域
本申请涉及取模运算技术领域,特别是涉及一种取模运算方法、电路、电子设备和计算机可读存储介质。
背景技术
在数字通信、信号处理、取模运算、密码学等众多领域中,经常会涉及到取模运算。为了加速数据处理,取模运算多应用于集成电路中。但是,在集成电路设计中,硬件描述语言并没有可综合的取模或除法语句。传统的取模运算实现方法是采用竖式除法的方式,通过多次移位、比较和减法操作的迭代计算,从被除数中重复地减去除数移位后的值,直到被除数小于除数为止,得到的结果即为余数。
但传统的取模运算实现方法需要较多次数的迭代才能得到取模结果,导致运算效率过低。
发明内容
本申请实施例提供了一种取模运算方法、电路、电子设备和计算机可读存储介质,能够避免需要多次迭代得到取模结果,而造成的运算效率过低的问题。
一种取模运算方法,所述取模运算方法应用于取模运算电路中,所述方法包括:
根据除数和所述除数所在除数集合的公倍数确定修正因子。
根据被除数、所述修正因子和所述公倍数确定修正模。
根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
一种取模运算方法,所述取模运算方法应用于取模运算电路中,所述方法还包括:
获取被除数和除数。
根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。
根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。
一种取模运算电路,所述取模运算电路用于执行上述的取模运算方法。
一种取模运算装置,所述装置包括:
第一确定模块,用于根据除数和所述除数所在除数集合的公倍数确定修正因子;
第二确定模块,用于根据被除数、所述修正因子和所述公倍数确定修正模;
第三确定模块,用于根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
一种取模运算装置,所述装置包括:
获取模块,用于获取被除数和除数;
第一确定模块,用于根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括所述除数和参数组之间的对应关系;
第二确定模块,用于根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。
一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据除数和所述除数所在除数集合的公倍数确定修正因子。
根据被除数、所述修正因子和所述公倍数确定修正模。
根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
一种电子设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取被除数和除数。
根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。
根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
根据除数和所述除数所在除数集合的公倍数确定修正因子。
根据被除数、所述修正因子和所述公倍数确定修正模。
根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取被除数和除数。
根据预设的第三映射关系确定所述除数对应的第三参数组;所述第三映射关系包括除数和参数组之间的对应关系。
根据所述被除数、所述第三参数组以及所述除数,确定所述被除数和所述除数的模。
上述取模运算方法、电路、电子设备和计算机可读存储介质,通过除数和除数所在除数集合的公倍数确定的修正因子,结合被除数以及公倍数确定修正模;根据修正模和修正因子,确定被除数和除数的模。能够快速计算得到取模运算结果,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法的由于较多次的迭代计算过程,导致的运算效率过低的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中取模运算方法的应用环境图;
图2为一个实施例中取模运算方法的流程图示意图;
图3为一个实施例中取模运算方法的流程图示意图;
图4为一个实施例中取模运算方法的流程图示意图;
图5为一个实施例中取模运算方法的流程图示意图;
图6为一个实施例中取模运算电路的结构框图;
图7为一个实施例中取模运算方法的流程图示意图;
图8为一个实施例中取模运算方法的流程图示意图;
图9为一个实施例中取模运算方法的流程图示意图;
图10为一个实施例中取模运算装置的结构框图;
图11为又一个实施例中取模运算装置的结构框图;
图12为一个实施例中电子设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一客户端称为第二客户端,且类似地,可将第二客户端称为第一客户端。第一客户端和第二客户端两者都是客户端,但其不是同一客户端。
在数字通信、信号处理、图像处理、密码学等众多领域中,经常会涉及到整数取模运算。对于无符号整数而言,a对b的模等于被除数a除以除数b后的余数,可以表示为
Figure BDA0003243595630000051
以通信领域为例,(5th-Generation wireless communication technology,5G)新空口(new radio,NR)通信系统的发射机和接收机功能模块图如图1所示。其中,对应于发射机的编码模块和接收机的解码模块,5G NR系统的物理上行共享信道和物理下行共享信道的数据编码采用了低密度奇偶校验码(low density parity check,LDPC)码,LDPC码的校验矩阵中包含循环移位矩阵,而循环移位值Pi,j就是通过取模运算得到的。计算公式为Pi,j=Vi,jmodZc,其中Vi,j是各循环移位矩阵的循环移位基准值,取值范围是0≤Vi,j≤383;Zc是校验矩阵提升值,取值如下表1所示。
表1
Figure BDA0003243595630000052
Figure BDA0003243595630000061
但是,在集成电路设计中,硬件描述语言并没有可综合的取模或除法语句。传统的取模运算实现方法是采用竖式除法的方式,通过多次移位、比较和减法操作的迭代计算,从被除数中重复地减去除数移位后的值,直到被除数小于除数为止,得到的结果即为余数。当被除数位数较大时,需要较多的迭代次数才能得到取模结果,导致取模运算效率过低。
下面将结合图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表示为
Figure BDA0003243595630000071
则被除数a与商除数b的模(即余数)可以表示为r=amodb,则有a=qb+r,0≤r≤b-1。
进一步的,结合上述,假设除数所在除数集合的公倍数为g,根据下式计算得到修正因子f:
f=g/b
可以理解的,当除数集合包含i个除数b时,各除数bi所对应的修正因子表示fi,则根据下式计算得到第i个除数对应的修正因子fi
fi=g/bi
步骤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和除数bi的模ri可以表示为:
ri=amodbi=(afimodbifi)/fi=r′i/fi
需要说明的是,本申请实施例中相同的字符所代表的含义均相同,在上述已进行说明的字符,后面不再赘述。
上述取模运算方法,通过除数和除数所在除数集合的公倍数确定的修正因子,结合被除数以及公倍数确定修正模;根据修正模和修正因子,确定被除数和除数的模。由于不需要进行多次迭代运算就能够快速计算得到取模运算结果,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法的由于较多次的迭代计算过程,导致的运算效率过低的问题。
在一个实施例中,结合图2,参照图3,步骤204具体包括:
步骤302、根据被除数、修正因子,确定修正后的被除数。
具体的,根据下式计算的到修正后的被除数a′:
a′=af
可以理解的,当除数集合包含i个除数b时,各除数bi所对应的修正因子为fi,则根据下式计算得到bi对应的修正后的被除数为:
a′=afi
需要说明的是,下述均以除数集合包含i个除数b进行说明。
步骤304、根据修正后的被除数和公倍数,确定修正模。
本实施例中,利用被除数、修正因子确定的修正后的被除数,结合公倍数确定修正模,无需迭代运算,即可快速得到修正模的运算结果。
在一个实施例中,结合图3,参照图4,步骤304具体包括:
步骤402、对修正后的被除数和公倍数进行求商运算,得到第一商值。
具体的,将修正后的被除数和公倍数根据下式计算得到第一商值:
Figure BDA0003243595630000091
其中,q′i表示bi对应的第一商值。
步骤404、根据修正后的被除数、公倍数和第一商值,计算得到修正模。
具体的,将修正后的被除数a′、公倍数和第一商值根据下式计算得到修正模:
r′i=a′-q′ig
本实施例中,能够通过修正后的被除数和公倍数计算得到的第一商值,进一步结合修正后的被除数和公倍数计算得到修正模,从而提高被除数与除数的模的运算效率。
在一个实施例中,结合图4,参照图5,步骤404包括:
步骤502、若公倍数不为2的整数次幂,则根据预设的第一映射关系确定公倍数对应的第一参数组。
其中,第一映射关系包括公倍数参数组之间的对应关系。
需要说明的是,公倍数不为2的整数次幂可以表示为g≠2A;其中A为非负整数。A在不同的关系式中的值可以不同。公倍数对应的参数组可以表示为(N1,M1,L1)。
示例性的,预先存储的第一映射关系具体可参照下表2:
表2
Figure BDA0003243595630000101
例如,公倍数g为384时,对应的第一参数组(N1,M1,L1)为(23,21845,16256)。
步骤504、根据第一参数组以及修正后的被除数,计算得到第一商值。
具体的,将第一参数组以及修正后的被除数根据下式计算得到第一商值:
Figure BDA0003243595630000102
在实际应用中,将得到第一商值的除法运算,转换为乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路60中包括乘法器601、加法器602和移位器603;其中移位器603可以是移位寄存器。具体的,首先利用乘法器601计算M1与a′的乘积,乘法器601将M1与a′的乘积输入至加法器602,以便加法器602计算该乘积与L1的和值;之后,加法器602将该和值输入至移位器603,使得移位器603根据N1对和值进行移位计算,得到第一商值。
本实施例中,当公倍数不为2的整数次幂时,通过公倍数在预先存储的第一映射关系中对应的第一参数组以及修正后的被除数,计算得到第一商值,从而提高被除数与除数的模的运算效率。另外,针对除数集合的形成,只需存储一组公倍数对应的第一映射关系,无需对每个除数单独存储,节省了参数存储资源。
在一个实施例中,结合图4,参照图5,步骤404包括:包括:
步骤506、若公倍数为2的整数次幂,则对修正后的被除数进行二进制转化,得到修正后的被除数的二进制数。
需要说明的是,公倍数为2的整数次幂可以表示为g=2A;其中A为非负整数。
例如,假设g=256=28,a′=5136,将a′表示为高位优先的二进制形式:1010000010000。
步骤508、根据公倍数对应的2的次幂数对修正后的被除数的二进制数进行移位运算,得到所述第一商值。
结合步骤506的示例,将a′=1010000010000和g=28带入公式
Figure BDA0003243595630000111
中,则表示对a′=1010000010000从左至右取5位,得到q′i的二进制形式为10100,则最终得到q′i的十进制为20。
本实施例中,当公倍数为2的整数次幂时,则根据修正后的被除数的二进制数以及公倍数计算得到第一商值,简化了第一商值的计算过程,从而进一步提高了被除数与除数的模的运算效率。
在一个实施例中,结合图2,参照图7,步骤206包括:
步骤702、若修正因子不为2的整数次幂,则根据预设的第二映射关系确定修正因子对应的第二参数组。
其中,第二映射关系包括修正因子与参数组之间的对应关系。
具体的,修正因子不为2的整数次幂可以表示为fi≠2A。修正因子对应的参数组可表示为(N2,M2,L2)。
步骤704、根据第二参数组以及修正模,计算得到被除数和除数的模。
具体的,将第二参数组以及修正模根据下式计算得到被除数和除数的模:
Figure BDA0003243595630000121
在实际应用中,将得到第一商值的除法运算,转换为乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路60中包括乘法器601、加法器602和移位器603。具体的,首先利用乘法器601计算M2与r′i的乘积,乘法器601将乘积输入至加法器602,以便加法器602计算该乘积与L2的和值;之后,加法器602将和值输入至移位器603,使得移位器603根据N2对和值进行移位计算,得到被除数和除数的模。
本实施例中,当修正因子不为2的整数次幂时,通过修正因子在预先存储的第二映射关系中对应的第二参数组以及修正模,计算得到被除数和除数的模,从而提高被除数与除数的模的运算效率。
在一个实施例中,结合图2,参照图7,步骤206包括:
步骤706、若确定修正因子为2的整数次幂,则对修正模进行二进制转化,得到修正模的二进制数。
需要说明的是,修正因子为2的整数次幂可以表示为fi=2A;其中A为非负整数。
示例性的,当除数集合bi为表1中的ZC时,则修正因子具体可参照下表3:
表3
Figure BDA0003243595630000131
需要说明的是,对于表3中的修正因子fi对应的数据和imax对应的数据可以选择其中一个进行存储,imax表示修正因子fi=2A中A的最大值。进一步的,修正因子可以根据imax和序号i计算得到。具体的,根据公式
Figure BDA0003243595630000132
计算得到修正因子;其中,序号i为非负整数。例如,参照表3,对于集合序号j=0的修正因子对应的序号i={0,…,7}。
步骤708、根据修正因子对应的2的次幂数对修正模的二进制数进行移位运算,得到被除数和除数的模。
例如,结合表2和表3,假设fi=24,将r′i=208表示为高位优先的9位二进制形式为011010000,ri则等于r′i的除去低4位的其他位01101表示的数,即十进制数13。
本实施例中,若确定修正因子为2的整数次幂,则根据修正因子对应的2的次幂数对修正模进行二进制转化得到的修正模的二进制数进行移位运算,得到被除数与除数的模,简化了被除数与除数的模的计算过程,从而进一步提高了被除数与除数的模的运算效率。
综上,参照图8,取模运算方法的步骤可以总结为:
步骤801、对于除数集合{bi},取各除数bi的最小公倍数为g,乘数fi=g/bi
步骤802、计算修正后的被除数a′=afi
步骤803、计算修正后的被除数a′除以最小公倍数g的商
Figure BDA0003243595630000141
步骤804、计算修正后的被除数a′除以最小公倍数g的余数r′i=a′-q′ig。
步骤805、计算最终的取模结果为r=amodb=r′i/fi
为了更好的理解本申请实施例所提供的取模运算方法,下面以5G NR系统或未来的通信系统中的物理上行共享信道和物理下行共享信道的数据编码采用了LDPC码为例进行示例性说明,LDPC码的校验矩阵中包含循环移位矩阵,而循环移位值Pi,j(即模ri,j)通过取模运算得到。计算公式为ri,j=ai,jmodbi,j,其中ai,j表示各循环移位矩阵的循环移位基准值,取值范围是0≤ai,j≤383;bi,j是校验矩阵提升值,取值如下表所示。这里,ai,j表示被除数,bi,j表示除数。
假设ai,j=321,集合序号j=5,i=2;则bi,j=22时,ai,j与bi,j的模表示为ri,j=ai, jmodbi,j=321mod 22。
结合表1和表3可知,bi,j=22时,对应的修正因子ai,j=24=16,将被除数ai,j与该修正因子ai,j相乘,得到修正后的被除数a′i,j=ai,jfi,j=321*16=5136。
查表2可得,公倍数gj=352,参数N1=23,M1=23831,L1=2976,计算修正后的被除数a′i,j除以gj的商
Figure BDA0003243595630000142
余数r′i,j=a′i,j-q′i, jgi=5136-14*352=208。
由于fi,j=24,则将r′i,j=208表示为高位优先的9位二进制形式为011010000。公式ri,j=r′i,j/fi,j则可以表示为:ri,j等于r′i,j的除去低4位的其他位01101表示的数。基于此,最终计算得到ai,j=321和bi,j=22的模为十进制数13。
在一个实施例中,参照图9,本申请实施例还提供一种取模运算方法,该方法包括:
步骤902、获取被除数和除数。
需要说明的是,本步骤中关于被除数和除数可参照上述的步骤202,此处不再赘述。
步骤904、根据预设的第三映射关系确定所述除数对应的第三参数组。
其中,第三映射关系包括除数和参数组之间的对应关系。
另外,第三参数组可以表示为(N3,M3,L3),
步骤906、根据被除数、第三参数组以及除数,确定被除数和除数的模。
具体的,将被除数、第三参数组以及除数根据以下公式,计算得到被除数和除数的模:
Figure BDA0003243595630000151
在实际应用中,将得到被除数和除数的模的除法运算,转换为减法、乘法、加法以及移位结合的运算方式。因此,参照图6,取模运算电路还可以包括减法器604。具体的,首先利用乘法器601计算M3与a的乘积,乘法器601将M3与a的乘积输入至加法器602,以便加法器602计算该乘积与L3的和值;之后,加法器602将和值输入至移位器603,使得移位器603根据N3对和值进行移位计算,得到移位后的值,移位器603将移位后的值发送至乘法器601,乘法器601计算移位后的值与bi的乘积,并将移位后的值与bi的乘积输入至减法器604,以便减法器604计算a与该乘积的差值,得到被除数和除数的模。
本实施例中,根据被除数、修正因子对应第三参数组以及除数,可直接计算得到被除数和除数的模,使得取模运算在实际应用中能够更好的满足高效快速的运算要求。从而解决传统的取模运算实现方法由于较多次的迭代计算过程,导致的运算效率过低的问题。
应该理解的是,虽然图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,接口动态随机存储器)。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种取模运算方法,其特征在于,所述取模运算方法应用于取模运算电路中,所述方法包括:
根据除数和所述除数所在除数集合的公倍数确定修正因子;
根据被除数、所述修正因子和所述公倍数确定修正模;
根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
2.根据权利要求1所述的方法,其特征在于,所述根据被除数、所述修正因子和所述公倍数确定修正模,包括:
根据所述被除数、所述修正因子,确定修正后的被除数;
根据所述修正后的被除数和所述公倍数,确定所述修正模。
3.根据权利要求2所述的方法,所述根据所述修正后的被除数和所述公倍数,确定所述修正模,包括:
对所述修正后的被除数和所述公倍数进行求商运算,得到第一商值;
根据所述修正后的被除数、所述公倍数和所述第一商值,计算得到所述修正模。
4.根据权利要3所述的方法,所述对所述修正后的被除数和所述公倍数进行求商运算,得到第一商值,包括:
若所述公倍数为2的整数次幂,则对所述修正后的被除数进行二进制转化,得到所述修正后的被除数的二进制数;
根据所述公倍数对应的2的次幂数对所述修正后的被除数的二进制数进行移位运算,得到所述第一商值。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述根据所述修正模和所述修正因子,确定所述被除数和所述除数的模,包括:
若所述修正因子不为2的整数次幂,则根据预设的第二映射关系确定所述修正因子对应的第二参数组,所述第二映射关系包括修正因子与参数组之间的对应关系;
根据所述第二参数组以及所述修正模,计算得到所述被除数和所述除数的模。
6.根据权利要求1-4任一项所述的方法,其特征在于,所述公倍数为最小公倍数。
7.一种取模运算电路,其特征在于,所述取模运算电路用于执行权利要求1-9任一项所述的取模运算方法。
8.一种取模运算装置,其特征在于,所述装置包括:
第一确定模块,用于根据除数和所述除数所在除数集合的公倍数确定修正因子;
第二确定模块,用于根据被除数、所述修正因子和所述公倍数确定修正模;
第三确定模块,用于根据所述修正模和所述修正因子,确定所述被除数和所述除数的模。
9.一种电子设备,包括存储器及处理器,所述存储器中储存有计算机程序,其特征在于,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法的步骤。
CN202111026781.8A 2021-09-02 2021-09-02 取模运算方法、电路、电子设备和计算机可读存储介质 Pending CN113805846A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111026781.8A CN113805846A (zh) 2021-09-02 2021-09-02 取模运算方法、电路、电子设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111026781.8A CN113805846A (zh) 2021-09-02 2021-09-02 取模运算方法、电路、电子设备和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN113805846A true CN113805846A (zh) 2021-12-17

Family

ID=78894614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111026781.8A Pending CN113805846A (zh) 2021-09-02 2021-09-02 取模运算方法、电路、电子设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113805846A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840175A (zh) * 2022-06-30 2022-08-02 中科声龙科技发展(北京)有限公司 一种实现取余运算的装置、方法及运算芯片

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840175A (zh) * 2022-06-30 2022-08-02 中科声龙科技发展(北京)有限公司 一种实现取余运算的装置、方法及运算芯片
CN114840175B (zh) * 2022-06-30 2022-09-13 中科声龙科技发展(北京)有限公司 一种实现取余运算的装置、方法及运算芯片

Similar Documents

Publication Publication Date Title
TWI383595B (zh) 用於低密度奇偶校驗解碼器之有效校驗節點訊息轉換近似
US10949168B2 (en) Compressing like-magnitude partial products in multiply accumulation
CN113746620B (zh) 同态加密方法、设备、介质及计算机程序产品
US20160299743A1 (en) Modulo calculation using polynomials
CN117075841B (zh) Srt运算电路
US20040167956A1 (en) Method and apparatus for executing division
CN111813372B (zh) 一种高精度低时延实现32位整数除法的方法及装置
CN112256235A (zh) 除运算方法及除法器、除法装置、电子设备、存储介质
CN113805846A (zh) 取模运算方法、电路、电子设备和计算机可读存储介质
CN111399803B (zh) 除法运算方法、装置、存储介质及电子设备
US10833868B2 (en) Direct anonymous attestation-based apparatus and method
CN103339665B (zh) 用于多位数除法或模变换的方法
Pornin Optimized binary gcd for modular inversion
US10216481B2 (en) Digit recurrence division with scaling and digit selection using intermediate value
CN110796247B (zh) 一种数据处理方法、装置、处理器及计算机可读存储介质
CN113126954B (zh) 浮点数乘法计算的方法、装置和算术逻辑单元
Matutino et al. An efficient scalable RNS architecture for large dynamic ranges
CN108228138B (zh) 一种sidh中特殊域快速模乘的方法
CN103401650A (zh) 一种(n,1,m)有误码卷积码的盲识别方法
KR100902847B1 (ko) 분할 테이블을 이용한 유한체 곱셈 장치, 그 방법 및기록매체
CN112363687A (zh) 一种整数取模运算方法、装置及终端设备
RU2559771C2 (ru) Устройство для основного деления модулярных чисел
WO2022115108A1 (en) An architecture for small and efficient modular multiplication using carry-save adders
CN113885836A (zh) 取模运算方法、装置、电子设备及计算机可读存储介质
US10318245B2 (en) Device and method for determining an inverse of a value related to a modulus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination