本发明专利技术提出的基于矢量运算的浮点运算装置,是一种新的硬件结构,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,矢量处理器与矢量浮点协处理器之间的总线接口可以采用通用的协处理器总线结构。通过采用协处理器的方式,在保证浮点所有运算的基础上,提高了浮点的运算速度及降低了设计的复杂度。
【技术实现步骤摘要】
本专利技术公开一种,提高了浮点运算的速度和精度。
技术介绍
处理器为数字信号处理所做的运算主要分为两大类定点和浮点。一般而言,先进的定点运算速度快,功耗小,成本低,但矢量浮点运算器能够在硬件方面提供更高的精度和更广的动态范围。所以在面对要求更大的数字范围或更高的分辨率的情况,就需要矢量浮点运算器。浮点运算现有方案是英特尔公司的《用于矢量处理的可扩展并行流水线浮点单元》专利,如图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 (高级外设总线)总线等。指令队列和分发单元,用于将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;矢量数据处理单元,用于执行矢量浮点的各种运算,由矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元,矢量浮点三角函数处理单元组成。矢量浮点加减法处理单元,该单元用来执行浮点的加减法运算; 矢量浮点乘法处理单元,该单元用来执行浮点的乘法运算;矢量浮点除法处理单元,该单元用来执行浮点的除法运算; 矢量浮点三角函数单元,该单元用于执行浮点的三角函数运算; 矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRSO,VRS1,· · ’VRSn,用于存放来自矢量浮点加减法处理单元、矢量浮点乘法处理单元、矢量浮点除法处理单元、矢量浮点三角函数单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中; 下面详细介绍每个单元的具体功能所述指令队列和分发单元,其中,所述指令队列接收矢量处理器送来的指令代码,所述分发单元把指令代码分发给所有的执行单元。所述指令代码包括把矢量寄存器中的数据传送到矢量浮点寄存器中; 把矢量浮点寄存器中的数据加载到矢量浮点协处理器中; 把矢量浮点寄存器中的数据传送到矢量寄存器中; 矢量浮点的加减法指令; 矢量浮点的减法指令;矢量浮点的乘法指令; 矢量浮点的除法指令; 矢量浮点的三角函数指令;所述矢量浮点加减法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,如矢量浮点的加法和减法指令,读取矢量浮点加减法指令,然后分发给所述矢量浮点加减法处理单元;所述矢量浮点加减法处理单元根据所述矢量浮点加或减指令将矢量浮点寄存器组中源的寄存器的内容相加减,结果存入目的寄存器中,所述矢量浮点寄存器组源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。所述矢量浮点乘法处理单元,是当指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点乘法指令,然后分发给所述矢量浮点乘法处理单元;所述矢量浮点乘法处理单元根据所述矢量浮点乘法指令将矢量寄存器组中源的寄存器的内容相乘,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。所述矢量浮点除法处理单元,指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点除法指令,然后分发给所述矢量浮点除法处理单元;所述矢量浮点除法处理单元根据所述矢量浮点除法指令将矢量寄存器组中源的寄存器的内容相除,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。所述矢量浮点三角函数单元,指令队列和分发单元接收矢量处理器送来的矢量浮点运算指令代码,读取矢量浮点三角指令,然后分发给所述矢量浮点三角函数处理单元;所述矢量浮点三角函数处理单元根据所述矢量浮点三角函数指令将矢量寄存器组中源的寄存器的内容做三角运算,结果存入目的寄存器中,所述矢量浮点寄存器组中源的寄存器为矢量浮点寄存器组中的一个或者几个寄存器,所述目的寄存器为矢量浮点寄存器组的一个或者几个寄存器。所述矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRS0,VRS1,· · -VRSn, 用于存放来自矢量数据处理单元的运算数据及运算结果数据本文档来自技高网...
【技术保护点】
1.一种基于矢量运算的浮点运算装置,其特征在于,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,其中矢量处理器与矢量浮点协处理器之间的总线接口采用通用的协处理器总线结构。
【技术特征摘要】
1.一种基于矢量运算的浮点运算装置,其特征在于,包括一个矢量处理器、一个存储器、一个矢量浮点协处理器和一个矢量浮点协处理器存储器,其中矢量处理器与矢量浮点协处理器之间的总线接口采用通用的协处理器总线结构。2.根据权利要求1所述的基于矢量运算的浮点运算装置,其中,所述的矢量处理器,用于执行指令代码中的矢量处理指令,解析指令代码并执行相应的运算,以及把不能执行的矢量浮点协处理器指令通过矢量浮点协处理器接口总线传送给矢量浮点协处理器;所述的存储器,用于存储矢量处理器的指令代码及执行指令代码所需的数据; 所述的矢量浮点协处理器,用于执行指令代码中的矢量浮点协处理指令,解析指令代码并执行相应的矢量浮点运算;所述的矢量浮点协处理器存储器,用于在本地存储作为与被加载的数据字组合在一起而加以使用操作数的数据字;通过在本地存储频繁需要的数据字而将其拓展,从而使得在矢量处理器和矢量浮点协处理之间所需要的数据通道容量被有益的减少。3.根据权利要求1或2所述的基于矢量运算的浮点运算装置,其中所述的矢量处理器包括指令存储单元、数据存储单元、指令读取和分发单元、矢量数据处理单元、矢量寄存器组;所述的矢量浮点协处理器,包括矢量浮点协处理器接口、指令队列和分发单元、矢量数据处理单元、矢量浮点寄存器组及转发单元。4.根据权利要求3所述的基于矢量运算的浮点运算装置,其中,所述的矢量浮点协处理器接口,用于把矢量处理器与矢量浮点协处理器连接起来,本接口采用局部总线协议;所述的指令队列和分发单元,用于将接收矢量处理器送来的指令代码,解析指令代码并发送给所有的矢量数据处理单元;所述的矢量数据处理单元,用于执行矢量浮点的各种运算,由矢量浮点加减法处理单元,矢量浮点乘法处理单元,矢量浮点除法单元,矢量浮点三角函数处理单元组成;所述的矢量浮点寄存器组及转发单元,包含矢量浮点寄存器VRSO,VRS1,· · · VRSn, 用于存放来自矢量浮点加减法处理单元、矢量浮点乘法处理单元、矢量浮点除法处理单元、 矢量浮点三角函数单元的运算数据及运算结果数据,其转发单元则从矢量浮点寄存器组中读写数据并传递到矢量处理器的矢量寄存器组中。5.根据权利要求4所述的基于矢量运算的浮点运算装置,其中所述的矢量浮点协处理器接口采用的局部总线协议为高级局部总线总线或APU总线。6.根据权利要求4所述的基于矢量运算的浮点运算装置,其中, 所述的矢量浮点加减法处理单元,该单元用来执行浮点的加减法运算; 所述的矢量浮点乘法处理单元,该单元用来执行浮点的乘法运算; 所述的矢量浮点除法处理单元,该单元用来执行浮点的除法运算;所述的矢量浮点三角函数单元,该单元用于执行浮点的三角函数运算。7.根据权利要求4所述的基于矢量运算的浮点运算装置,其中...
【专利技术属性】
技术研发人员:孙瑞琛,
申请(专利权)人:孙瑞琛,
类型:发明
国别省市:11