本技术涉及数字处理,特别是涉及一种多功能数据转换装置及其转换方法。
背景技术:
1、在高性能数字处理中,由于浮点数能够提供较高的精度和较大的动态表示范围,浮点运算已成为高性能数字信号处理器广泛支持的运算操作。但为了保证数据的正常交互,需要数据转换功能,典型的转换指令包括各种精度之间、整数到浮点和浮点到定点的转换操作。
2、随着对高性能计算需求的不断增加,对延时和精度提出了更高的要求,需要在延时更短的情况下保证非规格化计算、多种舍入以及异常标志的支持来保证,但是功能的增加不可避免使操作实现的复杂度增加,从而增加硬件消耗和延时。现有技术中处理器的数据转换普遍采用与加法器装置硬件资源合并来实现,以此降低硬件资源,但这种实现方案延时较长,将转换指令实现的周期对齐到加法器实现的周期才能写回寄存器,不能达到较好的数据转换效率。
技术实现思路
1、基于上述技术问题,本技术旨在提供一种多功能数据转换装置及其转换方法,以解决数据转换延时长的问题。
2、本技术第一方面提供了一种多功能数据转换装置,所述装置包括源操作数分离模块、阶差计算模块、阶差产生与溢出判断模块、动态求补码模块、动态前导1检测模块、位反序模块、动态右移模块、舍入操作模块、指数计算模块、数据选择模块、动态加法器模块、数据组装模块;其中,
3、所述源操作数分离模块与所述阶差计算模块、所述舍入操作模块和所述动态右移模块连接;
4、所述阶差产生与溢出判断模块与所述阶差计算模块、所述指数计算模块、所述动态右移模块连接;
5、所述动态求补码模块与所述动态前导1检测模块、所述位反序模块连接;
6、所述舍入操作模块与所述源操作数分离模块、所述动态右移模块、所述指数计算模块、所述数据选择模块连接;
7、所述动态加法器模块与所述动态右移模块、所述数据选择模块连接;
8、所述数据组装模块与所述指数计算模块、所述数据选择模块连接。
9、在本技术的一些实施例中,所述位反序模块包括第一位反序模块和第二位反序模块,所述第一位反序模块与所述动态求补码模块连接,所述第二位反序模块与所述动态右移模块、所述动态加法器模块连接。
10、在本技术的一些实施例中,所述装置还包括特殊值处理模块,所述特殊值处理模块与所述阶差产生与溢出判断模块、所述数据组装模块连接。
11、本技术第二方面提供了一种如实施例中所述多功能数据转换装置的转换方法,所述转换方法包括:
12、在将定点数转换为浮点数时,将待转换定点数输入所述动态求补码模块进行求补码操作,得到补码结果;
13、将所述补码结果分别输入所述动态前导1检测模块和所述第一位反序模块,分别得到所述补码结果的前导0个数和所述补码结果的第一位反序结果;
14、将所述前导0个数和所述第一位反序结果输入所述动态右移模块,将所述前导0个数作为右移位数,对所述第一位反序结果进行右移操作,得到右移结果;
15、将所述右移结果分别输入所述舍入操作模块、所述数据选择模块和所述第二位反序模块;
16、所述舍入操作模块根据预设舍入模式、待转换定点数的符号和所述右移结果确定进位信号和舍入结果,并将所述进位信号和所述和舍入结果分别传输至所述指数计算模块和所述数据选择模块;
17、将所述前导0个数输入所述指数计算模块,所述指数计算模块根据所述前导0个数、所述进位信号和所述和舍入结果确定所述待转换定点数的指数;
18、所述数据选择模块根据所述进位信号选择所述第二位反序模块的输出结果或所述动态加法器模块的输出结果作为所述待转换定点数的尾数;
19、将所述待转换定点数的指数和所述待转换定点数的尾数输入所述数据组装模块进行组装,得到所述待转换定点数对应的浮点数。
20、在其中的一个实施例中,所述数据选择模块根据所述进位信号选择所述第二位反序模块的输出结果或所述动态加法器模块的输出结果作为所述待转换定点数的尾数,包括:
21、所述第二位反序模块对所述右移结果进行位反序操作,得到所述右移结果的第二位反序结果;
22、将所述第二位反序结果输入所述动态加法器模块进行预设加法操作,得到加法结果;
23、所述数据选择模块根据所述进位信号选择所述右移结果的第二位反序结果或所述加法结果作为所述待转换定点数的尾数。
24、在本技术的一些实施例中,所述转换方法还包括:
25、在将浮点数转换为定点数时,将待转换浮点数输入所述源操作数分离模块进行分离操作,得到待转换浮点数对应的符号、指数和尾数;
26、将所述指数传入所述阶差计算模块,对所述指数与预设偏置值进行加法操作,得到加法结果,并将所述加法结果传入所述阶差产生与溢出判断模块,根据所述加法结果确定移位方向和第一移位值;
27、将所述尾数传入所述动态右移模块,根据所述移位方向和第一移位值对所述尾数进行移动,得到移动结果;
28、将所述移动结果分别传入所述舍入操作模块、所述数据选择模块和所述动态加法器模块,得到所述待转换浮点数对应的定点数。
29、在其中的一个实施例中,所述将所述移动结果分别传入所述舍入操作模块、所述数据选择模块和所述动态加法器模块,得到所述待转换浮点数对应的定点数,包括:
30、将所述符号传入所述舍入操作模块,所述舍入操作模块根据预设舍入模式、所述符号和所述移动结果确定进位信号和舍入结果;
31、将所述进位信号和所述和舍入结果传入所述数据选择模块;
32、所述动态加法器模块对所述移动结果进行预设加法操作,并将加法操作结果输出至所述数据选择模块;
33、所述数据选择模块根据所述进位信号和舍入结果,选择所述移动结果或所述加法操作结果作为所述待转换浮点数对应的定点数。
34、在本技术的一些实施例中,所述转换方法还包括:
35、在将双精度浮点数转换为单精度浮点数时,将待转换双精度浮点数输入所述源操作数分离模块进行分离操作,得到待转换双精度浮点数对应的符号、指数和尾数;
36、将所述待转换双精度浮点数对应的指数传入所述阶差计算模块得到加法结果,并将所述加法结果传入所述阶差产生与溢出判断模块,得到第一指数结果、第一溢出标志和第二移位值;
37、将所述待转换双精度浮点数对应的尾数传入所述动态右移模块,根据所述第二移位值对所述待转换双精度浮点数对应的尾数进行移动,得到移动结果;
38、将所述第一指数结果传入所述指数计算模块,将所述移动结果分别传入所述舍入操作模块、所述数据选择模块和所述动态加法器模块,得到所述待转换双精度浮点数对应的单精度浮点数。
39、在其中的一个实施例中,将所述第一指数结果传入所述指数计算模块,将所述移动结果分别传入所述舍入操作模块、所述数据选择模块和所述动态加法器模块,得到所述待转换双精度浮点数对应的单精度浮点数,包括:
40、将所述待转换双精度浮点数对应的符号和所述移动结果传入所述舍入操作模块,所述舍入操作模块根据预设舍入模式、所述待转换双精度浮点数对应的符号和所述移动结果确定进位信号和舍入结果;
41、将所述第一指数结果、所述进位信号和所述舍入结果传入所述指数计算模块,得到第二指数结果;
42、所述动态加法器模块对所述移动结果进行预设加法操作,并将加法操作结果输出至所述数据选择模块;
43、所述数据选择模块根据所述进位信号和舍入结果,选择所述移动结果或所述加法操作结果作为尾数结果;
44、将所述第一溢出标志、所述第二指数结果和所述尾数结果传入所述数据组装模块,得到所述待转换双精度浮点数对应的单精度浮点数。
45、在本技术的一些实施例中,所述转换方法还包括:
46、在将单精度浮点数转换为双精度浮点数时,将待转换单精度浮点数输入所述源操作数分离模块进行分离操作,得到待转换单精度浮点数对应的符号、指数和尾数;
47、将所述待转换单精度浮点数对应的指数传入所述阶差计算模块得到加法结果,并将所述加法结果传入所述阶差产生与溢出判断模块,得到第二指数结果、第二溢出标志和第三移位值;
48、将所述待转换单精度浮点数对应的尾数分别输入所述动态前导1检测模块和所述第一位反序模块,分别得到所述尾数的前导0个数和所述尾数的第一位反序结果;
49、将所述尾数的前导0个数和所述尾数的第一位反序结果输入所述动态右移模块,对所述尾数的第一位反序结果进行右移操作,得到第一右移结果;
50、将所述第一右移结果分别输入所述舍入操作模块、所述数据选择模块和所述第二位反序模块;
51、所述舍入操作模块根据预设舍入模式、所述待转换单精度浮点数对应的符号和所述第一右移结果确定进位信号和舍入结果,并将所述进位信号和所述和舍入结果分别传输至所述指数计算模块和所述数据选择模块;
52、将所述尾数的前导0个数输入所述指数计算模块,所述指数计算模块根据所述尾数的前导0个数、所述进位信号和所述和舍入结果确定目标指数;
53、所述数据选择模块根据所述进位信号选择所述第二位反序模块的输出结果或所述动态加法器模块的输出结果作为目标尾数;
54、将所述目标指数和所述目标尾数输入所述数据组装模块进行组装,得到所述待转换单精度浮点数对应的双精度浮点数。
55、在其中的一个实施例中,所述数据选择模块根据所述进位信号选择所述第二位反序模块的输出结果或所述动态加法器模块的输出结果作为目标尾数,包括:
56、所述第二位反序模块对所述第一右移结果进行位反序操作,得到所述第一右移结果的第二位反序结果;
57、将所述第一右移结果的第二位反序结果输入所述动态加法器模块进行预设加法操作,得到第一加法结果;
58、所述数据选择模块根据所述进位信号选择所述第一右移结果的第二位反序结果或所述第一加法结果作为目标尾数。
59、在本技术的一些实施例中,将所述阶差产生与溢出判断模块的输出结果传入所述特殊值处理模块进行处理,并得到异常标志。
60、本技术第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实施例中所述多功能数据转换装置的转换方法。
61、本技术实施例中提供的技术方案,至少具有如下技术效果或优点:
62、本技术各实施例中的所述多功能数据转换装置在最小的资源消耗下实现多种数据转换功能,支持各种精度之间、整数到浮点和浮点到定点等数据转换的实现,通过将各类指令的硬件实现合并,从而达到最高的资源复用,且实现了更小的延时。所述多功能数据转换方法,能灵活地实现定点数转换为浮点数、浮点数转换为定点数、单精度浮点数转换为双精度浮点数和双精度浮点数转换为单精度浮点数等22种数据转换计算,能提高数据转换的精度,提升数据转换速度和转换效率,减小延时。
63、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本技术。