CN109710211A - 浮点数据类型转换方法、装置、存储介质及计算机设备 - Google Patents
浮点数据类型转换方法、装置、存储介质及计算机设备 Download PDFInfo
- Publication number
- CN109710211A CN109710211A CN201811359551.1A CN201811359551A CN109710211A CN 109710211 A CN109710211 A CN 109710211A CN 201811359551 A CN201811359551 A CN 201811359551A CN 109710211 A CN109710211 A CN 109710211A
- Authority
- CN
- China
- Prior art keywords
- floating
- type conversion
- point
- instruction
- floating type
- 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
Abstract
本申请涉及一种浮点数据类型转换方法、装置、存储介质及计算机设备,获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令;获取浮点数据类型转换指令对应的预设指令执行方式,预设指令执行方式包括硬浮点及软浮点;通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。浮点数据类型转换指令的预设指令执行方式包括硬浮点及软浮点,即通过硬浮点与软浮点相结合来实现浮点数据的类型转换处理,从而可以起到减少硬件面积、提高浮点数据类型转换效率的目的,且能降低硬件设计难度以及硬件维护难度。
Description
技术领域
本申请涉及数据处理技术领域,特别是涉及一种浮点数据类型转换方法、装置、存储介质及计算机设备。
背景技术
浮点运算,即实数运算,是计算机在进行数据处理时的一个重要过程。在数据处理过程中,计算机通过浮点处理器来进行浮点数的计算。
浮点处理器可以按照是否包含硬件浮点运算单元划分为两类,对于不包含硬件浮点运算单元的处理器而言,通常采用软浮点方法来进行浮点数的计算,即编译器把浮点运算转换成浮点运算的函数库,在进行浮点运算时,通过调用浮点库函数来模拟浮点运算,然而,软浮点存在执行效率较低的问题,且代码空间占用大。
对于包含硬件浮点运算单元的处理器而言,通常采用硬浮点方法来进行浮点数的计算,即编译器将代码直接编译成硬件浮点运算单元能识别的指令,硬件浮点运算单元根据指令完成浮点数的计算。硬浮点虽然能提高执行效率,但存在硬件面积大、结构复杂的问题,增加硬件设计难度以及硬件维护难度。
发明内容
基于此,有必要针对现有技术存在的问题,提供一种通过硬浮点与软浮点相结合以减少硬件面积、提高浮点数据类型转换效率的浮点数据类型转换方法、装置、存储介质及计算机设备。
一种浮点数据类型转换方法,包括以下步骤:
获取待转换浮点数据的类型转换信息,并根据所述类型转换信息确定对应的浮点数据类型转换指令;
获取所述浮点数据类型转换指令对应的预设指令执行方式,所述预设指令执行方式包括硬浮点及软浮点;
通过所述预设指令执行方式执行所述浮点数据类型转换指令,以对所述待转换浮点数据进行类型转换处理。
在其中一个实施例中,浮点数据类型转换指令与预设指令执行方式的对应关系,根据浮点数据类型转换指令的使用频率确定。
在其中一个实施例中,浮点数据类型转换指令与预设指令执行方式的对应关系的确定方式,包括:
统计各所述浮点数据类型转换指令的使用频率;
确定使用频率大于或者等于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为硬浮点,确定使用频率小于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为软浮点。
在其中一个实施例中,当所述预设指令执行方式为硬浮点时,通过所述预设指令执行方式执行所述浮点数据类型转换指令,包括:通过硬件浮点运算单元执行所述浮点数据类型转换指令。
在其中一个实施例中,当所述预设指令执行方式为软浮点时,通过所述预设指令执行方式执行所述浮点数据类型转换指令,包括:通过伪指令执行所述浮点数据类型转换指令。
在其中一个实施例中,所述伪指令由硬件指令级联组成,所述硬件指令的数量低于预设数量阈值。
在其中一个实施例中,所述伪指令的执行过程中,舍入运算次数为一次。
一种浮点数据类型转换装置,包括:
指令确定模块,用于获取待转换浮点数据的类型转换信息,并根据所述类型转换信息确定对应的浮点数据类型转换指令;
执行方式获取模块,用于获取所述浮点数据类型转换指令对应的预设指令执行方式,所述预设指令执行方式包括硬浮点及软浮点;
指令执行模块,用于通过所述预设指令执行方式执行所述浮点数据类型转换指令,以对所述待转换浮点数据进行类型转换处理。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述浮点数据类型转换方法、装置、存储介质及计算机设备,获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令;获取浮点数据类型转换指令对应的预设指令执行方式,预设指令执行方式包括硬浮点及软浮点;通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。浮点数据类型转换指令的预设指令执行方式包括硬浮点及软浮点,即通过硬浮点与软浮点相结合来实现浮点数据的类型转换处理,从而可以起到减少硬件面积、提高浮点数据类型转换效率的目的,且能降低硬件设计难度以及硬件维护难度。
附图说明
图1为一个实施例中浮点数据类型转换方法的流程示意图;
图2为一个实施例中硬浮点及软浮点结合使用的方案流程示意图;
图3为一个实施例中浮点数据类型转换装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了便于理解技术方案,首先对本申请中的浮点数的相关内容进行解释说明。
浮点数在计算机中用于近似表示任意某个实数,具体来说,这个实数由一个尾数乘以某个基数的整数次幂得到,这种表达方法类似于基数为10的科学记数法。利用浮点数进行运算通常伴随着因为无法精确表示而进行近似或舍入。
常见的浮点型数据有float(单精度)和double(双精度),浮点数用于表示非整数数值,它由三个域组成:符号S、指数E、尾数M,浮点位域格式如下表1所示:
符号位 | 指数位 | 尾数位 | |
Float | 1bit | 8bit | 23bit |
Double | 1bit | 11bit | 52bit |
表1
单精度表达式为N=(-1)^S×2^(E-127)×(1.M)
双精度表达式为N=(-1)^S×2^(E-1023)×(1.M)
从上表1和表达式可知,浮点数的指数位决定了浮点数的取值范围,浮点数的尾数位决定了浮点数的精度。单精度的尾数有23位,2^23=8388608(共7位)意味着最多能表达7位有效数字,能精确表达6位有效数字,也即float的精度为6-7位有效数字。双精度的尾数为52位,2^52=4503599627370496(共16位),同理double的精度为15-16位。由于计算机内部只能用二进制数表达小数,小数点右边的表达值分别为1/2,1/4,1/8,1/16,1/32,…1/(2^n)。再通过这些小数拼凑成十进制小数的近似值,所以会存在不准确的问题。表2为通过二进制来表示十进制的实数0.2的具体实例:
表2
从表2可知,二进制小数只能近似地表达出十进制小数的某些特定的数值,而无法精确地表达10进制的小数。
浮点处理器是指计算机中用于处理浮点数运算的处理器,在科学计算中,大部分计算使用浮点数运算,这使得浮点处理器在加速运算速度和提高系统执行效率中至关重要。浮点处理器设计中,可将浮点指令集分为几类:浮点运算,类型转换,浮点比较控制类。浮点处理器在处理浮点数运算的过程中,待处理的对象数据通常包括多种不同数据类型的浮点数据,当对不同数据类型的浮点数据进行处理时,需要将不同数据类型的浮点数据转换成相同数据类型的浮点数据。本申请所提供的浮点数据类型转换方法可以应用于浮点处理器在数据类型转换指令的实现过程。另外,本申请所提供的技术方案遵循IEEE754标准(IEEE二进位浮点数算术标准)。
在一个实施例中,如图1所示,提供一种浮点数据类型转换方法,以该方法应用于浮点处理器为例,该方法包括以下步骤:
步骤S100,获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令。
浮点处理器在进行不同数据类型的浮点数据运算时,首先获取待转换浮点数据的类型转换信息,并确定该类型转换信息对应的浮点数据类型转换指令。
步骤S200,获取浮点数据类型转换指令对应的预设指令执行方式。预设指令执行方式包括硬浮点及软浮点。
其中,硬浮点是指编译器将代码直接编译成硬件浮点处理器能识别的指令,这些指令在执行的时候直接由硬件(浮点运算单元,Float Point Unit,FPU)执行,可以理解为通过硬件来实现浮点类型转换处理。然而,若类型转换处理全部由硬件来执行,当数据转换类型较多时,存在硬件面积大、设计难度大、验证时间长的问题。
对于未设置浮点处理单元的处理器而言,通常采用软浮点进行浮点运算,即编译器将浮点运算转换成浮点运算的函数库,没有FPU(Float Point Unit,浮点运算单元)的指令调用,也没有浮点寄存器的参数传递,一般通过通用寄存器或者堆栈来传参。在进行浮点运算时通过调用这些浮点库函数,模拟浮点运算。由于软浮点的库函数是通过基础指令集拼凑模拟浮点运行,所以在实现过程中为了保证精度不损耗,运算过程十分繁琐,从而导致执行效率非常低。特别是对于一些浮点数和整数数据的类型转换上,为了保证转换精度的问题,需要在转换过程中特别注意尾数的精度问题,软浮点转换效率也较低。另外,由于软浮点的库函数是有基本指令集拼凑设计而成,所以即使一条简单的浮点加法指令也要由很多条基本指令集配合实现,这样在使用软浮点的方案中,软浮点库函数编译出来的代码占据了很大的代码空间。
本步骤中,通过硬浮点与软浮点相结合来实现浮点数据的类型转换处理,即部分浮点数据类型转换指令通过硬浮点执行,从而可以减少代码空间,并提高浮点数据类型转换效率;部分浮点数据类型转换指令通过软浮点来执行,无需对应的硬件结构,从而可以减少硬件面积。在确定类型转换信息对应的浮点数据类型转换指令后,浮点处理器获取该浮点数据类型转换指令对应的预设指令执行方式,即确定该浮点数据类型转换指令通过硬浮点执行还是通过软浮点执行。
步骤S300,通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。
在获取浮点数据类型转换指令对应的预设指令执行方式后,通过预设指令执行方式执行浮点数据类型转换指令,即,当浮点数据类型转换指令对应的预设指令执行方式为硬浮点时,通过硬浮点执行该浮点数据类型转换指令;当浮点数据类型转换指令对应的预设指令执行方式为软浮点时,通过软浮点执行该浮点数据类型转换指令。
本实施例提供一种浮点数据类型转换方法,浮点数据类型转换指令的预设指令执行方式包括硬浮点及软浮点,即通过硬浮点与软浮点相结合来实现浮点数据的类型转换处理,从而可以起到减少硬件面积、提高浮点数据类型转换效率的目的,且能降低硬件设计难度以及硬件维护难度。
在一个实施例中,浮点数据类型转换指令与预设指令执行方式的对应关系,根据浮点数据类型转换指令的使用频率确定。
在一个实施例中,在执行浮点数据类型转换方法的步骤之前,首先需要根据使用频率确定浮点数据类型转换指令对应的预设指令执行方式。本实施例中,浮点数据类型转换指令与预设指令执行方式的对应关系的确定方式,包括:统计各浮点数据类型转换指令的使用频率;确定使用频率大于或者等于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为硬浮点,确定使用频率小于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为软浮点。
具体地,首先设计浮点数据类型转换指令集。对于常见的嵌入式处理器,一般基本指令集是由精简指令集构成,处理一些整数运算和管理控制流程等。对于要求高运算性能的计算领域,通常会选用的处理器都带浮点处理能力。这时候在处理器中便引入了半精度,单精度,双精度,扩展单精度,扩展双精度等数据类型。
其次,统计各浮点数据类型转换指令的使用频率。通过多个浮点应用方案的样本,统计各浮点数据类型转换指令的使用频率,根据使用频率确定对应的指令执行方式。例如:若A指令的使用次数为1000次,而B指令的使用次数为10次,则可以确定A指令为使用频率高的指令,B指令为使用频率低的指令。若其他指令的使用次数为0到1000次之间,则可以设置预设阈值为500次,使用次数大于或等于500次的指令为使用频率高的指令,使用次数小于500次的指令为使用频率低的指令。对于使用频率高的浮点数据类型转换指令,可以设定为通过硬浮点实现,对于使用频率低的浮点数据类型转换指令,可以设定为通过软浮点实现。
如表3所示,为一实例中部分整数、单精度和双精度之间的浮点数据类型转换指令使用频率统计情况:
表3
从表3可以看出,大概可以将一半的指令通过软浮点实现。上表3中浮点数据类型转换指令中mode指该指令支持5种舍入模式(even/trunc/ceil/floor/round)。表4为5种舍入模式的具体实例:
表4
需要说明的是,本申请中的方法遵循IEEE754标准,浮点指令默认的舍入方式是舍入到最接近的偶数,在运算过程中只要尾数超出表达范围,这种舍入方式会默认进行。
另外,浮点数据类型转换指令中的缩写意义如表5所示:
缩写 | 表达意义 |
I | int |
L | long long |
U | unsigned |
F | float |
D | double |
FI | float(小数向整数舍入) |
DI | double(小数向整数舍入) |
表5
可以理解,本实施例所提供的方法同样适用于半精度,扩展单精度,扩展双精度之间的数据类型转换,不局限与上述实例中所举例子。
本实施例通过将使用频率高的浮点数据类型转换指令的预设指令执行方式设定为硬浮点,将使用频率低的浮点数据类型转换指令的预设指令执行方式设定为软浮点,对于使用频率高的指令,其执行次数较多,因此,采用硬浮点可以有效提高转换效率,并节省代码空间;对于使用频率低的指令,其执行次数较少,因此,即便该指令通过软浮点实现,其占用的时间相对来说也较少,在保证效率的同时,也能节省硬件面积。
在一个实施例中,当预设指令执行方式为硬浮点时,通过预设指令执行方式执行浮点数据类型转换指令,包括:通过硬件浮点运算单元执行浮点数据类型转换指令。通过硬件浮点运算单元可以有效提高转换效率。
在一个实施例中,当预设指令执行方式为软浮点时,通过预设指令执行方式执行浮点数据类型转换指令,包括:通过伪指令执行浮点数据类型转换指令。
例如,如表6所示,可通过两条指令拼凑实现L=f32toi64(F),这样硬件上不需要冗余的硬件实现代价,并且在性能上比直接由软浮点实现要提升很多倍。其他的伪指令也可使用此方法实现。
表6
又例如,如表7所示,为实现I=f64toi32(D)(mode)的伪指令的实现方式,LlongToInt是一个64bit整型数据转换到32bit整型数据的函数,带饱和处理。
另外需要说明的是,不允许使用tmp=f64tof32(D)(mode)加上I=f32toi32(tmp)去实现,因为f64tof32的转换过程中,原先的双精度有效数字有15-16位,转换后有效数字只有6-7位,尾数的部分数据无法表达出来,这样在某些情况下会产生双精度到单精度转换的精度损耗的问题,从而引起转换误差。
表7
在一个实施例中,伪指令由硬件指令级联组成,硬件指令的数量低于预设数量阈值。预设数量阈值具体可以是三条,在进行伪指令设计时,要确保伪指令能被两到三条现有的硬件指令级联拼凑而成,从而保证伪指令高效执行的性能。
在一个实施例中,伪指令的执行过程中,舍入运算次数为一次。伪指令的实现过程中需要避免出现二次精度损耗的问题,二次精度损耗指的是在浮点数据从高精度到低精度数据转换过程中,由于低精度数据表达不了高精度数据的所有尾数,所以表达结果会根据精度丢弃的数值大小进行舍入,如果在伪指令实现过程中出现了两次舍入运算,那么会导致最终结果不正确。因此,伪指令的执行过程只能包含一次舍入运算。
在一个实施例中,如图2所示,为硬浮点及软浮点结合使用的方案流程示意图,包括以下步骤:
(1)设计浮点数据类型转换指令集,该指令集包含多种浮点数据类型转换指令;
(2)统计各浮点数据类型转换指令的使用频率;
(3)设定浮点数据类型转换指令对应的预设实现方式,对于使用频率高的浮点数据类型转换指令,设定为通过硬浮点实现,对于使用频率低的浮点数据类型转换指令,设定为通过软浮点实现;
(4)设计硬浮点指令以及软浮点指令(伪指令),伪指令的设计过程中,需保证伪指令能被两到三条现有的硬件指令级联拼凑而成,另外,伪指令的执行过程只能包含一次舍入运算;
(5)编译器调度以及汇编器替换,在指令设计完成后,需要修改编译器和汇编器,调用新增加的硬浮点指令和新设计的伪指令。在汇编代码中,伪指令仍然可以通过汇编助记符来使用。
(6)生成可执行文件。在汇编代码编译后,由链接器将伪指令进行展开替换为拼凑的真实指令,并且修正PC(程序计数器)的偏移,然后再生成可执行文件。
(7)浮点处理器解析生成的可执行文件,获取可执行文件中的指令内容,在需要进行类型转换时,调用对应的可执行文件进行数据转换即可。
应该理解的是,虽然图1-2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图3所示,提供一种浮点数据类型转换装置,该装置包括:指令确定模块100、执行方式获取模块200及指令执行模块300。
指令确定模块100用于获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令;
执行方式获取模块200用于获取浮点数据类型转换指令对应的预设指令执行方式,预设指令执行方式包括硬浮点及软浮点;
指令执行模块300用于通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。
关于浮点数据类型转换装置的具体限定可以参见上文中对于浮点数据类型转换方法的限定,在此不再赘述。上述浮点数据类型转换装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令;获取浮点数据类型转换指令对应的预设指令执行方式,预设指令执行方式包括硬浮点及软浮点;通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:统计各浮点数据类型转换指令的使用频率;确定使用频率大于或者等于预设阈值的浮点数据类型转换指令的预设指令执行方式为硬浮点,确定使用频率小于预设阈值的浮点数据类型转换指令的预设指令执行方式为软浮点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过硬件浮点运算单元执行浮点数据类型转换指令。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:通过伪指令执行浮点数据类型转换指令。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取待转换浮点数据的类型转换信息,并根据类型转换信息确定对应的浮点数据类型转换指令;获取浮点数据类型转换指令对应的预设指令执行方式,预设指令执行方式包括硬浮点及软浮点;通过预设指令执行方式执行浮点数据类型转换指令,以对待转换浮点数据进行类型转换处理。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:统计各浮点数据类型转换指令的使用频率;确定使用频率大于或者等于预设阈值的浮点数据类型转换指令的预设指令执行方式为硬浮点,确定使用频率小于预设阈值的浮点数据类型转换指令的预设指令执行方式为软浮点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过硬件浮点运算单元执行浮点数据类型转换指令。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:通过伪指令执行浮点数据类型转换指令。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种浮点数据类型转换方法,其特征在于,包括以下步骤:
获取待转换浮点数据的类型转换信息,并根据所述类型转换信息确定对应的浮点数据类型转换指令;
获取所述浮点数据类型转换指令对应的预设指令执行方式,所述预设指令执行方式包括硬浮点及软浮点;
通过所述预设指令执行方式执行所述浮点数据类型转换指令,以对所述待转换浮点数据进行类型转换处理。
2.根据权利要求1所述的浮点数据类型转换方法,其特征在于,浮点数据类型转换指令与预设指令执行方式的对应关系,根据浮点数据类型转换指令的使用频率确定。
3.根据权利要求2所述的浮点数据类型转换方法,其特征在于,浮点数据类型转换指令与预设指令执行方式的对应关系的确定方式,包括:
统计各所述浮点数据类型转换指令的使用频率;
确定使用频率大于或者等于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为硬浮点,确定使用频率小于预设阈值的浮点数据类型转换指令对应的预设指令执行方式为软浮点。
4.根据权利要求1所述的浮点数据类型转换方法,其特征在于,当所述预设指令执行方式为硬浮点时,通过所述预设指令执行方式执行所述浮点数据类型转换指令,包括:通过硬件浮点运算单元执行所述浮点数据类型转换指令。
5.根据权利要求1所述的浮点数据类型转换方法,其特征在于,当所述预设指令执行方式为软浮点时,通过所述预设指令执行方式执行所述浮点数据类型转换指令,包括:通过伪指令执行所述浮点数据类型转换指令。
6.根据权利要求5所述的浮点数据类型转换方法,其特征在于,所述伪指令由硬件指令级联组成,所述硬件指令的数量低于预设数量阈值。
7.根据权利要求5所述的浮点数据类型转换方法,其特征在于,所述伪指令的执行过程中,舍入运算次数为一次。
8.一种浮点数据类型转换装置,其特征在于,包括:
指令确定模块,用于获取待转换浮点数据的类型转换信息,并根据所述类型转换信息确定对应的浮点数据类型转换指令;
执行方式获取模块,用于获取所述浮点数据类型转换指令对应的预设指令执行方式,所述预设指令执行方式包括硬浮点及软浮点;
指令执行模块,用于通过所述预设指令执行方式执行所述浮点数据类型转换指令,以对所述待转换浮点数据进行类型转换处理。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811359551.1A CN109710211B (zh) | 2018-11-15 | 2018-11-15 | 浮点数据类型转换方法、装置、存储介质及计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811359551.1A CN109710211B (zh) | 2018-11-15 | 2018-11-15 | 浮点数据类型转换方法、装置、存储介质及计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710211A true CN109710211A (zh) | 2019-05-03 |
CN109710211B CN109710211B (zh) | 2021-03-19 |
Family
ID=66254821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811359551.1A Active CN109710211B (zh) | 2018-11-15 | 2018-11-15 | 浮点数据类型转换方法、装置、存储介质及计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710211B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287085A (zh) * | 2019-06-28 | 2019-09-27 | 龙芯中科技术有限公司 | 浮点运算速度的检测方法、装置、设备及可读存储介质 |
CN110888623A (zh) * | 2019-11-25 | 2020-03-17 | 集美大学 | 数据转换方法、乘法器、加法器、终端设备及存储介质 |
CN113778373A (zh) * | 2021-09-16 | 2021-12-10 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
CN114237612A (zh) * | 2021-12-03 | 2022-03-25 | 龙芯中科技术股份有限公司 | 程序代码的编译方法、装置、电子设备及存储介质 |
CN117155396A (zh) * | 2023-09-07 | 2023-12-01 | 上海合芯数字科技有限公司 | 浮点数的转换处理方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104598197A (zh) * | 2015-01-26 | 2015-05-06 | 中国科学院自动化研究所 | 一种浮点倒数和/或平方根倒数运算方法及其装置 |
US9507565B1 (en) * | 2014-02-14 | 2016-11-29 | Altera Corporation | Programmable device implementing fixed and floating point functionality in a mixed architecture |
CN107168678A (zh) * | 2017-05-09 | 2017-09-15 | 清华大学 | 一种改进的浮点乘加器及浮点乘加计算方法 |
US20180315398A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
-
2018
- 2018-11-15 CN CN201811359551.1A patent/CN109710211B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507565B1 (en) * | 2014-02-14 | 2016-11-29 | Altera Corporation | Programmable device implementing fixed and floating point functionality in a mixed architecture |
CN104598197A (zh) * | 2015-01-26 | 2015-05-06 | 中国科学院自动化研究所 | 一种浮点倒数和/或平方根倒数运算方法及其装置 |
US20180315398A1 (en) * | 2017-04-28 | 2018-11-01 | Intel Corporation | Instructions and logic to perform floating-point and integer operations for machine learning |
CN107168678A (zh) * | 2017-05-09 | 2017-09-15 | 清华大学 | 一种改进的浮点乘加器及浮点乘加计算方法 |
Non-Patent Citations (1)
Title |
---|
庄巍: "YHFT_Matrix_DSP低_省略_耗向量运算单元设计与归约网络研究", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110287085A (zh) * | 2019-06-28 | 2019-09-27 | 龙芯中科技术有限公司 | 浮点运算速度的检测方法、装置、设备及可读存储介质 |
CN110888623A (zh) * | 2019-11-25 | 2020-03-17 | 集美大学 | 数据转换方法、乘法器、加法器、终端设备及存储介质 |
CN110888623B (zh) * | 2019-11-25 | 2021-11-23 | 集美大学 | 数据转换方法、乘法器、加法器、终端设备及存储介质 |
CN113778373A (zh) * | 2021-09-16 | 2021-12-10 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
CN113778373B (zh) * | 2021-09-16 | 2023-10-31 | 卡斯柯信号有限公司 | 一种安全浮点运算方法和系统 |
CN114237612A (zh) * | 2021-12-03 | 2022-03-25 | 龙芯中科技术股份有限公司 | 程序代码的编译方法、装置、电子设备及存储介质 |
CN117155396A (zh) * | 2023-09-07 | 2023-12-01 | 上海合芯数字科技有限公司 | 浮点数的转换处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109710211B (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710211A (zh) | 浮点数据类型转换方法、装置、存储介质及计算机设备 | |
Tagliavini et al. | A transprecision floating-point platform for ultra-low power computing | |
CN103593165B (zh) | 响应指令执行舍入运算 | |
US7966609B2 (en) | Optimal floating-point expression translation method based on pattern matching | |
CN100462922C (zh) | 利用中间指令集的二进制翻译方法 | |
CN103988171A (zh) | 使用大和小浮点值二者来执行算术运算 | |
JP3529828B2 (ja) | ポピュレーション・カウントの計算装置 | |
CN111813371B (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
JP2021517301A (ja) | 確率的丸めロジック | |
US7219117B2 (en) | Methods and systems for computing floating-point intervals | |
KR102656567B1 (ko) | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 | |
US20200192633A1 (en) | Arithmetic processing device and method of controlling arithmetic processing device | |
Cilio et al. | Floating point to fixed point conversion of C code | |
US8069199B2 (en) | Methods and arrangements to correct for double rounding errors when rounding floating point numbers to nearest even | |
CN116382782A (zh) | 向量运算方法、向量运算器、电子设备和存储介质 | |
US5661674A (en) | Divide to integer | |
US20040117420A1 (en) | Methods and systems for computing the quotient of floating-point intervals | |
WO2009017849A1 (en) | Method and system for creating fixed-point software code | |
Jeannerod et al. | Faster floating-point square root for integer processors | |
CN113031914B (zh) | 浮点舍入模式的控制方法、装置、设备及存储介质 | |
CN113835984B (zh) | 一种基于国产超算微架构的众核应用性能评估方法 | |
CN115951936B (zh) | 向量化编译程序的芯片适配方法、装置、设备及介质 | |
CN220208247U (zh) | 除法运算电路 | |
US11604646B2 (en) | Processor comprising a double multiplication and double addition operator actuable by an instruction with three operand references | |
JP2015045968A (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 | ||
CP02 | Change in the address of a patent holder |
Address after: 519000 No. 333, Kexing Road, Xiangzhou District, Zhuhai City, Guangdong Province Patentee after: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. Address before: Floor 1-107, building 904, ShiJiHua Road, Zhuhai City, Guangdong Province Patentee before: ZHUHAI JIELI TECHNOLOGY Co.,Ltd. |
|
CP02 | Change in the address of a patent holder |