发明内容
本发明的基于矢量运算的浮点运算装置,提出一种新的硬件结构,采用协处理器的方式,在保证浮点所有运算的基础上,提高了浮点的运算速度及降低了设计的复杂度。
本发明的基于矢量运算的浮点运算装置,如图2所示,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,矢量处理器与矢量浮点协处理器之间的总线接口可以采用通用的协处理器总线结构。
其中,矢量处理器,用于执行指令代码中的矢量处理指令,解析指令代码并执行相应的运算,矢量处理器还用于把不能执行的矢量浮点协处理器指令通过矢量浮点协处理器接口总线传送给矢量浮点协处理器。
存储器,用于存储矢量处理器的指令代码及执行指令代码所需的数据。
矢量浮点协处理器,用于执行指令代码中的矢量浮点协处理指令,解析指令代码并执行相应的矢量浮点运算。
矢量浮点协处理器存储器,用于在本地存储作为与被加载的数据字组合在一起而加以使用操作数的数据字。这种方案是考虑到许多现实中的计算情况。本特性通过在本地存储频繁需要的数据字而将其拓展,从而使得在矢量处理器和矢量浮点协处理之间所需要的数据通道容量被有益的减少。
所述的矢量处理器包括指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、矢量寄存器组;
所述的矢量浮点协处理器,如图3所示,包括矢量浮点协处理器接口、指令队列和分发单元、矢量数据处理单元、矢量浮点寄存器组及转发单元,其中:
矢量浮点协处理器接口,用于把矢量处理器与矢量浮点协处理器连接起来,本接口可以采用局部总线协议,如AMBA(高级微控制器总线结构)总线、APU(高级外设总线)总线等。
指令队列和分发单元,用于将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;
矢量数据处理单元,用于执行矢量浮点的各种运算,由矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元,矢量浮点三角函数处理单元组成。
矢量浮点加减法处理单元,该单元用来执行浮点的加减法运算;
矢量浮点乘法处理单元,该单元用来执行浮点的乘法运算;
矢量浮点除法处理单元,该单元用来执行浮点的除法运算;
矢量浮点三角函数单元,该单元用于执行浮点的三角函数运算;
矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,···VRSn,用于存放来自矢量浮点加减法处理单元、矢量浮点乘法处理单元、矢量浮点除法处理单元、矢量浮点三角函数单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中;
下面详细介绍每个单元的具体功能:
所述指令队列和分发单元,其中,所述指令队列接收矢量处理器送来的指令代码,所述分发单元把指令代码分发给所有的执行单元。
所述指令代码包括:
把矢量寄存器中的数据传送到矢量浮点寄存器中;
把矢量浮点寄存器中的数据加载到矢量浮点协处理器中;
把矢量浮点寄存器中的数据传送到矢量寄存器中;
矢量浮点的加减法指令;
矢量浮点的减法指令;
矢量浮点的乘法指令;
矢量浮点的除法指令;
矢量浮点的三角函数指令;
所述矢量浮点加减法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,如矢量浮点的加法和减法指令,读取矢量浮点加减法指令,然后分发给所述矢量浮点加减法处理单元;所述矢量浮点加减法处理单元根据所述矢量浮点加或减指令将矢量浮点寄存器组中源的寄存器的内容相加减,结果存入目的寄存器中,所述矢量浮点寄存器组源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点乘法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点乘法指令,然后分发给所述矢量浮点乘法处理单元;所述矢量浮点乘法处理单元根据所述矢量浮点乘法指令将矢量寄存器组中源的寄存器的内容相乘,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点除法处理单元,指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点除法指令,然后分发给所述矢量浮点除法处理单元;所述矢量浮点除法处理单元根据所述矢量浮点除法指令将矢量寄存器组中源的寄存器的内容相除,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点三角函数单元,指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点三角指令,然后分发给所述矢量浮点三角函数处理单元;所述矢量浮点三角函数处理单元根据所述矢量浮点三角函数指令将矢量寄存器组中源的寄存器的内容做三角运算,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,···VRSn,用于存放来自矢量数据处理单元的运算数据及运算结果数据,其转发单元则从矢量寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中;矢量浮点寄存器组的内容可以通过矢量寄存器转发,或者通过矢量浮点寄存器加载。在转发时,矢量浮点寄存器组的内容可以通过特定指令,把矢量浮点寄存器中的数据传送到矢量处理器的矢量寄存器中,或者存入矢量浮点寄存器中。
本发明另外提供一种基于矢量运算的浮点运算方法,以256BIT的矢量宽度为例,如图4,包括以下步骤:
步骤一、完成矢量寄存器到矢量浮点协处理器的数据传送
通过矢量寄存器到矢量浮点协处理器的数据传送指令,把要执行操作的矢量数据传送到矢量浮点协处理器的矢量浮点寄存器中;
步骤二、把浮点运算指令传送到矢量浮点协处理器中
矢量处理器不能执行的指令,通过协处理器总线传送到矢量浮点协处理器的指令队列和分发单元。所述指令队列和分发单元对指令代码进行解析,分发给所述矢量浮点协处理的矢量数据处理单元。所述矢量浮点协处理器的矢量数据处理单元根据所述浮点运算指令完成相应的操作。其中包括矢量浮点和的加减法操作,矢量浮点的乘法操作,矢量浮点的除法的操作,矢量浮点的三角函数操作等,结果存入矢量浮点寄存器中,所述矢量浮点寄存器的指定是由所述浮点运算指令中的目的寄存器决定的。
步骤三、把矢量浮点协处理器的矢量浮点寄存器的数据传送给矢量处理器的矢量寄存器中
通过矢量浮点协处理器的矢量浮点寄存器传送到矢量寄存器的指令,把矢量浮点协处理器的矢量浮点寄存器的数据传输到矢量寄存器中。
步骤四、把矢量处理器的矢量寄存器中的数据存入存储器中。
其中,所述的步骤一包括:
A) 在矢量处理器中,从存储器把参与运算的矢量数据A加载到矢量寄存器VR0中;
B) 在矢量处理器中,把参与运算的矢量数据B加载到矢量寄存器VR1中;
C) 完成矢量寄存器到矢量浮点协处理器的数据传送;
所述的步骤二包括:
A) 把加、减、乘、除、三角函数操作矢量浮点运算指令传送到矢量浮点协处理器中的指令队列和分发单元;
B) 所述矢量浮点处理单元根据浮点运算指令完成矢量浮点的加、减、乘、除、三角函数运算,256BIT的矢量浮点寄存器,可以看作为8个32位标量寄存器,结果存入目的寄存器即矢量浮点协处理器的矢量浮点寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮点运算指令中的目的寄存器决定的;
矢量浮点运算单元根据其内部的单元完成矢量浮点加、减、乘、除、三角函数运算。两浮点数相乘,其乘积的阶码应为相乘两数的阶码之和,其乘积的尾数应为两相乘两数的尾数之积;即:
1.阶码相加,阶码补码相加;
2.尾数相乘,若VRS0,VRS1寄存器的尾数值不为0,则对其尾数相乘;
3.尾数结果规格化。
具体实施方式
本发明提供一种基于矢量运算的浮点运算装置,如图2所示,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器。该装置通过协处理器总线把矢量处理器与矢量浮点协处理器连接起来。
所述的矢量浮点协处理器存储器,用于在本地存储作为与被加载的数据字组合在一起而加以使用操作数的数据字。这种方案是考虑到许多现实中的计算情况。本特性通过在本地存储频繁需要的数据字而将其拓展,从而使得在矢量处理器和矢量浮点协处理之间所需要的数据通道容量被有益的减少。
所述的矢量处理器包括指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、矢量寄存器组;
所述的矢量浮点协处理器,如图3所示,包括矢量浮点协处理器接口、指令队列和分发单元、矢量数据处理单元、矢量浮点寄存器组及转发单元,其中
矢量浮点协处理器接口,用于把矢量处理器与矢量浮点协处理器连接起来,本接口可以采用局部总线协议,如AMBA总线,APU总线等。
指令队列和分发单元,该单元将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;
矢量浮点加减法处理单元,该单元用来执行浮点的加减法运算;
矢量浮点乘法处理单元,该单元用来执行浮点的乘法运算;
矢量浮点除法处理单元,该单元用来执行浮点的除法运算;
矢量浮点三角函数单元,该单元用于执行浮点的三角函数运算;
矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元组成矢量数据处理单元。
矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,···VRSn,用于存放来自矢量数据处理单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器中;
当然在本发明的矢量浮点运算装置中还可以加入其他的浮点协处理器等,如滤波协处理器等。该装置设计的数据位宽可以是64bit,128bit,256bit,512bit,1024bit,2048bit,4096bit等。
基于矢量处理器与矢量浮点协处理器之间的连接有很多种方案,本发明基于矢量运算的浮点运算装置,着重讲解矢量浮点协处理器,矢量处理器与矢量浮点协处理器之间的连接不在本发明之列,但为了大家容易理解,本发明给出其中的2种连接方案,如图2,图6所示。
本发明提供的基于矢量运算的浮点运算装置,以浮点乘法、矢量宽度为256BIT为例,具体实施步骤如图5所示:
步骤一、完成矢量寄存器到矢量浮点协处理器的数据传送
A) 在矢量处理器中,从存储器把参与运算的矢量数据A加载到矢量寄存器VR0中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元,加载到源矢量寄存器组VR0中,所述源的寄存器指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
B) 在矢量处理器中,把参与运算的矢量数据B加载到矢量寄存器VR1中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元加载到源的矢量寄存器组中,所述源的寄存器的指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
C) 完成矢量寄存器到矢量浮点协处理器的数据传送
通过矢量寄存器到矢量浮点协处理器的数据传送指令,分别把矢量处理器中矢量寄存器VR0,VR1中的数据传送到矢量浮点协处理器的矢量浮点寄存器VRS0,VRS1中。
步骤二、把浮点运算指令传送到矢量浮点协处理器中
A) 把矢量浮点乘法指令传送到矢量浮点协处理器中的指令队列和分发单元
矢量处理器不能执行矢量浮点运算指令,通过数据总线传送到矢量浮点协处理器的指令队列及分发单元。所述指令队列及分发单元对指令代码进行解析,分发给所述矢量浮点乘法处理单元;
B) 所述矢量浮点乘法处理单元根据所述浮点运算指令完成矢量浮点的乘法运算,256BIT的矢量浮点寄存器,可以看作为8个32位标量寄存器,结果存入目的寄存器即矢量浮点协处理器的矢量浮点寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮点运算指令中的目的寄存器决定的。
矢量浮点乘法运算单元根据其内部的单元完成矢量浮点乘法运算。两浮点数相乘,其乘积的阶码应为相乘两数的阶码之和,其乘积的尾数应为两相乘两数的尾数之积。即:
1.阶码相加,阶码补码相加;
2.尾数相乘,若VRS0,VRS1寄存器的尾数值不为0,则对其尾数相乘;
3.尾数结果规格化。
步骤三、把矢量浮点协处理器的矢量浮点寄存器的数据传送到矢量处理器的矢量寄存器中。
通过矢量浮点协处理器的矢量浮点寄存器传送到矢量处理器的矢量寄存器指令,把矢量浮点协处理的矢量浮点寄存器VRS2的内容传送到到矢量处理器的矢量寄存器VR2中。
步骤四、把矢量处理器的矢量寄存器中的数据存入存储器中。
以矢量浮点寄存器为256BIT为例,所述矢量浮点乘法的运算中可以看出,一次可以完成8个32位浮点乘法运算,4个双精度浮点乘法运算。同时在执行矢量浮点乘法运算中,还可以执行其他的矢量浮点运算,即浮点运算可以并行处理,这种矢量浮点单元协处理器的架构为浮点的并行运算及浮点运算指令的并行运算提供的基础。
以浮点加法、矢量宽度为256BIT为例,具体实施步骤如图7所示:
步骤一、完成矢量寄存器到矢量浮点协处理器的数据传送
A) 在矢量处理器中,从存储器把参与运算的矢量数据A加载到矢量寄存器VR0中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元,加载到源的矢量寄存器组VR0中,所述源的寄存器指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
B) 在矢量处理器中,把参与运算的矢量数据B加载到矢量寄存器VR1中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元加载到源的矢量寄存器组中,所述源的寄存器的指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
C) 完成矢量寄存器到矢量浮点协处理器的数据传送
通过矢量寄存器到矢量浮点协处理器的数据传送指令,分别把矢量处理器中矢量寄存器VR0,VR1中的数据传送到矢量浮点协处理器的矢量浮点寄存器VRS0,VRS1中。
步骤二、把浮点运算指令传送到矢量浮点协处理器中
A) 把矢量浮点加法指令传送到矢量浮点协处理器中的指令队列和分发单元
矢量处理器不能执行矢量浮点运算指令,通过数据总线传送到矢量浮点协处理器的指令队列及分发单元。所述指令队列及分发单元对指令代码进行解析,分发给所述矢量浮点加法处理单元;
B) 所述矢量浮点加法处理单元根据所述浮点运算指令完成矢量浮点的加法运算,256BIT的矢量浮点寄存器,可以看作为8个32位标量寄存器,结果存入目的寄存器即矢量浮点协处理器的矢量浮点寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮点运算指令中的目的寄存器决定的。
矢量浮点加法运算单元根据其内部的单元完成矢量浮点加法运算。两浮点数相加,
1、0操作数的检查判断两个操作数中是否有一个为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省时间。
2、比较阶码大小并完成对阶
3、尾数求和运算
4、结果规格化
步骤三、把矢量浮点协处理器的矢量浮点寄存器的数据传送到矢量处理器的矢量寄存器中。
通过矢量浮点协处理器的矢量浮点寄存器传送到矢量处理器的矢量寄存器指令,把矢量浮点协处理的矢量浮点寄存器VRS2的内容传送到到矢量处理器的矢量寄存器VR2中。
步骤四、把矢量处理器的矢量寄存器中的数据存入存储器中。
以浮点减法、矢量宽度为256BIT为例,具体实施步骤如图8所示:
步骤一、完成矢量寄存器到矢量浮点协处理器的数据传送
A) 在矢量处理器中,从存储器把参与运算的矢量数据A加载到矢量寄存器VR0中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元,加载到源的矢量寄存器组VR0中,所述源的寄存器指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
B) 在矢量处理器中,把参与运算的矢量数据B加载到矢量寄存器VR1中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元加载到源矢量寄存器组中,所述源寄存器的指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
C) 完成矢量寄存器到矢量浮点协处理器的数据传送
通过矢量寄存器到矢量浮点协处理器的数据传送指令,分别把矢量处理器中矢量寄存器VR0,VR1中的数据传送到矢量浮点协处理器的矢量浮点寄存器VRS0,VRS1中。
步骤二、把浮点运算指令传送到矢量浮点协处理器中
A) 把矢量浮点减法指令传送到矢量浮点协处理器中的指令队列和分发单元
矢量处理器不能执行矢量浮点运算指令,通过数据总线传送到矢量浮点协处理器的指令队列及分发单元。所述指令队列及分发单元对指令代码进行解析,分发给所述矢量浮点减法处理单元;
B) 所述矢量浮点减法处理单元根据所述浮点运算指令完成矢量浮点的减法运算,256BIT的矢量浮点寄存器,可以看作为8个32位标量寄存器,结果存入目的寄存器即矢量浮点协处理器的矢量浮点寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮点运算指令中的目的寄存器决定的。
矢量浮点加法运算单元根据其内部的单元完成矢量浮点减法运算。两浮点数相减,
1、0操作数的检查判断两个操作数中是否有一个为0,即可得知运算结果而没有必要再进行后续的一系列操作以节省时间。
2、比较阶码大小并完成对阶
3、尾数求减运算
4、结果规格化
步骤三、把矢量浮点协处理器的矢量浮点寄存器的数据传送到矢量处理器的矢量寄存器中。
通过矢量浮点协处理器的矢量浮点寄存器传送到矢量处理器的矢量寄存器指令,把矢量浮点协处理的矢量浮点寄存器VRS2的内容传送到到矢量处理器的矢量寄存器VR2中。
步骤四、把矢量处理器的矢量寄存器中的数据存入存储器中。
以浮点除法、矢量宽度为256BIT为例,具体实施步骤如图9所示:
步骤一、完成矢量寄存器到矢量浮点协处理器的数据传送
A) 在矢量处理器中,从存储器把参与运算的矢量数据A加载到矢量寄存器VR0中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元,加载到源的矢量寄存器组VR0中,所述源的寄存器指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
B) 在矢量处理器中,把参与运算的矢量数据B加载到矢量寄存器VR1中,矢量寄存器都是256BIT;
指令队列和分发单元从所述矢量处理器的矢量寄存器中读取矢量加载指令,然后分发给所述矢量数据处理单元,所述矢量数据处理单元根据所述矢量加载指令执行矢量加载操作;即所述矢量数据处理单元根据所述矢量加载指令将待加载数据队列从所述矢量处理器的数据存储单元加载到源矢量寄存器组中,所述源寄存器的指定是由所述矢量加载存储指令决定的,所述矢量数据处理单元存储参与运算的数据,可以通过加载及存储指令把数据处理单元的数据加载到矢量寄存器组当中;
C) 完成矢量寄存器到矢量浮点协处理器的数据传送
通过矢量寄存器到矢量浮点协处理器的数据传送指令,分别把矢量处理器中矢量寄存器VR0,VR1中的数据传送到矢量浮点协处理器的矢量浮点寄存器VRS0,VRS1中。
步骤二、把浮点运算指令传送到矢量浮点协处理器中
A) 把矢量浮点减法指令传送到矢量浮点协处理器中的指令队列和分发单元
矢量处理器不能执行矢量浮点运算指令,通过数据总线传送到矢量浮点协处理器的指令队列及分发单元。所述指令队列及分发单元对指令代码进行解析,分发给所述矢量浮点除法处理单元;
B) 所述矢量浮点除法处理单元根据所述浮点运算指令完成矢量浮点的除法运算,256BIT的矢量浮点寄存器,可以看作为8个32位标量寄存器,结果存入目的寄存器即矢量浮点协处理器的矢量浮点寄存器VRS2中,所述目的寄存器的指定是由所述矢量浮点运算指令中的目的寄存器决定的。
矢量浮点除法运算单元根据其内部的单元完成矢量浮点除法运算。两浮点数相除,
1、检测操作数是否为0,并置结果符合为两个操作数的异或。
2、尾数调整,使|被除数尾数|<|除数尾数|
3、减阶:两数阶码相减得商的阶码。
4、两数的尾数做定点除法,得到商的尾数。
5、结果规格化
步骤三、把矢量浮点协处理器的矢量浮点寄存器的数据传送到矢量处理器的矢量寄存器中。
通过矢量浮点协处理器的矢量浮点寄存器传送到矢量处理器的矢量寄存器指令,把矢量浮点协处理的矢量浮点寄存器VRS2的内容传送到到矢量处理器的矢量寄存器VR2中。
步骤四、把矢量处理器的矢量寄存器中的数据存入存储器中。
基于浮点并行运算的矢量浮点协处理单元中,还涉及到一些矢量浮点协处理器指令代码,具体如下所示:
把矢量浮点协处理存储器中的数据加载到矢量浮点协处理器中;
把矢量处理器中的矢量寄存器数据传送到矢量浮点协处理的矢量浮点寄存器中;
把矢量浮点协处理中的矢量浮点寄存器的数据传送到矢量处理器中矢量寄存器;
矢量浮点的加法指令;
矢量浮点的减法指令;
矢量浮点的乘法指令;
矢量浮点的除法指令;
矢量浮点的三角函数指令。
上述实施例是以浮点乘法、矢量宽度256BIT为例进行的矢量浮点运算,但所述256BIT,只是为了在举例中容易说明,但不仅限于256BIT,也可以为64bit,128bit,256bit,512bit,1024bit,2048bit,4096bit等。