浮点格式数据处理装置、数据处理设备及数据处理方法
技术领域
本发明实施例涉及数据处理技术,尤其涉及一种浮点格式数据处理装置、数据处理设备及数据处理方法。
背景技术
浮点数属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数,在人工智能和高性能计算领域,浮点数由于具备精度高,动态范围大的优点,被广泛的用于各类运算,浮点运算的性能对整体性能有决定性的作用。
标准浮点格式是一串0和1构成的位序列,用来表示一个实数,它由符号位,指数部分和尾数部分组成,除了常规的加减乘运算,基于浮点格式本身的操作在超越函数和一些数学计算中也较为常见。目前,浮点格式数据的运算是通过用户输入多条指令来控制实现,例如移位、位与、位或以及其组合等。上述浮点格式数据的运算不仅需要用户准确输入指令,对操作用户的能力要求高,而且存在繁琐的重复操作,执行效率低。
发明内容
本发明实施例提供浮点格式数据处理装置、数据处理设备及数据处理方法,以实现提高浮点格式数据的运算效率。
第一方面,本发明实施例提供了一种浮点格式数据处理装置,包括指令译码器、控制器、至少一个寄存器、至少一种处理器;其中,
所述指令译码器与所述控制器电连接,用于接收外部输入的浮点格式数据处理信号,并对所述浮点格式数据处理信号进行译码,得到浮点格式数据处理指令,将所述浮点格式数据处理指令发送至所述控制器;
所述控制器分别与至少一个寄存器以及至少一种处理器电连接,用于接收所述浮点格式数据处理指令,根据所述浮点格式数据处理指令生成控制信号,所述控制信号用于控制所述寄存器和需要进行运算的处理器;
所述至少一个寄存器与至少一种处理器电连接,用于对待处理的浮点数据或运算结果进行寄存;
所述至少一种处理器用于接收用于存储所述待处理的浮点数据的寄存器或上一处理器发送的数据,根据所述控制器的控制信号对接收的数据进行运算,并将运算结果传输至下一运算的处理器或用于存储运算结果的寄存器。
第二方面,本发明实施例还提供了一种数据处理设备,该数据处理设备包括本申请任意实施例提供的浮点格式数据处理装置。
第三方面,本发明实施例还提供了一种数据处理方法,包括:
接收外部输入的浮点格式数据处理信号,并对所述浮点格式数据处理指令进行译码得到浮点格式数据处理指令,其中,所述浮点格式数据处理指令中包括待处理的浮点数据所在的至少一个寄存器,存放结果的寄存器和需要进行的运算;
根据所述运算路径和所述待处理的浮点数据确定依次进行运算的处理器和各处理器的控制信号,其中,所述控制信号用于控制处理器进行运算,并将当前运算结果发送至下一运算的处理器;
当所述运算路径执行完成时,将生成的运算结果进行存储。
本发明实施例提供的技术方案,通过指令译码器识别浮点格式数据处理指令,控制器根据浮点格式数据处理确定运算顺序和各处理器的控制信号,控制对应的处理器对浮点数据进行自动运算,无需用户手动输入各个处理器的操作指令,简化了浮点数据的处理过程,提高了浮点数据的处理效率。
附图说明
图1是本发明实施例一提供的一种浮点格式数据处理装置的结构示意图;
图2是本发明实施例一中的提供的浮点格式数据的示意图;
图3是本发明实施例一提供的另一种浮点格式数据处理装置的结构示意图;
图4A是本发明实施例一提供的指数部分获取指令的执行示意图;
图4B是本发明实施例一提供的获取符号位隐藏位尾数部分指令的执行示意图;
图4C是本发明实施例一提供的指数尾数合并指令的执行示意图;
图4D是本发明实施例一提供的加偏置值后指数部分设置指令的执行示意图;
图5是本发明实施例二提供的数据处理设备的结构示意图;
图6是本发明实施例三提供的一种数据处理方法的流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种浮点格式数据处理装置的结构示意图,该浮点格式数据处理装置包括:指令译码器110、控制器120、至少一个寄存器130、至少一种处理器140;其中,
指令译码器110与控制器120电连接,用于接收外部输入的浮点格式数据处理信号,并对浮点格式数据处理信号进行译码,得到浮点格式数据处理指令,将浮点格式数据处理指令发送至控制器120;
控制器120分别与至少一个寄存器130以及至少一种处理器140电连接,用于接收浮点格式数据处理指令,根据浮点格式数据处理指令生成控制信号,控制信号用于控制寄存器130和需要进行运算的处理器140;
寄存器130与至少一种处理器140电连接,用于对待处理的浮点数据或运算结果进行寄存;
至少一种处理器140用于接收用于存储所述待处理的浮点数据的寄存器130或上一处理器发送的数据,根据控制器的控制信号对接收的数据进行运算,并将运算结果传输至下一运算的处理器或用于存储运算结果的寄存器130。
在本实施中,指令译码器110与指令输入接口连接,用于接收浮点格式数据处理信号,其中,该浮点格式数据处理信号可以是有用户通过输入设备输入的,例如输入设备可以是键盘、触控屏、语音采集设备等;浮点格式数据处理信号还可以是有其他电子器件发送的,例如,其他电子器件可以是电子设备的CPU、单片机或者其他处理器件等。该浮点格式数据处理信号可以是已编码的,指令译码器110对已编码的浮点格式数据处理信号进行译码,得到浮点格式数据处理指令,该浮点格式数据处理指令用于指示处理器对浮点数据进行处理。可选的,指令译码器110经过译码得到的浮点格式数据处理指令包括指数部分获取指令、尾数部分获取指令、指数尾数合并指令、指数部分设置指令或者附加指令。
在本实施例中,浮点格式数据包括符号位、指数部分和尾数部分,示例性的,参见图2,图2是本发明实施例一提供的浮点格式数据的示意图。在图2中该浮点格式数据为32比特单精度浮点数,其中,31比特位为符号位,23比特位至30比特位为指数部分,0比特位至22比特位为尾数部分。当浮点格式数据的指数部分非全为0时,该浮点格式数据为规约数,该浮点格式数据为其中,bi为i比特位的数值,127为偏置值,1.b22b21…b0中小数点前的1为隐藏位。在图2中,0≤i≤31,当浮点格式数据的指数部分全为0时,该浮点格式数据为非规约数,相应的,非规约数的隐藏位为0。
其中,以图2中的浮点数为例,源数据为SRC=0x3E200000(0.15625),通过执行指数部分获取指令可确定目标数据为DST=0x7C。可选的,指令译码器110中可以是存储有各浮点格式数据处理指令的标识,在对已编码的浮点格式数据处理信号进行译码之后,确定指令标识,并将指令标识发送至控制器120,以使控制器120根据指令标识对源寄存器以及处理器进行控制。其中,指令标识可以是数字、字符或者字符串等。可选的,所述指数部分获取指令用于获取所述待处理的浮点数据的指数部分;所述尾数部分获取指令用于获取所述待处理的浮点数据的尾数部分;所述指数尾数合并指令用于将第一浮点数据的指数部分与第二浮点数据的尾数部分进行合并,生成第三浮点数据;所述指数部分设置指令用于根据预设的指数部分设置所述待处理的浮点数据的指数部分。可选的,附加指令为在所述指数部分获取指令、尾数部分获取指令、指数尾数合并指令或指数部分设置指令中任一指令的操作前或后添加附加操作对应的控制信号生成,其中所述附加操作包括偏置值处理操作和隐藏位处理操作。示例性的,附加指令可以包括但不限于获取指数部分并减去偏置值指令、获取符号位隐藏位尾数部分指令以及加偏置值后指数部分设置指令。需要说明的是,附加指令可以是根据待处理的浮点数据的期望处理方式在指数部分获取指令、尾数部分获取指令、指数尾数合并指令或指数部分设置指令中任一指令的操作前或后添加对应的附加操作的控制信号,本实施例对附加指令不做限定,可根据用户需求设置。
在本实施例中,至少一个寄存器130包括源寄存器131和目标寄存器132,其中,源寄存器131用于对待处理的浮点数据进行寄存,目标寄存器132对运算结果进行寄存。其中源寄存器131和目标寄存器132的数量都可以是至少一个。其中,寄存器可以是根据存储的数据确定为源寄存器或目标寄存器,当寄存器存储待处理的浮点数据时,该寄存器为源寄存器,当寄存器存储运算结果时,该寄存器为目标寄存器。在一些实施例中,当前一浮点格式数据处理指令的运算结果作为下一浮点格式数据处理指令的待处理数据时,该存储有前一浮点格式数据处理指令的运算结果的寄存器,由目标寄存器切换为源寄存器。可选的,一个寄存器中可以是存储一个浮点数据,还可以是存储多个执行相同指令的浮点数据,示例性的,可以是同一矩阵中的多个浮点数据,例如可以是将同一矩阵中的多个浮点数据进行同步处理。
可选的,在一些实施例中,浮点格式数据处理指令可以是封装有一个或多个初始控制信号,控制器通过浮点格式数据处理指令中的浮点数据的精度确定各个初始控制信号的运算参数,生成对应处理器的控制信号,用于控制对应的处理器执行该控制信号。
可选的,在一些实施例中,控制器中存储有各浮点格式数据处理指令对应的一个或多个初始控制信号,通过浮点格式数据处理指令中的浮点数据的精度确定各个初始控制信号的运算参数,生成对应处理器的控制信号,用于控制对应的处理器执行该控制信号。
可选的,在一些实施例中,所述浮点格式数据处理指令中包括待处理的浮点数据所在的至少一个源寄存器、存放运算结果的目标寄存器和需要进行的运算路径,所述运算路径中包括依序进行的至少一个运算和用于执行每一个运算的处理器。其中,源寄存器用于对浮点数据进行寄存,可选的,在接收浮点格式数据处理信号之前,包括接收数据加载指令,该数据加载指令中包括加载的浮点数据和用于寄存浮点数据的至少一个源寄存器。执行数据加载指令将浮点数据发送至至少一个源寄存器进行寄存,根据数据加载指令生成浮点格式数据处理信号,其中,浮点格式数据处理信号中包括已寄存的浮点数据的源寄存器和浮点数据的精度。运算路径为按照执行顺序排列的运算,示例性的,指数部分获取指令的运算路径可以包括右移运算和位与运算,即在执行指数部分获取指令时,先对浮点数据进行移位,将移位得到的数据进行位与运算,将位与运算结果存储至目标寄存器。本实施例中,将指令译码器110将浮点格式数据处理指令发送至控制器120,控制器120根据浮点格式数据处理指令中的至少一个源寄存器、存放运算结果的目标寄存器和需要进行的运算路径生产对应的控制信号,该控制信号包括对源寄存器的数据发送信号、对移位器的移位控制信号、对逻辑运算器的逻辑运算控制信号、对算术运算器的加减控制信号,基于上述控制信号控制源寄存器、处理器和目标寄存器,执行浮点格式数据处理指令,完成浮点格式数据处理指令,得到浮点数据的运算结果。
本实施例中,每一种运算对应一种处理器,可选的,处理器140包括移位器141、逻辑运算器142和算术运算器143。其中,移位器141用于对浮点数据进行移位处理,可以是左移运算和右移运算,逻辑运算器142用于对浮点数据进行逻辑运算,可以是位与运算和位或运算,算术运算器143用于对浮点数据进行算术运算,可以是加运算和减运算。可选的,处理器140还包括隐藏位计算器144,用于计算隐藏位并存放到指定的位置。示例性的,参见图3,图3是本发明实施例一提供的另一种浮点格式数据处理装置的结构示意图。在图3仅是一个可实现的示例,在其他实施例中,处理器140中可以是包括至少一个移位器141、至少一个逻辑运算器142、至少一个算术运算器143和至少一个隐藏位计算器144,用于对多个浮点数据分别进行数据处理。
控制器120具体用于根据所述运算路径分别确定所述至少一个源寄存器的数据的下一运算对应的处理器,根据所述下一运算对应的处理器生成所述至少一个源寄存器的数据发送控制信号。示例性的,以指数部分获取指令为例,运算路径包括右移运算和位与运算,其中,右移运算对应的处理器为移位器,位与运算对应的处理器为逻辑运算器,浮点数据寄存在一个源寄存器中,该浮点数据的下一运算对应的处理器为移位器,相应的,确定源寄存器中浮点数据的目标处理器为移位器,可生成源寄存器的浮点数据发送控制信号,该数据发送控制信号中数据的目标处理器为移位器。
控制器120还用于根据待处理的浮点数据精度确定每一个运算的运算参数,并根据所述运算路径和所述每一个运算的运算参数生成对应处理器的控制信号,其中,所述浮点格式数据处理指令中还包括待处理的浮点数据精度。本实施例中,控制器根据浮点格式数据处理指令生成各个处理器的控制信号,该控制信号中包括运算类型和运算参数,示例性的,对于移位器的控制信号可以是包括移位类型(左移或右移)和移位参数(移动的位数)。其中,根据运算路径可直接确定每一个运算的运算类型,并在确定运行类型的基础上,根据浮点数据精度和运算类型确定运算参数,浮点数据精度可以包括但不限于半精度、单精度和双精度,以单精度浮点数据为例,在执行指数部分获取指令过程中,为了得到指数部分需要将浮点数据进行右移,其中右移位数为尾数部分的比特位数,即23位,因此可知右移运算的运算参数为23。本实施例中,根据运算类型和运算参数,生成每一个需要进行运算的处理器的控制信号,控制器120将控制信号发送至对应的处理器,每一个处理器在接收到浮点数据时,执行控制信号,并将执行控制信号得到的运算结果发送至下一处理器。
示例性的,参见图4A,图4A是本发明实施例一提供的指数部分获取指令的执行示意图,在图4A中,指令译码器110通过译码得到指数部分获取指令,将指数部分获取指令发送至控制器120,控制器120根据指数部分获取指令确定运算路径、寄存浮点数据的源寄存器和目标寄存器,其中,运算路径包括右移运算和位与运算,基于运算路径和浮点数据精度生成源寄存器131的数据发送控制信号、移位器141的右移控制信号和逻辑运算器142的位与控制信号,将上述控制信号发送至源寄存器131、移位器141和逻辑运算器142,基于上述处理器依次执行接收的控制信号,逻辑运算器142将运算结果发送至目标寄存器132,完成指数部分获取指令。参见图4B,图4B是本发明实施例一提供的获取符号位隐藏位尾数部分指令的执行示意图,在图4B中指令译码器110通过译码得到获取符号位隐藏位尾数部分指令,将获取符号位隐藏位尾数部分指令发送至控制器120,控制器120根据获取符号位隐藏位尾数部分指令确定运算路径、寄存浮点数据的源寄存器和目标寄存器,其中,运算路径包括隐藏位运算、位与运算和位或运算,基于运算路径和浮点数据精度生成源寄存器131的数据发送控制信号、隐藏位计算器144的隐藏位计算控制信号和逻辑运算器142的位与控制信号和位或控制信号,基于上述处理器依次执行接收的控制信号,逻辑运算器142将运算结果发送至目标寄存器132,完成获取符号位隐藏位尾数部分指令。示例性的,参见图4C,图4C是本发明实施例一提供的指数尾数合并指令的执行示意图,图4C中指令译码器110通过译码得到指数尾数合并指令,将指数尾数合并指令发送至控制器120,控制器120根据指数尾数合并指令确定运算路径、寄存浮点数据的源寄存器和目标寄存器,其中,运算路径包括位与运算、位与运算和位或运算,基于运算路径和浮点数据精度生成源寄存器131的数据发送控制信号、逻辑运算器142的位与控制信号、位与控制信号和位或控制信号,基于上述处理器依次执行接收的控制信号,逻辑运算器142将运算结果发送至目标寄存器132,完成指数尾数合并指令。示例性的,参见图4D,图4D是本发明实施例一提供的加偏置值后指数部分设置指令的执行示意图,图4D中指令译码器110通过译码得到加偏置值后指数部分设置指令,将加偏置值后指数部分设置指令发送至控制器120,控制器120根据加偏置值后指数部分设置指令确定运算路径、寄存浮点数据的源寄存器和目标寄存器,其中,运算路径包括加运算、左移运算,基于运算路径和浮点数据精度生成源寄存器131的数据发送控制信号、算术运算器143加偏置值控制信号和移位器141的左移控制信号,基于上述处理器依次执行接收的控制信号,移位器141将运算结果发送至目标寄存器132,完成加偏置值后指数部分设置指令。需要说明的是,图4A-图4D中控制器120生成的控制信号是以浮点数据为单精度为例,在其他实施例中,当浮点数据精度变化时,控制信号相应变化。
本实施例中的浮点格式数据处理装置还可以是对浮点格式数据完成但不限于如下处理:归一化、求指数值、指数值尾数合并构造新的浮点数据、非规约形式浮点数据转规约形式浮点数据、有限数值的判断、浮点数据转整型数据以及整型数据转浮点数据。其中,上述处理可以是通过一个或一个以上的浮点格式数据处理指令组合完成。示例性的,对于归一化处理,将浮点数据X归一化至[0.5,1),则将0.5加载至源寄存器1,将浮点数据X加载至源寄存器2,执行指数尾数合并指令,得到归一化后的浮点数据;对于指数值尾数合并构造新的浮点数,即将指数值n和浮点数据x的尾数合并成浮点数y,具体可以是将指数值n加载到源寄存器,执行加偏置值后指数部分设置指令,将目标寄存器视作源寄存器1,把浮点数据x加载到源寄存器2,执行指数尾数合并指令,得到新的浮点数。
在本实施例中,可以是获取浮点数据的期望处理方式,其中,期望处理方式中包括处理类型和处理参数,根据处理类型和处理参数生成浮点格式数据处理信号,发送至浮点格式数据处理装置,得到处理结果,其中,浮点格式数据处理信号可以是预先设置好的,根据处理类型和处理参数确定浮点格式数据处理信号的组合方式。
本实施例提供的浮点格式数据处理装置,通过指令译码器识别浮点格式数据处理指令,控制器根据浮点格式数据处理确定运算顺序和各处理器的控制信号,控制对应的处理器对浮点数据进行自动运算,无需用户手动输入各个处理器的操作指令,简化了浮点数据的处理过程,提高了浮点数据的处理效率。
实施例二
图5是本发明实施例二提供的数据处理设备的结构示意图,该数据处理设备500包括上述实施例提供的浮点格式数据处理装置100,示例性的,该数据处理设备可以是手机、平板电脑、计算机、服务器。本实施例中的数据处理设备通过配置浮点格式数据处理装置,通过输入浮点格式数据处理信号对浮点数据进行快速处理,无需人工控制数据处理的每一个运算步骤,简化了浮点数据的处理过程,提高了浮点数据的处理效率。
实施例三
图6是本发明实施例三提供的一种数据处理方法的流程示意图,该数据处理方法适用于对浮点格式数据进行快速处理的情况,由本发明实施例提供的浮点格式数据处理装置执行。具体包括:
S610、接收外部输入的浮点格式数据处理信号,并对所述浮点格式数据处理指令进行译码得到浮点格式数据处理指令,其中,所述浮点格式数据处理指令中包括待处理的浮点数据所在的至少一个寄存器,存放结果的寄存器和运算路径。
S620、根据所述运算路径和所述待处理的浮点数据确定依次进行运算的处理器和各处理器的控制信号,其中,所述控制信号用于控制处理器进行运算,并将当前运算结果发送至下一运算的处理器。
S630、当所述运算路径执行完成时,将生成的运算结果进行存储。
在本实施例中,寄存器包括源寄存器和目标寄存器,浮点格式数据处理装置接收数据加载指令,将待处理的浮点数据加载至至少一个源寄存器,接收输入设备采集或者其他处理器发送的浮点格式数据处理信号,经译码得到浮点格式数据处理指令,确定对待处理的浮点数据进行的一个或多个运算、运算顺序以及运算对应的处理器。生成各处理器的控制信号,将控制信号分别发送至对应的处理器,控制处理器对浮点数进行处理,以完成浮点格式数据处理指令,得到运算结果。在本实施例中,浮点格式数据处理装置可准确控制处理器对浮点数据进行相应的处理,无需用户依次编辑处理器的控制信号,减少了用户的手动操作,简化了浮点数据的处理过程,提高了浮点数据的处理效率。
可选的,所述运算路径中包括依序进行的至少一个运算和用于执行每一个运算的处理器,相应的,根据所述运算路径和所述待处理的浮点数据确定依次进行运算的处理器和各处理器的控制信号,包括:根据所述待处理的浮点数据和/或所述浮点数据的数据精度确定每一个运算的运算参数;根据所述每一个运算的运算参数生成对应处理器的控制信号。其中,可以是根据数据加载指令中的待处理浮点数据确定待处理的浮点数据精度,根据浮点数据精度可确定各个控制信号中的运算参数,精确控制每一个处理器,以得到准确的运算结果。
可选的,处理器包括移位器、逻辑运算器、算术运算器和隐藏位计算器。
可选的,所述浮点格式数据处理指令包括指数部分获取指令、尾数部分获取指令、指数尾数合并指令、指数部分设置指令和基于上述指令形成的附加指令。附加指令为在所述指数部分获取指令、尾数部分获取指令、指数尾数合并指令或指数部分设置指令中任一指令的操作前或后添加附加操作对应的控制信号生成,其中所述附加操作包括偏置值处理操作和隐藏位处理操作。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。