单精度浮点运算装置制造方法及图纸

技术编号:38141069 阅读:15 留言:0更新日期:2023-07-08 09:55
本发明专利技术提供一种单精度浮点运算装置,涉及浮点运算技术领域,包括:控制器,用于确定向至少一个处理单元输入的输入信息,其中,输入信息包括输入数据和操作指令;处理单元组,包括多个处理单元,每个处理单元用于根据操作指令对输入数据进行浮点运算,得到结果数据;其中,输入数据包括第一数据和第二数据;分别确定第一数据与第二数据的符号位、阶码位和尾数位;根据第一数据与第二数据的符号位、阶码位和尾数位,得到中间数据的符号位、阶码位和尾数位;对中间数据的符号位、阶码位和尾数位中的至少一个进行规格化处理并组合,得到结果数据。本发明专利技术的装置解决了浮点运算精度低,执行指令周期长的技术问题,用于粗粒度可重构阵列的浮点运算。运算。运算。

【技术实现步骤摘要】
单精度浮点运算装置


[0001]本专利技术涉及浮点运算
,尤其涉及一种单精度浮点运算装置。

技术介绍

[0002]粗粒度可重构阵列系统与专用集成电路芯片架构相比,具有更高的灵活性,粗粒度可重构系统包含类似算术逻辑运算元(ALU)的逻辑模块和数据通路类型的互连结构,同时具有一定的可编程能力,可以针对特定应用计算需求进行配置,与FPGA相比,具有更高的运算速度和能量效率。
[0003]然而,在大部分现有的粗粒度可重构处理器(CGRA)中,只支持加速一些整数密集的应用,而且往往采用以定点代替浮点或嵌入专用的浮点计算单元的方式来处理应用中的浮点运算,从而导致在加速一些精度比较高的计算任务时精度不够,造成系统面积与功耗的增加。
[0004]另外,由于CGRA采用的是一种数据流驱动的计算模式,即根据计算任务的不同,每次需要重新配置,并且当前设计的CGRA计算架构不支持访存指令,因此,对于计算任务中条件判断比较多的情况,一般按分支指令同时运行,然后再对运算结果进行筛选,因而每一条分支都需要额外的硬件和指令周期,极大地增加了浮点运算的指令周期。相关技术中,CGRA浮点的浮点运算指令周期过于长,完成一条浮点乘法指令需要1000多个周期,就算加入了流水线技术平均到完成每个浮点运算也需要100多个周期,相比较于简单的整数指令一条周期就能完成的情况下,这显然不太合理。

技术实现思路

[0005](一)要解决的技术问题
[0006]针对现有的技术问题,本专利技术提供一种单精度浮点运算装置,用于至少部分解决以上技术问题。
[0007](二)技术方案
[0008]本专利技术提供一种单精度浮点运算装置,包括:控制器,用于确定向至少一个处理单元输入的输入信息,其中,输入信息包括输入数据和操作指令;处理单元组,包括多个处理单元,每个处理单元用于根据操作指令对输入数据进行浮点运算,得到结果数据;其中,输入数据包括第一数据和第二数据;分别确定第一数据与第二数据的符号位、阶码位和尾数位;根据第一数据与第二数据的符号位、阶码位和尾数位,得到中间数据的符号位、阶码位和尾数位;对中间数据的符号位、阶码位和尾数位中的至少一个进行规格化处理并组合,得到结果数据。
[0009]可选地,处理单元用于根据操作指令对输入数据进行浮点乘法运算,得到第一结果数据;其中,根据操作指令对输入数据进行浮点乘法运算包括:对第一数据的符号位与第二数据的符号位进行按位异或运算,确定第一中间数据的符号位;对第一数据的阶码位与第二数据的阶码位进行加运算,确定第一中间数据的阶码位;对第一数据的尾数位与第二
数据的尾数位进行相乘运算,确定第一中间数据的尾数位;以及对第一中间数据的符号位、阶码位和尾数位进行组合以及规格化处理,得到第一结果数据。
[0010]可选地,对第一数据的尾数位与第二数据的尾数位进行相乘运算,确定第一中间数据的尾数位包括:确定第一数据的高16位尾数与低8位尾数,以及确定第二数据的高16位尾数与低8位尾数;采用乘法分配律对第一数据的高16位尾数与低8位尾数,以及第二数据的高16位尾数与低8位尾数进行相乘运算,得到第一中间数据的高32位尾数和16位精度。
[0011]可选地,操作指令包括乘法指令,乘法指令用于实现对第一中间数据的符号位、阶码位和尾数位进行规格化处理;单精度浮点运算装置还包括:乘法规格化模块,用于产生乘法指令;其中,对第一中间数据的符号位、阶码位和尾数位进行组合以及规格化处理,得到第一结果数据包括:根据16位精度对第一中间数据的高32位尾数进行舍入处理,得到舍入处理结果;根据第一中间数据的高32位尾数的最高位与舍入处理结果对第一中间数据的阶码位进行调整,得到调整结果;对调整结果进行溢出处理,得到调整后的阶码位;根据舍入处理结果对第一中间数据的高32位尾数进行调整,得到调整后的尾数位;对调整后的阶码位、第一中间数据的符号位以及调整后的尾数位进行组合,得到第一结果数据。
[0012]可选地,处理单元还用于根据操作指令对输入数据进行浮点加法运算,得到第二结果数据;其中,根据操作指令对输入数据进行浮点加法运算包括:对第一数据的阶码位与第二数据的阶码位进行对齐,以确定第一数据的尾数位与第二数据的尾数位的移位位数;根据移位位数,对第一数据的尾数位与第二数据的尾数位进行移位并相加,得到第二中间数据;对第二中间数据进行规格化处理,得到规格化的尾数位以及规格化的阶码位;比较移位之后的第一数据的尾数位与第二数据的尾数位的大小,确定第二中间数据的符号位;以及对第二中间数据的符号位、规格化的阶码位和规格化的尾数位进行组合,得到第二结果数据。
[0013]可选地,根据移位位数,对第一数据的尾数位与第二数据的尾数位进行移位并相加包括:采用补码运算方法对第一数据的尾数位与第二数据的尾数位进行移位并相加;其中,在输入数据的尾数位的移位位数不为0的情况下,对输入数据的尾数位进行取反加1;在输入数据的尾数位的移位位数为0的情况下,对输入数据的尾数位不进行取反加1。
[0014]可选地,操作指令还包括加法指令,加法指令用于实现对第二中间数据进行规格化处理;单精度浮点运算装置还包括:加法规格化模块,用于产生加法指令;其中,对第二中间数据进行规格化处理包括:对第二中间数据进行逐次二等分,确定第二中间数据中的第一个1的位置;根据第二中间数据中的第一个1的位置,对第二中间数据进行移位,得到规格化的尾数位和规格化的阶码位。
[0015]可选地,多个处理单元形成可重构阵列。
[0016]可选地,单精度浮点运算装置还包括:输入总线,用于向至少一个处理单元输入输入数据;配置总线,用于向至少一个处理单元输入操作指令;输出总线,用于供至少一个处理单元输出结果数据。
[0017](三)有益效果
[0018]与现有技术相比,本专利技术提供的单精度浮点运算装置,至少具有以下有益效果:
[0019](1)本专利技术的单精度浮点运算装置,通过将输入数据的符号位、阶码位和尾数位拆开,分别进行运算得到中间数据的符号位、阶码位和尾数位,然后再根据IEEE754的要求对
中间数据进行规格化处理,并组合得到结果数据,实现了在通用CGRA架构上完成IEEE754标准的单精度浮点运算,且精度与C语言编译器一致。
[0020](2)本专利技术分别针对浮点乘法和浮点加法设计了规格化操作指令,将一部分涉及分支判断比较密集的指令统一在规格化操作中,大大降低了浮点运算的指令周期。
附图说明
[0021]通过以下参照附图对本专利技术实施例的描述,本专利技术的上述以及其他目的、特征和优点将更为清楚,在附图中:
[0022]图1示意性示出了根据本专利技术实施例的单精度浮点运算装置的结构图;
[0023]图2示意性示出了根据本专利技术实施例的浮点乘法数据流图;
[0024]图3示意性示出了根据本专利技术实施例的浮点乘法规格化的电路图;
[0025]图4示意性示出了根据本专利技术实施例的浮点加法数据流图;
[0026]图5本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种单精度浮点运算装置,其特征在于,包括:控制器,用于确定向至少一个处理单元输入的输入信息,其中,所述输入信息包括输入数据和操作指令;处理单元组,包括多个所述处理单元,每个所述处理单元用于根据所述操作指令对所述输入数据进行浮点运算,得到结果数据;其中,所述输入数据包括第一数据和第二数据;分别确定所述第一数据与所述第二数据的符号位、阶码位和尾数位;根据所述第一数据与所述第二数据的符号位、阶码位和尾数位,得到中间数据的符号位、阶码位和尾数位;对所述中间数据的符号位、阶码位和尾数位中的至少一个进行规格化处理并组合,得到所述结果数据。2.根据权利要求1所述的装置,其特征在于,所述处理单元用于根据所述操作指令对所述输入数据进行浮点乘法运算,得到第一结果数据;其中,所述根据所述操作指令对所述输入数据进行浮点乘法运算包括:对所述第一数据的符号位与所述第二数据的符号位进行按位异或运算,确定第一中间数据的符号位;对所述第一数据的阶码位与所述第二数据的阶码位进行加运算,确定所述第一中间数据的阶码位;对所述第一数据的尾数位与所述第二数据的尾数位进行相乘运算,确定所述第一中间数据的尾数位;以及对所述第一中间数据的符号位、阶码位和尾数位进行组合以及规格化处理,得到所述第一结果数据。3.根据权利要求2所述的装置,其特征在于,所述对所述第一数据的尾数位与所述第二数据的尾数位进行相乘运算,确定所述第一中间数据的尾数位包括:确定所述第一数据的高16位尾数与低8位尾数,以及确定所述第二数据的高16位尾数与低8位尾数;采用乘法分配律对所述第一数据的高16位尾数与低8位尾数,以及所述第二数据的高16位尾数与低8位尾数进行相乘运算,得到所述第一中间数据的高32位尾数和16位精度。4.根据权利要求3所述的装置,其特征在于,所述操作指令包括乘法指令,所述乘法指令用于实现对所述第一中间数据的符号位、阶码位和尾数位进行规格化处理;所述单精度浮点运算装置还包括:乘法规格化模块,用于产生所述乘法指令;其中,所述对所述第一中间数据的符号位、阶码位和尾数位进行组合以及规格化处理,得到所述第一结果数据包括:根据所述16位精度对所述第一中间数据的高32位尾数进行舍入处理,得到舍入处理结果;根据所述第一中间数据的高32位尾数的最高位与所述舍入处理结果对所述第一中间数据的阶码位进行调整,得到调整结果;对所述调整结果进行溢...

【专利技术属性】
技术研发人员:陈松段飞祥游宇航倪小兵康一
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

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

1