用于浮点复数乘i加减的装置和方法

文档序号:8543661阅读:328来源:国知局
用于浮点复数乘i加减的装置和方法
【技术领域】
[0001]本发明涉及微处理器体系结构技术领域,尤其涉及一种用于浮点复数乘i加减的装置和方法。
【背景技术】
[0002]随着数字通信技术的快速发展,对数字信号处理能力的要求也越来越高,向量运算利用硬件的并行性,可以大大加速数字信号的处理过程,越来越多地运用于数字通信领域中。
[0003]目前,通信中应用广泛的信号处理技术为正交频分复用技术,可通过将信道分成若干正交的子信道,减少了信道间的相互干扰,并且,可以允许各个子载波在频段上有部分重叠,从而提高带宽利用率。由于复数可包含互不相干的实部与虚部,正适合用来表示正交的I路和Q路的数据,因此在正交频分复用的应用中,很多数据可采用复数形式记录。
[0004]向量运算的特点是可同时对多个数据进行同一运算操作,提高了运算的执行效率。目前在数字信号处理中,快速傅里叶变换(Fast Fourier Transformat1n, FFT)有着非常重要的地位,同时在“数理方程”、“线性系统分析”、“信号处理、仿真”等很多学科领域都有着广泛应用。而乘i加减操作是FFT运算的一个重要的计算过程。但是,如果使用传统的向量运算方式,不能充分发挥向量运算的优越性,甚至导致降低运算效率。

【发明内容】

[0005]本发明旨在至少解决上述技术问题之一。
[0006]为此,本发明的第一个目的在于提出一种用于浮点复数乘i加减的装置。该装置可以。
[0007]本发明的第二个目的在于提出一种用于浮点复数乘i加减的方法。
[0008]为了实现上述目的,本发明实施例的用于浮点复数乘i加减的装置,包括:数据存储模块、数据选择模块、运算模块和控制模块,其中,所述数据存储模块,所述数据存储模块包括多个向量寄存器,每个所述向量寄存器用于保存多个浮点复数,其中,每个所述浮点复数包含一个作为实部的浮点数和一个作为虚部的浮点数;所述数据选择模块,用于分别从两个所述向量寄存器中分别读取两组所述浮点复数的实部浮点数和虚部浮点数,作为输入数据发送至所述运算模块;所述运算模块,用于对所述数据选择模块发送的所述输入数据进行相应的运算;所述控制模块,用于接收操作信息,根据所述操作信息生成控制信号,并根据所述控制信号控制所述数据选择模块和所述运算模块进行相应的数据选择操作和运算操作;以及所述数据存储模块还用于保存所述运算模块的运算结果。
[0009]根据本发明实施例的用于浮点复数乘i加减的装置,通过数据选择模块为运算模块提供不同的数据从而实现浮点复数的乘i累加减运算,能够针对通信系统应用中常用的复数数据进行乘i累加减运算,克服了传统向量运算方式对向量复数数据处理能力的不足,提高了运算方式的并行性,充分利用已有的向量运算部件,节省了硬件资源。
[0010]为了实现上述目的,本发明实施例的用于浮点复数乘i加减的方法,包括:保存多个浮点复数,其中,每个所述浮点复数包含一个作为实部的浮点数和一个作为虚部的浮点数;接收操作信息,并根据所述操作信息生成控制信号;分别读取两个不同的所述浮点复数的实部浮点数和虚部浮点数作为输入数据;以及根据所述控制信号对所述输入数据进行相应的运算操作,保存运算结果。
[0011]根据本发明实施例的用于浮点复数乘i加减的方法,通过为运算模块提供不同的数据从而实现浮点复数的乘i累加减运算,能够针对通信系统应用中常用的复数数据进行乘i累加减运算,克服了传统向量运算方式对向量复数数据处理能力的不足,提高了运算方式的并行性,充分利用已有的向量运算部件,节省了硬件资源。
[0012]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0013]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中,
[0014]图1是根据本发明一个实施例的用于浮点复数乘i加减的装置的结构框图;
[0015]图2是根据本发明一个实施例的用于浮点复数乘i加减的装置的工作原理示意图;
[0016]图3是根据本发明一个实施例的单精度浮点复数乘i加法的运算示意图;
[0017]图4是根据本发明一个实施例的双精度浮点复数乘i加法的运算示意图;以及
[0018]图5是根据本发明一个实施例的用于浮点复数乘i加减的方法的流程图。
【具体实施方式】
[0019]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
[0020]在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0021]流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0022]下面参考附图描述根据本发明实施例的用于浮点复数乘i加减的装置和方法。
[0023]图1是根据本发明一个实施例的用于浮点复数乘i加减的装置的结构框图。
[0024]如图1所示,该用于浮点复数乘i加减的装置可以包括数据存储模块100、数据选择模块200、运算模块300和控制模块400。
[0025]具体地,数据存储模块100可包括多个向量寄存器110,每个向量寄存器110可用于保存多个浮点复数,其中,每个浮点复数可包含一个作为实部的浮点数和一个作为虚部的浮点数。
[0026]在本发明的实施例中,每个浮点数的数据类型可分为单精度类型和双精度类型,每个单精度浮点数为32位,每个双精度浮点数为64位。
[0027]进一步地,在本发明的实施例中,每个浮点复数的实部浮点数和虚部浮点数可保存在同一个向量寄存器110中,且不同向量寄存器110中的浮点复数可以被同时读取,还可以按先后顺序被先后读取。
[0028]进一步地,在本发明的实施例中,一个浮点数是浮点复数的实部还是虚部可由它们在向量数据中的位置决定,而该浮点数本身不包含虚部或实部的标记。其中,每个浮点复数的实部浮点数和虚部浮点数的保存位置是固定的,没有专门的标志位表示实部或虚部保存在向量寄存器110的哪个位置。
[0029]数据选择模块200可用于分别从两个向量寄存器110中读取浮点复数的实部浮点数和虚部浮点数,并作为输入数据发送至运算模块300。其中,在本发明的实施例中,数据选择模块200可包括多个数据选择器210 (图中未示出),每个数据选择器210的结构均相同。运算模块300可用于对数据选择模块200发送的输入数据进行相应的运算。其中,在本发明的实施例中,运算模块300可包括多个运算器310,每个运算器可分为多个运算子模块311,每个运算子模块311可为64位。数据选择器210的个数可为运算器310个数的2倍,运算器310的个数可与每个向量寄存器110中浮点数的个数相同。
[0030]更具体地,数据选择模块200可先从向量寄存器110中读出两组需要进行运算操作的数据,这两组数据来自不同的向量寄存器,可从这两组数据中将每个浮点复数的实部和虚部分别提取出来,并将提取到的数据按照预设的组合两两一组发送到运算器310的两个数据输入端。运算器310可对数据选择模块200发送的输入数据进行两个单精度浮点数或一个双精度浮点数的加减法运算。其中,每个运算器310的结构均是相同的。
[0031]应当理解的是,数据选择模块200可根据所需进行的运算类型选择不同的数据作为运算器310的输入数据,例如读取第一个向量寄存器中的第偶数位数据与第二个向量寄存器中的第奇数位数据作为输入数据发送到同一个运算子模块310中,即可实现对第一浮点数虚部与第二浮点数实部的运算操作。
[0032]控制模块400可用于接收操作信息,并根据
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1