CN109669667A - 一种在定点dsp芯片上实现的数据处理方法及装置 - Google Patents
一种在定点dsp芯片上实现的数据处理方法及装置 Download PDFInfo
- Publication number
- CN109669667A CN109669667A CN201710964945.9A CN201710964945A CN109669667A CN 109669667 A CN109669667 A CN 109669667A CN 201710964945 A CN201710964945 A CN 201710964945A CN 109669667 A CN109669667 A CN 109669667A
- Authority
- CN
- China
- Prior art keywords
- fixed
- point number
- point
- scaled values
- sequence
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4873—Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种在定点DSP芯片上实现的数据处理方法及装置。本申请中,通过将作为被除数的第一浮点数和作为除数的第二浮点数进行定标,从而将其转化为特定定标值的定点数,并通过迭代过程计算得到所述第一操作数对应的操作数序列A(m),再通过对该A(m)序列中的第M个定点数进行移位得到所述被除数除以除数的商,这里M=log2(NB),NB为除数的定点表示所使用的位数,与现有技术相比,可降低实现成本,并可提高运算精度和计算效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种在定点数字信号处理(digitalsignal processing,,DSP)芯片上实现的数据处理方法及装置。
背景技术
近年来,DSP芯片技术的飞速发展使其具有高速数据处理能力和强大的指令系统,以致能快速和实时地实现各种数字信号处理运算,因此获得广泛地应用。其中,定点DSP芯片由于其价格低、运算速度较快、所占内存单元少等特点,故占据了芯片的主要市场。
目前的定点DSP芯片中尚无除法指令和硬件除法器,其除法运算功能大都通过相应的算法来完成。因此,如何提供一种易于实现且运算精度和计算效率较高的基于定点DSP芯片的除法运算,是目前业界需要解决的技术问题。
发明内容
本申请实施例提供了一种在定点DSP芯片上实现的数据处理方法及装置。
第一方面,提供一种在定点DSP芯片上实现的数据处理方法,包括:
获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;
对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);
确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
可选地,所述对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,包括:
检测得到所述第二定点数中高位无效位数Wb,Wb<NB-QB-1;
将所述第二定点数左移Wb位,左移Wb位后得到的定点数的定标值为QB1=(QB+Wb);
将左移Wb位后得到的定点数的小数点位置左移(NB-QB-Wb-1)位,小数点位置左移(NB-QB-Wb-1)位的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将小数点位置左移(NB-QB-Wb-1)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,包括:
检测得到所述第二定点数中高位无效位数Wb,Wb≥NB-QB-1;
将所述第二定点数左移(NB-QB-1)位,左移(NB-QB-1)位得到的定点数的定标值为QB1=(NB-1);
将左移(NB-QB-1)位得到的定点数左移(Wb+QB+1-NB)位,左移(Wb+QB+1-NB)位得到的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将左移(Wb+QB+1-NB)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述M次迭代中的每次迭代过程包括:
根据以下公式,计算中间值序列T(m)以及操作数序列A(m)中第m个定点数,m为当前迭代次数;
Y=Y*Y,Y为定标值为Qt1的定点数,位数为NB,Y的初始值为1-B,B为所述第二定点数;
Tm=1+Y,Tm表示中间值序列T(m)中的第m个定点数;
Am=Am-1*Tm-1,Am表示操作数序列A(m)中的第m个定点数。
可选地,所述操作数序列A(m)中第M个定点数A(M)的计算公式为:
AM=AM-1*TM-1,AM表示操作数序列A(m)中的第M个定点数,TM-1表示中间值序列T(m)中的第M-1个定点数。
第二方面,提供一种在定点DSP芯片上实现的数据处理装置,包括:
获取模块,用于获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
第一转化模块,用于将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
第二转化模块,用于将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
迭代模块,用于进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
商计算模块,用于根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);以及,确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
可选地,所述第二转化模块具体用于:
检测得到所述第二定点数中高位无效位数Wb,Wb<NB-QB-1;
将所述第二定点数左移Wb位,左移Wb位后得到的定点数的定标值为QB1=(QB+Wb);
将左移Wb位后得到的定点数的小数点位置左移(NB-QB-Wb-1)位,小数点位置左移(NB-QB-Wb-1)位的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将小数点位置左移(NB-QB-Wb-1)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述第二转化模块具体用于:
检测得到所述第二定点数中高位无效位数Wb,Wb≥NB-QB-1;
将所述第二定点数左移(NB-QB-1)位,左移(NB-QB-1)位得到的定点数的定标值为QB1=(NB-1);
将左移(NB-QB-1)位得到的定点数左移(Wb+QB+1-NB)位,左移(Wb+QB+1-NB)位得到的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将左移(Wb+QB+1-NB)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述迭代模块进行的所述M次迭代中的每次迭代包括:
根据以下公式,计算中间值序列T(m)以及操作数序列A(m)中第m个定点数,m为当前迭代次数;
Y=Y*Y,Y为定标值为Qt1的定点数,位数为NB,Y的初始值为1-B,B为所述第二定点数;
Tm=1+Y,Tm表示中间值序列T(m)中的第m个定点数;
Am=Am-1*Tm-1,Am表示操作数序列A(m)中的第m个定点数。
可选地,所述操作数序列A(m)中第M个定点数A(M)的计算公式为:
AM=AM-1*TM-1,AM表示操作数序列A(m)中的第M个定点数,TM-1表示中间值序列T(m)中的第M-1个定点数。
第三方面,提供一种DSP芯片,包括:处理器、存储器,所述处理器、存储器通过总线连接;所述处理器,用于读取存储器中的程序,执行:
获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;
对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);
确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
第四方面,提供一种计算机存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述第一方面中任一项所述的方法。
本申请的上述实施例中,通过将作为被除数的第一浮点数和作为除数的第二浮点数进行定标,从而将其转化为特定定标值的定点数,并通过迭代过程计算得到所述第一操作数对应的操作数序列A(m),再通过对该A(m)序列中的第M个定点数进行移位得到所述被除数除以除数的商,与现有技术相比,可降低实现成本,并可提高运算精度和计算效率。
附图说明
图1为本申请实施例提供的用于定点DSP芯片上除法运算的算法原理示意图;
图2a、图2b分别为本申请实施例中定点数转化示意图;
图3为本申请实施例提供的在定点DSP芯片上实现的除法运算流程示意图;
图4为本申请实施例提供的迭代流程示意图;
图5为本申请实施例提供的装置结构示意图;
图6为本申请实施例提供的DSP芯片的结构示意图。
具体实施方式
本发明提出了一种用于定点DSP芯片上除法运算的快速算法,其原理简述如下:
假设A是非负的被除数,B是正的除数,C为A除以B的商,即C=A/B,那么存在一个变换序列:Tm,m=0,1,…,M-1,使得:A×T0×T1···×TM-1→CT,B×T0×T1···×TM-1→2-L,那么C=2L×CT。
该变换序列Tm可由以下式(1)迭代地生成:
其中,m=0,1,…,M-1;M=log2NB,其中NB为除数B的位数。
上述迭代方程式(1)的初始值取为:
A0=A
事实上,商C可以写成:
那么根据式(1)的定义,则有:
记y=1-B0,那么有0<y<=0.5,并且
T0=2-B0=1+y……………………………………………………(5)
假设m=k时有那么当m=k+1时,Tk+1可表达为:
根据数学归纳法并结合式(5)和式(6)可知:
通常NB≥16,BM≈1,记那么有:
C=2LAM=2LCT…………………………………………………(8)
以上原理给出了无符号数除法运算的快速算法,将此应用于有符号数的除法运算,该算法浮点实现的程序流程图见图1所示,其中abs(.)为取绝对值运算,T(m)表示上述表达式中的Tm,A(m)表示上述表达式中的Am,其中m=0,1,…,M-1。
如图1所示,该流程可包括:
S101:获取输入的被除数a和除数b。除数a和被除数b为浮点数,除数b的位数为NB。
S102:判断除数b是否等于零,若b=0,则输出错误信息,比如输出“除数为零,算法异常结束”;否则,转入S103。
S103:变量初始化过程,包括对变量A,B,M,D,L进行初始化:
A=abs(a);
B=abs(b);
M=log2NB;
D=a*b;
L=0
S104:将除数B转化为取值范围在[0.5,1)之间的值。
具体地,该转化过程可包括:
S1041:判断变量B是否大于等于1,若B≥1,则转入S1042,否则转入S1043;
S1042:对变量B和变量L进行如下运算,之后转入S1041:
B=B/2;
L=L-1;
S1043:判断B是否小于0.5,若B<0.5,则转入S1044,否则转入S105,开始迭代过程以计算a除以b的商;
S1044:对变量B和变量L进行如下运算:
B=B*2;
L=L+1;
经过上述S104,变量B被转化为取值范围在[0.5,1)之间的值,变量L作为计数器,用于记录经过多少次除2的操作,使得变量B被转化为取值范围在[0.5,1)之间的值。
S105:变量初始化过程,包括对变量B(0),Y,A(0),T(0),m进行初始化:
B(0)=b;
Y=1-B(0);
A(0)=A;
T(0)=1+Y;
m=0
S106:将m递增1,即m=m+1;
S107:判断m是否大于M-1,若否,则转入S108,若是,则转入S109;
S108:计算A(m),之后转入S106;
A(m)=A(m-1)*T(m-1);
Y=Y*Y;
T(m)=1+Y;
S109:计算A(M),A(M)=A(M-1)*T(M-1)
经过上述S106至S109的迭代运算过程,可以计算得到序列A(m),其中,m=0,…,M。
S110:根据A(M)、L计算a除以b的商:
C=A(M)*2L
S111:判断变量D是否小于零,若小于零,则表明除数a和被除数b的符号不同(即一个是正数一个是负数),则转入S112;否则表明除数a和被除数b的符号相同(即同为正数或同为负数),则转入S113;
S112:将计算得到的商添加负数符号,并输出;
S113:输出计算得到的商。
为了在定点DSP芯片上有效地实现上述除法运算的快速算法,需要对快速算法中的相关变量进行合理的定标。定点DSP芯片完成的是整数运算或小数运算,数值格式中不包含阶码,通常定点DSP芯片是16位或24位数据宽度。以定点DSP芯片是16位为例,一个数的小数点处于16位中的哪一位,这就是数的定标。
本申请实施例中进行如下约定:记被除数A的位长为NA,其绝对值定点表示时采用的Q值(即定标值)为QA,相应的整数值记为aQA;记除数B的位长为NB,其绝对值定点表示时采用的Q值为QB,相应整数值记为bQB。其中,NA=16或32,NB=16或32,不失一般性地,NB≤NA。
根据上述式(5)至式(6),有:
记则有:
由式(9)和式(10)可知,T和Tm(m=0,1,2…,M-1)均可用Q值(即定标值)为Qt1=NB-2来定点表示,例如:NB=16,Qt1=14;NB=32,Qt1=30。
另一方面,考虑到0<Am=Am-1*Tm-1=A0T0T1…Tm-1<2A0,那么Am(m=0,1,2,…,M)均可用Q值为Qt2=QA-1来定点表示。
本申请实施例中,在进行除法运算前,可首先将作为除数的浮点数b转化为定点数bQB,其定标值为QB,再将其转化为定点数b0Qt1,该定点数的定标值为Qt1,其整数值位于区间[0.5,1),其转化方法可参见图2a和图2b。其中,图2a示出了高位无效位发生在整数位内(即,高位无效位数Wb<NB-QB-1)的情况,图2b示出了高位无效位涵盖整数位并延伸至分数位(即,高位无效位数Wb>=NB-QB-1)的情况。
如图2a所示,首先检测出定点数bQB中高位无效位数Wb(Wb<NB-QB-1),然后将bQB左移Wb位后得一个Q值为QB1=(QB+Wb)的定点数bQB1,该定点数bQB1与定点数bQB对应于同一个浮点值;其次,将定点数bQB1的小数点位置左移(NB-QB-Wb-1)位后获得一个Q值为QB2=(NB-1)的定点数bQB2,该定点数对应的浮点数值落在区间[0.5,1);通过右移1位操作,将定点数bQB2转换成Q值为Qt1=(NB-2)的预定目标定点数b0Qt1。
如图2b所示,首先检测出定点数bQB中高位无效位数Wb(Wb>=NB-QB-1),然后将bQB左移(NB-QB-1)位后得一个Q值为QB1=(NB-1)的定点数bQB1,该定点数bQB1与定点数bQB对应于同一个浮点值;其次,将定点数bQB1左移(Wb+QB+1-NB)位以便去除其高位无效位,从而获得一个Q值为QB2=(NB-1)的定点数bQB2,该定点数对应的浮点数值落在区间[0.5,1);通过右移1位操作,将定点数bQB2转换成Q值为Qt1=(NB-2)的预定目标定点数b0Qt1。
由此可见,预定目标定点数b0Qt1对应的浮点值B0和定点数bQB对应的浮点值B之间存在如下数学关系:
对比式(2)和式(11),易知:
L=QB+Wb+1-NB…………………………………………………(12)
即,L表示对定点数bQB1的小数点位置右移的位数,每右移一位相当于进行了一次除以2的操作。
参见图3,为本申请实施例提供的在定点DSP芯片上实现的除法运算流程示意图。为描述方便,以下流程中约定:第一浮点数为被除数,用a表示;第二浮点数为除数,用b表示。
如图所示,该流程可包括:
S301:获取作为被除数的第一浮点数a和作为除数的第二浮点数b。
S302:将浮点数转化为定点数,包括:将第一浮点数a转化为第一定点数,表示为aQA,其位长为NA,定标值为QA;将第二浮点数b转化为第二定点数,表示为bQB,其位长为NB,定标值为QB。
S303:判断bQB是否等于0,若不等于0,则转入S304,否则结束本流程或输出错误信息,比如输出“除数为零,算法异常结束”。
S304:将第一定点数aQA右移一位并转化为定标值为Qt2的第一操作数,表示为a0Qt2,Qt2=QA-1;对第二定点数bQB进行移位并转化为定标值为Qt1的第二操作数,表示为b0Qt1,b0Qt1对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2。
其中,将第二定点数bQB转化为定标值为Qt1的第二操作数b0Qt1的过程,可参见前述图2a或图2b所示的流程,在此不再重复。
S305:变量初始化,包括对以下变量进行初始化:
yQt1=OneQt1–b0Qt1
Y=yQt1
T(0)=OneQt1+Y
A(0)=a0Qt2
M=log2(NB)
m=0
其中,OneQt1表示将浮点数“1”进行定标后的定点数,定标值为Qt1。
S306:进行M次迭代得到第一操作数a0Qt2对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于第一操作数a0Qt2,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为第二定点数bQB。
根据前述描述,T(m)序列中的定点数可用Q值为Qt1=NB–2的定点表示法,那么Q值为Qt1的参数y定点整数yQt1为:
yQt1=OneQt1–b0Qt1……………………………………………(13)
其中,OneQt1=2Qt1为浮点值1在Q值为Qt1时的定点表示。
定义2个定点数乘法运算表达式如下:
[zQZ,QZ,NZ]=Mpy(xQX,QX,NX,yQY,QY,NY)…………………(14)
其中,xQX是作为被乘数的定点整数,其Q值为QX,位长为NX;yQY是作为乘数的定点整数,其Q值为QY,位长为NY;zQz是乘法运算结果,其Q值为QZ,位长为NZ,那么有:
其中,int{.}为取整函数。
那么T(m),m=0,1,2,…,M-1,可由图3所示的循环迭代产生。
根据前述描述,A(m)序列(m=0,1,2,…,M)中的定点数Am均可用Q值为Qt2=(QA-1)来定点表示,那么首先将被除数的定点值aQA右移1位转化成Q值为Qt2=QA–1的定点值a0Qt2,然后再赋给A(0),即:
a0Qt2=int{aQA/2}………………………………………………(16)
A(0)=a0Qt2………………………………………………………(17)
据此A(m),m=1,2,…,M,可由下式迭代求出:
[A(m),Qt2,NA]=Mpy(A(m-1),Qt2,NA,T(m-1),Qt1,NB)…………(18)
基于以上描述,S206中通过图4所示的迭代过程可以计算得到T(m)序列和A(m)序列(m=0,1,2,…,M-1)。如图3所示,该迭代过程可包括:
S3061:将变量m递增1,即m=m+1;
S3062:判断m是否大于M-1,若否,则转入S3063,否则转入S307。
S3063:计算T(m)和A(m),之后转入S3061。
其中,可根据以下公式计算T(m)和A(m):
[Y,Qt1,NB]=Mpy(Y,Qt1,NB,Y,Qt1,NB)
T(m)=OneQt1+Y
[A(m),Qt2,NA]=Mpy(A(m-1),Qt2,NA,T(m-1),Qt1,NB)
S307:根据操作数序列A(m)中第M-1个定点数A(M-1)以及中间值序列T(m)中第M-1个定点数T(M-1),计算得到操作数序列A(m)中第M个定点数A(M):
[A(M),Qt2,NA]=Mpy(A(M-1),Qt2,NA,T(M-1),Qt1,NB)
S308:确定对A(M)的移位位数P,若P≥0,则将A(M)左移P位,得到第一浮点数a除以第二浮点数b的商,否则将A(M)右移P位,得到第一浮点数a除以第二浮点数b的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为第二定点数bQB的高位无效位数。
其中,最终的商值C是由定点整数A(M)按比例缩放获得的:
其中,定点整数A(M)的位长为NA,Q值为Qt2=(QA-1)。不失一般性地,设C的位长为NC,Q值为QC,那么有:
NC=NA……………………………………………………………(21)
记P=QC+QB+Wb+2-QA-NB,那么当P>=0时,作为商的定点整数cQC可由A(M)左移P位获得;而当P<0时,作为上的定点数cQC可由A(M)右移P位获得。
本申请的上述实施例,基于同时对除法的分子与分母实施一系列变换运算操作以使分母逼近于1的思想,提出了一种在定点DSP芯片上实现除法运算的快速算法。与现有技术相比,本申请的上述实施例提出的技术与方法,其实现成本较低、运算精度高和计算效率较高。
基于相同的技术构思,本申请实施例还提供了一种在定点DSP芯片上实现的数据处理装置,该装置可实现前述实施例描述的流程。
参见图5,为本申请实施例提供的装置的结构示意图,该装置可包括:获取模块501、第一转化模块502、第二转化模块503、迭代模块504、商计算模块505,其中:
获取模块501,用于获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
第一转化模块502,用于将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
第二转化模块503,用于将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
迭代模块504,用于进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
商计算模块505,用于根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);以及,确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
可选地,所述第二转化模块具体用于:检测得到所述第二定点数中高位无效位数Wb,Wb<NB-QB-1;将所述第二定点数左移Wb位,左移Wb位后得到的定点数的定标值为QB1=(QB+Wb);将左移Wb位后得到的定点数的小数点位置左移(NB-QB-Wb-1)位,小数点位置左移(NB-QB-Wb-1)位的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;将小数点位置左移(NB-QB-Wb-1)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述第二转化模块具体用于:检测得到所述第二定点数中高位无效位数Wb,Wb≥NB-QB-1;将所述第二定点数左移(NB-QB-1)位,左移(NB-QB-1)位得到的定点数的定标值为QB1=(NB-1);将左移(NB-QB-1)位得到的定点数左移(Wb+QB+1-NB)位,左移(Wb+QB+1-NB)位得到的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;将左移(Wb+QB+1-NB)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
可选地,所述迭代模块进行的所述M次迭代中的每次迭代包括:
根据以下公式,计算中间值序列T(m)以及操作数序列A(m)中第m个定点数,m为当前迭代次数;
Y=Y*Y,Y为定标值为Qt1的定点数,位数为NB,Y的初始值为1-B,B为所述第二定点数;
Tm=1+Y,Tm表示中间值序列T(m)中的第m个定点数;
Am=Am-1*Tm-1,Am表示操作数序列A(m)中的第m个定点数。
可选地,所述操作数序列A(m)中第M个定点数A(M)的计算公式为:
AM=AM-1*TM-1,AM表示操作数序列A(m)中的第M个定点数,TM-1表示中间值序列T(m)中的第M-1个定点数。
基于相同的技术构思,本申请实施例还提供了一种DSP芯片,该DSP芯片可实现前述实施例描述的流程。
参见图6,为本申请实施例提供的通信装置的结构示意图,如图所示,该通信装置可包括:处理器601、存储器602以及总线接口。
处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
总线架构可以包括任意数量的互联的总线和桥,具体由处理器601代表的一个或多个处理器和存储器602代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。处理器601负责管理总线架构和通常的处理,存储器602可以存储处理器601在执行操作时所使用的数据。
本发明实施例揭示的流程,可以应用于处理器601中,或者由处理器601实现。在实现过程中,信号处理流程的各步骤可以通过处理器601中的硬件的集成逻辑电路或者软件形式的指令完成。处理器601可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器602,处理器601读取存储器602中的信息,结合其硬件完成信号处理流程的步骤。
具体地,处理器601,用于读取存储器602中的程序并执行:
获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;
对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);
确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
上述流程的具体实现过程可参见前述实施例,在此不再详述。
基于相同的技术构思,本申请实施例还提供了一种计算机存储介质。所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行前述实施例描述的流程。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种在定点数字信号处理DSP芯片上实现的数据处理方法,其特征在于,包括:
获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;
对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);
确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
2.如权利要求1所述的方法,其特征在于,所述对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,包括:
检测得到所述第二定点数中高位无效位数Wb,Wb<NB-QB-1;
将所述第二定点数左移Wb位,左移Wb位后得到的定点数的定标值为QB1=(QB+Wb);
将左移Wb位后得到的定点数的小数点位置左移(NB-QB-Wb-1)位,小数点位置左移(NB-QB-Wb-1)位的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将小数点位置左移(NB-QB-Wb-1)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
3.如权利要求1所述的方法,其特征在于,所述对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,包括:
检测得到所述第二定点数中高位无效位数Wb,Wb≥NB-QB-1;
将所述第二定点数左移(NB-QB-1)位,左移(NB-QB-1)位得到的定点数的定标值为QB1=(NB-1);
将左移(NB-QB-1)位得到的定点数左移(Wb+QB+1-NB)位,左移(Wb+QB+1-NB)位得到的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将左移(Wb+QB+1-NB)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
4.如权利要求1所述的方法,其特征在于,所述M次迭代中的每次迭代过程包括:
根据以下公式,计算中间值序列T(m)以及操作数序列A(m)中第m个定点数,m为当前迭代次数;
Y=Y*Y,Y为定标值为Qt1的定点数,位数为NB,Y的初始值为1-B,B为所述第二定点数;
Tm=1+Y,Tm表示中间值序列T(m)中的第m个定点数;
Am=Am-1*Tm-1,Am表示操作数序列A(m)中的第m个定点数。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述操作数序列A(m)中第M个定点数A(M)的计算公式为:
AM=AM-1*TM-1,AM表示操作数序列A(m)中的第M个定点数,TM-1表示中间值序列T(m)中的第M-1个定点数。
6.一种在定点数字信号处理DSP芯片上实现的数据处理装置,其特征在于,包括:
获取模块,用于获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
第一转化模块,用于将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
第二转化模块,用于将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
迭代模块,用于进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
商计算模块,用于根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);以及,确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
7.如权利要求6所述的装置,其特征在于,所述第二转化模块具体用于:
检测得到所述第二定点数中高位无效位数Wb,Wb<NB-QB-1;
将所述第二定点数左移Wb位,左移Wb位后得到的定点数的定标值为QB1=(QB+Wb);
将左移Wb位后得到的定点数的小数点位置左移(NB-QB-Wb-1)位,小数点位置左移(NB-QB-Wb-1)位的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将小数点位置左移(NB-QB-Wb-1)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
8.如权利要求6所述的装置,其特征在于,所述第二转化模块具体用于:
检测得到所述第二定点数中高位无效位数Wb,Wb≥NB-QB-1;
将所述第二定点数左移(NB-QB-1)位,左移(NB-QB-1)位得到的定点数的定标值为QB1=(NB-1);
将左移(NB-QB-1)位得到的定点数左移(Wb+QB+1-NB)位,左移(Wb+QB+1-NB)位得到的定点数的定标值为QB2=(NB-1),对应的浮点数的取值大于等于0.5且小于1;
将左移(Wb+QB+1-NB)位的定点数右移1位,得到所述第二操作数,所述第二操作数的定标值为Qt1。
9.如权利要求6所述的装置,其特征在于,所述迭代模块进行的所述M次迭代中的每次迭代包括:
根据以下公式,计算中间值序列T(m)以及操作数序列A(m)中第m个定点数,m为当前迭代次数;
Y=Y*Y,Y为定标值为Qt1的定点数,位数为NB,Y的初始值为1-B,B为所述第二定点数;
Tm=1+Y,Tm表示中间值序列T(m)中的第m个定点数;
Am=Am-1*Tm-1,Am表示操作数序列A(m)中的第m个定点数。
10.如权利要求6至9中任一项所述的装置,其特征在于,所述操作数序列A(m)中第M个定点数A(M)的计算公式为:
AM=AM-1*TM-1,AM表示操作数序列A(m)中的第M个定点数,TM-1表示中间值序列T(m)中的第M-1个定点数。
11.一种数字信号处理DSP芯片,其特征在于,包括:处理器、存储器,所述处理器、存储器通过总线连接;所述处理器,用于读取存储器中的程序,执行:
获取第一浮点数和第二浮点数,所述第二浮点数的取值不为零;
将所述第一浮点数转化为第一定点数,所述第一定点数的定标值为第一定标值QA;将所述第二浮点数转化为第二定点数,所述第二定点数的定标值为第二定标值QB;
将所述第一定点数右移一位并转化为定标值为Qt2的第一操作数,Qt2=QA-1;
对所述第二定点数进行移位并转化为定标值为Qt1的第二操作数,所述第二操作数对应的浮点数的取值大于等于0.5且小于1,Qt1=NB-2,NB表示所述第二定点数的位数;
进行M次迭代得到所述第一操作数对应的操作数序列A(m),操作数序列A(m)包括M-1个定标值为Qt2的定点数,其中Am=Am-1*Tm-1,A0等于所述第一操作数,Tm-1为中间值序列T(m)中的第m-1个定点数,0≤m≤M-1,M=log2NB;其中,中间值序列T(m)包括M-1个定标值为Qt1的定点数,Tm为所述中间值序列T(m)中的第m个定点数,B为所述第二定点数;
根据所述操作数序列A(m)中第M-1个定点数A(M-1)以及所述中间值序列T(m)中第M-1个定点数,计算得到所述操作数序列A(m)中第M个定点数A(M);
确定对所述A(M)的移位位数P,若P≥0,则将所述A(M)左移P位,得到所述第一浮点数除以所述第二浮点数的商,否则将所述A(M)右移P位,得到所述第一浮点数除以所述第二浮点数的商;其中,P=QC+QB+Wb+2-QA-NB,QC为所述商的定标值,Wb为所述第二定点数的高位无效位数。
12.一种计算机存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如权利要1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710964945.9A CN109669667B (zh) | 2017-10-17 | 2017-10-17 | 一种在定点dsp芯片上实现的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710964945.9A CN109669667B (zh) | 2017-10-17 | 2017-10-17 | 一种在定点dsp芯片上实现的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669667A true CN109669667A (zh) | 2019-04-23 |
CN109669667B CN109669667B (zh) | 2023-09-19 |
Family
ID=66140341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710964945.9A Active CN109669667B (zh) | 2017-10-17 | 2017-10-17 | 一种在定点dsp芯片上实现的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669667B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144977A (en) * | 1995-07-10 | 2000-11-07 | Motorola, Inc. | Circuit and method of converting a floating point number to a programmable fixed point number |
US20050065990A1 (en) * | 2003-09-17 | 2005-03-24 | Catalytic, Inc. | Emulation of a fixed point operation using a corresponding floating point operation |
US20090182795A1 (en) * | 2007-12-19 | 2009-07-16 | Dobbek Jeffrey J | Method and system for performing calculations using fixed point microprocessor hardware |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
US20100281087A1 (en) * | 2009-04-29 | 2010-11-04 | University Of Massachusetts | Approximate srt division method |
-
2017
- 2017-10-17 CN CN201710964945.9A patent/CN109669667B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144977A (en) * | 1995-07-10 | 2000-11-07 | Motorola, Inc. | Circuit and method of converting a floating point number to a programmable fixed point number |
US20050065990A1 (en) * | 2003-09-17 | 2005-03-24 | Catalytic, Inc. | Emulation of a fixed point operation using a corresponding floating point operation |
US20090182795A1 (en) * | 2007-12-19 | 2009-07-16 | Dobbek Jeffrey J | Method and system for performing calculations using fixed point microprocessor hardware |
US20100281087A1 (en) * | 2009-04-29 | 2010-11-04 | University Of Massachusetts | Approximate srt division method |
CN101692201A (zh) * | 2009-10-14 | 2010-04-07 | 北京龙芯中科技术服务中心有限公司 | 一种定点除法器及其运算处理方法 |
Non-Patent Citations (1)
Title |
---|
邵正芬: "最佳精度定点运算的FPGA实现", 《通信技术》 * |
Also Published As
Publication number | Publication date |
---|---|
CN109669667B (zh) | 2023-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CA3083043C (en) | System and method of floating point multiply operation processing | |
US8639737B2 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
KR100682354B1 (ko) | 다배장 데이터 곱합 연산 처리 회로 및 몽고메리 곱합잉여 연산 회로 | |
WO2016171847A1 (en) | High performance division and root computation unit | |
US20140195581A1 (en) | Fixed point division circuit utilizing floating point architecture | |
TW200919304A (en) | Apparatus and method for performing magnitude detection for arithmetic operations | |
US7725522B2 (en) | High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area | |
Bosmans et al. | A tiny coprocessor for elliptic curve cryptography over the 256-bit NIST prime field | |
CN110858137A (zh) | 除以整数常数的浮点除法 | |
JP4883251B1 (ja) | 半導体集積回路及び指数算出方法 | |
US11502836B2 (en) | Method for performing cryptographic operations on data in a processing device, corresponding processing device and computer program product | |
JP2502836B2 (ja) | 除算回路の前処理装置 | |
Drucker et al. | Fast multiplication of binary polynomials with the forthcoming vectorized VPCLMULQDQ instruction | |
CN108334304A (zh) | 数字递归除法 | |
CN116436709B (zh) | 一种数据的加解密方法、装置、设备和介质 | |
JP5794385B2 (ja) | 演算処理装置及び演算処理装置の制御方法 | |
KR102208274B1 (ko) | 특히 함수 모델을 순수 하드웨어에 기초하여 연산하기 위한 함수 모델 유닛 내에서 사용하기 위한 fma 유닛 | |
CN109669667A (zh) | 一种在定点dsp芯片上实现的数据处理方法及装置 | |
Luo et al. | A novel two-stage modular multiplier based on racetrack memory for asymmetric cryptography | |
CN209560522U (zh) | 获取加解密运算中的中间结果组的硬件装置 | |
KR20000000770A (ko) | 모듈러 곱셈장치 | |
JP5179933B2 (ja) | データ処理装置 | |
Wagner | Posits: An Alternative to Floating Point Calculations | |
Kumar et al. | Implementation and Performance Analysis of Reconfigurable Montgomery Modular Multiplier |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |