CN117155396A - 浮点数的转换处理方法、装置、电子设备及存储介质 - Google Patents

浮点数的转换处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117155396A
CN117155396A CN202311155193.3A CN202311155193A CN117155396A CN 117155396 A CN117155396 A CN 117155396A CN 202311155193 A CN202311155193 A CN 202311155193A CN 117155396 A CN117155396 A CN 117155396A
Authority
CN
China
Prior art keywords
floating point
point number
converted
type
target
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
CN202311155193.3A
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.)
Hexin Technology Co ltd
Shanghai Hexin Digital Technology Co ltd
Original Assignee
Hexin Technology Co ltd
Shanghai Hexin Digital Technology 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 Hexin Technology Co ltd, Shanghai Hexin Digital Technology Co ltd filed Critical Hexin Technology Co ltd
Priority to CN202311155193.3A priority Critical patent/CN117155396A/zh
Publication of CN117155396A publication Critical patent/CN117155396A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • H03M7/24Conversion to or from floating-point codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

本申请提供一种浮点数的转换处理方法、装置、电子设备及存储介质。该方法包括:响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,该待转换浮点数的类型与该目标浮点数的类型不同,该待转换浮点数的类型与该目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据上述目标浮点数的类型、待转换浮点数的类型和存储位置,将待转换浮点数转换得到目标浮点数;将目标浮点数存储至目标浮点数寄存器。可以解决相关技术中无法直接在不同浮点数之间进行转换的问题,通过直接转换不同格式或者类型的浮点数,实现避免在转换过程中的精度损失并有效提升浮点数的转换性能的技术效果。

Description

浮点数的转换处理方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术,尤其涉及一种浮点数的转换处理方法、装置、电子设备及存储介质。
背景技术
十进制浮点数和二进制浮点数是两种不同数据格式的浮点数,针对这两种浮点数之间的相互转换,目前并没有直接的实现方式或者装置,而是需要通过两次转换来实现,第一步,先将十进制浮点转换为整数或二进制压缩码BCD浮点数,第二步,再将整数转换为二进制浮点数。
但是,由于十进制浮点数的精度远高于整数和BCD浮点数,因此,在转换过程中存在严重的精度损失。
发明内容
本申请提供一种浮点数的转换处理方法、装置、电子设备及存储介质,用以解决相关技术中无法直接在不同浮点数之间进行转换的问题,通过直接转换不同格式或者类型的浮点数,实现避免在转换过程中的精度损失并有效提升浮点数的转换性能的技术效果。
一方面,本申请提供一种浮点数的转换处理方法,所述方法包括:
响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;
根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;
将所述目标浮点数存储至目标浮点数寄存器。
一种可选的实施方式中,所述响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,包括:
响应于所述浮点数转换指令,对所述浮点数转换指令进行译码处理;
根据译码结果,确定所述待转换浮点数的类型和存储位置,以及目标浮点数的类型。
一种可选的实施方式中,根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数,包括:
根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,确定用于转换处理所述待转换浮点数的目标转换处理单元;
将所述待转换浮点数下发到所述目标转换处理单元,以采用所述目标转换处理单元将所述待转换浮点数转换得到所述目标浮点数。
一种可选的实施方式中,根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数,包括:
若所述待转换浮点数的类型为十进制浮点数,所述目标浮点数的类型为二进制浮点数,且所述待转换浮点数的存储位置为浮点操作数寄存器,则将所述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数;
若所述待转换浮点数的类型为十进制扩展浮点数,所述目标浮点数的类型为二进制浮点数,且所述待转换浮点数的存储位置为偶奇浮点寄存器,则将所述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数。
一种可选的实施方式中,根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数,包括:
若所述待转换浮点数的类型为二进制浮点数,所述目标浮点数的类型为十进制浮点数,且所述待转换浮点数的存储位置为浮点操作数寄存器,则将所述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数;
若所述待转换浮点数的类型为二进制浮点数,所述目标浮点数的类型为十进制浮点数,且所述待转换浮点数的存储位置为偶奇浮点寄存器,则将所述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数。
另一方面,本申请提供一种浮点数的转换处理装置,所述装置包括:
获取模块,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;
转换模块,用于根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;
存储模块,用于将所述目标浮点数存储至目标浮点数寄存器。
一种可选的实施方式中,所述获取模块,包括:
译码单元,用于响应于所述浮点数转换指令,对所述浮点数转换指令进行译码处理;
第一确定单元,用于根据译码结果,确定所述待转换浮点数的类型和存储位置,以及目标浮点数的类型。
一种可选的实施方式中,所述转换模块,包括:
第二确定单元,用于根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,确定用于转换处理所述待转换浮点数的目标转换处理单元;
下发单元,用于将所述待转换浮点数下发到所述目标转换处理单元,以采用所述目标转换处理单元将所述待转换浮点数转换得到所述目标浮点数。
另一方面,本申请提供一种电子设备,包括:处理器,以及与上述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器包括:
用于解码浮点数转换指令的解码单元,所述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
与所述解码单元耦合的执行单元,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;将所述目标浮点数存储至目标浮点数寄存器。
另一方面,本申请提供一种计算机可读存储介质,上述计算机可读存储介质中存储有浮点数转换指令,
所述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
所述浮点数转换指令被处理器执行时实现操作,其中,所述操作包括:响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;将所述目标浮点数存储至目标浮点数寄存器。
本申请提供的浮点数的转换处理方法、装置、电子设备及存储介质,该方法通过响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,该待转换浮点数的类型与该目标浮点数的类型不同,该待转换浮点数的类型与该目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数;将上述目标浮点数存储至目标浮点数寄存器。可以解决相关技术中无法直接在不同浮点数之间进行转换的问题,通过直接转换不同格式或者类型的浮点数,实现避免在转换过程中的精度损失并有效提升浮点数的转换性能的技术效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图;
图2为本申请实施例提供的一种可选的计算机的架构示意图;
图3是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图;
图4是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图;
图5是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图;
图6为本申请实施例提供的一种浮点数的转换处理装置的结构框图;
图7为本申请实施例提供的一种电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
首先对本申请所涉及的名词进行解释:
浮点数,是一个计算机科学术语,指一种既包含小数又包含整数的数据类型。
十进制浮点数(Decimal Floating Point,DFP):是在计算机科学与计算技术中用来表示实数的一种数据格式。
二进制浮点数(简称浮点数):是指在计算机科学中,以二进制表示实数的数字。以尾数表示数字及精度,以指数表示数据空间,以符号位表示正负。
浮点操作数寄存器:例如FRA为浮点操作数A寄存器,FRB为浮点操作数B寄存器。
偶奇浮点寄存器:由于长浮点数共有128-bit,需要有两个偶-奇浮点寄存器(FR)来存储,如FR10p={FPR10,FPR11}。
浮点数是一种可以表示非整数或很大或很小的数的数据类型,它由符号位、阶码位和尾数位三部分组成,可以按照不同的标准进行编码和解码,例如IEEE 754标准1。浮点数可以分为不同的类型,例如十进制浮点数和二进制浮点数,也可以分为不同的精度,例如单精度浮点数和双精度浮点数。浮点数在计算机中可以存储在不同的位置,例如浮点操作数寄存器和偶奇浮点寄存器。
在计算机中,有时需要对浮点数进行转换处理,例如将十进制浮点数转换为二进制浮点数,或者将单精度浮点数转换为双精度浮点数。这些转换处理需要根据不同的情况采用不同的算法和硬件单元。然而,现有的浮点数转换处理方法存在一些不足之处。例如,有些方法不能根据待转换浮点数的类型和存储位置,直接进行合适的转换处理,导致转换效率低下,或者不同格式或者种类的浮点数之间的转换精度较低的问题。
本申请提供的浮点数的转换处理方法,旨在解决现有技术的如上技术问题。为了保证不同格式或者种类的浮点数之间的转换精度,以及提供给开发者更为快捷高效的浮点数计算实现,本方案提供一种浮点数的转换处理方法及装置,使得十进制浮点数可以快速直接转换为二进制浮点数,或者二进制浮点数可以快速直接转换为十进制浮点数,从而避免了转换过程中的精度损失并有效提升浮点数的转换性能。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
首先,先介绍十进制浮点(Decimal Floating Point,DFP)单元的格式和规范。十进制浮点一般不直接用二进制数来表示尾数,而是用BCD码这种编码形式,其利用4个bit的二进制数来表示1个十进制的数码,使二进制和十进制之间的转换得以快捷地进行。十进制浮点的指数是直接使用二进制数字表示。
十进制浮点数包含1bit符号位,指数位(G)和尾数位(T)
十进制浮点数的三种格式包括:
DFP short:短十进制浮点数
DFP long:长十进制浮点数
DFP extend:扩展精度十进制浮点数,128-bit的扩展精度十进制浮点数DFPExtend format,w=12,t=110
S:符号位
G:指数组合字段
T:尾数字段
其次,介绍二进制浮点数格式:二进制浮点数格式中的尾数T的第一位总是1(因为1<=M<2),因此这个1可以省略不写,它是个隐藏位,这样单精度23位尾数可以表示了24位有效数字,双精度52位尾数可以表示53位有效数字;二进制浮点数格式中的指数E是个无符号整数,表示单精度浮点数时,一共占8bit,所以它的取值范围为0~255。但因为指数可以是负的,所以规定在存入指数时在它原本的值加上一个bias偏移量—就是文中提到的,这样E的取值范围为-127~127。表示双精度浮点数时,一共占11bit,存入E时加上偏移量1023,这样取值范围为-1023~1023。
在二进制格式中,S:Sign,符号位,取值0或1,决定一个数字的符号,0表示正,1表示负。T:Trailing Significand field,p-bit尾数。E:biased exponent,偏移指数,一共w-bit。E=bias(偏移量)+e(原指数)。
下表1为二进制浮点格式里规定的各个域的数据位宽及范围。
表1
本申请提供了一种浮点数的转换处理方法,图1是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图,如图1所示,该方法包括:
S101,响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型。
其中,上述待转换浮点数的类型与目标浮点数的类型不同,待转换浮点数的类型与目标浮点数的类型均包括:十进制浮点数和二进制浮点数。
不同于以往技术中十进制浮点转换为整数或二进制压缩码BCD浮点数的处理方式,本申请实施例可以直接实现在十进制浮点数和二进制浮点数之间进行转换。
S102,根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数。
S103,将上述目标浮点数存储至目标浮点数寄存器。
本申请实施例所提供的一种浮点数的转换处理方法,具体用于在十进制浮点数和二进制浮点数之间进行转换,例如,将十进制浮点数转换得到二进制浮点数,或者将二进制浮点数转换得到十进制浮点数。
一种示例中,本申请实施例所提供的一种浮点数的转换处理方法可以,但不限于在一台计算机或者终端中实现,该计算机或终端中可以执行不同的指令,包括浮点数转换指令。该计算机还包括不同种类的寄存器,包括但不限于:浮点操作数寄存器(FPR),偶奇浮点寄存器(EPR)和目标浮点数寄存器(FRT)。如图2所示,该计算机还包括:指令接收单元、译码单元,调度单元,以及不同的转换处理单元,例如,包括十进制浮点数转换处理单元(DFU),二进制浮点数转换处理单元(FPU)和十进制扩展浮点数转换处理单元(EFU)。
在使用本发明提供的浮点数转换方法时,用户可以通过输入输出设备输入一个浮点数转换指令,例如,输入的浮点数转换指令可以为dctfsp FRT,FRB,[rn,re],该指令是指将一个存放在浮点操作数寄存器FRB内的十进制浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。再例如,输入的浮点数转换指令还可以为dctfsp FRT,FRBp,[rn,re],该指令是指将一个存放在偶奇浮点寄存器FRBp内的十进制扩展浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。再例如,输入的浮点数转换指令可以为dctfdp FRT,FRB,[rn,re],该指令是指将一个存放在FRB内的十进制浮点数转换为双精度数,并存储在目标浮点数寄存器FRT中。又例如,输入的浮点数转换指令还可以为dctfsp FRT,FRBp,[rn,re],该指令是指将一个存放在FRBp内的十进制扩展浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。
具体的,当计算机中的指令接收单元接收到该浮点数转换指令后,采用计算机中的译码单元对该指令进行译码处理,以确定待转换浮点数的类型和存储位置。例如,如果FRB中的浮点数是一个十进制浮点数,则译码单元会译码得到如下结果:待转换浮点数的类型:十进制浮点数;待转换浮点数的存储位置:浮点操作数寄存器;目标浮点数的类型:二进制浮点数。
具体的,根据译码结果,计算机中的调度单元会确定用于转换处理待转换浮点数的目标转换处理单元。例如,如果用户希望将十进制浮点数转换为双精度二进制浮点数,则调度单元会确定目标转换处理单元为二进制浮点数转换单元FPU。再例如,如果用户希望将二进制浮点数转换为十进制浮点数,则调度单元会确定目标转换处理单元为十进制浮点数转换单元DPU。
一种示例中,调度单元将待转换浮点数下发到目标转换处理单元,以采用目标转换处理单元将待转换浮点数转换得到目标浮点数。最后,将目标浮点数存储到目标浮点数寄存器中。例如,如果目标浮点数寄存器为FRT中具体的TPR(2),则将上述双精度二进制浮点数存储到TPR(2)中,以提高不同格式或类型的浮点数之间转换的效率,以较小的硬件资源开销获取性能的提升。
通过本申请上述实施例,可以解决相关技术中无法直接在不同浮点数之间进行转换的问题,通过直接转换不同格式或者类型的浮点数,实现避免在转换过程中的精度损失并有效提升浮点数的转换性能的技术效果。
需要说明的是,上述浮点数转换指令中的[rn,re]为编码可选项,可以指定舍入模式,例如,Re=1:表示由指令编码选择舍入模式,RE=0:表示由FPSCR系统寄存器指定舍入模式,并且,如果源操作数为INF(无穷数)或NAN(不支持数),将产生一个无效操作数异常Invalid exception。
一种可选的实施方式中,上述响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,包括:
S201,响应于上述浮点数转换指令,对上述浮点数转换指令进行译码处理;
S202,根据译码结果,确定上述待转换浮点数的类型和存储位置,以及目标浮点数的类型。
一种示例中,当计算机中的指令接收单元在接收到该浮点数转换指令后,译码单元对该指令进行译码处理,以确定待转换浮点数的类型和存储位置,以及目标浮点数的类型。例如,如果FRB中的浮点数是一个十进制浮点数,则该译码单元会译码得到如下结果:待转换浮点数的类型:十进制浮点数;待转换浮点数的存储位置:浮点操作数寄存器;目标浮点数的类型:二进制浮点数。
一种可选的实施方式中,图3是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图,如图3所示,根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数,包括:
S301,根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,确定用于转换处理上述待转换浮点数的目标转换处理单元;
S302,将上述待转换浮点数下发到上述目标转换处理单元,以采用上述目标转换处理单元将上述待转换浮点数转换得到上述目标浮点数。
一种示例中,根据译码结果,计算机中的调度单元会确定用于转换处理待转换浮点数的目标转换处理单元。例如,如果用户希望将十进制浮点数转换为双精度二进制浮点数,则调度单元会确定目标转换处理单元为二进制浮点数转换单元FPU。再例如,如果用户希望将二进制浮点数转换为十进制浮点数,则调度单元会确定目标转换处理单元为十进制浮点数转换单元DPU,将待转换浮点数下发到目标转换处理单元,以采用目标转换处理单元将待转换浮点数转换得到目标浮点数。
例如,如果FRB中的十进制浮点数为123.456,则BFU会将其转换为双精度二进制浮点数,即:
0100000001011110110111001001100011010001111010111000010100011110。
最后,调度单元会将目标浮点数存储到目标浮点数寄存器中。例如,如果目标浮点数寄存器为FRT中具体的TPR(2),则会将上述双精度二进制浮点数存储到TPR(2)中,以提高不同格式或类型的浮点数之间转换的效率,以较小的硬件资源开销获取性能的提升。
一种可选的实施方式中,图4是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图,如图4所示,根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数,包括:
S401,若待转换浮点数的类型为十进制浮点数,目标浮点数的类型为二进制浮点数,且待转换浮点数的存储位置为浮点操作数寄存器,则将待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数;
S402,若待转换浮点数的类型为十进制扩展浮点数,目标浮点数的类型为二进制浮点数,且待转换浮点数的存储位置为偶奇浮点寄存器,则将待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数。
例如,若上述待转换浮点数的类型为十进制浮点数,且上述待转换浮点数的存储位置为浮点操作数寄存器,目标浮点数的类型为二进制浮点数,则输入的浮点数转换指令为dctfsp FRT,FRB,[rn,re],该指令是指将一个存放在浮点操作数寄存器FRB内的十进制浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。再例如,输入的浮点数转换指令可以为dctfdp FRT,FRB,[rn,re],该指令是指将一个存放在FRB内的十进制浮点数转换为双精度数,并存储在目标浮点数寄存器FRT中。
再例如,若上述待转换浮点数的类型为十进制扩展浮点数,且上述待转换浮点数的存储位置为偶奇浮点寄存器,目标浮点数的类型为二进制浮点数,输入的浮点数转换指令还可以为dctfsp FRT,FRBp,[rn,re],该指令是指将一个存放在偶奇浮点寄存器FRBp内的十进制扩展浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。还例如,输入的浮点数转换指令还可以为dctfsp FRT,FRBp,[rn,re],该指令是指将一个存放在FRBp内的十进制扩展浮点数转换为单精度数,并存储在目标浮点数寄存器FRT中。
一种可选的实施方式中,图5是本申请实施例所提供的一种浮点数的转换处理方法的流程示意图,如图5所示,根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数,包括:
S501,若上述待转换浮点数的类型为二进制浮点数,目标浮点数的类型为十进制浮点数,且上述待转换浮点数的存储位置为浮点操作数寄存器,则将上述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数;
S502,若上述待转换浮点数的类型为二进制浮点数,目标浮点数的类型为十进制浮点数,且上述待转换浮点数的存储位置为偶奇浮点寄存器,则将上述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数。
例如,若上述待转换浮点数的类型为二进制单精度浮点数,目标浮点数的类型为十进制浮点数且上述待转换浮点数的存储位置为浮点操作数寄存器,则输入的浮点数转换指令为fscvtdp FRT,FRB,[rn,re],该指令是指将一个存放在浮点操作数寄存器FRB内的二进制单精度浮点数转换为十进制浮点数,并存储在目标浮点数寄存器FRT中。
例如,若上述待转换浮点数的类型为二进制双精度浮点数,目标浮点数的类型为十进制浮点数且上述待转换浮点数的存储位置为浮点操作数寄存器,则输入的浮点数转换指令为fdcvtdp FRT,FRB,[rn,re],该指令是指将一个存放在浮点操作数寄存器FRB内的二进制双精度浮点数转换为十进制浮点数,并存储在目标浮点数寄存器FRT中。
再例如,若上述待转换浮点数的类型为二进制双精度浮点数,目标浮点数的类型为十进制浮点数且上述待转换浮点数的存储位置为偶奇浮点寄存器,输入的浮点数转换指令还可以为fdcvtdep FRTp,FRB,[rn,re],该指令是指将一个浮点双精度数转换为存放在偶奇浮点寄存器FRTp内的十进制扩展浮点数,并存储在目标浮点数寄存器FRTp中。还例如,输入的浮点数转换指令还可以为fscvtdep FRTp,FRB,[rn,re],该指令是指将一个浮点单精度数转换为存放在偶奇浮点寄存器FRTp内的十进制扩展浮点数,并存储在目标浮点数寄存器FRTp中。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
根据本申请的一个或多个实施例,提供了一种浮点数的转换处理装置,图6为本申请实施例提供的一种浮点数的转换处理装置的结构框图,如图6所示,上述装置包括:
获取模块601,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,上述待转换浮点数的类型与上述目标浮点数的类型不同,上述待转换浮点数的类型与上述目标浮点数的类型均包括:十进制浮点数和二进制浮点数。
转换模块602,用于根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数。
存储模块603,用于将上述目标浮点数存储至目标浮点数寄存器。
根据本申请的一个或多个实施例,上述获取模块,包括:
译码单元,用于响应于上述浮点数转换指令,对上述浮点数转换指令进行译码处理;
第一确定单元,用于根据译码结果,确定上述待转换浮点数的类型和存储位置,以及上述目标浮点数的类型。
根据本申请的一个或多个实施例,上述转换模块,包括:
第二确定单元,用于根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,确定用于转换处理上述待转换浮点数的目标转换处理单元;
下发单元,用于将上述待转换浮点数下发到上述目标转换处理单元,以采用上述目标转换处理单元将上述待转换浮点数转换得到上述目标浮点数。
根据本申请的一个或多个实施例,上述转换模块,还包括:
第一转换处理单元,用于若上述待转换浮点数的类型为十进制浮点数,上述目标浮点数的类型为二进制浮点数,且上述待转换浮点数的存储位置为浮点操作数寄存器,则将上述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数;
第二转换处理单元,用于若上述待转换浮点数的类型为十进制扩展浮点数,上述目标浮点数的类型为二进制浮点数,且上述待转换浮点数的存储位置为偶奇浮点寄存器,则将上述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数。
根据本申请的一个或多个实施例,上述转换模块,还包括:
第三转换处理单元,用于若上述待转换浮点数的类型为二进制浮点数,上述目标浮点数的类型为十进制浮点数,且上述待转换浮点数的存储位置为浮点操作数寄存器,则将上述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数;
第四转换处理单元,用于若上述待转换浮点数的类型为二进制浮点数,上述目标浮点数的类型为十进制浮点数,且上述待转换浮点数的存储位置为偶奇浮点寄存器,则将上述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数。
在示例性实施例中,本申请实施例还提供了一种电子设备,包括:处理器,以及与上述处理器连接的存储器;
上述存储器存储计算机执行指令;
上述处理器包括:
用于解码浮点数转换指令的解码单元,上述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
与上述解码单元耦合的执行单元,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,上述待转换浮点数的类型与上述目标浮点数的类型不同,上述待转换浮点数的类型与上述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数;将上述目标浮点数存储至目标浮点数寄存器。
在示例性实施例中,本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质中存储有浮点数转换指令,
上述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
上述浮点数转换指令被处理器执行时实现操作,其中,上述操作包括:响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,上述待转换浮点数的类型与上述目标浮点数的类型不同,上述待转换浮点数的类型与上述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据上述目标浮点数的类型、上述待转换浮点数的类型和存储位置,将上述待转换浮点数转换得到目标浮点数;将上述目标浮点数存储至目标浮点数寄存器。
为了实现上述实施例,本申请实施例还提供了一种电子设备。参考图7,其示出了适于用来实现本申请实施例的电子设备700的结构示意图,该电子设备700可以为终端设备或服务器。其中,终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、消息收发设备,游戏控制台,医疗设备,健身设备,个人数字助理(Personal DigitalAssistant,简称PDA)、平板电脑(Portable Android Device,简称PAD)、便携式多媒体播放器(Portable Media Player,简称PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图7所示,电子设备700可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(Read Only Memory,简称ROM)702中的程序或者从存储装置708加载到随机访问存储器(Random Access Memory,简称RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有电子设备700操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(Liquid CrystalDisplay,简称LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许电子设备700与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备700,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本申请实施例的方法中限定的上述功能。
需要说明的是,本申请上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例所示的方法。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LocalArea Network,简称LAN)或广域网(Wide Area Network,简称WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (10)

1.一种浮点数的转换处理方法,其特征在于,所述方法包括:
响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;
根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;
将所述目标浮点数存储至目标浮点数寄存器。
2.根据权利要求1所述的方法,其特征在于,所述响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,包括:
响应于所述浮点数转换指令,对所述浮点数转换指令进行译码处理;
根据译码结果,确定所述待转换浮点数的类型和存储位置,以及目标浮点数的类型。
3.根据权利要求1所述的方法,其特征在于,根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数,包括:
根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,确定所述目标浮点数的类型;
根据所述目标浮点数的类型,确定用于转换处理所述待转换浮点数的目标转换处理单元;
将所述待转换浮点数下发到所述目标转换处理单元,以采用所述目标转换处理单元将所述待转换浮点数转换得到所述目标浮点数。
4.根据权利要求1至3中任意一项所述的方法,其特征在于,将所述待转换浮点数转换得到目标浮点数,包括:
若所述待转换浮点数的类型为十进制浮点数,所述目标浮点数的类型为二进制浮点数,且所述待转换浮点数的存储位置为浮点操作数寄存器,则将所述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数;
若所述待转换浮点数的类型为十进制扩展浮点数,所述目标浮点数的类型为二进制浮点数,且所述待转换浮点数的存储位置为偶奇浮点寄存器,则将所述待转换浮点数转换得到单精度二进制浮点数或双精度二进制浮点数。
5.根据权利要求1至3中任意一项所述的方法,其特征在于,根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数,包括:
若所述待转换浮点数的类型为二进制浮点数,所述目标浮点数的类型为十进制浮点数,且所述待转换浮点数的存储位置为浮点操作数寄存器,则将所述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数;
若所述待转换浮点数的类型为二进制浮点数,所述目标浮点数的类型为十进制浮点数,且所述待转换浮点数的存储位置为偶奇浮点寄存器,则将所述待转换浮点数转换得到十进制浮点数或十进制扩展浮点数。
6.一种浮点数的转换处理装置,其特征在于,所述装置包括:
获取模块,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;
转换模块,用于根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;
存储模块,用于将所述目标浮点数存储至目标浮点数寄存器。
7.根据权利要求6所述的装置,其特征在于,所述获取模块,包括:
译码单元,用于响应于所述浮点数转换指令,对所述浮点数转换指令进行译码处理;
第一确定单元,用于根据译码结果,确定所述待转换浮点数的类型和存储位置,以及目标浮点数的类型。
8.根据权利要求6所述的装置,其特征在于,所述转换模块,包括:
第二确定单元,用于根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,确定用于转换处理所述待转换浮点数的目标转换处理单元;
下发单元,用于将所述待转换浮点数下发到所述目标转换处理单元,以采用所述目标转换处理单元将所述待转换浮点数转换得到所述目标浮点数。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器连接的存储器;
所述存储器存储计算机执行指令;
所述处理器包括:
用于解码浮点数转换指令的解码单元,所述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
与所述解码单元耦合的执行单元,用于响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;将所述目标浮点数存储至目标浮点数寄存器。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有浮点数转换指令,
所述浮点数转换指令指示具有待转换浮点数的类型和存储位置,以及目标浮点数的类型;
所述浮点数转换指令被处理器执行时实现操作,其中,所述操作包括:响应于浮点数转换指令,获取待转换浮点数的类型和存储位置,以及目标浮点数的类型,其中,所述待转换浮点数的类型与所述目标浮点数的类型不同,所述待转换浮点数的类型与所述目标浮点数的类型均包括:十进制浮点数和二进制浮点数;根据所述目标浮点数的类型、所述待转换浮点数的类型和存储位置,将所述待转换浮点数转换得到目标浮点数;将所述目标浮点数存储至目标浮点数寄存器。
CN202311155193.3A 2023-09-07 2023-09-07 浮点数的转换处理方法、装置、电子设备及存储介质 Pending CN117155396A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311155193.3A CN117155396A (zh) 2023-09-07 2023-09-07 浮点数的转换处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311155193.3A CN117155396A (zh) 2023-09-07 2023-09-07 浮点数的转换处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN117155396A true CN117155396A (zh) 2023-12-01

Family

ID=88898521

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311155193.3A Pending CN117155396A (zh) 2023-09-07 2023-09-07 浮点数的转换处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117155396A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158892A (zh) * 2007-11-16 2008-04-09 中国科学院计算技术研究所 一种浮点数据转换装置和方法
US20110145308A1 (en) * 2009-12-15 2011-06-16 Internationa Business Machines Corporation System to improve numereical conversions and associated methods
US20150286465A1 (en) * 2014-04-07 2015-10-08 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
CN105468331A (zh) * 2014-09-26 2016-04-06 Arm有限公司 独立的浮点转换单元
CN109710211A (zh) * 2018-11-15 2019-05-03 珠海市杰理科技股份有限公司 浮点数据类型转换方法、装置、存储介质及计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101158892A (zh) * 2007-11-16 2008-04-09 中国科学院计算技术研究所 一种浮点数据转换装置和方法
US20110145308A1 (en) * 2009-12-15 2011-06-16 Internationa Business Machines Corporation System to improve numereical conversions and associated methods
US20150286465A1 (en) * 2014-04-07 2015-10-08 International Business Machines Corporation Compression of floating-point data by identifying a previous loss of precision
CN105468331A (zh) * 2014-09-26 2016-04-06 Arm有限公司 独立的浮点转换单元
CN109710211A (zh) * 2018-11-15 2019-05-03 珠海市杰理科技股份有限公司 浮点数据类型转换方法、装置、存储介质及计算机设备

Similar Documents

Publication Publication Date Title
US11698772B2 (en) Prepare for shorter precision (round for reround) mode in a decimal floating-point instruction
US7216138B2 (en) Method and apparatus for floating point operations and format conversion operations
US9804823B2 (en) Shift significand of decimal floating point data
US6480868B2 (en) Conversion from packed floating point data to packed 8-bit integer data in different architectural registers
US8051118B2 (en) Composition of decimal floating point data
US5995122A (en) Method and apparatus for parallel conversion of color values from a single precision floating point format to an integer format
US7689641B2 (en) SIMD integer multiply high with round and shift
US6502115B2 (en) Conversion between packed floating point data and packed 32-bit integer data in different architectural registers
US8745111B2 (en) Methods and apparatuses for converting floating point representations
EP3719639A2 (en) Systems and methods to perform floating-point addition with selected rounding
US6292815B1 (en) Data conversion between floating point packed format and integer scalar format
US6247116B1 (en) Conversion from packed floating point data to packed 16-bit integer data in different architectural registers
US20080270497A1 (en) Convert significand of decimal floating point data to/from packed decimal format
CN101488083A (zh) 用于转换向量数据的方法、装置和指令
US20030154366A1 (en) Method and apparatus for achieving architectural correctness in a multi-mode processor providing floating-point support
US10095475B2 (en) Decimal and binary floating point rounding
US10416962B2 (en) Decimal and binary floating point arithmetic calculations
EP2812793B1 (en) Floating point constant generation instruction
CN111290786B (zh) 一种信息处理方法、设备及存储介质
CN117155396A (zh) 浮点数的转换处理方法、装置、电子设备及存储介质
US11221826B2 (en) Parallel rounding for conversion from binary floating point to binary coded decimal
CN112667197B (zh) 一种基于posit浮点数格式的参数化加减法运算电路
CN115268832A (zh) 浮点数取整的方法、装置以及电子设备
CN110263797B (zh) 骨架的关键点估计方法、装置、设备及可读存储介质
US20040254973A1 (en) Rounding mode insensitive method and apparatus for integer rounding

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