CN117908833A - Mcu高位数整型除法器的加速方法及装置 - Google Patents
Mcu高位数整型除法器的加速方法及装置 Download PDFInfo
- Publication number
- CN117908833A CN117908833A CN202410309905.0A CN202410309905A CN117908833A CN 117908833 A CN117908833 A CN 117908833A CN 202410309905 A CN202410309905 A CN 202410309905A CN 117908833 A CN117908833 A CN 117908833A
- Authority
- CN
- China
- Prior art keywords
- dividend
- bit
- quotient
- divisor
- updated
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000001133 acceleration Effects 0.000 title claims abstract description 29
- 238000004364 calculation method Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 23
- 230000008569 process Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本申请涉及一种MCU高位数整型除法器的加速方法及装置,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
Description
技术领域
本申请涉及MCU运算技术领域,特别是涉及一种MCU高位数整型除法器的加速方法及装置。
背景技术
随着MCU性能不断提高,MCU计算整型数除法已越来越快,原因是一般内置与MCU位数相同位的硬件除法器,MCU均能在少于10个指令周期完成计算,对于如某些ARM 或TI DSP内核甚至能实现单周期除法性能。例如,位数为32位的ARM-M4内核MCU,对于低于32位整型数的除法计算,能通过硬件除法器实现极快的除法运算。
但对于更高位的64位整型除法计算,MCU一般由纯软件来实现,耗时特别长。也就是说,对于这种高于MCU位数的除法计算,MCU除法存在计算周期不固定的问题,如ARM-M4内核32位MCU计算64位整型除法耗时约为1700~2800个指令周期,并且除法计算周期长,会制约更低主频MCU应用于实时性要求高的高位数除法应用场合,诸如高性能伺服、变频器等环路计算。
发明内容
基于此,有必要针对MCU高位数整型除法器计算周期长且不稳定的问题,提供一种MCU高位数整型除法器的加速方法及装置。
本公开实施例提供了一种MCU高位数整型除法器的加速方法,包括步骤:
获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
本公开实施例的MCU高位数整型除法器的加速方法,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
作为其中一个可选的实施例,所述获取2A位的被除数M以及A位的除数N的过程,包括步骤:
在检测到除法符号时,获取原始被除数与原始除数,并求所述原始被除数的绝对值和所述原始除数的绝对值;
将所述绝对值以A位MCU存储方式存储,以分别获得2A位的被除数M以及A位的除数N。
作为其中一个可选的实施例,所述获取2A位的被除数M以及A位的除数N的过程,包括步骤:
在未检测到除法符号时,获取以A位MCU存储方式存储的2A位的被除数M以及A位的除数N。
作为其中一个可选的实施例,还包括步骤:
在最高位K为0时,所述商C为1,所述余D为所述高A位被除数Mh与所述除数N的差值。
作为其中一个可选的实施例,所述将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,包括步骤:
检测所述被除数M的更新次数;
在所述更新次数为A+1次时,将所述赋值商Q作为加速后的除法输出结果。
作为其中一个可选的实施例,所述将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,包括步骤:
检测商符号性,根据商符号性调整更新后的赋值商Q;
将调整后的赋值商Q作为加速后的除法输出结果。
作为其中一个可选的实施例,所述A为32。
本公开实施例提供了一种MCU高位数整型除法器的加速装置,包括:
数据获取模块,用于获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
一次计算模块,用于在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
二次计算模块,用于根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
商值输出模块,用于将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
上述的MCU高位数整型除法器的加速装置,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
本公开至少一个实施例还提供一种数据控制装置,包括:
一个或多个存储器,非瞬时性地存储有计算机可执行指令;
一个或多个处理器,配置为运行计算机可执行指令,其中,计算机可执行指令被一个或多个处理器运行时实现根据本公开任一实施例的MCU高位数整型除法器的加速方法。
上述的数据控制装置,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
本公开至少一个实施例还提供一种非瞬时性计算机可读存储介质,其中,非瞬时性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行时实现根据本公开任一实施例的MCU高位数整型除法器的加速方法。
上述的非瞬时性计算机可读存储介质,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
附图说明
图1为一公开实施例的MCU高位数整型除法器的加速方法流程图;
图2为另一公开实施例的MCU高位数整型除法器的加速方法流程图;
图3为一具体实施例的MCU高位数整型除法器的加速方法流程图;
图4为一公开实施例的MCU高位数整型除法器的加速装置模块结构图;
图5为本公开至少一个实施例提供的一种数据控制装置的示意性框图;
图6为本公开至少一个实施例提供的一种非瞬时性计算机可读存储介质的示意图。
具体实施方式
为了使得本公开的实施例的目的、技术方案和优点更加清楚,下面将结合本公开的实施例的附图,对本公开的实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开的实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
本公开实施例提供了一种MCU高位数整型除法器的加速方法。
图1为一公开实施例的MCU高位数整型除法器的加速方法流程图,如图1所示,一公开实施例的MCU高位数整型除法器的加速方法包括步骤S100至步骤S103:
S100,获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
S101,在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
S102,根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
S103,将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
本公开实施例的MCU高位数整型除法器的加速方法,应用在A位数的MCU上,例如32位MCU或16位MCU,对应的除数为32位或16位,对应的高位被除数可以为64位或32位。
在本公开实施例中,被除数M的位数为除数N的两倍,对应的,A可以为16或32。
作为其中一个实施例,图2为另一公开实施例的MCU高位数整型除法器的加速方法流程图,如图2所示,步骤S100中获取2A位的被除数M以及A位的除数N的过程,包括步骤S200至步骤S202:
S200,在检测到除法符号时,获取原始被除数与原始除数,并求所述原始被除数的绝对值和所述原始除数的绝对值;
S201,将所述绝对值以A位MCU存储方式存储,以分别获得2A位的被除数M以及A位的除数N;
S202,在未检测到除法符号时,获取以A位MCU存储方式存储的2A位的被除数M以及A位的除数N。
其中,A位MCU存储方式与A位的MCU对应,包括MCU位数的指针或共同体方式,将绝对值转换为MCU位数的元素或数组,实现2A位的被除数M以及A位的除数N,以将除法器硬件的数值实现软件转换处理,便于后续计算。
其中,最高位K初始赋值为0,经计算更新出新的被除数U后,根据被除数U的值更新最高位K,再执行最高位K的判断。
在最高位K为0时,计算高A位被除数Mh与除数N的商C,即C=Mh/N。
在最高位K为0时,根据高A位被除数Mh、商C与除数N求余D,即D=Mh-C*N。
将余数D与低A位被除数Ml组成一个2A位数,即用余数D作为高A位与低A位被除数Ml组合成一个新的2A位数(D,Ml),并将其左移一位获得2A+1位的被除数U,即U(K,Mh,Ml)=(D,Ml)<<1。
将赋值商Q左移一位并与商C求和,即Q=(Q<<1)+C,更新后作为除法输出结果。
作为其中一个实施例,如图2所示,另一公开实施例的MCU高位数整型除法器的加速方法还包括步骤S300:
S300,在最高位K为0时,所述商C为1,所述余D为所述高A位被除数Mh与所述除数N的差值。
在最高位K为0时,C=1,而余D=Mh-N。
作为其中一个实施例,如图2所示,步骤S103中将赋值商Q左移一位并与商C求和,步骤S103中获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,包括步骤S400和步骤S401:
S400,检测所述被除数M的更新次数;
S401,在所述更新次数为A+1次时,将所述赋值商Q作为加速后的除法输出结果。
在更新次数为A+1次,即步骤S101和步骤S102循环执行A+1次后,再将循环执行A+1次后更新得到的赋值商Q作为加速后的除法输出结果。
作为其中一个实施例,如图2所示,步骤S103中将赋值商Q左移一位并与商C求和,步骤S103中获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,还包括步骤S500和步骤S501:
S500,检测商符号性,根据商符号性调整更新后的赋值商Q;
S501,将调整后的赋值商Q作为加速后的除法输出结果。
根据商符号性调整更新后的赋值商Q,使调整后的赋值商Q符合MCU除法器的硬件输出特点,实现软件输出到除法器硬件输出的转换。
为了更好地理解本申请公开实施例,以下以A为32位,即ARM-M4内核32位MCU计算64位除32位为例对本公开实施例进行解释。
图3为一具体实施例的MCU高位数整型除法器的加速方法流程图,如图3所示,64位被除数M(Mh,Ml)代表M高32位数是Mh,低32位数是Ml,而数U(K,Mh,Ml)代表最高1位是K,中间32位是Mh,低32位是Ml。
将64位被除数与32位除数转换为绝对值形式M与N,再将被除数M暂存并转为32位整型指针(相当于2个32位元素的数组)或C语言共同体形式(或称联合体),其中共同体一个成员是64位,另一个成员是由两个32位无符号整数(Mh, Ml)。
若最高位K为1,则易知商C为1、余数D为Mh-N,若K为0,则对高32位被除数Mh除以除数N,得到商C与余数D,除法与乘法均使用MCU内置硬件除法器与乘法器,能实现极快运算。所得余数D与原低32位整数Ml可组成一个64位数,再对该数进行左移1位即可得到新65位被除数U(K,Mh,Ml)。
重新之前操作33次,则可得商结果的绝对值。
基于商符号性,调整之前结果得到最终商结果。
本具体应用例基于软件代码并调用内置硬件除法器方案来加速计算,由原来传统的纯软件运算方案,升级为软件处理+硬件除法器结合的除法方案,能显著减少除法周期,且耗时比较稳定。对于ARM-M4内核的64位除32位整型除法,传统方案耗时1700~2700个指令周期,而本申请具体应用例的方案耗时680~740个指令周期,降低了约2/3计算周期,耗时极其稳定,特别适用于时序要求稳定的高位数除法应用场合,同时也可能间接地使得更低性能MCU应用于原来高性能的应用场合,从而降低了芯片成本。
本申请任意一个实施例的MCU高位数整型除法器的加速方法,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
本公开实施例还提供了一种MCU高位数整型除法器的加速装置。
图4为一公开实施例的MCU高位数整型除法器的加速装置模块结构图,如图4所示,一实施方式的MCU高位数整型除法器的加速装置包括:
数据获取模块100,用于获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
一次计算模块101,用于在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
二次计算模块102,用于根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
商值输出模块103,用于将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
上述的MCU高位数整型除法器的加速装置,获取2A位的被除数M以及A位的除数N;其中,A为正整数;被除数M包括高A位被除数Mh和低A位被除数Ml;在最高位K为0时,计算高A位被除数Mh与除数N的商C,并根据高A位被除数Mh、商C与除数N求余D;其中,初始的最高位K赋值为0;根据余D与低A位被除数Ml组成一个2A位数,并将2A位数左移一位获得更新后2A+1位的被除数U;其中,被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;被除数U用于更新替换被除数M;将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将赋值商Q作为加速后的除法输出结果。由此,降低除法计算周期并提高稳定性。
本公开至少一个实施例还提供一种数据控制装置。图5为本公开至少一个实施例提供的一种数据控制装置的示意性框图。例如,如图5所示,数据控制装置20可以包括一个或多个存储器200和一个或多个处理器201。存储器200用于非瞬时性地存储计算机可执行指令;处理器201用于运行计算机可执行指令,当计算机可执行指令被处理器201运行时可以使得处理器201执行根据本公开任一实施例的MCU高位数整型除法器的加速方法中的一个或多个步骤。
关于该MCU高位数整型除法器的加速方法的各个步骤的具体实现以及相关解释内容可以参见上述MCU高位数整型除法器的加速方法的实施例中的相关内容,在此不做赘述。应当注意,图5所示的数据控制装置20的组件只是示例性的,而非限制性的,根据实际应用需要,该数据控制装置20还可以具有其他组件。
在其中一个实施例中,处理器201和存储器200之间可以直接或间接地互相通信。例如,处理器201和存储器200可以通过网络连接进行通信。网络可以包括无线网络、有线网络、和/或无线网络和有线网络的任意组合,本公开对网络的类型和功能在此不作限制。又例如,处理器201和存储器200也可以通过总线连接进行通信。总线可以是外设部件互连标准(PCI)总线或扩展工业标准结构(EISA)总线等。例如,处理器201和存储器200可以设置在远程数据服务器端(云端)或分布式能源系统端(本地端),也可以设置在客户端(例如,手机等移动设备)。例如,处理器201可以是中央处理单元(CPU)、张量处理器(TPU)或者图形处理器GPU等具有数据处理能力和/或指令执行能力的器件,并且可以控制数据预测装置20中的其它组件以执行期望的功能。中央处理元(CPU)可以为X86或ARM架构等。
在其中一个实施例中,存储器200可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机可执行指令,处理器201可以运行计算机可执行指令,以实现数据预测装置20的各种功能。在存储器200中还可以存储各种应用程序和各种数据,以及应用程序使用和/或产生的各种数据等。
需要说明的是,数据控制装置20可以实现与前述MCU高位数整型除法器的加速方法相似的技术效果,重复之处不再赘述。
本公开至少一个实施例还提供一种非瞬时性计算机可读存储介质。图6为本公开至少一个实施例提供的一种非瞬时性计算机可读存储介质的示意图。例如,如图6所示,在非瞬时性计算机可读存储介质30上可以非瞬时性地存储一个或多个计算机可执行指令301。例如,当计算机可执行指令301由计算机执行时可以使得计算机执行根据本公开任一实施例的MCU高位数整型除法器的加速方法中的一个或多个步骤。
在其中一个实施例中,该非瞬时性计算机可读存储介质30可以应用于上述数据控制装置20中,例如,其可以为数据控制装置20中的存储器200。
在其中一个实施例中,关于非瞬时性计算机可读存储介质30的说明可以参考数据控制装置20的实施例中对于存储器200的描述,重复之处不再赘述。
需要注意的是,存储器200存储不同的非瞬时性地存储计算机可执行指令是,数据控制装置20对应作为固件升级装置,当计算机可执行指令被处理器201运行时可以使得处理器201执行根据本公开任一实施例的MCU高位数整型除法器的加速方法中的一个或多个步骤。
对于本公开,还有以下几点需要说明:
(1)本公开的实施例附图只涉及到与本公开的实施例涉及到的结构,其他结构可参考通常设计。
(2)为了清晰起见,在用于描述本发明的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以权利要求的保护范围为准。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种MCU高位数整型除法器的加速方法,其特征在于,包括步骤:
获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
2.根据权利要求1所述的MCU高位数整型除法器的加速方法,其特征在于,所述获取2A位的被除数M以及A位的除数N的过程,包括步骤:
在检测到除法符号时,获取原始被除数与原始除数,并求所述原始被除数的绝对值和所述原始除数的绝对值;
将所述绝对值以A位MCU存储方式存储,以分别获得2A位的被除数M以及A位的除数N。
3.根据权利要求1所述的MCU高位数整型除法器的加速方法,其特征在于,所述获取2A位的被除数M以及A位的除数N的过程,包括步骤:
在未检测到除法符号时,获取以A位MCU存储方式存储的2A位的被除数M以及A位的除数N。
4.根据权利要求1所述的MCU高位数整型除法器的加速方法,其特征在于,还包括步骤:
在最高位K为0时,所述商C为1,所述余D为所述高A位被除数Mh与所述除数N的差值。
5.根据权利要求1所述的MCU高位数整型除法器的加速方法,其特征在于,所述将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,包括步骤:
检测所述被除数M的更新次数;
在所述更新次数为A+1次时,将所述赋值商Q作为加速后的除法输出结果。
6.根据权利要求1所述的MCU高位数整型除法器的加速方法,其特征在于,所述将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果的过程,包括步骤:
检测商符号性,根据商符号性调整更新后的赋值商Q;
将调整后的赋值商Q作为加速后的除法输出结果。
7.根据权利要求1至6任意一项所述的MCU高位数整型除法器的加速方法,其特征在于,所述A为32。
8.一种MCU高位数整型除法器的加速装置,其特征在于,包括:
数据获取模块,用于获取2A位的被除数M以及A位的除数N;其中,A为正整数;所述被除数M包括高A位被除数Mh和低A位被除数Ml;
一次计算模块,用于在最高位K为0时,计算所述高A位被除数Mh与所述除数N的商C,并根据所述高A位被除数Mh、所述商C与所述除数N求余D;其中,初始的最高位K赋值为0;
二次计算模块,用于根据所述余D与所述低A位被除数Ml组成一个2A位数,并将所述2A位数左移一位获得更新后2A+1位的被除数U;其中,所述被除数U包括更新后的最高位K、更新后的高A位被除数Mh和更新后的低A位被除数Ml;所述被除数U用于更新替换所述被除数M;
商值输出模块,用于将赋值商Q左移一位并与商C求和,获得更新后的赋值商Q并将所述赋值商Q作为加速后的除法输出结果。
9.一种非瞬时性计算机可读存储介质,其特征在于,非瞬时性计算机可读存储介质存储有计算机可执行指令,计算机可执行指令被处理器执行时实现如权利要求1至7任意一项所述的MCU高位数整型除法器的加速方法。
10.一种数据控制装置,其特征在于,包括:
一个或多个存储器,非瞬时性地存储有计算机可执行指令;
一个或多个处理器,配置为运行计算机可执行指令,其中,计算机可执行指令被一个或多个处理器运行时实现如权利要求1至7任意一项所述的MCU高位数整型除法器的加速方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410309905.0A CN117908833B (zh) | 2024-03-19 | 2024-03-19 | Mcu高位数整型除法器的加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410309905.0A CN117908833B (zh) | 2024-03-19 | 2024-03-19 | Mcu高位数整型除法器的加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117908833A true CN117908833A (zh) | 2024-04-19 |
CN117908833B CN117908833B (zh) | 2024-06-21 |
Family
ID=90685547
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410309905.0A Active CN117908833B (zh) | 2024-03-19 | 2024-03-19 | Mcu高位数整型除法器的加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117908833B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128337A1 (en) * | 2002-12-26 | 2004-07-01 | Roussel Patrice L. | Extended precision integer divide algorithm |
CN103984521A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中simd结构浮点除法的实现方法及装置 |
JP2020160704A (ja) * | 2019-03-26 | 2020-10-01 | 日本電産株式会社 | 整数除算装置およびモータ制御装置 |
CN114089951A (zh) * | 2021-11-24 | 2022-02-25 | 深圳市海浦蒙特科技有限公司 | 一种快速除法器及其运行方法 |
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
CN116225370A (zh) * | 2023-01-30 | 2023-06-06 | 深圳市立创普电源技术有限公司 | 在mcu上实现除法运算的方法、系统、存储介质及电子设备 |
CN117331529A (zh) * | 2023-12-01 | 2024-01-02 | 泰山学院 | 一种除法器逻辑电路及实现除法器逻辑电路的方法 |
CN117348841A (zh) * | 2023-09-27 | 2024-01-05 | 珠海格力电器股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
-
2024
- 2024-03-19 CN CN202410309905.0A patent/CN117908833B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040128337A1 (en) * | 2002-12-26 | 2004-07-01 | Roussel Patrice L. | Extended precision integer divide algorithm |
CN103984521A (zh) * | 2014-05-27 | 2014-08-13 | 中国人民解放军国防科学技术大学 | Gpdsp中simd结构浮点除法的实现方法及装置 |
JP2020160704A (ja) * | 2019-03-26 | 2020-10-01 | 日本電産株式会社 | 整数除算装置およびモータ制御装置 |
CN114089951A (zh) * | 2021-11-24 | 2022-02-25 | 深圳市海浦蒙特科技有限公司 | 一种快速除法器及其运行方法 |
CN116225370A (zh) * | 2023-01-30 | 2023-06-06 | 深圳市立创普电源技术有限公司 | 在mcu上实现除法运算的方法、系统、存储介质及电子设备 |
CN116028013A (zh) * | 2023-02-20 | 2023-04-28 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
CN117348841A (zh) * | 2023-09-27 | 2024-01-05 | 珠海格力电器股份有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN117331529A (zh) * | 2023-12-01 | 2024-01-02 | 泰山学院 | 一种除法器逻辑电路及实现除法器逻辑电路的方法 |
Non-Patent Citations (1)
Title |
---|
我爱学习网: "不支持64位类型的32位机,进行64位除以32位的运算", 《HTTPS://WWW.5AXXW.COM/QUESTIONS/SIMPLE/UF1YSX》, 15 June 2023 (2023-06-15), pages 1 - 3 * |
Also Published As
Publication number | Publication date |
---|---|
CN117908833B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20240011204A (ko) | 행렬 연산 가속기의 명령어들을 위한 장치들, 방법들, 및 시스템들 | |
US20120124115A1 (en) | Methods and apparatuses for converting floating point representations | |
CN116594589B (zh) | 浮点数乘法计算的方法、装置和算术逻辑单元 | |
CN112506935A (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN111813371B (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
WO2021036729A1 (zh) | 一种矩阵运算方法、运算装置以及处理器 | |
CN115526301A (zh) | 在机器学习加速器内加载数据的方法和装置 | |
CN116700663A (zh) | 一种浮点数处理方法及装置 | |
US20160253235A1 (en) | Recycling Error Bits in Floating Point Units | |
KR100847934B1 (ko) | 스케일링된 정수를 사용하는 부동 소수점 연산 | |
US20190171419A1 (en) | Arithmetic processing device and control method of arithmetic processing device | |
CN117908833B (zh) | Mcu高位数整型除法器的加速方法及装置 | |
CN117193707A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN116795324A (zh) | 混合精度浮点乘法装置和混合精度浮点数处理方法 | |
CN111752605A (zh) | 使用浮点乘法-累加结果的模糊-j位位置 | |
CN116700665B (zh) | 一种确定浮点数平方根倒数的方法及装置 | |
CN115483934A (zh) | 用于多方安全计算的数据转换方法和装置 | |
CN115237372A (zh) | 一种乘法电路、机器学习运算电路、芯片及数据处理方法 | |
CN116700664A (zh) | 一种确定浮点数平方根的方法及装置 | |
KR20070018981A (ko) | 복소수 로그 alu | |
US20240134608A1 (en) | System and method to accelerate microprocessor operations | |
CN117785113B (zh) | 计算装置及方法、电子设备和存储介质 | |
US20240272871A1 (en) | System and method to accelerate microprocessor operations | |
US20020198916A1 (en) | Method and circuit for normalization of floating point significands in a SIMD array MPP | |
JPH0225924A (ja) | 浮動小数点演算処理装置 |
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 |