一种浮点处理方法及浮点处理器的制造方法

文档序号:9274437阅读:421来源:国知局
一种浮点处理方法及浮点处理器的制造方法
【技术领域】
[0001]本发明属于数字信号处理领域,尤其涉及一种浮点处理方法及浮点处理器。
【背景技术】
[0002]在无线通信与高性能计算等领域中,由于浮点数能够提供较大的数据表示范围和较高的数据计算精度,浮点运算中高速低延迟的浮点乘加器已经成为一项关键技术,其运算能力已经成为衡量数字信号处理器性能指标的一个重要特征,它对于芯片的性能、面积和功耗具有重要的影响,因此对浮点乘加器的研宄就显得非常重要。
[0003]而现有的双精度浮点乘加结构存在以下问题:
[0004]1、只能处理一个结果判断,无法处理两个单精度乘法结果的例外判断
[0005]2、只有一个161位加法器,无法满足双单精度指令的设计要求
[0006]3、无法处理指数的阶差计算。
[0007]因此,迫切需要一种新型的双精度浮点乘加结构以解决上述问题。

【发明内容】

[0008]本发明提供一种浮点处理方法及浮点处理器,以解决上述问题。
[0009]本发明提供一种浮点处理方法。上述方法包括以下步骤:各个对阶移位器接收到指数处理模块对源操作数分离出的指数进行处理的结果后,进行尾数对阶移位并将对阶移位结果输出至各个复合加法器;同时,乘法器将单精度乘法信息输入尾加法器,获取单精度乘法结果;
[0010]所述复合加法器完成浮点尾数对阶后的加法计算后,输入移位器进行规格化移位并对规格化移位结果进行处理后输出,同时,乘法器根据所述单精度乘法结果,获取浮点双精度乘法结果后,进行乘法结果旁路输出。
[0011]本发明还提供一种浮点处理器,包括对阶移位器、复合加法器、乘法器、指数处理器;其中,所述指数处理器通过所述对阶移位器与所述复合加法器相连;所述指数处理器与所述乘法器直接相连;
[0012]所述指数处理器,用于接收源操作数分离出来的指数后,若为浮点乘法、乘加、复数或点积指令,则计算出乘法结果的指数并完成指数阶差的计算;
[0013]若为浮点加法指令,则计算出结果指数值和对阶移位量并将分离出的尾数值送入乘法器进行乘法运算;
[0014]所述乘法器,用于将单精度乘法信息输入尾加法器,通过所述尾加法器获取单精度乘法结果;还用于根据单精度乘法结果,获取浮点双精度乘法结果后,进行乘法结果旁路输出;
[0015]所述各个对阶移位器,用于接收指数处理器对源操作数分离出的指数进行处理的结果后,进行尾数对阶移位并将对阶移位结果输出至各个复合加法器;
[0016]所述复合加法器,用于完成浮点尾数对阶后的加法计算后,输入移位器进行规格化移位并将规格化移位结果进行处理后输出。
[0017]通过以下方案:各个对阶移位器接收到指数处理模块对源操作数分离出的指数进行处理的结果后,进行尾数对阶移位并将对阶移位结果输出至各个复合加法器;同时,乘法器将单精度乘法信息输入尾加法器,获取单精度乘法结果;
[0018]所述复合加法器完成浮点尾数对阶后的加法计算后,输入移位器进行规格化移位并对规格化移位结果进行处理后输出,同时,乘法器根据所述单精度乘法结果,获取浮点双精度乘法结果后,进行乘法结果旁路输出;不仅实现了同时处理两个单精度乘法结果的例外判断以及指数的阶差计算,而且还满足了双单精度指令的设计要求。
[0019]通过以下方案:所述复合加法器完成浮点尾数对阶后的加法计算后,输入移位器进行规格化移位并将规格化移位结果分别发送至尾数舍入模块、指数修正模块进行处理,大大提升了浮点精度。
[0020]通过以下方案:所述复合加法器包括74位复合加法器,98位复合加法器;所述对阶移位器包括32位对阶移位器、74位对阶移位器、98位对阶移位器,提高了浮点加减法指令的执行效率。
【附图说明】
[0021]此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0022]图1所示为本发明实施例1的浮点处理器整体结构图;
[0023]图2所示为本发明实施例2的浮点处理方法流程图;
[0024]图3所示为本发明实施例3的双单精度浮点乘加数据通路结构图;
[0025]图4所示为本发明实施例4的浮点加法数据通路结构图;
[0026]图5所示为本发明实施例5的复数乘法与点积数据通路结构图;
[0027]图6所示为本发明实施例7的浮点处理器又一结构图;
[0028]图7所示为本发明实施例7的浮点处理器又一结构图。
【具体实施方式】
[0029]下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
[0030]图1所示为本发明实施例1的浮点处理器整体结构图,如图1所示主要包括六级即 E1、E2、E3、E4、E5、E6。
[0031]第一级El:主要包括源操作数例外判断模块、浮点控制寄存器FCR、指数处理模块、两个32位对阶移位器、64*64位乘法器;
[0032]所示源操作数例外判断模块,用于对输入的源操作数进行例外判断后将所述FCR中相应标志位置位;
[0033]所述指数处理模块,用于接收源操作数分离出来的指数后,若为浮点乘法、乘加、复数或点积指令,则计算出乘法结果的指数并完成指数阶差的计算;若为浮点加法指令,则计算出结果指数值和对阶移位量并将分离出的尾数值送入乘法器进行乘法运算。
[0034]通过指数处理模块计算出阶差之后,为提高浮点加减法指令的执行效率,在第一级El中加入两个32位的对阶移位器,来实现双精度浮点加减和双单精度浮点加减的尾数对阶移位操作。
[0035]所述64*64位乘法器是一个64*64位的定、浮点复用乘法器,既可以满足定点64位乘法,也可以执行53位浮点乘法,在第一级El中,64*64位乘法器结构主要包括Booth编码,通过Booth编码产生33个部分积,然后利用CSA树形结构对部分积进行第一级压缩。
[0036]第二级E2:主要包括64*64位乘法器的部分积第2?3级压缩、2个48位尾数加法器、粘接位Sticky计算和74位对阶移位器
[0037]64*64位乘法器在第一级El中将部分积压缩得到8个sum和8个carry,将其通过2级CSA4:2压缩,可以得到两个单精度乘法的sum和carry,将sum和carry输入到2个尾数加法器中,可以计算出复数与点积指令中两个单精度乘法结果。
[0038]第二级E2中的74位对阶移位器,实现双精度乘加指令中尾数对阶的一部分对阶操作,剩余对阶移位在第三级E3中完成。
[0039]粘接位Sticky计算与对阶移位并行执行,这里计算出的粘接位是当尾数移出移位器时预先计算出的粘接位,使得后面舍入位的计算效率大大提高。
[0040]第三级E3:主要包括64*64位乘法器的第四压缩、一个106位加法器、一个98位对阶移位器、2个复合加法器(98位复合加法器、74位复合加法器)的前半部分、前导零预测模块。
[0041]在第四级压缩中,2个定点32位乘法结果可以计算出来,浮点双精度乘法也计算出来,106位加法器用来计算浮点乘法尾数求和。
[0042]98位对阶移位器用来实现双精度乘加中尾数对阶的剩余部分,双单精度乘加中单精度高位的尾数对阶移位以及复数与点积指令的尾数对阶操作。
[0043]复合加法器用来计算浮点尾数对阶后的加法,前导零预测逻辑预编码与尾数加法并行执行,浮点加减法操作在这一级中进行复用设计,将指数,尾数等数据进行选择输入,后面的加减操作均复用浮点乘加通路。
[0044]第四级E4:主要包括复合加法器后半部分逻辑、前导零预测编码与修正数逻辑、乘法结果旁路输出模块(乘法结果选择写回)。
[0045]尾数加法通过复合加法器完成后,前导零预测结果与修正值并行计算出来,送入第五级E5准备规格化移位。
[0046]根据第二级E2计算出来的单精度乘法结果与第三级E3计算的双精度乘法结果,在第四级E4将乘法结果旁路输出,提高乘法指令执行性能。
[0047]在乘法结果旁路输出模块中,首先读取FCR中所置的几位结果标志位,根据标志位输出符合IEEE754标准的浮点数,然后根据结果尾数舍入与结果例外判断处理。
[0048]第五级E5:主要包括2个50位移位器即108位移位器、尾数舍入计算模块、符号检测模块、指数修正模块。
[0049]在这一级中,各指令的规格化移位都通过复用108位移位器进行规格化移位,包括双精度浮点乘加,双单精度浮点乘加,复数与点积运算,浮点加减运算。根据规格化移位量与移位后的结果尾数,利用指数修正模块得到正确的结果指数,符号检测模块能根据第四级E4的尾数加法结果进行结果符号计算。
[0050]第六级E6:主要包括舍入模块、结果例外判断模块、结果选择写回模块;舍入模块根据舍入模式的不同以及粘接位的值计算出结果尾数是否进行加I操作。结果尾数选择写回时,须先根据浮点控制寄存器中结果标志位进行判断,溢出例外处理与第四级E4中乘法结果的溢出处理方式一致,待结果尾数确定后将结果选择写回。
[0051]图2所示为本发明实施例2的浮点处理方法流程图,包括以下步骤:
[0052]步骤201:源操作数例外判断模块、指数处理模块分别获取源操作数信息进行处理;
[0053]进一步地,源操作数例外判断模块接收源操作数进行例外判断后,将FCR中相应标志位置位;
[0054]进一步地,指数处理模块接收源操作数分离出来的指数后,若为浮点乘法、乘加、复数或点积指令,则计算出乘法结果的指数并完成指数阶差的计算;
[0055]若为浮点加法指令,则计算出结果指数值和对阶移位量并将分离出的尾数值送入乘法器进行乘法运算,乘法器进行第一级压缩,获取8个sum和8个carry,将其通过2级CSA4:2压缩,得到两个单精度乘法的sum和carry。
[0056]进一步地,指数处理模块计算出阶差后,通过对阶移位器进行双精度浮点加减和双单精度浮点加减的尾数对阶移位操作。
[0057]步骤202:各个对阶移位器接收到所述指数处理模块的处理结果后,进行尾数对阶移位并将对阶移位结果输出至各个复合加法器;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1