本发明涉及计算机的,特别是涉及一种浮点除法器的运算方法、装置、设备及存储介质。
背景技术:
1、在音视频算法处理中,浮点除法是一项常见的操作,特别是在带有反馈的算法中,需要高精度的除法以避免误差累积;然而,在传统的处理器中,除法指令通常采用表格或者近似算法实现,导致商只能保持一定范围内的精度,而无法实现全精度的结果;这种限制使得在实际系统中,算法的效果可能会出现下降。
2、且传统的浮点除法算法的程序是固定的,在每次计算过程中都按照相同的步骤进行,这种固定的计算流程限制了算法的灵活性和适应性,无法根据具体的应用场景进行优化和调整;在音视频算法处理中,可能需要根据不同的信号特性和处理需求进行动态调整,传统的固定计算流程无法满足这种需求,导致计算效率较低。
技术实现思路
1、本发明要解决的技术问题是:提供一种浮点除法器的运算方法、装置、设备及存储介质,能提高计算效率和计算精度。
2、为了解决上述技术问题,本发明提供了一种浮点除法器的运算方法,包括:
3、获取第一除数、第一余数和第一商,对所述第一余数和所述第一商进行初始化处理,得到第一初始化余数和第一初始化商,并计算所述第一除数对应的第一除数位宽,以及所述第一初始化余数对应的第一余数位宽;
4、获取所述第一余数位宽与所述第一除数位宽之间的第一差值,当检测到所述第一差值大于零时,分别对所述第一初始化商和所述第一初始化余数进行移位处理,得到第一移位商和第一移位余数;
5、基于所述第一除数,对所述第一移位余数进行更新处理,得到第一更新余数,并获取所述第一更新余数的第一状态,基于所述第一状态对所述第一移位商进行移位处理,得到第二移位商;
6、计算所述第二移位商的商位宽,当检测到所述商位宽满足预设商位宽阈值时,将所述第二移位商作为运算结果,输出所述第二移位商。
7、在一种可能的实现方式中,对所述第一余数和所述第一商进行初始化处理,得到第一初始化余数和第一初始化商,具体包括:
8、检测所述第一除数是否为数值0,当所述第一除数不为数值0时,
9、获取第一被除数,将所述第一余数的值初始化为所述第一被除数的值,得到第一初始化余数;
10、并将所述第一商的值初始化为0,得到第一初始化商。
11、在一种可能的实现方式中,计算所述第一除数对应的第一除数位宽,以及所述第一初始化余数对应的第一余数位宽,具体包括:
12、将所述第一除数进行二进制转换,得到第一除数二进制值,对所述第一除数二进制值进行位数检测,得到第一除数位数,并基于所述第一除数位数,确定所述第一除数对应的第一除数位宽;
13、将所述第一初始化余数进行二进制转换,得到第一余数二进制值,对所述第一余数二进制值进行位数检测,得到第一余数位数,并基于所述第一余数位数,确定所述第一初始化余数对应的第一余数位宽。
14、在一种可能的实现方式中,当检测到所述第一差值大于零时,分别对所述第一初始化商和所述第一初始化余数进行移位处理,得到第一移位商和第一移位余数,具体包括:
15、当检测到所述第一差值大于零时,对所述第一商进行二进制转换,得到第一商二进制值;
16、基于所述第一差值,对所述第一商二进制值进行左移处理,得到第一移位商;
17、获取所述第一余数对应的所述第一余数二进制值,并基于所述第一差值,对所述第一余数二进制值进行左移处理,得到第一移位余数。
18、在一种可能的实现方式中,基于所述第一除数,对所述第一移位余数进行更新处理,得到第一更新余数,具体包括:
19、对所述第一移位余数和所述第一除数进行减法运算,得到第二差值;
20、将所述第二差值更新为所述第一移位余数,并将更新后的所述第一移位余数作为所述第一更新余数。
21、在一种可能的实现方式中,获取所述第一更新余数的第一状态,具体包括:
22、检测所述第一更新余数与数值0之间的第一关系,当所述第一关系为所述第一更新余数大于所述数值0时,确定所述第一更新余数的所述第一状态为大于数值0;
23、当所述第一关系为所述第一更新余数等于所述数值0时,确定所述第一更新余数的所述第一状态为等于数值0;
24、当所述第一关系为所述第一更新余数等于所述数值0时,确定所述第一更新余数的所述第一状态为小于数值0。
25、在一种可能的实现方式中,基于所述第一状态对所述第一移位商进行移位处理,得到第二移位商,具体包括:
26、当所述第一状态为大于数值0时,对所述第一移位商进行左移处理,得到第二移位商,并设置所述第二移位商对应的目标位宽位置为1;
27、当所述第一状态为等于数值0时,确定所述第一移位商对应的第一移位商位宽,将所述第一移位商位宽与预设商位宽阈值进行减法运算,确定第一位宽差值,并基于所述第一位宽差值对所述第一移位商进行左移处理,得到第二移位商;
28、当所述第一状态为小于数值0时,基于所述第一除数,对所述第一更新余数进行更新处理,得到第二更新余数;并对所述第一移位商进行左移处理,得到第二移位商,并设置所述第二移位商对应的目标位宽位置为0。
29、本发明还提供了一种浮点除法器的运算装置,包括:初始化模块、第一移位处理模块、第二移位处理模块和商位宽检测模块;
30、其中,所述初始化模块,用于获取第一除数、第一余数和第一商,对所述第一余数和所述第一商进行初始化处理,得到第一初始化余数和第一初始化商,并计算所述第一除数对应的第一除数位宽,以及所述第一初始化余数对应的第一余数位宽;
31、所述第一移位处理模块,用于获取所述第一余数位宽与所述第一除数位宽之间的第一差值,当检测到所述第一差值大于零时,分别对所述第一初始化商和所述第一初始化余数进行移位处理,得到第一移位商和第一移位余数;
32、所述第二移位处理模块,用于基于所述第一除数,对所述第一移位余数进行更新处理,得到第一更新余数,并获取所述第一更新余数的第一状态,基于所述第一状态对所述第一移位商进行移位处理,得到第二移位商;
33、所述商位宽检测模块,用于计算所述第二移位商的商位宽,当检测到所述商位宽满足预设商位宽阈值时,将所述第二移位商作为运算结果,输出所述第二移位商。
34、在一种可能的实现方式中,所述初始化模块,用于对所述第一余数和所述第一商进行初始化处理,得到第一初始化余数和第一初始化商,具体包括:
35、检测所述第一除数是否为数值0,当所述第一除数不为数值0时,
36、获取第一被除数,将所述第一余数的值初始化为所述第一被除数的值,得到第一初始化余数;
37、并将所述第一商的值初始化为0,得到第一初始化商。
38、在一种可能的实现方式中,所述初始化模块,用于计算所述第一除数对应的第一除数位宽,以及所述第一初始化余数对应的第一余数位宽,具体包括:
39、将所述第一除数进行二进制转换,得到第一除数二进制值,对所述第一除数二进制值进行位数检测,得到第一除数位数,并基于所述第一除数位数,确定所述第一除数对应的第一除数位宽;
40、将所述第一初始化余数进行二进制转换,得到第一余数二进制值,对所述第一余数二进制值进行位数检测,得到第一余数位数,并基于所述第一余数位数,确定所述第一初始化余数对应的第一余数位宽。在一种可能的实现方式中,所述第一移位处理模块,用于当检测到所述第一差值大于零时,分别对所述第一初始化商和所述第一初始化余数进行移位处理,得到第一移位商和第一移位余数,具体包括:
41、当检测到所述第一差值大于零时,对所述第一商进行二进制转换,得到第一商二进制值;
42、基于所述第一差值,对所述第一商二进制值进行左移处理,得到第一移位商;
43、获取所述第一余数对应的所述第一余数二进制值,并基于所述第一差值,对所述第一余数二进制值进行左移处理,得到第一移位余数。
44、在一种可能的实现方式中,所述第二移位处理模块,用于基于所述第一除数,对所述第一移位余数进行更新处理,得到第一更新余数,具体包括:
45、对所述第一移位余数和所述第一除数进行减法运算,得到第二差值;
46、将所述第二差值更新为所述第一移位余数,并将更新后的所述第一移位余数作为所述第一更新余数。
47、在一种可能的实现方式中,所述第二移位处理模块,用于获取所述第一更新余数的第一状态,具体包括:
48、检测所述第一更新余数与数值0之间的第一关系,当所述第一关系为所述第一更新余数大于所述数值0时,确定所述第一更新余数的所述第一状态为大于数值0;
49、当所述第一关系为所述第一更新余数等于所述数值0时,确定所述第一更新余数的所述第一状态为等于数值0;
50、当所述第一关系为所述第一更新余数等于所述数值0时,确定所述第一更新余数的所述第一状态为小于数值0。
51、在一种可能的实现方式中,所述第二移位处理模块,用于基于所述第一状态对所述第一移位商进行移位处理,得到第二移位商,具体包括:
52、当所述第一状态为大于数值0时,对所述第一移位商进行左移处理,得到第二移位商,并设置所述第二移位商对应的目标位宽位置为1;
53、当所述第一状态为等于数值0时,确定所述第一移位商对应的第一移位商位宽,将所述第一移位商位宽与预设商位宽阈值进行减法运算,确定第一位宽差值,并基于所述第一位宽差值对所述第一移位商进行左移处理,得到第二移位商;
54、当所述第一状态为小于数值0时,基于所述第一除数,对所述第一更新余数进行更新处理,得到第二更新余数;并对所述第一移位商进行左移处理,得到第二移位商,并设置所述第二移位商对应的目标位宽位置为0。
55、本发明还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述任意一项所述的浮点除法器的运算方法。
56、本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上述任意一项所述的浮点除法器的运算方法。
57、本发明实施例一种浮点除法器的运算方法、装置、设备及存储介质,与现有技术相比,具有如下有益效果:
58、通过获取第一除数、第一余数和第一商,对所述第一余数和所述第一商进行初始化处理,得到第一初始化余数和第一初始化商,通过初始化处理可以有效地减少需要进行的迭代次数;且后续通过计算所述第一除数对应的第一除数位宽,以及所述第一初始化余数对应的第一余数位宽;获取所述第一余数位宽与所述第一除数位宽之间的第一差值,当检测到所述第一差值大于零时,分别对所述第一初始化商和所述第一初始化余数进行移位处理,得到第一移位商和第一移位余数;基于所述第一除数,对所述第一移位余数进行更新处理,得到第一更新余数,并获取所述第一更新余数的第一状态,基于所述第一状态对所述第一移位商进行移位处理,得到第二移位商;能基于移位处理实现对商和余数的动态调整,并根据运算过程中的实际情况灵活地调整计算策略,可以加快运算速度;计算所述第二移位商的商位宽,当检测到所述商位宽满足预设商位宽阈值时,将所述第二移位商作为运算结果,输出所述第二移位商,确保能根据预设商位宽阈值确定最终输出的商的位宽,提高计算精度。