CN115357216A - 数据处理方法、介质、电子设备和程序产品 - Google Patents
数据处理方法、介质、电子设备和程序产品 Download PDFInfo
- Publication number
- CN115357216A CN115357216A CN202211067568.6A CN202211067568A CN115357216A CN 115357216 A CN115357216 A CN 115357216A CN 202211067568 A CN202211067568 A CN 202211067568A CN 115357216 A CN115357216 A CN 115357216A
- Authority
- CN
- China
- Prior art keywords
- dividend
- divisor
- quotient
- bit
- register
- 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
Links
Images
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
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)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本申请涉及计算机技术领域,公开了一种数据处理方法、介质、电子设备和程序产品。本申请的数据处理方法包括:获取待进行除法运算的第一被除数与第一除数;确定第一被除数中先导1所处的位置,并将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐;依次对第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到第一被除数和第一除数的除法运算结果。上述数据处理方法能够在保证除法运算正确性的同时,有效降低除法运算过程中的循环次数,即减少了循环过程中的减法、移位和比较操作,提高了计算效率。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种数据处理方法、介质、电子设备和程序产品。
背景技术
整型除法是计算机最基本的运算功能,有着极其广泛的应用。整型除法运算可以通过硬件实现,例如可以通过除法器执行整型除法运算;整型除法运算也可以通过软件实现,例如可以通过深度学习模型中的Softmax,normalization等算子执行整型除法运算。
整型除法运算可以分为恢复余数除法和不恢复余数除法。但无论是恢复余数除法还是不恢复余数除法,在除法的运算过程中,商均是通过循环计算每位(bit)实现的,其中,循环次数取决于商的默认有效位数。例如,商的默认有效位数为32bit,则使用常规算法需要进行32次循环;且在每次循环中至少进行一次减法,移位和比较操作。因此,现有的除法运算过程存在运算周期较长的问题,较大地制约了除法器的运算性能,降低了计算效率。
发明内容
本申请实施例提供了一种数据处理方法、介质、电子设备和程序产品。
第一方面,本申请实施例提供一种数据处理方法,应用于电子设备,包括:获取待进行除法运算的第一被除数与第一除数;确定第一被除数中先导1所处的位置,并将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐;依次对第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到第一被除数和第一除数的除法运算结果。
在本申请实施例中,先导1是指二进制数中第一个“1”所处的位置。
例如,第一被除数为1010,则第一被除数的先导1在第一位,第一除数为0011,则第一除数的先导1在第三位。
在本申请实施例中,通过将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐,能够在保证除法运算正确性的同时,有效降低除法运算过程中的循环次数,即减少了循环过程中的减法、移位和比较操作,提高了计算效率。
在一种可能的实现中,确定第一被除数中先导1所处的位置,并将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐包括:计算第一被除数的第一有效位数、第一除数的第二有效位数;根据第一有效位数、第二有效位数,确定移动位数;将第一除数的数值位左移移动位数位,以使第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐。
在一种可能的实现中,根据第一有效位数、第二有效位数,确定移动位数包括:确定第一有效位数与第二有效位数的差值,得到第一差值;将第一差值加1得到预估有效位数;确定商的默认有效位数;基于默认有效位数、预估有效位数中较小的数值,确定移动位数。
本申请实施例的数据处理方法中的循环次数一般会小于商的默认有效位数,而现有技术中是将商的默认有效位数作为除法运算过程中的循环次数,因此,本申请实施例提供的数据处理方法,能够有效降低除法运算过程中的循环次数,即减少循环过程中的减法、移位和比较操作。
在一种可能的实现中,将移动位数作为第一被除数和第一除数的除法运算的总循环次数。
本申请实施例的数据处理方法中的总循环次数一般会小于商的默认有效位数,因此,本申请实施例提供的数据处理方法,能够有效降低除法运算过程中的循环次数。
在一种可能的实现中,依次对第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到运算结果包括:计算第一被除数与第一除数的差值,得到第二差值,并将第二差值作为第二被除数;基于第二被除数为商的第总循环次数位赋值,并获取第三被除数;将总循环次数减1,获取剩余循环次数,并将第一除数的数值位右移一位,得到第二除数;在剩余循环次数小于0的情况下,将第二被除数作为余数;基于商的第总循环次数位的赋值确定商的数值。
在一种可能的实现中,在剩余循环次数大于等于0的情况下,将第三被除数作为第一被除数,将第二除数作为第一除数;计算第一被除数与第一除数的差值,得到第二差值,并将第二差值作为第二被除数。
在一种可能的实现中,基于第二被除数为商的第总循环次数位赋值,并获取第三被除数包括:对应于第二被除数大于等于0的情况,将商的第总循环次数位赋值1;将第二被除数作为第三被除数;对应于第二被除数小于0的情况,将商的第总循环次数位赋值0;计算第二被除数与第二除数的和,得到第二数值,将第二数值作为第三被除数。
可以理解,当第二被除数大于等于0时,即第一被除数够除第一除数,因此不需要借位或移位,所以为商q的第总循环次数位赋值1。
可以理解,当第二被除数小于0时,即第一被除数不够除第一除数,因此需要借位或移位,所以为商q的第总循环次数位赋值0,将第二被除数加上第二除数是为了得到原被除数,以供下一个循环的计算。
第二方面,本申请实施例提供一种除法器,其特征在于,包括除法控制逻辑器;除法控制逻辑器用于获取待进行除法运算的第一被除数与第一除数;确定第一被除数先导1所处的位置,并将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐;依次对第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到运算结果。
在本申请实施例中,先导1是指二进制数中第一个“1”所处的位置。
例如,第一被除数为1010,则第一被除数的先导1在第一位,第一除数为0011,则第一除数的先导1在第三位。
在本申请实施例中,通过将第一除数的先导1的位置设置为与第一被除数的先导1的位置对齐,能够在保证除法运算正确性的同时,有效降低除法运算过程中的循环次数,即减少了循环过程中的减法、移位和比较操作,提高了计算效率。
在一种可能的实现中,还包括第一被除数寄存器、第一除数寄存器、算数逻辑单元、余数寄存器、商寄存器,第一被除数寄存器用于存储除法运算过程中的第一被除数;第一除数寄存器用于存储除法运算过程中的第一除数;商寄存器用于存储除法运算过程中的商;余数寄存器用于存储除法运算过程中的余数;算数逻辑单元用于从第一被除数寄存器获取第一被除数;从第一除数寄存器获取第一除数;除法控制逻辑器用于控制除法运算开始和结束,以及第一除数寄存器、第一被除数寄存器、余数寄存器和商寄存器的初始化、移位和更新。
第三方面,本申请实施例提供了一种可读介质,可读介质上存储有指令,指令在电子设备上执行时使电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种数据处理方法。
第四方面,本申请实施例提供了一种电子设备,包括:存储器,用于存储由电子设备的一个或多个处理器执行的指令,以及处理器,是电子设备的一个或多个处理器之一,用于实现上述第一方面及上述第一方面的各种可能实现提供的任一种数据处理方法。
第五方面,本申请实施例提供了一种电子设备,用于实现上述第二方面及上述第二方面的各种可能实现提供的任一种除法器。
第六方面,本申请实施例提供了一种计算机程序产品,其特征在于,包括:执行指令,执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取执行指令,至少一个处理器执行执行指令使得电子设备实现上述第一方面及上述第一方面的各种可能实现提供的任一种数据处理方法。
附图说明
图1根据本申请实施例,示出了一种数据处理方法的流程示意图;
图2根据本申请实施例,示出了一种数据处理方法的流程示意图;
图3根据本申请实施例,示出了一种除法器的结构框图示意图;
图4根据本申请实施例,示出了一种数据处理方法的流程示意图;
图5根据本申请实施例,示出了一种电子设备的结构示意图。
具体实施方式
本申请的说明性实施例包括但不限于一种数据处理方法、介质、电子设备和程序产品。
下面先介绍与本申请相关的技术术语。
(1)位数,在计算机技术领域,位数也叫“字长”,是指处理器一次运算所能处理的二进制数的位数。二进制数的位数有8位、16位、32位、64位之分。一般称8位(bit)为一个字节(byte),16位为一个字长(word),32位为一个双字长,64位为两个双字长。
(2)二进制计算,在计算机内部,所有的字符和指令都用二进制数表示,它只有0和1两个数字,按“逢二进一”的规则计数。
(3)有效位数,二进制数的有效位数是指二进制数从最高的非零位到最低位的位数,例如数据00011001,其有效位数为从左到右的第一个“1”值到最右位的位数,即有效部分为“11001”,有效位数计为5。
整型除法运算需要将商的默认有效位数(又叫商的精度)作为被除数与除数进行运算的循环次数,在每次循环过程中至少进行一次被除数与除数的减法操作、除数和商的移位、被除数与除数的差值与零的比较操作;存在循环次数较多,运算周期较长,计算效率较低的问题。
如图1所示,下面以整型除法运算中的恢复余数法计算被除数m1除以除数n1,商q的默认有效位数为i1为例,说明除法运算的过程:
101:获取商的默认有效位数i1,将除数n1左移商q的默认有效位数i1,获取移位后的除数n1o。
例如,被除数m1等于二进制数据1010(对应十进制数据10),除数n1等于二进制数据0011(对应十进制数据3),i1=4。除数n1左移i1位,即0011左移4位=00110000。
102:将被除数m1左移一位,获取移位后的被除数m1o。
例如,被除数m1o=1010左移一位=10100=00010100,此时m1o=00010100,n1=00110000;即除数的末位与被除数的第一个非零位对齐。
103:将移位后的被除数m1o更新为被除数m1o与除数n1o的差值m2。
即m10=m2=m1o-n1o。
例如,m2=m1o-n1o=00010100-00110000=11100100;此时m2小于0。
104:判断更新后的被除数m2是否大于0,若判断结果为是,则执行105,若判断结果为否,则执行106。
105:将商q的第i1位赋值1,将被除数m3更新为为被除数m2的最低位赋值1,即m3=为m2的最低位赋值1。
可以理解,当m2大于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i1位赋值1。
例如,当m2=0010时,m2大于0时,为商q的第4位赋值1,为m2的最低位赋值1,即m3=0011。
106:将商q的第i1位赋值0,将被除数m3更新为被除数m2与除数n1的和,即m3=m2+n1。
可以理解,当m2小于等于0时,即被除数不够除除数,因此需要借位或移位,所以为商q的第i位赋值0,将被除数m2加上除数n1是为了得到原被除数,以供下一个循环的计算。
例如,m2=11100100;此时m2小于0,因此,m3=m2+n1=11100100+00110000=00010100=m1。
107:将循环次数i1更新为i2,即i2=i1-1。
108:判断循环次数i2是否等于0,若判断结果为否,则将m3更新为m1;i2更新为i1,执行102;若判断结果为是,则结束。
可以理解,直至循环次数为0,终止循环。
例如,q4=0;q3=0;q2=1;q1=1,m=00010011;则最终计算的商结果为0011(3),余数为0001(1)。
可以理解,由于将除数n1左移了商q的有效位数i1位,而商是通过循环计算每位实现的,因此,在运算过程中需要将被除数m1依次左移一位,直至循环次数等于0。因此,在恢复余数法的运算过程中,循环次数即为商q的有效位数i位。例如,商的位宽为32bit,则需要进行32次循环;且在每次循环中至少进行一次减法,移位和比较操作。
下面以被除数m1等于二进制数据1010(对应十进制数据10),即00001010,除数n1等于二进制数据0011(对应十进制数据3),即00000011,循环次数i为4为例进行说明。
首先将除数0011左移4位。由于被除数m1等于00001010,为了将被除数m1与除数n1的位数对齐,电子设备先将除数n1左移4位,得到n1o=00110000,为余数r赋值0000,商q赋值0000。
被除数m=1010(10)与除数n=0011(3)相除的过程如表1所示:
表1:
当循环次数i1=4时,被除数m1o=1010左移一位=10100=00010100,此时m1o=00010100,n1o=00110000;即除数的末位与被除数的第一个非零位对齐。计算m2,m2=m1o-n1o=00010100-00110000=11100100。由于m2小于0,因此,q[4]=0,m3=m2+n1o=11100100+00110000=00010100,并存储m3。将循环次数i1更新为i2,i2=4-1=3;再将i2更新为i1,m3更新为m1。
由于i1=3,i1不为0,因此,将m1左移一位=00101000=m1o。计算m2,m2=m1o-n1o=00101000-00110000=11111000。由于m2小于0,因此,q[3]=0,m3=m2+n1o=11111000+00110000=00101000,并存储m3。将循环次数i1更新为i2,i2=3-1=2;再将i2更新为i1,m3更新为m1。
由于i1=2,i1不为0,因此,将m1左移一位=01010000=m1o。计算m2,m2=m1o-n1o=01010000-00110000=00100000。由于m2大于0,因此,q[2]=1,为m2的最低位赋值1,即m3=00100001,并存储m3。将循环次数i1更新为i2,i2=2-1=1;再将i2更新为i1,m3更新为m1。
由于i1=1,i1不为0,因此,将m1左移一位=01000010=m1o。计算m2,m2=m1o-n1o=01000010-00110000=00010010。由于m2大于0,因此,q[1]=1,为m2的最低位赋值1,即m3=00010011,并存储m3。将循环次数i1更新为i2,i2=1-1=0;再将i2更新为i1,m3更新为m1。
由于i1=0,即i1为0,因此,终止循环,由m3=00010011可知,商q=0011(3),余数r=0001(1)。
可以理解,在本申请实施例中,q[1]=1表示q的最低位为1,q[2]=1表示q的最低位的前一位为1,以此类推,在此不再赘述。
由此可见,整型除法运算需要将除数左移商的默认有效位数位,进而使被除数的第一个非零位与除数的末位对齐,但是,如表2所示的除法运算过程,循环次数等于4,且在每次循环中至少进行一次减法,移位和比较操作,使得运算周期较长,较大程度地降低了计算效率。
为了解决背景技术中的技术问题,即为了减少除法运算过程中的循环次数,本申请提出一种可以减少循环次数的数据处理方法,应用于电子设备,该方法包括:
首先,获取被除数与除数,并确定被除数与除数的有效位数;其次,基于被除数与除数的有效位数确定商的预估有效位数;再次,基于商的预估有效位数与商的默认有效位数中较小的数值,确定循环次数,并将除数左移循环次数位,最后,基于被除数、左移循环次数位后的除数、循环次数进行除法运算,得到除法运算结果,该除法运算结果中包括商和余数。
在一些实施例中,上述基于被除数与除数的有效位数确定商的预估有效位数的方式可以为:计算被除数与除数的有效位数的差值,将差值加1得到商的预估有效位数。
在一些实施例中,上述基于商的预估有效位数与商的默认有效位数中较小的数值,确定循环次数的方式可以为:将商的预估有效位数与商的默认有效位数中较小的数值减1,得到循环次数。
可以理解,在除法的运算过程中,商均是通过循环计算每位实现的;例如,现有技术中的恢复余数法是将除数左移商的默认有效位数位以使除数的末位与被除数的第一个非零位对齐,而正是由于除数左移了商的默认有效位数位,因此循环次数为商的默认有效位数。但是,在除法的运算过程中可以发现,由于是除数的末位与被除数的第一个非零位对齐,使得除数多移了一定的位数,而多移的位数会导致多余的重复循环,因此,在本申请实施例中,基于被除数与除数的有效位数,确定除数需要移动的位数(即循环次数),使得被除数与除数的第一个非零位对齐,以减少重复的循环,因此将商的预估有效位数与商的默认有效位数中较小的数值减1的数值作为循环次数也能正常获得正确的除法运算结果。
可以理解,现有技术中是将商的默认有效位数作为除法运算过程中的循环次数,而在本申请实施例中,循环次数是基于商的预估有效位数与商的默认有效位数中较小的位数再减去1确定的,因此本申请实施例的数据处理方法中的循环次数一般会小于商的默认有效位数,因此,本申请实施例提供的数据处理方法,能够在保证除法运算正确性的同时,有效降低除法运算过程中的循环次数,即减少了循环过程中的减法、移位和比较操作,提高了计算效率。
其中,商的默认有效位数取决于电子设备的寄存器,例如,寄存器的机器字长为8位,则商的默认有效位数为8位。
有效位数是指从二进制数最高的非零位到最低位的位数,例如,00001100的有效位数为4。在本申请实施例中,可以先通过零计数指令(CountLeadingZeros,CLZ)计算二进制最高符号位与第一个1之间的0的位数;然后,将被除数或除数的原始位宽减去CLZ计算的位数,得到被除数或除数的有效位数;
其中,被除数或除数的原始位宽与处理被除数或除数的寄存器的机器字长一致。例如,对于被除数00001100,CLZ计算的00001100的位数为4,而00001100的原始位宽为8,因此,00001100的有效位数=8-4=4。
可以理解,在除法运算中,商是通过循环计算每位实现的,同时循环次数取决于电子设备的寄存器的机器字长,即商q的默认有效位数,本申请实施例提供的方法将商q的默认有效位数和商的预估有效位数之间的最小值q_width减1作为循环次数,即将(q_width-1)作为循环次数,达到降低除法运算中的循环次数的目的,以此提高计算效率。
下面以被除数m等于二进制数据1010(对应十进制数据10),除数n等于二进制数据0011(对应十进制数据3),商的默认有效位数为8为例说明本申请的数据处理方法。
由于被除数m=1010,因此被除数m的有效位数为4;由于除数n=0011,因此除数n的有效位数为2;因此,商的预估有效位数=4-2+1=3。
由于商的预估有效位数3小于商的默认有效位数8,因此,商的实际有效位数q_width为3。将除数n0011左移(q_width-1)=3-1=2位,得到除数n=001100,并令循环次数i=2。
当i=2时,计算(被除数m-除数n)的差值,即1010-001100=00001010-00001100=11111110。由于11111110小于0,因此q[2]=0。将被除数更新为(被除数m-除数n)的差值+除数=11111110+00001100=00001010;将除数n右移一位,得到n=00000110;将循环次数i减1,得到1。
可以理解,(被除数m-除数n)的差值小于0时,即被除数不够除除数,因此需要借位或移位,所以为商q的第i位赋值0,将被除数加上除数是为了得到原被除数,以供下一个循环的计算。
当i=1时,计算(被除数m-除数n)的差值,即00001010-00000110=00000100。由于00000100大于0,因此q[1]=1。将被除数更新为(被除数m-除数n)的差值=00000100;将除数n右移一位,得到n=00000011;将循环次数i减1,得到0。
可以理解,当(被除数m-除数n)的差值大于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i位赋值1。
当i=0时,计算(被除数m-除数n)的差值,即00000100-00000011=00000001。由于00000001大于0,因此q[0]=1。将被除数更新为(被除数m-除数n)的差值=00000001;将除数n右移一位,得到n=00000001;将循环次数i减1,得到-1。
可以理解,当(被除数m-除数n)的差值大于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i位赋值1。
由于-1小于0,因此,终止循环,此时被除数m=余数r=00000001,商=011=00000011。
在本申请实施例中,将除数的移位数作为循环次数,即从商的默认有效位数和商的预估有效位数中选择较小的值,并减去1作为循环次数。因为商的预估有效位数一般会小于商的默认有效位数,从而在一定程度上,与将商的默认有效位数作为循环次数的方法相比,减少了除法运算的循环次数,即减少了循环过程中的减法、移位和比较操作,减少了运算周期,提高了计算效率。
在实际应用中,假设商的位宽为32bit,除数和被除数都是随机数,使用常规算法需要进行32次循环,使用本申请实施例中的算法,平均进行约7次循环,即可得到相同的结果。
可以理解,电子设备可以是具有使用本申请提供的数据处理方法功能的各种设备,例如,计算机、平板、手机、电脑等设备。电子设备还可以是具有使用本申请提供的数据处理方法功能的各种电子结构,例如,芯片、除法器等。
可以理解,本申请提及的数据处理方法,可以用于各种电子设备中的CPU进行除法运算的场景中。下面以用于除法运算的算术逻辑单元部署于电子设备进行除法运算为例对本申请实施例中提及的数据处理方法进行说明。
首先,CPU获取待处理数据,其中,待处理数据包括被除数、除数,算术逻辑单元确定被除数与除数的有效位数;其次,基于被除数与除数的有效位数确定商的预估有效位数;再次,基于商的预估有效位数与商的默认有效位数中较小的数值,确定循环次数,并将除数左移循环次数位,其中,商的默认有效位数取决于算术逻辑单元中寄存器的机器字长,最后,基于被除数、左移循环次数位后的除数、循环次数进行除法运算,得到除法运算结果,除法运算结果包括商和余数,并输出运算结果。
图2根据本申请的一些实施例,示出了一种数据处理方法的流程示意图。如图2所示,该方法包括如下步骤:
201:为被除数m赋初始值diviend、除数n赋初始值divisor、商q赋初始值0和余数r赋初始值0。
可以理解,被除数m和除数n是二进制数据,且被除数m和除数n是整型数据,即不包含小数部分的数据值型数据。被除数m和除数n可以是8位二进制整型数据、16位二进制整型数据、32位二进制整型数据、64位二进制整型数据。
202:确定被除数m的有效位数m_width和除数n的有效位数n_width。
可以理解,有效位数是指二进制数据从左至右的第一个非零数据位至最后一个数据位之间的位数。
例如,若被除数m为0101(对应的十进制数为5),即有效部分为“101”,则0101的有效位数m_width为3。若被除数m为0011(对应的十进制数为3),即有效部分为“11”,则0011的有效位数m_width为2。
203:确定被除数m的有效位数m_width和除数n的有效位数n_width的差值d,将差值d加1得到商的预估有效位数。
例如,若被除数m为0101(对应的十进制数为5),则0101的有效位数m_width为3。若除数m为0011(对应的十进制数为3),则0011的有效位数m_width为2。被除数0101的有效位数和除数0011的有效位数的差值为1,将差值d加1得到商的预估有效位数为2。
204:确定商q的默认有效位数和商的预估有效位数之间的最小值,并将最小值作为商的实际有效位数q_width。
可以理解,在除法运算中,商是通过循环计算每位实现的,同时循环次数取决于电子设备的寄存器的机器字长,即商q的默认有效位数,本申请实施例提供的方法将商q的默认有效位数和商的预估有效位数之间的最小值q_width减1作为循环次数,即将(q_width-1)作为循环次数,达到降低除法运算中的循环次数的目的,以此提高计算效率。
205:将除数n左移商的实际有效位数-1(q_width-1)位,令循环次数i=(q_width-1)。
可以理解,将除数n左移商的实际有效位数-1位,也即将除数n放大2的(q_width-1)幂的倍数,该步骤的目的是为了将除数的第一个非零位与被除数的第一个非零位对齐,降低需要循环计算的次数。
可以理解,在除法的运算过程中,商均是通过循环计算每位实现的;例如,现有技术中的恢复余数法是将除数左移商的默认有效位数位以使除数的末位与被除数的第一个非零位对齐,而正是由于除数左移了商的默认有效位数位,因此循环次数为商的默认有效位数。但是,在除法的运算过程中可以发现,由于是除数的末位与被除数的第一个非零位对齐,使得除数多移了一定的位数,而多移的位数会导致多余的重复循环,因此,在本申请实施例中,基于被除数与除数的有效位数,确定除数需要移动的位数(即循环次数),使得被除数与除数的第一个非零位对齐,以减少重复的循环,因此将商的预估有效位数与商的默认有效位数中较小的数值减1的数值作为循环次数也能正常获得正确的除法运算结果。
206:将被除数m更新为被除数m减去除数n的差值,即m=(m-n)。
可以理解,在做十进制除法运算时,第一步需要判断够不够除,比如十进制数3除以十进制数5,若不够除,则商为0,若够除,则商为1。同理,在电子设备进行二进制的除法运算时,电子设备首先需要对被除数m和除数n做一次减法操作,在得到的结果为负数时,商为0,在得到的结果为正数时,商为1。
207:判断被除数m是否大于等于0,若是,则转至步骤208,若否,则转至步骤209。
208:将商q的第i位赋值1。
可以理解,当m大于等于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i位赋值1。
209:将商q的第i位赋值0,被除数m更新为被除数m加上除数n的和,即m=(m+n)。
可以理解,当m小于0时,即被除数不够除除数,因此需要借位或移位,所以为商q的第i位赋值0,将被除数m加上除数n是为了得到原被除数,以供下一个循环的计算。
210:将循环次数i减去1,并将除数右移一位。
211:判断循环次数i是否小于零,若是,则结束,若否,则转至步骤206。
下面以被除数m等于二进制数据1010(对应十进制数据10),除数n等于二进制数据0011(对应十进制数据3),商的默认有效位数为8为例进行说明,计算过程如表2所示。
被除数m=1010(10);除数n=0011(3)。即:m=00001010,n=00000011。
由于被除数m=1010,因此m_width=4;由于除数n=0011,因此n_width=2;因此,商的预估有效位数=4-2+1=3。
由于商的预估有效位数3小于商的默认有效位数8,即q_width=min{q_width,d+1}=min{8,3}=3,因此,商的实际有效位数q_width为3。将除数n0011左移(q_width-1)=3-1=2位,得到除数n=001100,并令循环次数i=2。
当i=2时,计算(被除数m-除数n)的差值,即00001010-001100=00001010-00001100=11111110。由于11111110小于0,因此q[2]=0。将被除数更新为(被除数m-除数n)的差值+除数=11111110+00001100=00001010;将除数n右移一位,得到n=00000110;将循环次数i减1,得到i=1。
可以理解,当(被除数m-除数n)的差值小于0时,即被除数不够除除数,因此需要借位或移位,所以为商q的第i位赋值0,将被除数m加上除数n是为了得到原被除数,以供下一个循环的计算。
当i=1时,计算(被除数m-除数n)的差值,即00001010-00000110=00000100。由于00000100大于0,因此q[1]=1。将被除数更新为(被除数m-除数n)的差值=00000100;将除数n右移一位,得到n=00000011;将循环次数i减1,得到0。
可以理解,当(被除数m-除数n)的差值大于等于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i位赋值1。
当i=0时,计算(被除数m-除数n)的差值,即00000100-00000011=00000001。由于00000001大于0,因此q[0]=1。将被除数更新为(被除数m-除数n)的差值=00000001;将除数n右移一位,得到n=00000001;将循环次数i减1,得到i=-1。
可以理解,当(被除数m-除数n)的差值大于等于0时,即被除数够除除数,因此不需要借位或移位,所以为商q的第i位赋值1。
由于i=-1小于0,因此,终止循环,此时余数r=被除数m=00000001,商=011=00000011。
可以理解,在本申请实施例中,q[0]=1表示q的最低位为1,q[1]=1表示q的最低位的前一位为1,以此类推,在此不再赘述。
表2:
从上述表1和表2可以看出,使用本申请实施例的方法可以减少一次循环次数,即减少了1次减法、移位和比较操作,减少了运算周期,提高了计算效率。
下面以电子设备为除法器为例,介绍一种除法器100,除法器100的结构框图示意图如图3所示,除法器100包括除数寄存器101、算数逻辑单元102、被除数寄存器103、余数寄存器104、商寄存器105和除法控制逻辑器106。
其中,除数寄存器101用于存储除法运算过程中的除数,被除数寄存器103用于寄存除法运算过程中的被除数。算数逻辑单元102用于从除数寄存器101中获取除数,从被除数寄存器103中获取被除数。余数寄存器104用于存储除法运算过程中的余数。除法控制逻辑器106用于控制除法运算开始和结束,以及除数寄存器101、被除数寄存器103、余数寄存器104和商寄存器105的初始化、移位和更新。例如,除法控制逻辑器106用于为被除数m赋初始值diviend、除数n赋初始值divisor、商q赋初始值0和余数r赋初始值0。
算数逻辑单元102用于确定被除数m的有效位数m_width和除数n的有效位数n_width;确定被除数m的有效位数m_width和除数n的有效位数n_width的差值d,然后,将差值d加1得到商q的预估有效位数,确定商q的默认有效位数和商的预估有效位数之间的最小值,并将最小值减1作为商的实际有效位数q_width,将除数n左移商的实际有效位数减1,即将除数n左移(q_width-1)位,并将实际有效位数减1作为循环次数i,即i=(q_width-1)。将被除数m更新为被除数m减去除数n的差值,即m=(m-n),判断被除数m是否大于等于零,若判断结果为是,则将商q的第i-1位赋值1,若判断结果为否,则将商q的第i-1位赋值0,并将被除数m更新为被除数m加除数n,即m=(m+n),将循环次数i减去1,判断循环次数i是否小于零,若判断结果为是,则结束循环,若判断结果为否,则返回:将被除数m更新为被除数m减去除数n的差值。
本申请实施例还提供了一种数据处理方法。具体地,图4中示意出了本申请实施例一种数据处理方法的示意图,该流程的执行主体为电子设备的处理器,可以由处理器运行软件来实施上述数据处理方法。
401:获取待进行除法运算的第一被除数与第一除数。
可以理解,在一些实施例中,用户可以将第一被除数、第一除数输入电子设备,进而电子设备的除法运算模块获取到第一被除数、第一除数。
402:确定所述第一被除数中先导1所处的位置,并将所述第一除数的先导1的位置设置为与所述第一被除数的先导1的位置对齐。
在本申请实施例中,先导1是指二进制数中第一个“1”所处的位置。
例如,第一被除数为1010,则第一被除数的先导1在第一位,第一除数为0011,则第一除数的先导1在第三位。
为了将第一除数的先导1的位置与第一被除数的先导1的位置对齐,首先确定第一被除数的有效位数和第一除数的有效位数的差值,将差值加1得到商的预估有效位数,其次,基于商的预估有效位数与商的默认有效位数中较小的数值,确定总循环次数,并将第一除数左移总循环次数位。
例如,若第一被除数为1010(对应的十进制数为10),则1010的有效位数为4。若第一除数为0011(对应的十进制数为3),则0011的有效位数为2。第一被除数1010的有效位数和除数0011的有效位数的差值为2,将差值加1得到商的预估有效位数为3。
可以理解,在除法运算中,商是通过循环计算每位实现的,同时循环次数取决于电子设备的寄存器的机器字长,即商的默认有效位数,本申请实施例提供的方法将商的默认有效位数和商的预估有效位数之间的最小值减1作为总循环次数,达到降低除法运算中的循环次数的目的,以此提高计算效率。
可以理解,在本申请实施例中,商的默认有效位数为8,商的预估有效位数为3,因此,总循环次数为2,将第一除数0011左移2位,即001100,第一被除数为1010,此时第一除数的先导1的位置与第一被除数的先导1的位置对齐。
403:依次对所述第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到所述第一被除数和第一除数的除法运算结果。
在本申请实施例中,计算第一被除数与第一除数的差值,将差值与0进行比较,当差值大于等于0时,为商的第总循环次数位赋值1,将第一被除数更新为差值;当差值小于0时,为商的第总循环次数位赋值0,将第一被除数更新为差值加第一除数。然后,将总循环次数减去1,并将第一除数右移一位,返回计算第一被除数与第一除数的差值,直至总循环次数小于0,终止循环。
例如,令总循环次数i=2,计算(第一被除数-第一除数)的差值,即1010-001100=00001010-00001100=11111110。由于11111110小于0,因此q[2]=0。将第一被除数更新为(第一被除数-第一除数)的差值+第一除数=11111110+00001100=00001010;将第一除数右移一位,得到00000110;将总循环次数i减1,得到1。
可以理解,(第一被除数-第一除数)的差值小于0时,即第一被除数不够除第一除数,因此需要借位或移位,所以为商的第i位赋值0,将第一被除数加上第一除数是为了得到原被除数,以供下一个循环的计算。
当i=1时,计算(第一被除数-第一除数)的差值,即00001010-00000110=00000100。由于00000100大于0,因此q[1]=1。将第一被除数更新为(第一被除数-第一除数)的差值=00000100;将第一除数n右移一位,得到00000011;将总循环次数i减1,得到0。
可以理解,当(第一被除数-第一除数)的差值大于0时,即第一被除数够除第一除数,因此不需要借位或移位,所以为商q的第i位赋值1。
当i=0时,计算(第一被除数-第一除数)的差值,即00000100-00000011=00000001。由于00000001大于0,因此q[0]=1。将第一被除数更新为(第一被除数-第一除数)的差值=00000001;将第一除数右移一位,得到00000001;将循环次数i减1,得到-1。
可以理解,当(第一被除数-第一除数)的差值大于0时,即第一被除数够除第一除数,因此不需要借位或移位,所以为商的第i位赋值1。
由于-1小于0,因此,终止循环,此时第一被除数=余数=00000001,商=011=00000011。
在本申请实施例中,将第一除数的移位数作为循环次数,即从商的默认有效位数和商的预估有效位数中选择较小的值,并减去1作为总循环次数。因为商的预估有效位数一般会小于商的默认有效位数,从而在一定程度上,与将商的默认有效位数作为总循环次数的方法相比,减少了除法运算的循环次数,即减少了循环过程中的减法、移位和比较操作,减少了运算周期,提高了计算效率。
进一步,图5根据本申请的一些实施例,示出了一种电子设备100的结构示意图。如图5所示,电子设备100包括一个或多个处理器101A、系统内存102、非易失性存储器(Non-Volatile Memory,NVM)103、通信接口104、输入/输出(I/O)设备105、以及用于耦接处理器101A、系统内存102、非易失性存储器103、通信接口104和输入/输出(I/O)设备105的系统控制逻辑106。其中:
处理器101A可以用于控制电子设备执行本申请的数据处理方法,其中,处理器101A可以包括一个或多个处理单元,例如,可以包括中央处理器CPU(Central ProcessingUnit)、图像处理器GPU(Graphics Processing Unit)、数字信号处理器DSP(DigitalSignal Processor)、微处理器MCU(Micro-programmed Control Unit)、AI(ArtificialIntelligence,人工智能)处理器或可编程逻辑器件FPGA(Field Programmable GateArray)的处理模块或处理电路可以包括一个或多个单核或多核处理器。系统内存102是易失性存储器,例如随机存取存储器(Random-Access Memory,RAM),双倍数据率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDRSDRAM)等。系统内存用于临时存储数据和/或指令,例如,在一些实施例中,系统内存102可以用于存储上述除数寄存器、算数逻辑单元、被除数寄存器、余数寄存器、商寄存器和除法控制逻辑器等。
非易失性存储器103可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性的计算机可读介质。在一些实施例中,非易失性存储器103可以包括闪存等任意合适的非易失性存储器和/或任意合适的非易失性存储设备,例如硬盘驱动器(Hard Disk Drive,HDD)、光盘(Compact Disc,CD)、数字通用光盘(Digital Versatile Disc,DVD)、固态硬盘(Solid-State Drive,SSD)等。在一些实施例中,非易失性存储器103也可以是可移动存储介质,例如安全数字(Secure Digital,SD)存储卡等。在另一些实施例中,非易失性存储器103可以用于存储上述除数寄存器、算数逻辑单元、被除数寄存器、余数寄存器、商寄存器和除法控制逻辑器等。
特别地,系统内存102和非易失性存储器103可以分别包括:指令107的临时副本和永久副本。指令107可以包括:由处理器101A执行时使电子设备100实现本申请各实施例提供的数据处理方法。
通信接口104可以包括收发器,用于为电子设备100提供有线或无线通信接口,进而通过一个或多个网络与任意其他合适的设备进行通信。在一些实施例中,通信接口104可以集成于电子设备100的其他组件,例如通信接口104可以集成于处理器101A中。在一些实施例中,电子设备100可以通过通信接口104和其他设备通信,例如,电子设备100可以通过通信接口104从其他电子设备获取待运行的数据处理方法。
输入/输出(I/O)设备105可以包括输入设备如键盘、鼠标等,输出设备如显示器等,用户可以通过输入/输出(I/O)设备105与电子设备100进行交互。
系统控制逻辑106可以包括任意合适的接口控制器,以电子设备100的其他模块提供任意合适的接口。例如在一些实施例中,系统控制逻辑106可以包括一个或多个存储器控制器,以提供连接到系统内存102和非易失性存储器103的接口。
在一些实施例中,处理器101A中的至少一个可以与用于系统控制逻辑106的一个或多个控制器的逻辑封装在一起,以形成系统封装(System in Package,SiP)。在另一些实施例中,处理器101A中的至少一个还可以与用于系统控制逻辑106的一个或多个控制器的逻辑集成在同一芯片上,以形成SoC。
可以理解,电子设备100可以是能够运行DCLS的任意电子设备,包括但不限于手机、可穿戴设备(如智能手表等)、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等,本申请实施例不做限定。
可以理解,图5所示的电子设备100的结构只是一种示例,在另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、可擦除可编程只读存储器(Erasable Programmable Read OnlyMemory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable ProgrammableRead-Only Memory,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。
Claims (13)
1.一种数据处理方法,应用于电子设备,其特征在于,包括:
获取待进行除法运算的第一被除数与第一除数;
确定所述第一被除数中先导1所处的位置,并将所述第一除数的先导1的位置设置为与所述第一被除数的先导1的位置对齐;
依次对所述第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到所述第一被除数和第一除数的除法运算结果。
2.根据权利要求1所述的数据处理方法,其特征在于,所述确定所述第一被除数中先导1所处的位置,并将所述第一除数的先导1的位置设置为与所述第一被除数的先导1的位置对齐包括:
计算所述第一被除数的第一有效位数、所述第一除数的第二有效位数;
根据所述第一有效位数、所述第二有效位数,确定移动位数;
将所述第一除数的数值位左移所述移动位数位,以使所述第一除数的先导1的位置设置为与所述第一被除数的先导1的位置对齐。
3.根据权利要求2所述的数据处理方法,其特征在于,所述根据所述第一有效位数、所述第二有效位数,确定移动位数包括:
确定所述第一有效位数与所述第二有效位数的差值,得到第一差值;
将所述第一差值加1得到预估有效位数;
确定商的默认有效位数;
基于所述默认有效位数、所述预估有效位数中较小的数值,确定所述移动位数。
4.根据权利要求2所述的数据处理方法,其特征在于,将所述移动位数作为所述第一被除数和第一除数的除法运算的总循环次数。
5.根据权利要求4所述的数据处理方法,其特征在于,所述依次对所述第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到运算结果包括:
计算所述第一被除数与所述第一除数的差值,得到第二差值,并将所述第二差值作为第二被除数;
基于所述第二被除数为商的第所述总循环次数位赋值,并获取第三被除数;
将所述总循环次数减1,获取剩余循环次数,并将所述第一除数的数值位右移一位,得到第二除数;
在所述剩余循环次数小于0的情况下,将所述第二被除数作为余数;
基于所述商的第所述总循环次数位的赋值确定所述商的数值。
6.根据权利要求5所述的数据处理方法,其特征在于,
在所述剩余循环次数大于等于0的情况下,将所述第三被除数作为所述第一被除数,将所述第二除数作为所述第一除数;
计算所述第一被除数与所述第一除数的差值,得到第二差值,并将所述第二差值作为第二被除数。
7.根据权利要求5所述的数据处理方法,其特征在于,所述基于所述第二被除数为商的第所述总循环次数位赋值,并获取第三被除数包括:
对应于所述第二被除数大于等于0的情况,将所述商的第所述总循环次数位赋值1;将所述第二被除数作为所述第三被除数;
对应于所述第二被除数小于0的情况,将所述商的第所述总循环次数位赋值0;
计算所述第二被除数与所述第二除数的和,得到第二数值,将所述第二数值作为所述第三被除数。
8.一种除法器,其特征在于,包括除法控制逻辑器;
所述除法控制逻辑器用于获取待进行除法运算的第一被除数与第一除数;
确定所述第一被除数先导1所处的位置,并将所述第一除数的先导1的位置设置为与所述第一被除数的先导1的位置对齐;
依次对所述第一被除数和第一除数执行减法操作、差值与零的比较操作和移位操作,得到运算结果。
9.根据权利要求8所述的除法器,其特征在于,还包括第一被除数寄存器、第一除数寄存器、算数逻辑单元、余数寄存器、商寄存器,
所述第一被除数寄存器用于存储除法运算过程中的第一被除数;
所述第一除数寄存器用于存储除法运算过程中的第一除数;
所述商寄存器用于存储除法运算过程中的商;
所述余数寄存器用于存储除法运算过程中的余数;
所述算数逻辑单元用于从所述第一被除数寄存器获取第一被除数;从所述第一除数寄存器获取第一除数;
所述除法控制逻辑器用于控制除法运算开始和结束,以及第一除数寄存器、第一被除数寄存器、余数寄存器和商寄存器的初始化、移位和更新。
10.一种可读介质,其特征在于,所述可读介质上存储有指令,所述指令在电子设备上执行时使所述电子设备执行权利要求1至7中任一项所述的数据处理方法。
11.一种电子设备,其特征在于,包括:存储器,用于存储由所述电子设备的一个或多个处理器执行的指令,以及所述处理器,是所述电子设备的所述一个或多个处理器之一,用于执行权利要求1至7中任一项所述的数据处理方法。
12.一种电子设备,其特征在于,包括权利要求8至9中任一项所述的除法器。
13.一种计算机程序产品,其特征在于,包括:执行指令,所述执行指令存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取执行指令,至少一个处理器执行所述执行指令使得所述电子设备实现权利要求1至7中任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211067568.6A CN115357216A (zh) | 2022-09-01 | 2022-09-01 | 数据处理方法、介质、电子设备和程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211067568.6A CN115357216A (zh) | 2022-09-01 | 2022-09-01 | 数据处理方法、介质、电子设备和程序产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357216A true CN115357216A (zh) | 2022-11-18 |
Family
ID=84004577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211067568.6A Pending CN115357216A (zh) | 2022-09-01 | 2022-09-01 | 数据处理方法、介质、电子设备和程序产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357216A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
-
2022
- 2022-09-01 CN CN202211067568.6A patent/CN115357216A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102471606B1 (ko) | 내장형 라운딩 규칙을 갖는 부동 소수점 명령어 포맷 | |
EP0075745B1 (en) | Method and apparatus for division | |
CN116028013B (zh) | 一种fpga除法运算的优化方法、装置、除法器和介质 | |
US9983850B2 (en) | Shared hardware integer/floating point divider and square root logic unit and associated methods | |
WO2018138469A1 (en) | An apparatus and method for processing input operand values | |
WO2023124372A1 (zh) | 浮点数处理装置、方法、电子设备、存储介质及芯片 | |
CN108139912B (zh) | 在浮点运算期间计算和保留误差边界的装置和方法 | |
CN115357216A (zh) | 数据处理方法、介质、电子设备和程序产品 | |
CN114139693A (zh) | 神经网络模型的数据处理方法、介质和电子设备 | |
JP6350296B2 (ja) | 処理プログラム、処理装置および処理方法 | |
CN116166217A (zh) | 执行浮点操作的系统和方法 | |
CN101361278B (zh) | 奇偶校验位生成电路、计数电路以及计数方法 | |
CN106528050B (zh) | 尾随或前导数字预测器 | |
US6907442B2 (en) | Development system of microprocessor for application program including integer division or integer remainder operations | |
CN113032797A (zh) | 在处理设备中执行加密操作的方法 | |
US9128759B2 (en) | Decimal multi-precision overflow and tininess detection | |
US20230412190A1 (en) | Encoder and decoder | |
CN114077416A (zh) | 浮点数运算方法及装置 | |
US20230075534A1 (en) | Masked shifted add operation | |
RU2276805C2 (ru) | Способ и устройство для выделения целой и дробных компонент из данных с плавающей точкой | |
JP3613466B2 (ja) | データ演算処理装置及びデータ演算処理プログラム | |
JP2985093B2 (ja) | 演算制御装置 | |
CN116991362A (zh) | 模乘运算处理方法、装置、电子设备及可读介质 | |
JP3522387B2 (ja) | パイプライン演算装置 | |
EP1178396A1 (en) | Apparatus and method for the normalisation of data |
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 |