当前位置: 首页 > 专利查询>南京大学专利>正文

一种浮点数转换电路制造技术

技术编号:24578054 阅读:21 留言:0更新日期:2020-06-21 00:40
本发明专利技术公开了一种浮点数转换电路,能够将基于IEEE 754规范的单精度浮点数转换为posit数据格式的单精度浮点数,即第二浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,而本发明专利技术中的posit数据格式的单精度浮点数在神经网络训练过程中就可以在0附近保证精度,并且,本发明专利技术中posit数据格式的单精度浮点数的预设总位宽是可以调控的,因此又可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。

A floating-point conversion circuit

【技术实现步骤摘要】
一种浮点数转换电路
本专利技术涉及计算机
,尤其涉及一种浮点数转换电路。
技术介绍
神经网络一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。近年来,随着深度学习技术的快速发展,神经网络的训练变得普遍并且重要,神经网络训练的速度和资源消耗也成为了对于深度学习评价的重要指标。在以往的神经网络训练过程中,大部分的浮点数使用的都是基于IEEE754规范的规格化单精度浮点数格式,这种数据格式通常包括符号段、指数段和尾数段,并且通常使用32位的位宽来表示,即符号段、指数段和尾数段的总位宽为32位。这种单精度浮点数可以表示一个很大范围的数值,同时也能满足神经网络训练的要求。但是,虽然上述这种基于IEEE754规范的单精度浮点数在精度上能够满足神经网络训练的要求,但是由于其位宽较长,在处理这种数据时需要耗费一定的时间并且消耗一定的资源,进而影响神经网络的训练速度,使神经网络训练的效率降低。
技术实现思路
本专利技术提供了一种浮点数转换电路,以解决目前使用基于IEEE754规范的单精度浮点数造成的神经网络训练的效率低的问题。本专利技术实施例提供了一种浮点数转换电路,包括:数据获取单元,用于分别获取第一浮点数中符号段的值、指数段的值、尾数段的值、预设指数位宽和预设总位宽,所述第一浮点数为规格化数据格式的单精度浮点数;数据转换单元,用于将所述指数段的值转换为2的补码形式,获得指数段的二进制码,以及用于将所述尾数段的值转换为二进制码,获得尾数段的二进制码,并且所述指数段的二进制码的位宽通过所述预设总位宽和所述预设指数段位宽确定;绝对值运算器,用于对所述指数段的二进制码取绝对值,获得指数绝对值;按位或门,用于将所述指数绝对值中符合第一预设位数的值作为输入,得到输出结果;非门,用于对所述指数段的二进制码的最高位值取非,得到输出结果;与门,用于将所述按位或门的输出结果和所述指数段的二进制码的最高位值作为输入,得到输出结果;第一多路选择器,用于将所述与门的输出结果作为第一选择信号,利用所述第一选择信号得到输出结果,所述第一多路选择器的输出结果包括所述指数段的二进制码中符合第一预设位数的值或者所述指数绝对值中符合第一预设位数的值;或门,用于将所述非门的输出结果和所述与门的输出结果作为输入,得到输出结果;拼接单元,用于按顺序依次将所述指数段的二进制码的最高位值、所述第一多路选择器的输出结果和所述尾数段的二进制码拼接,得到输出结果;右移位器,用于将所述指数绝对值中符合第二预设位数的值作为移位值,按照所述移位值将所述拼接单元输出结果中的每一位二进制码依次向右移动,得到输出结果;额外移位器,用于将所述右移位器的输出结果中的每一位二进制码继续依次向右移动一位,得到输出结果;第二多路选择器,用于将所述或门的输出结果作为第二选择信号,利用所述第二选择信号得到输出结果,所述第二多路选择器的输出结果包括所述右移位器的输出结果或者所述额外移位器的输出结果;输出单元,用于利用所述符号段的值,将所述符号段的值以及所述第二多路选择器的输出结果共同输出,得到第二浮点数。在本专利技术的一种可实现方式中,所述数据转换单元还用于利用如下公式,通过所述预设总位宽和所述预设指数段位宽确定所述指数段的二进制码的位宽:Nes=log2N+es+1,其中,Nes表示所述指数段的二进制码的位宽,N表示所述预设总位宽,es表示所述预设指数段位宽,以及,当log2N为非整数时,log2N的值向上取整。在本专利技术的一种可实现方式中,所述第一预设位数利用公式[es-1:0]获得,其中,[es-1:0]表示所述指数绝对值中第es-1位到第0位的值。在本专利技术的一种可实现方式中,所述第二预设位数利用公式[log2N+es-1:es]获得,其中,[log2N+es-1:es]表示所述指数绝对值中第log2N+es-1位到第es位的值。在本专利技术的一种可实现方式中,所述第一多路选择器还用于:当所述第一选择信号为1时,选择所述指数段的二进制码中符合第一预设位数的值作为所述第一多路选择器的输出结果;当所述第一选择信号为0时,选择所述指数绝对值中符合第一预设位数的值作为所述第一多路选择器的输出结果。在本专利技术的一种可实现方式中,所述第二多路选择器还用于:当所述第二选择信号为1时,选择所述额外移位器的输出结果作为所述第二多路选择器的输出结果;当所述第二选择信号为0时,选择所述右移位器的输出结果作为所述第二多路选择器的输出结果。在本专利技术的一种可实现方式中,所述右移位器还用于:获取所述移位值的二进制码对应的真值a,所述a为大于或者等于0的正整数;舍去所述拼接单元输出结果中a个低位的值,获得舍去值;在所述舍去值的左侧补足a个0,获得所述右移位器的输出结果。在本专利技术的一种可实现方式中,所述输出单元还用于:当所述符号段的值表示正数时,按顺序将所述符号段的值与所述第二多路选择器的输出结果拼接输出,获得第二浮点数;当所述符号段的值表示负数时,将所述第二多路选择器的输出结果按位取反;按顺序将所述符号段的值与所述取反后的第二多路选择器的输出结果拼接;将所述拼接结果整体加1,获得第二浮点数。由以上技术方案可知,本专利技术公开了一种浮点数转换电路,能够将基于IEEE754规范的单精度浮点数转换为posit数据格式的单精度浮点数,即第二浮点数。在很多神经网络的训练过程中,其运算数据近似服从正态分布,可通过变换使数据集中在0附近,而本专利技术中的posit数据格式的单精度浮点数在神经网络训练过程中就可以在0附近保证精度,并且,本专利技术中posit数据格式的单精度浮点数的预设总位宽是可以调控的,因此又可以很大程度的减少数据位宽,进而减少存储所需要的资源以及读写过程所消耗的资源,提高神经网络训练的效率。附图说明为了更清楚地说明本专利技术的技术方案,下面将对实施案例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的基于IEEE754规范的单精度浮点数具体的数据表示形式的示意图;图2为本专利技术实施例提供的一种浮点数转换电路的电路图;图3为本专利技术实施例提供的一种浮点数转换示意图。具体实施方式本专利技术技术方案中的Posit数据格式的参数包括N和es,其中N为整个数据表示的总位宽,es为指数段的位宽,两个参数都是在表示数据前需要确定的。N可以取任意正整数值,例如5、8等。本实施例中以N表示预设总位宽,以es表示预设指数位宽,预设指数位宽是根据对Posit数据格式的浮点数的实际需求选择的,例如2、3、4等等。图1为本专利技术提供的基于IE本文档来自技高网...

【技术保护点】
1.一种浮点数转换电路,其特征在于,包括:/n数据获取单元(100),用于分别获取第一浮点数中符号段的值、指数段的值、尾数段的值、预设指数位宽和预设总位宽,所述第一浮点数为规格化数据格式的单精度浮点数;/n数据转换单元(110),用于将所述指数段的值转换为2的补码形式,获得指数段的二进制码,以及用于将所述尾数段的值转换为二进制码,获得尾数段的二进制码,并且所述指数段的二进制码的位宽通过所述预设总位宽和所述预设指数段位宽确定;/n绝对值运算器(120),用于对所述指数段的二进制码取绝对值,获得指数绝对值;/n按位或门(130),用于将指数绝对值中符合第一预设位数的值作为输入,得到输出结果;/n非门(140),用于对所述指数段的二进制码的最高位值取非,得到输出结果;/n与门(150),用于将所述按位或门(130)的输出结果和所述指数段的二进制码的最高位值作为输入,得到输出结果;/n第一多路选择器(160),用于将所述与门(150)的输出结果作为第一选择信号,利用所述第一选择信号得到输出结果,所述第一多路选择器(160)的输出结果包括所述指数段的二进制码中符合第一预设位数的值或者指数绝对值中符合第一预设位数的值;/n或门(170),用于将所述非门(140)的输出结果和所述与门(150)的输出结果作为输入,得到输出结果;/n拼接单元(180),用于按顺序依次将所述指数段的二进制码的最高位值、所述第一多路选择器(160)的输出结果和所述尾数段的二进制码拼接,得到输出结果;/n右移位器(190),用于将指数绝对值中符合第二预设位数的值作为移位值,按照所述移位值将所述拼接单元(180)输出结果中的每一位二进制码依次向右移动,得到输出结果;/n额外移位器(200),用于将所述右移位器的输出结果中的每一位二进制码继续依次向右移动一位,得到输出结果;/n第二多路选择器(210),用于将所述或门(170)的输出结果作为第二选择信号,利用所述第二选择信号得到输出结果,所述第二多路选择器(210)的输出结果包括所述右移位器的输出结果或者所述额外移位器(200)的输出结果;/n输出单元(220),用于利用所述符号段的值,将所述符号段的值以及所述第二多路选择器(210)的输出结果共同输出,得到第二浮点数。/n...

【技术特征摘要】
1.一种浮点数转换电路,其特征在于,包括:
数据获取单元(100),用于分别获取第一浮点数中符号段的值、指数段的值、尾数段的值、预设指数位宽和预设总位宽,所述第一浮点数为规格化数据格式的单精度浮点数;
数据转换单元(110),用于将所述指数段的值转换为2的补码形式,获得指数段的二进制码,以及用于将所述尾数段的值转换为二进制码,获得尾数段的二进制码,并且所述指数段的二进制码的位宽通过所述预设总位宽和所述预设指数段位宽确定;
绝对值运算器(120),用于对所述指数段的二进制码取绝对值,获得指数绝对值;
按位或门(130),用于将指数绝对值中符合第一预设位数的值作为输入,得到输出结果;
非门(140),用于对所述指数段的二进制码的最高位值取非,得到输出结果;
与门(150),用于将所述按位或门(130)的输出结果和所述指数段的二进制码的最高位值作为输入,得到输出结果;
第一多路选择器(160),用于将所述与门(150)的输出结果作为第一选择信号,利用所述第一选择信号得到输出结果,所述第一多路选择器(160)的输出结果包括所述指数段的二进制码中符合第一预设位数的值或者指数绝对值中符合第一预设位数的值;
或门(170),用于将所述非门(140)的输出结果和所述与门(150)的输出结果作为输入,得到输出结果;
拼接单元(180),用于按顺序依次将所述指数段的二进制码的最高位值、所述第一多路选择器(160)的输出结果和所述尾数段的二进制码拼接,得到输出结果;
右移位器(190),用于将指数绝对值中符合第二预设位数的值作为移位值,按照所述移位值将所述拼接单元(180)输出结果中的每一位二进制码依次向右移动,得到输出结果;
额外移位器(200),用于将所述右移位器的输出结果中的每一位二进制码继续依次向右移动一位,得到输出结果;
第二多路选择器(210),用于将所述或门(170)的输出结果作为第二选择信号,利用所述第二选择信号得到输出结果,所述第二多路选择器(210)的输出结果包括所述右移位器的输出结果或者所述额外移位器(200)的输出结果;
输出单元(220),用于利用所述符号段的值,将所述符号段的值以及所述第二多路选择器(210)的输出结果共同输出,得到第二浮点数。


2.根据权利要求1所述的电路,其特征在于,所述数据转换单元(110)还用于利用如下公式,通过...

【专利技术属性】
技术研发人员:王中风徐铭阳方超林军
申请(专利权)人:南京大学
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1