一种数据类型转换电路单元及装置的制作方法

文档序号:14452235阅读:191来源:国知局

本发明涉及数据格式转换技术领域,具体涉及一种数据类型转换电路单元及装置。



背景技术:

在当前主流的32/64位二进制数据处理装置中,诸如通用处理器、数字信号处理器等,数据主要分类为定点数(也称为整数)和浮点数,且浮点数遵循ieee754-2008标准。相同数据位宽的浮点数表示范围和精度均比定点数存在明显优势,因此,在处理二进制数据时,多数应用也希望数据处理装置能够直接实现不同数据位宽的定浮点数据之间的格式转换。例如,如果将整数与小数相加,则首先需要将整数转换为浮点数;如果要求更高的精度,则需要增大用于表示浮点数的位宽。

通过在数据处理装置中内嵌定浮点数据格式转换电路,可以有效减少转换到中间格式导致的延时,因此当前主流微处理器支持的定浮点数据格式转换功能通常内嵌入在浮点计算单元中,或作为ip(知识产权)核独立工作,主要面向32/64位定浮点数据之间简单的格式转换,涵盖了浮点格式间的互换、浮点与对应相同位宽的有符号/无符号定点数之间的转换等功能,虽然可满足通用控制与简单计算领域的基本需求,但其支持的数据格式转换功能相对单一,在诸如高性能服务器系统、云计算、大数据等计算密集型应用领域,不能实时满足数据处理需求,大部分数据格式转换仍需通过软件编程方式来完成,延长了数据处理等待时间,转换精度也不能得到有效保证。



技术实现要素:

本发明要解决的技术问题在于克服现有数据类型转换电路支持的数据格式转换功能相对单一,在一些计算密集的应用领域无法实现实时数据处理的功能;并且现有大多数据格式的转换仍然依靠软件编程实现,从而延长了数据处理等待的时间,转换精度也无法保证的问题。

根据第一方面,本发明实施例提供了一种数据类型转换电路单元,包括:控制电路、第一调整电路、舍入判定电路、前导零计算电路、左移判定电路、输出电路,其中,所述控制电路用于接收外部输入的源数据及控制信号,所述控制信号中包括数据转换方式及源数据类型信息,所述控制电路根据所述控制信号确定所述源数据的数据类型,将所述源数据发送至所述第一调整电路,并根据所述控制信号控制所述第一调整电路、舍入判定电路、前导零计算电路及左移判定电路;所述第一调整电路用于根据所述控制信号对所述源数据进行指数调整和尾数右移生成右移数据,并发送至所述舍入判定电路;所述舍入判定电路用于根据所述控制信号对所述右移数据进行舍入操作生成舍入数据,并发送至所述前导零计算电路;所述前导零计算电路用于根据所述控制信号对所述舍入数据进行前导零操作生成前导零数据,并发送至所述左移判定电路;所述左移判定电路用于根据所述控制信号对所述前导零数据进行位数左移生成左移数据和舍入参数,并发送至所述输出电路;所述输出电路用于对所述左移数据进行舍入、尾数调整、指数溢出及定浮点数据格式整合操作生成第一转换结果数据。

结合第一方面,在第一方面第一实施方式中,所述数据类型转换电路单元还包括:第二调整电路,当所述控制信号中包含的数据转换方式为将双精度数据转换为单精度数据、及将浮点数据转换为定点数据时,所述第二调整电路用于接收所述源数据及所述控制信号,并根据所述控制信号对所述源数据进行最大值处理,将处理结果延时预设时间生成第二转换结果数据。

结合第一方面,在第一方面第二实施方式中,所述数据类型转换电路单元还包括:第三调整电路,当所述源数据为特殊浮点数据或特殊定点数据时,所述第三调整电路用于接收所述源数据及所述控制信号,并根据所述控制信号对所述源数据进行特殊常值赋值、数据格式整合及位宽调整得到处理结果,将所述处理结果延时预设时间生成第三转换结果数据。

结合第一方面,在第一方面第三实施方式中,所述控制电路、调整电路、舍入判定电路、前导零计算电路、左移判定电路及输出电路的操作位数为32和/或64位。

根据第二方面,本发明实施例提供了一种数据类型转换电路单元构成的数据类型转换装置,所述数据类型转换装置包括:至少一本发明第一方面所提供的数据类型转换电路单元。

结合第二方面,在第二方面第一实施方式中,当所述数据类型转换电路单元为多个时,所述数据类型转换装置还包括:至少一选择器,用于接收外部输入的顶层控制信号及多个所述数据类型转换电路单元的转换结果数据,并根据所述顶层控制信号对多个所述转换结果数据进行数据选择,生成最终输出结果数据,其中,所述转换结果数据包括所述第一转换结果数据、第二转换结果数据、第三转换结果数据中的至少一种。

结合第二方面,在第二方面第二实施方式中,所述数据类型转换装置还包括:状态值合成模块,用于对所述数据类型转换电路单元的输出结果进行异常情况判断,生成最终输出异常状态值。

本发明技术方案,具有如下优点:

本发明实施例所提供的数据类型转换电路单元,通过采用控制电路、第一调整电路、舍入判定电路、前导零计算电路、左移判定电路、输出电路的混合体系结构使得源数据可以通过统一的执行流程进行数据类型的转换,并且通过第二调整电路及第三调整电路的设置,实现了特殊类型数据的格式转换,增强了不同数据格式转换功能;并且通过硬件电路结构有效的缩短了数据格式间的转换时间,从而提高了数据处理的实时性;可满足32/64位数据格式之间的所有功能和精度需求,从而扩大了数据类型转换电路单元的应用范围。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例1中数据类型转换电路单元的结构示意图;

图2为本发明实施例1中数据类型转换电路单元的另一结构示意图;

图3为本发明实施例1中数据类型转换电路单元的另一结构示意图;

图4为本发明实施例2中数据类型转换装置的结构示意图;

图5为本发明实施例2中数据类型转换装置的另一结构示意图;

图6为本发明实施例2中数据类型转换装置的另一结构示意图;

图7为本发明实施例2中数据类型转换装置的另一结构示意图。

具体实施方式

下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在本发明的描述中,需要说明的是,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

实施例1

本发明实施例提供一种数据类型转换电路单元,如图1所示,该数据类型转换电路单元包括:控制电路1、第一调整电路2、舍入判定电路3、前导零计算电路4、左移判定电路5、输出电路6,其中,控制电路1用于接收外部输入的源数据及控制信号,控制信号中包括数据转换方式及源数据类型信息,控制电路1根据控制信号确定源数据的数据类型,将源数据发送至第一调整电路2,并根据控制信号控制第一调整电路2、舍入判定电路3、前导零计算电路4及左移判定电路5;第一调整电路2用于根据控制信号对源数据进行指数调整和尾数右移生成右移数据,并发送至舍入判定电路3;舍入判定电路3用于根据控制信号对右移数据进行舍入操作生成舍入数据,并发送至前导零计算电路4;前导零计算电路4用于根据控制信号对舍入数据进行前导零操作生成前导零数据,并发送至左移判定电路5;左移判定电路5用于根据控制信号对前导零数据进行位数左移生成左移数据和舍入参数,并发送至输出电路6;输出电路6用于对左移数据进行舍入、尾数调整、指数溢出及定浮点数据格式整合操作生成第一转换结果数据。

本发明实施例通过采用控制电路1、第一调整电路2、舍入判定电路3、前导零计算电路4、左移判定电路5、输出电路6的混合体系结构使得源数据可以通过统一的执行流程进行数据类型的转换,增强了不同数据格式转换功能;并且通过硬件电路结构有效的缩短了数据格式间的转换时间,从而提高了数据处理的精度和实时性。

具体地,上述控制电路1确定源数据的数据类型,其中包括对符号位的确定,当源数据为有符号定点负数时,上述控制电路1对源数据进行求补操作,并且通过接收外部输入的各类控制信号,并对其他各部分电路进行控制,保证整个电路单元时序功能匹配。不同转换类型的源数据涵盖的数据类型分别描述如下:

dp转sp32/sp64:zero、inf、qnan、snan、dis_unflow、en_unflow、dis_ovflow、en_ovflow、normal共9种类型;sp64转sp32:zero、inf、qnan、snan、denormal、tiny、normal共7种类型;sp32转dp/sp64:zero、inf、qnan、snan、denormal、normal共6种类型;浮点转定点:zero、inf、qnan、snan、large、denormal、normal共7种类型;定点转浮点:zero、normal共2种类型;浮点舍入:zero、inf、qnan、snan、large、small、denormal、normal共8种类型;上述sp32和dp分别表示符合ieee754标准格式的32位单精度浮点数和64位双精度浮点数,sp64表示双精度格式的单精度浮点数。

具体地,上述第一调整电路2主要根据不同的转换类型对浮点指数和尾数进行调整,并对尾数做右移运算,该调整电路主要由指数运算单元(exp_arithunit)、尾数运算单元(fr_arithunit)和尾数右移模块(rshiftmodule)构成。其中,指数运算单元主要计算右移的位数,也即rshft_round1_shft_num,同时计算源数据的真值(也即浮点指数-对应浮点位宽格式的偏阶码)。尾数运算单元主要是将浮点数的隐藏位添加到浮点尾数中,然后根据具体的转换功能类型和源数据类型,将尾数拼接成64位数据(也即rshft_round1_fr);对源操作数是32位的定点,将有效数据放置在64位数据rshft_round1_fr的低32位。

具体地,上述舍入判定电路3主要根据上述第一调整电路2输出的右移的结果,得到lsb(最低位)、r(舍入位)、s(粘贴位),并输入到舍入模块(rdmodule)进行舍入操作,然后判定是否溢出,如果溢出则指数加1,然后将舍入结果输出。

具体地,上述前导零计算电路4主要是对尾数进行前导零计算,同时对指数进行相应的调整。

具体地,上述左移判定电路5主要根据前导零值和右移值来确定左移位数,然后得到中间结果,并确定lsb、r、s的值,将结果输出给输出电路6。

具体地,上述输出电路6主要进行舍入操作、尾数调整和指数溢出操作、输出数据格式确定,首先将操作调入舍入模块(也即rdmodule)进行舍入操作,然后判断尾数是否执行加1操作,接着通过判断尾数是否溢出来确定指数是否需要加1。最后生成转换类型规定的输出存储格式进行输出。

在一较佳实施例中,如图2所示,上述数据类型转换电路单元还包括:第二调整电路7,当控制信号中包含的数据转换方式为将双精度数据转换为单精度数据、及将浮点数据转换为定点数据时,第二调整电路7用于接收源数据及控制信号,并根据控制信号对源数据进行最大值处理,将处理结果延时预设时间生成第二转换结果数据。

具体地,上述第二调整电路7用于处理双精度转单精度或浮点转定点时进行最大值处理,并将结果延时5个时钟周期输出,以保证与上述数据类型转换电路单元的处理时钟周期输出一致,上述数据类型转换电路单元的各部分电路按照时钟周期进行操作,且每个电路的操作时间均为1个时钟周期。

在一较佳实施例中,如图3所示,上述数据类型转换电路单元还包括:第三调整电路8,当源数据为特殊浮点数据或特殊定点数据时,第三调整电路8用于接收源数据及控制信号,并根据控制信号对源数据进行特殊常值赋值、数据格式整合及位宽调整得到处理结果,将处理结果延时预设时间生成第三转换结果数据。

具体地,上述特殊浮点数据和特殊定点数据涵盖的数据类型如下:

dp转sp32/sp64:zero、inf、qnan、snan;sp64转sp32:zero、inf、qnan、snan、denormal、normal;sp32转dp/sp64:zero、inf、qnan、snan、normal;浮点转定点:inf、qnan、snan、small;定点转浮点:zero;浮点舍入:zero、inf、qnan、snan、large、small。

在一较佳实施例中,上述控制电路1、调整电路、舍入判定电路3、前导零计算电路4、左移判定电路5及输出电路6的操作位数为32和/或64位,即上述数据类型转换电路单元可以只处理32位数据,也可以只处理64位数据,也可以兼容处理32/64位数据,从而实现多数据类型转换的功能。

实施例2

本发明实施例提供一种数据类型转换装置,如图4所示,该数据类型转换装置包括:至少一数据类型转换电路单元9,该数据类型转换电路单元9可为上述实施例1的数据类型转换电路单元9,详细内容请参见实施例1中,此处不再赘述。

在一较佳实施例中,如图5所示,当上述数据类型转换电路单元9的个数为多个时,上述数据类型转换装置还包括:

至少一选择器10,用于接收外部输入的顶层控制信号及多个数据类型转换电路单元9的转换结果数据,并根据顶层控制信号对多个转换结果数据进行数据选择,生成最终输出结果数据,其中,转换结果数据包括第一转换结果数据、第二转换结果数据、第三转换结果数据中的至少一种。上述选择器10的个数可以根据实际需要设定。

具体地,如图5所示,当上述数据类型转换装置由一个操作位数为32位的数据类型转换电路单元9和一个操作位数为64位的数据类型转换电路单元9构成时,上述选择器10根据控制信号判断当前工作的数据类型转换电路单元9,从而将32位的数据类型转换电路单元9的输出结果或者64位的数据类型转换电路单元9低32位的输出结果存储于对应的存储位置。

在一较佳实施例中,如图6所示,上述数据类型转换装置还包括:状态值合成模块11,用于对数据类型转换电路单元9的输出结果进行异常情况判断,生成输出异常状态值。

具体地,例如:当某一数据类型转换电路单元9或者某一数据类型转换电路单元9的各个组成电路在处理过程中发生异常时,通过状态值合成模块11检测出异常状况,并进行状态值标识和输出,有利于下一级接收处理装置对数据类型转换装置进行检测和维护。

具体地,如图7所示,为上述数据类型转换装置的一个具体应用示例,该示例中的数据类型转换装置包含了两组32位数据类型转换电路单元和两组32/64位数据类型转换电路单元。该数据类型转换装置可以处理128位的源数据,并且支持1组32/64位数据转换,或者4组32位或2组32/64位数据并行转换。在该具体应用示例中,各个数据类型转换电路单元的输入端增设两个选择模块,用于根据源数据的位数选择低32位及次高32位数据输入至32位数据类型转换电路单元或32/64位数据类型转换电路单元。以该数据类型转换装置为例,其所涵盖的功能如表1所列。

表1

在表1中,sp32和dp分别表示符合ieee754标准格式的32位单精度浮点数和64位双精度浮点数,sp64表示双精度格式的单精度浮点数,i32和ui32分别表示有符号和无符号的32位定点数或整数,i64和ui64分别表示有符号和无符号的64位定点数或整数,rn、rz、ru、rd分别表示就近舍入、向零舍入、向正无穷大舍入、向负无穷大舍入,圆括弧中的标量表示1组32/64位数据类型转换,向量表示4组32位或2组32/64位数据类型并行转换。

显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1