CN117348841A - 数据处理方法、装置、电子设备及可读存储介质 - Google Patents

数据处理方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117348841A
CN117348841A CN202311267340.6A CN202311267340A CN117348841A CN 117348841 A CN117348841 A CN 117348841A CN 202311267340 A CN202311267340 A CN 202311267340A CN 117348841 A CN117348841 A CN 117348841A
Authority
CN
China
Prior art keywords
divisor
remainder
quotient
dividend
cyclic
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
CN202311267340.6A
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.)
Gree Electric Appliances Inc of Zhuhai
Zhuhai Zero Boundary Integrated Circuit Co Ltd
Original Assignee
Gree Electric Appliances Inc of Zhuhai
Zhuhai Zero Boundary Integrated Circuit Co 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 Gree Electric Appliances Inc of Zhuhai, Zhuhai Zero Boundary Integrated Circuit Co Ltd filed Critical Gree Electric Appliances Inc of Zhuhai
Priority to CN202311267340.6A priority Critical patent/CN117348841A/zh
Publication of CN117348841A publication Critical patent/CN117348841A/zh
Pending legal-status Critical Current

Links

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/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/535Dividing 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)
  • Complex Calculations (AREA)

Abstract

本发明实施例提供了一种数据处理方法、装置、电子设备及可读存储介质,所述方法包括:接收处理指令;确定所述除数的前导零余数;将所述被除数作为初始余数;将所述初始余数向右移所述前导零个数的位数得到循环商;将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;从所述初始余数中减去所述循环商与所述除数之积得到余数;当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。本发明实施例的整形除法器所需的运算资源较少。

Description

数据处理方法、装置、电子设备及可读存储介质
技术领域
本发明实施例涉及计算机技术领域,特别是涉及一种数据处理方法、一种数据处理装置、一种电子设备以及一种计算机可读存储介质。
背景技术
在图像处理、音频处理、电机控制等场景中,存在大量16bit整形除法需求。然而目前的一些芯片仍不支持除法运算,这使得芯片通用性有所降低。当算法有除法运算,且对于芯片成本有一定要求时,可以考虑将除法器封装成软核,这样不仅可以实现除法运算,同时可以达到降低成本的目的。
目前除法运算使用的算法主要分两类,一类是数字循环法,一类是迭代法。其余算法均基于两类算法变形得到。目前多数芯片使用的主流除法算法为长除法、SRT算法、Goldschmidt迭代法等,这些除法算法在软核实现过程中,均涉及乘法、加法、减法运算,其中,长除法和SRT4算法收敛速度较慢,SRT8和SRT16算法收敛速度会有所提升,但是涉及的乘法和判断分支有所增加,Goldschmidt迭代法有较好的收敛性,但是需要对除数进行归一化,循环次数增加。因此,目前对于软核实现的除法器,除法算法仍需进行优化,从而可以在运算芯片的运算资源有限的情况下,降低某些应用场景下的芯片使用成本。
发明内容
本发明实施例是提供一种数据处理方法、装置、电子设备以及计算机可读存储介质,以解决在运算芯片的运算资源有限的情况下,如何降低某些应用场景下的芯片使用成本的问题。
本发明实施例公开了一种数据处理方法,应用于运算芯片中的整形除法器中,所述方法包括:
接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值;
确定所述除数的前导零余数;其中,所述前导零余数为所述除数的最高位1的位置;
将所述被除数作为初始余数;
将所述初始余数向右移所述前导零余数的位数得到循环商;
将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置;
从所述初始余数中减去所述循环商与所述除数之积得到余数;
当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
可选地,在所述确定所述除数的前导零余数之前,所述方法还包括:
读取所述被除数和所述除数的符号位,以确定对所述被除数和所述除数进行除法运算的除法运算结果为正数或者负数;
若确定所述除法运算结果为负数,则对所述被除数和所述除数进行绝对值运算,将所述被除数和所述除数进行除法运算后的除法运算结果取负。
可选地,所述除数为16位的二进制数值,所述确定所述除数的前导零余数,包括:
将所述除数划为高位和低位;其中,所述高位包括所述除数的前8位,所述低位包括所述除数的后8位;
与预设阈值比较,确定所述除数的最高位的1在所述高位或者所述低位;
当所述除数的最高位的1在所述高位时,将所述除数右移8位;
从预设数组中查找右移8位后的所述除数的初始前导零余数;
将所述初始前导零余数加8得到前导零余数。
可选地,在所述确定所述除数的前导零余数之后,所述方法还包括:
以所述前导零余数为指数且2为底数进行次方运算得到次方结果;
当所述次方结果小于所述除数时,将所述前导零余数与预设数值相加得到修正数值,并将所述修正数值作为所述前导零余数,以使所述前导零余数为指数且2为底数进行次方运算得到次方结果大于或等于所述除数。
可选地,所述当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果,包括:
若所述余数大于或等于所述除数,则将所述总商与预设数值相加后值作为所述被除数和所述除数之间的除法运算的除法运算结果;
若所述余数小于所述除数,则将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果。
可选地,所述整形除法器的应用场景至少包括以下的其中一种:电子测量设备、照明控制、紧凑型电源和马达控制。
可选地,所述预设数值至少包括1;所述收敛条件至少包括所述循环商小于1。
本发明实施例还公开了一种数据处理装置,应用于运算芯片中的整形除法器中,所述装置包括:
处理指令接收模块,用于接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值;
前导零余数确定模块,用于确定所述除数的前导零余数;其中,所述前导零余数为所述除数的最高位1的位置;
初始余数确定模块,用于将所述被除数作为初始余数;
循环商计算模块,用于将所述初始余数向右移所述前导零余数的位数得到循环商;
总商计算模块,用于将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置;
余数计算模块,用于从所述初始余数中减去所述循环商与所述除数之积得到余数;
运算结果获得模块,用于当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
可选地,所述装置还包括:绝对值计算模块,用于:
读取所述被除数和所述除数的符号位,以确定对所述被除数和所述除数进行除法运算的除法运算结果为正数或者负数;
若确定所述除法运算结果为负数,则对所述被除数和所述除数进行绝对值运算,将所述被除数和所述除数进行除法运算后的除法运算结果取负。
可选地,所述除数为16位的二进制数值,所述前导零余数确定模块,用于:
将所述除数划为高位和低位;其中,所述高位包括所述除数的前8位,所述低位包括所述除数的后8位;
与预设阈值比较,确定所述除数的最高位的1在所述高位或者所述低位;
当所述除数的最高位的1在所述高位时,将所述除数右移8位;
从预设数组中查找右移8位后的所述除数的初始前导零余数;
将所述初始前导零余数加8得到前导零余数。
可选地,所述前导零余数确定模块,用于:
以所述前导零余数为指数且2为底数进行次方运算得到次方结果;
当所述次方结果小于所述除数时,将所述前导零余数与预设数值相加得到修正数值,并将所述修正数值作为所述前导零余数,以使所述前导零余数为指数且2为底数进行次方运算得到次方结果大于或等于所述除数。
可选地,所述运算结果获得模块,用于:
若所述余数大于或等于所述除数,则将所述总商与预设数值相加后值作为所述被除数和所述除数之间的除法运算的除法运算结果;
若所述余数小于所述除数,则将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机程序产品,该程序产品被存储在存储介质中,该计算机程序产品被至少一个处理器执行以实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,应用于运算芯片中的整形除法器中,在整形除法器接收到处理指令时,从处理指令提取为二进制的被除数和除数用于进行除法运算,具体地,确定所述除数的前导零余数,其中,前导零余数为除数的最高位1的位置,将被除数作为初始余数,然后将初始余数向右移前导零余数的位数得到循环商,将循环商与针对被除数和除数的除法运算设置的总商相加得到相加值,并将相加值作为总商,从初始余数中减去循环商与所述除数之积得到余数,若循环商达到收敛条件,则可以将总商作为被除数和除数之间的除法运算的除法运算结果,反之,若循环商未达到收敛条件,则可以将余数作为初始余数,并重新返回将初始余数向右移前导零余数的位数得到循环商的步骤,直至循环商达到收敛条件。本发明实施例实现除法运算的过程简单,所需的运算资源较少,因此,在运算芯片的运算资源有限的情况下,可以降低某些应用场景下的运算芯片使用成本。
附图说明
图1是本发明实施例中提供的一种数据处理方法的步骤流程图;
图2是本发明实施例中提供的一种整形除法器的除法运算的计算流程图;
图3是本发明实施例中提供的一种数据处理装置的结构框图;
图4是实现本发明各个实施例的一种电子设备的硬件结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明实施例中提供的一种数据处理方法的步骤流程图,应用于运算芯片中的整形除法器中,所述方法具体可以包括如下步骤:
步骤101、接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值。
在具体实现中,整形除法器可以用于执行整型除法运算的除法器。整形除法器特别设计用于处理整数数值,即在进行除法运算时,只考虑整数部分的商,并忽略小数部分或余数。整形除法器通常用于计算机硬件中,例如,微处理器(MCU,Microcontroller Unit)和计算器等运算芯片中。
在本发明实施例中,当运算芯片接收到处理指令时,可以从处理指令中提取用于进行除法运算的被除数(D)和除数(divisor),其中,被除数和除数为二进制的数值,例如为16位(bit)的二进制的数值。
步骤102、确定所述除数的前导零余数;其中,所述前导零余数为所述除数的最高位1的位置。
其中,前导零余数指的是一个数字在二进制或其他数制中,最高有效位(MostSignificant Bit,MSB)所在位置。在二进制中,通常以固定位数表示整数,如果一个二进制数在最高有效位之前有一定数量的连续零位,那么这些连续零位的个数就是前导零余数。举例来说,假设一个8位二进制的除数为00010100,则该除数的前导零余数为3,因为在该除数的最高有效位之前有3个连续的0。
步骤103、将所述被除数作为初始余数。
步骤104、将所述初始余数向右移所述前导零余数的位数得到循环商。
步骤105、将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置。
步骤106、从所述初始余数中减去所述循环商与所述除数之积得到余数。
在本发明实施例中,针对被除数和除数的除法运算设置总商(也可以称为最终商result,result的初始值可以为0),将被除数作为除法运算的初始余数,然后,在通过除数计算得到求出前导零余数后,将初始余数向右移前导零余数的位数可以得到循环商q1,即单次循环得到的商,将循环商q1加入到总商中,即:result=result+q1。然后,从初始余数中将循环商与除数之积扣除可以得到余数,即余数A=A(初始余数)-q1*divisor,即得到单次循环后的余数。此时的余数通常会大于除数。
步骤107、当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
在本发明的一些实施例中,收敛条件至少可以包括循环商小于1。
在本发明实施例中,当循环商达到收敛条件时,例如循环商小于1时,可以将当前的总商作为除法运算的除法运算结果,当循环商未达到收敛条件时,例如循环商大于或等于1时,则可以将余数作为初始余数,并返回步骤104,直至循环商达到收敛条件。
在实际应用中,一些低端MCU由于能耗较低,常用于一些低功耗的控制及运算场景。比如,便携式电子测量设备、照明控制、紧凑型电源、马达控制。其中,电子测量设备的均值运算,照明控制电路中PWM(Pulse Width Modulation,脉冲宽度调制)波形的频率更新参数,紧凑型电源中开关平均算子,马达控制算法中的坐标变换,这些都会涉及除法运算。然而,由于低端MCU结构简单,通常不具备除法运算的功能。虽然除法运算可以有很多方式实现,但是不同的实现方法消耗的算力差异较大,算力意味着能耗,能耗意味着系统的续航性能。而本发明实施例的整形除法器,实现除法运算的过程简单,所需的运算资源较少,因此,不仅可以让MCU实现除法运算的功能,同时对于算力的消耗小,可以提高终端设备的系统的续航性能。
上述的数据处理方法,应用于运算芯片中的整形除法器中,在整形除法器接收到处理指令时,从处理指令提取为二进制的被除数和除数用于进行除法运算,具体地,确定所述除数的前导零余数,其中,前导零余数为除数的最高位1的位置,将被除数作为初始余数,然后将初始余数向右移前导零余数的位数得到循环商,将循环商与针对被除数和除数的除法运算设置的总商相加得到相加值,并将相加值作为总商,从初始余数中减去循环商与所述除数之积得到余数,若循环商达到收敛条件,则可以将总商作为被除数和除数之间的除法运算的除法运算结果,反之,若循环商未达到收敛条件,则可以将余数作为初始余数,并重新返回将初始余数向右移为前导零余数的位数得到循环商的步骤,直至循环商达到收敛条件。本发明实施例实现除法运算的过程简单,所需的运算资源较少,因此,在运算芯片的运算资源有限的情况下,可以降低某些应用场景下的运算芯片使用成本。
在本发明的一些实施例中,在所述步骤102、确定所述除数的前导零余数之前,所述方法还可以包括:
读取所述被除数和所述除数的符号位,以确定对所述被除数和所述除数进行除法运算的除法运算结果为正数或者负数;
若确定所述除法运算结果为负数,则对所述被除数和所述除数进行绝对值运算,将所述被除数和所述除数进行除法运算后的除法运算结果取负。
在具体实现中,被除数和除数分别有对应的符号位,通常是用一个位来表示,0表示正数,1表示负数。在本发明实施例中,可以读取被除数和除数的符号位来确定最终的除法运算结果的符号,具体地,如果被除数和除数的的符号位相同(同为正数或同为负数),则除法运算结果为正数,如果被除数和除数的的符号位不同(即一个为正数,一个为负数),则除法运算结果为负数。其中,当除法运算结果为负数,则需要对被除数和除数进行绝对值运算,再对除法运算后的结果取负。
举例来说,假设被除数为-8,除数为2,则16位的二进制表示分别为:-8的16位二进制表示为:1111111111111000,2的16位二进制表示为:0000000000000010,由于通过在读取符号位后,发现被除数的符号位为1(负数),除数的符号位为0(正数),由于两者的符号位不同,因此最终的除法运算结果为负数,因此可以将-8进行绝对值运算,-8的绝对值为8,8的16位二进制表示为:0000000000001000。
在本发明的一些实施例中,所述除数为16位的二进制数值,所述步骤102、确定所述除数的前导零余数,包括:
将所述除数划为高位和低位;其中,所述高位包括所述除数的前8位,所述低位包括所述除数的后8位;
与预设阈值比较,确定所述除数的最高位的1在所述高位或者所述低位;
当所述除数的最高位的1在所述高位时,将所述除数右移8位;
从预设数组中查找右移8位后的所述除数的初始前导零余数;
将所述初始前导零余数加8得到前导零余数。
其中,本发明实施例的预设数组是一个预先编写好的查找表,预设数组的作用是根据除数的值得到该除数的初始前导零余数,初始前导零余数用于表示一个数据的二进制位数的最高位1所在位置。需要说明的是,具体的预设数组内容根据具体需求而定,需要提前进行计算和定义。
在本发明实施例中,可以采用二分法来计算除数的前导零余数。具体地,利用255(255可以作为一个分界值,用来将一个16位的数字的高8位和低8位分开)将16位的除数分为高位(高8位)和低位(低8位)这两段,判断最高位1是在高8位还是低8位,如果是高8位需要将除数右移8位,将8作为初始初始前导零余数m0,如果是低8位则无需操作,然后,利用提前编写好的预设数组cmpA,从预设数组cmpA中查找右移8位后的除数最高位1所在位置,然后将其与初始前导零余数m0相加,即可得到除数的前导零余数。举例来说,如果通过前面高低8bit判断后的处理结果,除数为15,则cmpA[15]即为15的最高1的前导零余数最终为m=m0+cmpA[15]。
在本发明的一些实施例中,在所述步骤102、确定所述除数的前导零余数之后,所述方法还可以包括:
以所述前导零余数为指数且2为底数进行次方运算得到次方结果;
当所述次方结果小于所述除数时,将所述前导零余数与预设数值相加得到修正数值,并将所述修正数值作为所述前导零余数,以使所述前导零余数为指数且2为底数进行次方运算得到次方结果大于或等于所述除数。
其中,预设数值可以包括1。
在本发明实施例中,可以采用乘的方法,通过求除数的前导零余数m,求取大于等于除数(D)的最小2次幂(divdata,即2^m)。其中,求出前导零余数m后还需对其进行修正,当2的m次方后的次方结果小于除数时,则将前导零余数m与预设数值(例如1)相加得到修正数值X,并将修正数值X重新作为前导零余数m,以此保证2的m次方大于等于除数。当然,如果2的m次方大于等于除数,则可以不做处理。
在本发明的一些实施例中,所述步骤107、当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果,包括:
若所述余数大于或等于所述除数,则将所述总商与预设数值相加后值作为所述被除数和所述除数之间的除法运算的除法运算结果;
若所述余数小于所述除数,则将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果。
其中,预设数值可以包括1。
在本发明实施例中,在循环商达到预设收敛条件时,若当前循环得到的余数大于或等于所述除数,将总商与预设数值(例如预设数值可以为1)相加后值作为被除数和除数之间的除法运算的除法运算结果,反之,若当前循环得到的余数小于除数,则将总商作为被除数和除数之间的除法运算的除法运算结果。
为了使本领域技术人员更好地理解本发明实施例,以下采用具体示例进行说明。
本发明实施例的核心在于求每次循环中求被除数(D)和除数(divisor)的商(除法运算结果)的过程,本发明实施例采用乘的方法,通过求除数(divisor)的前导零余数m,求取大于等于被除数(D)的最小2次幂(divdata,即2^m)。通常可以得diviosr/2m的值在区间(0.5,1]中。将被除数(D)视为初始余数(D),每一次初始余数(D)右移m位即为当前循环的循环商(q0,q1.....qm),第一次得到的循环商为q0,通过将初始余数(D)减去除数(divisor)乘以q0,得到下次循环的余数,依此往复,直至某次求得的最后一次的循环商(qm)为0,则停止运算,将所有的循环商相加得到总商q,当最后的余数大于等于除数(divisor)时,将总商q加1进行调整。
示例性地,本发明实施例所使用的核心公式为:
D=q0×2m+p0,q0=D>>m;
D1=D-q0×divisor=q1×2m+p1,q1=D1>>m;
D2=D1-q1×divisor=q2×2m+p2,q2=D2>>m;
....
D-(q0+q1+q2+q3+...qm)×divisor=qm
其中,总商q=q0+q1+q2+q3+...qm,当qm(余数)大于等于除数(divisor)时,将总商q加1进行调整,即q=q+1。
在实际应用中,通过软核方式实现整形除法器时,其运算量集中于加、减、乘、移位、判断几种基本运算和逻辑结构。整形除法器的运算量与被除数和除数的大小关系密切,通常在总运算量较大的情况下,加、减、乘、移位、判断的执行次数均较多。将本发明实施例与目前流行的几种方法进行仿真,对比各方法在最坏情况下的运算资源需求,具体可以参考表1:
从上述的表1可以发现,本发明实施例不仅结构简单,同时相较目前流行的几种算法,运算资源最少可以优化25%以上。
参照图2,为本发明实施例中提供的一种整形除法器的流程图,具体可以包括如下包括:
1、通过被除数(D)和除数(divisor)的正负,判断商(Q)的正负;
2、被除数(D)和除数(divisor)进行绝对值运算,保证后续除法运算中两者均为非负数;
3、求除数(divisor)的前导零余数m,也就是求除数(divisor)最高位1的位置。实现本步骤的较快捷的方法之一是二分法,具体地,二分法是利用255将16bit的除数(divisor)分为高8bit和低8bit两段,判断最高位1是在高8bit还是低8bit,如果是高8bit需要将除数右移8bit,位置数m加8,如果是低8bit则无需操作。然后,利用提前编写好的预设数组cmpA,查找对应除数(divisor)的位宽。例如,通过前面高8bit和低8bit判断后的处理结果,除数(divisor)为15,则预设数组cmpA得到15对应的位宽cmpA[15],则最终的总商,即除法运算结果为m=m+cmpA[15];
4、求出前导零余数m后可能还需对其进行修正。具体看当2的m次方小于除数(divisor)时,则将前导零余数m与预设数值1相加,即:m=m+1,以此保证2的m次方大于等于除数(divisor);
5、求出前导零余数m后,将被除数(D)向右移m位,得到q1。q1即为单次循环得到的商(循环商),将q1加入到最终商(总商)中result=result+q1。由于2的m次方一定大于等于除数(divisor),所以将q1乘以除数(divisor)一定小于被除数(D),从被除数(D)中将这部分扣除即A=A-q1*divisor,即得到单次循环后的余数。此时的余数通常会大于除数(divisor);
6、在步骤5的基础上将余数继续右移m位,得到q2,q2即为第二次循环得到的商,同样将q2加入到最终商中,result=result+q2,并得到第二次的余数A=A-q2*divisor。重复这样的操作,直至qm<1;
7、重复步骤5、6的操作后,即可得到结果:D-(q1+q2+q3+....qm)divisor=p;
8、此时p可能大于等于divisor,因此需要对最终的result进行修正。当p大于等于divisor时,result=result+1,此时的result即为最终的商,p-divisor即为最终的余数。
由于本发明实施例的整形除法器实现简单,所需要运算量较少,因此可以通过运算芯片(例如低端MCU)的有限资源实现软核除法器,从而扩大了低端运算芯片的通用性,降低了某些应用场景下的运算芯片使用成本。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图3,示出了本发明实施例中提供的一种数据处理装置的结构框图,具体可以包括如下模块:
处理指令接收模块301,用于接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值;
前导零余数确定模块302,用于确定所述除数最高位1的位置;
初始余数确定模块303,用于将所述被除数作为初始余数;
循环商计算模块304,用于将所述初始余数向右移所述前导零余数的位数得到循环商;
总商计算模块305,用于将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置;
余数计算模块306,用于从所述初始余数中减去所述循环商与所述除数之积得到余数;
运算结果获得模块307,用于当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
在本发明的一些实施例中,所述装置还包括:绝对值计算模块,用于:
读取所述被除数和所述除数的符号位,以确定对所述被除数和所述除数进行除法运算的除法运算结果为正数或者负数;
若确定所述除法运算结果为负数,则对所述被除数和所述除数进行绝对值运算,将所述被除数和所述除数进行除法运算后的除法运算结果取负。
在本发明的一些实施例中,所述除数为16位的二进制数值,所述前导零余数确定模块302,用于:
将所述除数划为高位和低位;其中,所述高位包括所述除数的前8位,所述低位包括所述除数的后8位;
与预设阈值比较,确定所述除数的最高位的1在所述高位或者所述低位;
当所述除数的最高位的1在所述高位时,将所述除数右移8位;
根据所述除数的右移位数确定初始前导零余数;
从预设数组中查找右移8位后的所述除数的最高位1位置;
将所述最高位1位置和所述初始前导零余数相加得到前导零余数。
在本发明的一些实施例中,所述前导零余数确定模块302,用于:
以所述前导零余数为指数且2为底数进行次方运算得到次方结果;
当所述次方结果小于所述除数时,将所述前导零余数与预设数值相加得到修正数值,并将所述修正数值作为所述前导零余数,以使所述前导零余数为指数且2为底数进行次方运算得到次方结果大于或等于所述除数。
在本发明的一些实施例中,所述运算结果获得模块307,用于:
若所述余数大于或等于所述除数,则将所述总商与预设数值相加后值作为所述被除数和所述除数之间的除法运算的除法运算结果;
若所述余数小于所述除数,则将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果。
在本发明的一些实施例中,所述整形除法器的应用场景至少包括以下的其中一种:电子测量设备、照明控制、紧凑型电源和马达控制。
在本发明的一些实施例中,所述预设数值至少包括1;所述收敛条件至少包括所述循环商小于1。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
本发明实施例还提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述数据处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
图4为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410、以及电源411等部件。本领域技术人员可以理解,图4中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元401可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器410处理;另外,将上行的数据发送给基站。通常,射频单元401包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元401还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块402为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元403可以将射频单元401或网络模块402接收的或者在存储器409中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元403还可以提供与电子设备400执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元403包括扬声器、蜂鸣器以及受话器等。
输入单元404用于接收音频或视频信号。输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元406上。经图形处理器4041处理后的图像帧可以存储在存储器409(或其它存储介质)中或者经由射频单元401或网络模块402进行发送。麦克风4042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元401发送到移动通信基站的格式输出。
电子设备400还包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板4061的亮度,接近传感器可在电子设备400移动到耳边时,关闭显示面板4061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器405还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元406用于显示由用户输入的信息或提供给用户的信息。显示单元406可包括显示面板4061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板4061。
用户输入单元407可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板4071上或在触控面板4071附近的操作)。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,接收处理器410发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板4071。除了触控面板4071,用户输入单元407还可以包括其他输入设备4072。具体地,其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板4071可覆盖在显示面板4061上,当触控面板4071检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板4061上提供相应的视觉输出。虽然在图4中,触控面板4071与显示面板4061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板4071与显示面板4061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元408为外部装置与电子设备400连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元408可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备400内的一个或多个元件或者可以用于在电子设备400和外部装置之间传输数据。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器409可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器410是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器409内的软件程序和/或模块,以及调用存储在存储器409内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器410可包括一个或多个处理单元;优选的,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
电子设备400还可以包括给各个部件供电的电源411(比如电池),优选的,电源411可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备400包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种数据处理方法,其特征在于,应用于运算芯片中的整形除法器中,所述方法包括:
接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值;
确定所述除数的前导零余数;其中,所述前导零余数为所述除数的最高位1的位置;
将所述被除数作为初始余数;
将所述初始余数向右移所述前导零余数的位数得到循环商;
将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置;
从所述初始余数中减去所述循环商与所述除数之积得到余数;
当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
2.根据权利要求1所述的方法,其特征在于,在所述确定所述除数的前导零余数之前,所述方法还包括:
读取所述被除数和所述除数的符号位,以确定对所述被除数和所述除数进行除法运算的除法运算结果为正数或者负数;
若确定所述除法运算结果为负数,则对所述被除数和所述除数进行绝对值运算,将所述被除数和所述除数进行除法运算后的除法运算结果取负。
3.根据权利要求1所述的方法,其特征在于,所述除数为16位的二进制数值,所述确定所述除数的前导零余数,包括:
将所述除数划为高位和低位;其中,所述高位包括所述除数的前8位,所述低位包括所述除数的后8位;
与预设阈值比较,确定所述除数的最高位的1在所述高位或者所述低位;
当所述除数的最高位的1在所述高位时,将所述除数右移8位;
从预设数组中查找右移8位后的所述除数的初始前导零余数;
将所述初始前导零余数加8得到前导零余数。
4.根据权利要求3所述的方法,其特征在于,在所述确定所述除数的前导零余数之后,所述方法还包括:
以所述前导零余数为指数且2为底数进行次方运算得到次方结果;
当所述次方结果小于所述除数时,将所述前导零余数与预设数值相加得到修正数值,并将所述修正数值作为所述前导零余数,以使所述前导零余数为指数且2为底数进行次方运算得到次方结果大于或等于所述除数。
5.根据权利要求1所述的方法,其特征在于,所述当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果,包括:
若所述余数大于或等于所述除数,则将所述总商与预设数值相加后值作为所述被除数和所述除数之间的除法运算的除法运算结果;
若所述余数小于所述除数,则将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果。
6.根据权利要求1所述的方法,其特征在于,所述整形除法器的应用场景至少包括以下的其中一种:电子测量设备、照明控制、紧凑型电源和马达控制。
7.根据权利要求4或5所述的方法,其特征在于,所述预设数值至少包括1;所述收敛条件至少包括所述循环商小于1。
8.一种数据处理装置,其特征在于,应用于运算芯片中的整形除法器中,所述装置包括:
处理指令接收模块,用于接收处理指令;其中,所述处理指令至少包括求对被除数和除数进行除法运算,所述被除数和除数为二进制的数值;
前导零余数确定模块,用于确定所述除数的前导零余数;其中,所述前导零余数为所述除数的最高位1的位置;
初始余数确定模块,用于将所述被除数作为初始余数;
循环商计算模块,用于将所述初始余数向右移所述前导零余数的位数得到循环商;
总商计算模块,用于将所述循环商与总商相加得到相加值,并将所述相加值作为所述总商;其中,所述总商为针对所述被除数和所述除数的除法运算设置;
余数计算模块,用于从所述初始余数中减去所述循环商与所述除数之积得到余数;
运算结果获得模块,用于当所述循环商达到收敛条件时,将所述总商作为所述被除数和所述除数之间的除法运算的除法运算结果;当所述循环商未达到收敛条件时,将所述余数作为初始余数,并返回所述将所述初始余数向右移所述前导零余数的位数得到循环商的步骤。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
CN202311267340.6A 2023-09-27 2023-09-27 数据处理方法、装置、电子设备及可读存储介质 Pending CN117348841A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311267340.6A CN117348841A (zh) 2023-09-27 2023-09-27 数据处理方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311267340.6A CN117348841A (zh) 2023-09-27 2023-09-27 数据处理方法、装置、电子设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN117348841A true CN117348841A (zh) 2024-01-05

Family

ID=89356765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311267340.6A Pending CN117348841A (zh) 2023-09-27 2023-09-27 数据处理方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117348841A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117908833A (zh) * 2024-03-19 2024-04-19 广州三晶电气股份有限公司 Mcu高位数整型除法器的加速方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117908833A (zh) * 2024-03-19 2024-04-19 广州三晶电气股份有限公司 Mcu高位数整型除法器的加速方法及装置
CN117908833B (zh) * 2024-03-19 2024-06-21 广州三晶电气股份有限公司 Mcu高位数整型除法器的加速方法及装置

Similar Documents

Publication Publication Date Title
CN110929838B (zh) 神经网络中位宽定点化方法、装置、终端和存储介质
CN111767025B (zh) 包括乘累加器的芯片、终端及浮点运算的控制方法
CN109768926B (zh) 一种数据处理方法、终端设备及计算机可读存储介质
CN107909583B (zh) 一种图像处理方法、装置及终端
CN109062464B (zh) 触控操作方法、装置、存储介质和电子设备
CN109885257B (zh) 一种磁盘文件读写方法及装置
CN108984066B (zh) 一种应用程序图标显示方法及移动终端
CN106296634B (zh) 一种检测相似图像的方法和装置
CN107886481B (zh) 一种图像处理方法、装置及移动终端
CN117348841A (zh) 数据处理方法、装置、电子设备及可读存储介质
JP2023518548A (ja) 検出結果出力方法、電子機器及び媒体
CN111522613B (zh) 截屏方法及电子设备
CN110705497A (zh) 图像帧处理方法、装置、终端设备及计算机可读存储介质
CN112995549B (zh) 数据处理方法、装置、设备和计算机可读存储介质
CN108933670B (zh) 一种数字签名方法、装置、移动设备及存储介质
CN112947890B (zh) 一种归并排序方法及装置
CN111753047B (zh) 一种文本处理方法及装置
CN115905160B (zh) 数据存储的校验方法、装置、电子设备及存储介质
CN111556248A (zh) 拍摄方法、装置、存储介质及移动终端
CN115905777A (zh) 确定插值坐标点的方法、装置、电子设备及存储介质
CN111045737A (zh) 设备标识获取方法、装置、终端设备和存储介质
CN111026457A (zh) 一种硬件配置方法、装置、存储介质及终端设备
CN115348256A (zh) 入账数据下传方法、装置、存储介质及电子设备
CN111192027B (zh) 榜单处理方法、装置及计算机可读存储介质
CN110995324B (zh) 蓝牙通信方法、装置、存储介质及终端设备

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