CN202331425U - 基于矢量运算的矢量浮点运算装置 - Google Patents
基于矢量运算的矢量浮点运算装置 Download PDFInfo
- Publication number
- CN202331425U CN202331425U CN2011203189144U CN201120318914U CN202331425U CN 202331425 U CN202331425 U CN 202331425U CN 2011203189144 U CN2011203189144 U CN 2011203189144U CN 201120318914 U CN201120318914 U CN 201120318914U CN 202331425 U CN202331425 U CN 202331425U
- Authority
- CN
- China
- Prior art keywords
- vector
- point
- floating
- instruction
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
- Advance Control (AREA)
Abstract
本实用新型提出的基于矢量运算的浮点运算装置,是一种新的硬件结构,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,矢量处理器与矢量浮点协处理器之间的总线接口可以采用通用的协处理器总线结构。通过采用协处理器的方式,在保证浮点所有运算的基础上,提高了浮点的运算速度及降低了设计的复杂度。
Description
技术领域
本实用新型公开一种基于矢量运算的矢量浮点运算装置及方法,提高了浮点运算的速度和精度。
背景技术
处理器为数字信号处理所做的运算主要分为两大类:定点和浮点。一般而言,先进的定点运算速度快,功耗小,成本低,但矢量浮点运算器能够在硬件方面提供更高的精度和更广的动态范围。所以在面对要求更大的数字范围或更高的分辨率的情况,就需要矢量浮点运算器。
浮点运算现有方案是英特尔公司的《用于矢量处理的可扩展并行流水线浮点单元》专利,如图1,该实用新型输入队列210从处理器单元、图形控制器或存储矢量输入的数据存储器获取或者存储被处理的矢量输入。每个矢量输入包括FP指令和该指令关联的矢量数据。
矢量输入选择器220从输入队列210选择矢量输入来发送到输入队列210的一个或者多个输出的多个输入。
调度器230接收矢量输入选择器220选择的矢量输入,并分配所述调度器分配的矢量输入,把矢量分配为多个标量来处理。
现有技术方案存在的不足之处为:
1、把矢量输入分配为多个标量处理,多个浮点(FP)流水线根据所述调度器分配的矢量输入的标量分量的运算来产生FP结果,之后再把FP结果组装成矢量送入输出缓冲区。在这一系列过程中,即每一个FP流水线中都必须支持浮点的所有运算。如FP加法器、FP减法器、FP除法器、FP乘法器、FP复杂数学运算函数等。这种设计增加了设计的复杂度。
2、每个矢量输入对应一次浮点运算指令,每个矢量输入包括FP指令和该指令相关联的矢量数据。所述FP指令可以是任何FP运算,诸如FP加法、FP减法、FP乘法、FP除法、FP三角函数等。其中在处理本次浮点运算指令时,不能再次响应矢量输入,并等待本次运算结束后才能相应其他的操作。这势必降低了浮点的运算速度。
为了降低矢量处理器的复杂度,本实用新型的矢量浮点运算装置采用协处理器的方式。协处理器是一个处理单元,该处理单元与一个主处理单元一起使用来承担通常由主处理单元执行的运算。通常协处理器在硬件中能够替代几种软件指令,从而实现代码加速。
为了提高运算速度及运算精度,在许多应用领域中,都会涉及到浮点的并行处理,因此本实用新型公开一种基于矢量运算的浮点运算装置。
实用新型内容
本实用新型的基于矢量运算的浮点运算装置,提出一种新的硬件结构,采用协处理器的方式,在保证浮点所有运算的基础上,提高了浮点的运算速度及降低了设计的复杂度。
本实用新型的基于矢量运算的浮点运算装置,如图2所示,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,矢量处理器与矢量浮点协处理器之间的总线接口可以采用通用的协处理器总线结构。
其中,矢量处理器,用于执行指令代码中的矢量处理指令,解析指令代码并执行相应的运算,矢量处理器还用于把不能执行的矢量浮点协处理器指令通过矢量浮点协处理器接口总线传送给矢量浮点协处理器。
存储器,用于存储矢量处理器的指令代码及执行指令代码所需的数据。
矢量浮点协处理器,用于执行指令代码中的矢量浮点协处理指令,解析指令代码并执行相应的矢量浮点运算。
矢量浮点协处理器存储器,用于在本地存储作为与被加载的数据字组合在一起而加以使用操作数的数据字。这种方案是考虑到许多现实中的计算情况。本特性通过在本地存储频繁需要的数据字而将其拓展,从而使得在矢量处理器和矢量浮点协处理之间所需要的数据通道容量被有益的减少。
所述的矢量处理器包括指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、矢量寄存器组;
所述的矢量浮点协处理器,如图3所示,包括矢量浮点协处理器接口、指令队列和分发单元、矢量数据处理单元、矢量浮点寄存器组及转发单元,其中:
矢量浮点协处理器接口,用于把矢量处理器与矢量浮点协处理器连接起来,本接口可以采用局部总线协议,如AMBA(高级微控制器总线结构)总线、APU(高级外设总线)总线等。
指令队列和分发单元,用于将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;
矢量数据处理单元,用于执行矢量浮点的各种运算,由矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元,矢量浮点三角函数处理单元组成。
矢量浮点加减法处理单元,该单元用来执行浮点的加减法运算;
矢量浮点乘法处理单元,该单元用来执行浮点的乘法运算;
矢量浮点除法处理单元,该单元用来执行浮点的除法运算;
矢量浮点三角函数单元,该单元用于执行浮点的三角函数运算;
矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,…VRSn,用于存放来自矢量浮点加减法处理单元、矢量浮点乘法处理单元、矢量浮点除法处理单元、矢量浮点三角函数单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中;
下面详细介绍每个单元的具体功能:
所述指令队列和分发单元,其中,所述指令队列接收矢量处理器送来的指令代码,所述分发单元把指令代码分发给所有的执行单元。
所述指令代码包括:
把矢量寄存器中的数据传送到矢量浮点寄存器中;
把矢量浮点寄存器中的数据加载到矢量浮点协处理器中;
把矢量浮点寄存器中的数据传送到矢量寄存器中;
矢量浮点的加减法指令;
矢量浮点的减法指令;
矢量浮点的乘法指令;
矢量浮点的除法指令;
矢量浮点的三角函数指令;
所述矢量浮点加减法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量浮点指令代码,如矢量浮点的加法和减法指令,读取矢量浮点加减法指令,然后分发给所述矢量浮点加减法处理单元;所述矢量浮点加减法处理单元根据所述矢量浮点加或减指令将矢量浮点寄存器组中源的寄存器的内容相加减,结果存入目的寄存器中,所述矢量浮点寄存器组源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点乘法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量 浮点指令代码,读取矢量浮点乘法指令,然后分发给所述矢量浮点乘法处理单元;所述矢量浮点乘法处理单元根据所述矢量浮点乘法指令将矢量寄存器组中源的寄存器的内容相乘,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点除法处理单元,指令队列和分发单元接收矢量处理器送来的矢量浮点指令代码,读取矢量浮点除法指令,然后分发给所述矢量浮点除法处理单元;所述矢量浮点除法处理单元根据所述矢量浮点除法指令将矢量寄存器组中源的寄存器的内容相除,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点三角函数单元,指令队列和分发单元接收矢量处理器送来的矢量浮点指令代码,读取矢量浮点三角指令,然后分发给所述矢量浮点三角函数处理单元;所述矢量浮点三角函数处理单元根据所述矢量浮点三角函数指令将矢量寄存器组中源的寄存器的内容做三角运算,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。
所述矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,…VRSn,用于存放来自矢量数据处理单元的运算数据及运算结果数据,其转发单元则从矢量寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中;矢量浮点寄存器组的内容可以通过矢量寄存器转发,或者通过矢量浮点寄存器加载。在转发时,矢量浮点寄存器组的内容可以通过特定指令,把矢量浮点寄存器中的数据传送到矢量处理器的矢量寄存器中,或者存入矢量浮点寄存器中。
附图说明
图1为现有技术英特尔方案;
图2为本实用新型基于矢量运算的矢量浮点运算装置的***图;
图3为本实用新型矢量浮点协处理器的结构图;
图4为本实用新型基于矢量运算的浮点运算装置的流程图;
图5为本实用新型基于矢量运算的浮点运算装置的并行浮点乘法运算的流程图;
图6为本实用新型矢量处理器与矢量浮点协处理器之间的连接方式示意图;
图7为矢量浮点加法的示意图(256BIT);
图8为矢量浮点减法的示意图(256BIT);
图9为矢量浮点乘法的示意图(256BIT)。
具体实施方式
本实用新型提供一种基于矢量运算的浮点运算装置,如图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等。
Claims (7)
1.一种基于矢量运算的浮点运算装置,其特征在于,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,其中矢量处理器与矢量浮点协处理器之间的总线接口采用通用的协处理器总线结构。
2.根据权利要求1所述的基于矢量运算的浮点运算装置,其特征在于,
所述的矢量处理器,用于执行指令代码中的矢量处理指令,解析指令代码并执行相应的运算,以及把不能执行的矢量浮点协处理器指令通过矢量浮点协处理器接口总线传送给矢量浮点协处理器;
所述的存储器,用于存储矢量处理器的指令代码及执行指令代码所需的数据;
所述的矢量浮点协处理器,用于执行指令代码中的矢量浮点协处理指令,解析指令代码并执行相应的矢量浮点运算;
所述的矢量浮点协处理器存储器,用于在本地存储作为与被加载的数据字组合在一起而加以使用操作数的数据字;通过在本地存储频繁需要的数据字而将其拓展,从而使得在矢量处理器和矢量浮点协处理之间所需要的数据通道容量被有益的减少。
3.根据权利要求1或2所述的基于矢量运算的浮点运算装置,其特征在于所述的矢量处理器包括指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、矢量寄存器组。
4.根据权利要求1或2所述的基于矢量运算的浮点运算装置,其特征在于所述的矢量浮点协处理器,包括矢量浮点协处理器接口、指令队列和分发单元、矢量数据处理单元、矢量浮点寄存器组及转发单元。
5.根据权利要求4所述的基于矢量运算的浮点运算装置,其特征在于,
所述的矢量浮点协处理器接口,用于把矢量处理器与矢量浮点协处理器连接起来,本接口采用局部总线协议;
所述的指令队列和分发单元,用于将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;
所述的矢量数据处理单元,用于执行矢量浮点的各种运算,由矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元,矢量浮点三角函数处理单元组成;
所述的矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,…VRSn,用于存放来自矢量浮点加减法处理单元、矢量浮点乘法处理单元、矢量浮点除法处理单元、矢量浮点三角函数单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中。
6.根据权利要求5所述的基于矢量运算的浮点运算装置,其特征在于所述的矢量浮点协处理器接口采用的局部总线协议为高级局部总线总线或APU总线。
7.根据权利要求1所述的基于矢量运算的浮点运算装置,其中所述的浮点运算装置中加入滤波协处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011203189144U CN202331425U (zh) | 2011-08-29 | 2011-08-29 | 基于矢量运算的矢量浮点运算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011203189144U CN202331425U (zh) | 2011-08-29 | 2011-08-29 | 基于矢量运算的矢量浮点运算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN202331425U true CN202331425U (zh) | 2012-07-11 |
Family
ID=46443397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011203189144U Expired - Fee Related CN202331425U (zh) | 2011-08-29 | 2011-08-29 | 基于矢量运算的矢量浮点运算装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN202331425U (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262525A (zh) * | 2011-08-29 | 2011-11-30 | 孙瑞琛 | 基于矢量运算的矢量浮点运算装置及方法 |
CN114579083A (zh) * | 2022-05-09 | 2022-06-03 | 上海擎昆信息科技有限公司 | 一种基于矢量处理器的数据处理装置和方法 |
WO2023093128A1 (zh) * | 2021-11-23 | 2023-06-01 | 广东跃昉科技有限公司 | 运算指令处理方法及***、主处理器和协处理器 |
-
2011
- 2011-08-29 CN CN2011203189144U patent/CN202331425U/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102262525A (zh) * | 2011-08-29 | 2011-11-30 | 孙瑞琛 | 基于矢量运算的矢量浮点运算装置及方法 |
WO2023093128A1 (zh) * | 2021-11-23 | 2023-06-01 | 广东跃昉科技有限公司 | 运算指令处理方法及***、主处理器和协处理器 |
CN114579083A (zh) * | 2022-05-09 | 2022-06-03 | 上海擎昆信息科技有限公司 | 一种基于矢量处理器的数据处理装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102262525B (zh) | 基于矢量运算的矢量浮点运算装置及方法 | |
JP3790307B2 (ja) | データプロセッサ及びデータ処理システム | |
RU2263947C2 (ru) | Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных | |
EP3719639B1 (en) | Systems and methods to perform floating-point addition with selected rounding | |
US8990282B2 (en) | Apparatus and method for performing fused multiply add floating point operation | |
US8838664B2 (en) | Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format | |
US20090198974A1 (en) | Methods for conflict-free, cooperative execution of computational primitives on multiple execution units | |
JP4232838B2 (ja) | 再構成可能なsimd型プロセッサ | |
US20170220344A1 (en) | Stochastic rounding floating-point add instruction using entropy from a register | |
WO2009035185A1 (en) | Reconfigurable array processor for floating-point operations | |
CN105335127A (zh) | Gpdsp中支持浮点除法的标量运算单元结构 | |
EP3394729B1 (en) | Fused multiply add (fma) low functional unit | |
US9870200B2 (en) | Decimal and binary floating point rounding | |
US20180225093A1 (en) | Implementing logarithmic and antilogarithmic operations based on piecewise linear approximation | |
CN202331425U (zh) | 基于矢量运算的矢量浮点运算装置 | |
US9703626B2 (en) | Recycling error bits in floating point units | |
US10445066B2 (en) | Stochastic rounding floating-point multiply instruction using entropy from a register | |
CN104823153A (zh) | 引导变化预测器逻辑 | |
Fiolhais et al. | An efficient exact fused dot product processor in FPGA | |
JP6604393B2 (ja) | ベクトルプロセッサ、演算実行方法、プログラム | |
CN102693118A (zh) | 一种标量浮点运算加速器 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
US20200133633A1 (en) | Arithmetic processing apparatus and controlling method therefor | |
Hsiao et al. | Design of a low-cost floating-point programmable vertex processor for mobile graphics applications based on hybrid number system | |
US9753690B2 (en) | Splitable and scalable normalizer for vector data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120711 Termination date: 20200829 |
|
CF01 | Termination of patent right due to non-payment of annual fee |