支持复数运算和子字并行的64位定浮点乘法器制造技术

技术编号:3984667 阅读:245 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种支持复数运算和子字并行的64位定浮点乘法器,该乘法器由四个32位乘法器组合而成,其中每个32位乘法器均包含一个作为输出的“进位”串和一个作为输出的“和”串,四个32位乘法器共包含四个“进位”串和四个“和”串,该四个“进位”串和该四个“和”串通过一个8-2压缩器进行压缩,得到一个新的“进位”串和一个新的“和”串,然后求和作为该乘法器的输出。利用本发明专利技术,降低了关键通路延时,减小了运算资源开销。

【技术实现步骤摘要】

本专利技术涉及高性能数字信号处理器
,尤其涉及一种支持复数运算和子字并行(Single Instruction Multiple Data, SIMD)的 64 位定浮点乘法器。
技术介绍
在数字信号处理算法中(如FFT,FIR滤波,矩阵矢量点积等),乘法运算均占据很 大的比例。因此,对乘法器的算法和结构进行优化设计,成为提高处理器性能的关键。不同的数字信号处理领域对乘法运算有不同的需求,在通信处理领域,多采用8 位或者16位的定点数据;在影像和雷达信号处理领域,多采用单精度浮点甚至双精度浮点 数据。同时,大量数字信号处理算法,如FFT等,均需要进行复数运算。为了保证数字信号处理器在不同处理领域的适用性,需要乘法器能够支持不同数 据长度的定点运算、单精度和双精度的浮点运算以及复数运算。对于不同数据长度的运算, 如果统一采用定长数据表示方式,则对于任何精度的运算过程,处理器的运算能力都受到 最大精度运算能力的限制。因此,人们研究出了大量的增加操作并行性的硬件结构,以增 加对低精度运算的并行操作支持。这些技术的共同特点是,将多个低精度操作数打包成一 个整字送到运算单元进行并行的多个低精度的同质运算,使运算单元既能支持高精度的整 字运算又能增加低精度计算的并行性。这种并行性增强方式,对取指令发送以及数据寄存 器的维护没有任何影响,是在不改变体系结构的前提下最有效的增加处理器运算能力的方 式,目前业界将这种并行性增强方式称为子字并行结构。复数乘法运算,需要完成四个乘法运算和2个加法运算,普通的数字信号处理器 可能需要6个时钟周期才能完成复数乘法。然而如果乘法器支持复数运算,则可以在1个 时钟周期之后得到结果,性能提高6倍。此外,通过支持指令级的复数运算,可以降低编程 难度,提高代码效率。子字并行技术、复数乘法运算能够提高乘法器性能,然而这需要在乘法器的关键 通路中增加配置部件,这会增大数据通路的延时,从而降低性能。此外,由于对不同数据长 度和运算的支持,会导致乘法器运算资源迅速扩张,从而增大芯片面积和功耗。
技术实现思路
(一)要解决的技术问题有鉴于此,本专利技术的主要目的在于提供一种支持复数运算和子字并行的64位定 浮点乘法器,以降低关键通路延时,减小运算资源开销。( 二 )技术方案为达到上述目的,本专利技术提供了一种支持复数运算和子字并行的64位定浮点乘 法器,该乘法器由四个32位乘法器组合而成,其中每个32位乘法器均包含一个作为输出的 “进位”串和一个作为输出的“和”串,四个32位乘法器共包含四个“进位”串和四个“和” 串,该四个“进位”串和该四个“和”串通过一个8-2压缩器进行压缩,得到一个新的“进位”串和一个新的“和”串,然后求和作为该乘法器的输出。上述方案中,所述32位乘法器由四个16位乘法器组合而成,其中每个16位乘法 器均包含一个作为输出的“进位”串和一个作为输出的“和”串,四个16位乘法器共包含四 个“进位”串和该四个“和”串,该四个“进位”串和四个“和”串通过一个8-2压缩器进行压 缩,得到一个新的“进位”串和一个新的“和”串,作为该32位乘法器的输出。上述方案中,所述16位乘法器由四个8位乘法器组合而成,其中每个8位乘法器均包含一个作为输出的“进位”串和一个作为输出的“和”串,四个8位乘法器共包含四个 “进位”串和该四个“和”串,该四个“进位”串和四个“和”串通过一个8-2压缩器进行压缩, 得到一个新的“进位”串和一个新的“和”串,作为该16位乘法器的输出。上述方案中,所述16位乘法器包括第一 8位乘法器、第二 8位乘法器、第三8位乘法器、第四8位乘法器、复数乘法运算单元、整合单元和乘累加单元,其中第一 8位乘法器、第二 8位乘法器、第三8位乘法器和第四8位乘法器均用于对输入的8位操作数进行乘法操作,分别得到一个16位乘法结果输出所述复数乘法运算单元, 并分别得到一个“进位”串和一个“和”串输出所述整合单元;复数乘法运算单元,用于接收来自第一 8位乘法器、第二 8位乘法器、第三8位乘法器和第四8位乘法器的4个16位乘法结果,将该4个8位乘法结果相互交叉相加,完成 复数乘法运算,并将运算结果输出到所述乘累加单元;整合单元,用于将来自第一 8位乘法器、第二 8位乘法器、第三8位乘法器和第四 8位乘法器的4个“进位”串和4个“和”串进行压缩,然后再相加,得到16位数据乘法运算 的结果,并将该结果输出送到所述乘累加单元或者直接输出;乘累加单元,用于支持1个16位复数运算的乘累加,或者4个8位的乘累加,或者 1个16位的乘累加运算。上述方案中,所述第一 8位乘法器、第二 8位乘法器、第三8位乘法器或第四8位 乘法器均由部分积产生模块、华莱士树模块和加法器模块依次连接而成。上述方案中,所述第一 8位乘法器、第二 8位乘法器、第三8位乘法器和第四8位 乘法器均有两种输出,一种输出是被送到所述整合单元的“进位”串和“和”串,用于构造16 位乘法器,另一种输出是被送到所述复数乘法运算单元的16位乘法结果.上述方案中,所述复数乘法运算单元包含2个16位复数加法器。上述方案中,所述整合单元包含8-2压缩器和24位加法器。上述方案中,所述乘累加单元包括乘累加寄存器和加法器。(三)有益效果本专利技术提供的这种支持复数运算和子字并行的64位定浮点乘法器,降低了关键 通路延时,减小了运算资源开销。附图说明图1是本专利技术子字整合方案的原理图;图2是传统子字整合结构与优化的子字整合结构原理图,其中图2 (a)是传统的子字整合结构原理图;图2(b)是本专利技术优化的子字整合结构原理图3是传统的可重构乘法器的8-2压缩示意图;图4是本专利技术优化的可重构乘法器的8-2压缩示意图;图5是本专利技术复数运算算法的电路结构示意图;图6是本专利技术提供的支持复数运算和子字并行的64位定浮点乘法器的结构示意 图;图7是本专利技术8位乘法器整合成16位乘法器的示意图。 具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。本专利技术提供的64位定浮点乘法器是一种支持子字并行、复数运算的定浮点乘法 器,该乘法器支持8、16、32和64的定点乘法运算,支持精简的IEEE754标准的单/双精度 浮点运算,并支持32、64位复数乘法运算。下面首先介绍本专利技术的实现原理,主要包括子字整合方案、优化的子字整合结构 和复数乘法运算。1)、子字整合方案子字整合是指采用位宽较小的乘法器组合成位宽较大的乘法器,从而保证乘法器 能够支持不同位宽的运算。本专利技术的乘法器子字整合方案的原理如图1所示,以8位乘法 运算为最小单位,以此为基础构造成16位的乘法器;然后以16位乘法器为单位,构造32位 乘法器,最后以32位乘法器位基础,构造64位乘法器。32位乘法器和部分指数通路组可完 成单精度浮点运算,64位乘法器和部分指数通路可完成双精度浮点运算。2)、优化的子字整合结构采用传统的子字整合结构如图2 (a)所示(以4个8位乘法器整合为1个16位乘 法器为例),16位的可重构乘法器的关键路径上包括8位部分积生成、8位乘法器华莱士树、 16位加法器、移位对齐/4-2压缩和32位加法器。在这些部件中,加法器是延时最大的部 件,而该路径中本文档来自技高网
...

【技术保护点】
一种支持复数运算和子字并行的64位定浮点乘法器,其特征在于,该乘法器由四个32位乘法器组合而成,其中每个32位乘法器均包含一个作为输出的“进位”串和一个作为输出的“和”串,四个32位乘法器共包含四个“进位”串和四个“和”串,该四个“进位”串和该四个“和”串通过一个8-2压缩器进行压缩,得到一个新的“进位”串和一个新的“和”串,然后求和作为该乘法器的输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:王东琳张志伟尹志刚林啸谢少林闫寒薛晓军
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1