多端口混合基fft的制作方法

文档序号:6439559阅读:175来源:国知局
专利名称:多端口混合基fft的制作方法
多端口混合基FFT
相关申请
本申请是申请日为2007年4月27日、申请号为200780015253. 4、名称为“多端口混合基FFT”的中国专利申请的分案申请。
交叉参考
本专利申请基于35U. S. C. § 119(e)要求享受2006年4月28日递交的、名称为 “Multi-Port Mixed-Radix FFT”的临时申请No. 60/795,778的国内优先权,该临时申请被转让给本申请的受让人,这里通过参考明确并入其全部内容。技术领域
在此所描述的多个方面一般涉及用于执行快速傅立叶变换(FFT)和逆FFT (IFFT) 的方法和设备。更具体地,所描述的多个方面涉及使用一组公共硬件执行具有不同分辨率的 FFT 和 IFFT。
背景技术
FFT和IFFT被广泛地用于通信领域,特别是无线通信中。在此所公开的实施例的多个方面可应用于很多类型的通信系统,在这些通信系统中可以找到应用场景。因为基于在本发明递交时已经公开的、并通过参考并入本文的IEEE 802. Iln标准,结合无线通信领域中的示例性实施例来描述各个方面,所以描述了遵循IEEE 802. Iln的一些系统特征。
遵循IEEE 802. Iln的系统具有两个信道化模式,20MHz模式和40MHz模式。提供这些模式支持系统的多输入多输出(MIMO)天线结构。通常,为了生成正交数据符号流,即, 由接收机能够区分的符号流,对于20MHz信道化速率使用64点FFT和IFFT (一个在发射机, 一个在接收机)。通常,为了支持40MHz信道化速率,将需要两倍的分辨率,即需要使用128 点 FFT 和 IFFT。发明内容
根据实施例的多个方面,用于执行快速傅立叶变换或快速傅立叶逆变换的处理器包括基2蝶形结构和基4蝶形结构。根据实施例的多个方面,将输入耦合至基2蝶形结构, 并且将基2蝶形结构的输出耦合至基4蝶形结构的输入。根据更多方面,将替代输入耦合至基4蝶形结构的输入,从而该处理器能够根据所选择的输入执行两种不同分辨率的快速傅立叶变换。该处理器还可以包括GPAP接口。
根据另一个实施例的多个方面,执行快速傅立叶变换或快速傅立叶逆变换的方法包括选择性地对输入数据流执行基2蝶形运算,以及选择性地对由基2蝶形运算和输入数据流产生的其中一个结果执行基4蝶形运算。
根据另一个实施例的多个方面,执行快速傅立叶变换或快速傅立叶逆变换的设备包括选择性地对输入数据流执行基2蝶形运算的装置,以及选择性地对由基2蝶形运算和输入数据流产生的其中一个结果执行基4蝶形运算的装置。
根据另一个实施例的多个方面,包括快速傅立叶逆变换模块的、用于发送信息的通信设备包括具有输入和输出的基2蝶形结构;具有输入的基4蝶形结构,该输入耦合至基2蝶形结构的输出;以及复用器,其可选地将数据流耦合到基2蝶形结构的输入或基4蝶形结构的输入,从而该模块能够根据所选择的输入,执行两种不同分辨率的快速傅立叶逆变换。
根据其它实施例的多个方面,包括快速傅立叶变换模块的、用于接收信息的通信设备包括具有输入和输出的基2蝶形结构;具有输入的基4蝶形结构,该输入耦合至基2 蝶形结构的输出;以及复用器,其可选地将数据流耦合到基2蝶形结构的输入或基4蝶形结构的输入,从而该模块能够根据所选择的输入,执行两种不同分辨率的快速傅立叶变换。


在附图中,在各个图形中示出的各个同样的或近似同样的组件由相同的标号来表示。为了清楚起见,没有在各个附图中对各个组件进行标记。在附图中
图I是计算机系统或处理器连接的方框图,根据该计算机系统或处理器连接描述了实施例的多个方面;
图2是图I中的计算机系统的存储器子系统的方框图3是根据实施例的多个方面的混合基蝶形结构的方框图4是示出了实施例的多个方面的存储器结构的方框图5是图4的存储器的时序图;以及
图6是单位圆图,示出了根据实施例的多个方面的旋转因子之间的关系。
具体实施方式
本发明在其应用中不局限于在后续描述中提出的或在附图中示出的具体结构和组件设置。本发明能够用于其它实施例并且能够以多种方式实施或实现。并且在此所使用的措辞或术语是用于描述的目的而不应当被视为限制性的。这里使用的“包含”、“包括”或 “具有”、“含有”、“涉及”及其变体表示包括其后列出的项目及其等价体以及附加项目。
各种实施例可以在一个或多个计算机系统中实施。例如,这些计算机系统可以是通用计算机,比如基于 Intel PENTIUM 类型处理器、MotorolaPowerPC、Sun UltraSPARC、 Hewlett-Packard PA-RISC处理器或任意其它类型处理器的那些计算机;或者这些计算机系统可以是专用系统,例如包括提供的嵌入式系统或包括无线通信系统例如蜂窝电话、 802. Ilx无线通信系统和包括一个或多个处理器的其它系统。应当注意,一个或多个任意类型的计算机系统可以进行组合,以根据各种实施例执行FFT和IFFT。即,该系统可以位于单个计算机或设备上,或可以分布在附属于通信网络的多个计算机或设备之上。
根据一个实施例的计算机系统配置用于执行所描述的任意FFT和IFFT功能。应当注意,该系统可以执行其它功能,包括无线或有线网络通信,并且这些实施例不局限于具有任意特定功能或功能集。
例如,可以按照在如图I所示的通用计算机系统100中执行的专用软件来实现实施例的多个方面。计算机系统100可以包括处理器103,其连接到一个或多个存储器设备 104,例如磁盘驱动器、存储器、非易失性存储器或用于存放数据的其它设备。存储器104通常用于在计算机系统100操作期间存储程序、固件和数据。计算机系统100的组件可以通过互连机制105耦合,该互连机制105可以包括一个或多个总线(例如,在相同机器内集成的组件之间)和/或网络(例如,在位于单独的分立机器上的组件之间)。互连机制105使得能够在系统100中的系统组件之间交换信息(例如数据、指令)。该网络可以是有线的或无线的。
计算机系统100还包括一个或多个输入设备102,例如键盘、鼠标、轨迹球、话筒、 触摸屏;以及一个或多个输出设备,例如打印设备、显示屏幕、扬声器。此外,(除互连机制 105之外或作为其替代)计算机系统100可以包括一个或多个接口(未示出),该接口将计算机系统与通信网络连接。
如图2更具体示出的存储系统106通常包括存储有信号的计算机可读写非易失性记忆介质201,该信号定义了由处理器执行的程序或存储在介质201之上或之中的由该程序处理的信息。例如,该介质可以是磁盘或闪存。典型地,在操作中,该处理器发起将数据从非易失性记忆介质201中读至另一存储器202中,该存储器202相比介质201允许处理器更快地访问信息。这种存储器202通常是易失性、随机访问存储器,例如,动态随机访问存储器(DRAM)或静态存储器(SRAM)。存储器202可以位于如图所示的存储系统106中, 或位于未示出的存储器系统104中。处理器103通常操作集成电路存储器104、202内的数据,然后在处理完成之后将数据复制到介质201。用于管理数据在介质201和集成电路存储器元件104、202之间移动的多种机制是公知的,并且实施例并不局限于此。实施例也不局限于特定的存储器系统104或存储系统106。
计算机系统可以包括专用程序、专用硬件,例如,特定用途集成电路(ASIC)。实施例的多个方面可以在软件、硬件或固件或者其任意组合中实现。此外,这些方法、操作、系统、系统元件及其组件可以作为上述计算机系统的一部分或作为独立组件来实现。
尽管以实例方式将计算机系统100示出为一种类型的计算机系统,在计算机系统上可以实现实施例的多个方面,但是应该注意,实施例的多个方面不局限于在图I所示的计算机系统中实现。实施例的多个方面可以在具有与图I不同的架构或组件的一个或多个计算机中实现。
计算机系统100可以是通用计算机系统,其可以使用高级可编程语言进行编程。 计算机系统100也可以使用专用程序、专用硬件来实现。在计算机系统100中,处理器103 是通常可以在市场中得到的处理器,例如著名的可以从Intel公司获得的奔腾类型处理器。也可以利用许多其它处理器。这种处理器通常运行操作系统,该操作系统可以是例如, 可以从微软公司获得的 Windows 95、Windows 98、Windows NT、Windows 2000 (WindowsME) 或Windows XP操作系统,可以从苹果公司获得的MAC OS System X操作系统,可以从Sun Microsystems公司获得的Solaris操作系统,或者可以从各种来源获得的UNIX操作系统。 可以使用许多其它操作系统包括专门设计用于移动和固定、无线通信设备的那些操作系统。
处理器和操作系统一起定义了计算机平台,并为该计算机平台使用高级编程语言编写应用程序。应当理解,实施例不局限于特定的计算机系统平台、处理器、操作系统或网络。并且显而易见地,对本领域技术人员来说,实施例不局限于特定的编程语言或计算机系统。此外,应该注意,也可以使用其它合适的编程语言和其它合适的计算机系统。
计算机系统的一个或多个部分可以分布在耦合至通信网络的一个或多个计算机系统上。这些计算机系统也可以是通用计算机系统。例如,实施例的多个方面可以分布在一个或多个计算机系统中,这些计算机系统配置用于为一个或多个用户计算机提供服务(例如,服务器),或用于作为分布系统的一部分来执行总的任务。例如,实施例的多个方面可以在用户服务器或多级系统上执行,该用户服务器或多级系统包括分布在一个或多个根据多个实施例执行多个功能的服务器系统中的组件。这些组件可以是可执行的、中间的(例如,IL)或被解释的(例如,Java)代码,该代码使用通信协议(例如,TCP/IP)通过通信网络(例如,互联网)进行通信。
应当注意,实施例不局限于在任意特定系统或系统组上执行。并且,应当注意实施例不局限于任意特定的分布式结构、网络或通信协议。
可以使用面向对象编程语言,例如SmallTalk、Java、C++、Ada、或C# (C-Sharp),来对多种实施例进行编程。也可以使用其它面向对象编程语言。可选地,可以使用功能性、脚本和/或逻辑编程语言。实施例的多个方面也可以在非编程环境中实现(例如,以HTML、 XML或其它格式创建的文档,其中当在浏览程序窗口中查看这些文档时,呈现出图形用户界面(GUI)的视图或执行其它功能)。
现在结合针对在802. Iln无线环境中的通信设备的示例性应用,来解释实施例的多个方面。
802. Iln规范考虑了 20MHz和40MHz的信道化。传统设备使用64点I/FFT作为在20MHz信道上生成正交数据的方法。因此,传统思想建议支持需要使用用于20MHz信道化的64点FFT和用于40MHz信道化的128点FFT的两种模式。该方法可应用于任意目标 RF 频带(2. 4GHz,5GHz)。
已经发现,在某些方面混合基实现方法优化了数据流和寻址技术,以允许两种操作在相同的体系结构和存储空间中执行。此外,在某些方面,混合基实现方法将蝶形结构与旋转乘法分开,以便利用高数据速率与时钟比的优势并且对复数旋转乘法使用通用阵列处理器(GPAP)。最后,示例性实施例特别适用于2x2MM0系统,该系统能够支持达到2组并行数据流。尽管如此,该设计是可以升级的并且能够容易地适用于其它MMO配置。
示例性混合基实现方法使用基2和基4两种蝶形结构来执行64点和128点两种 FFT和IFFT。该结构也可以根据需要调整为其它数目的输入点。根据一种配置,执行128 点FFT。将时域采样点应用到基2蝶形运算,使128点FFT分解为两个64点运算。基4蝶形运算使用最少次数的乘法来执行两个64点FFT。图3示出了混合基蝶形运算的结构。如所示的配置,图3的混合基结构示出了使用两种基结构的完全128点FFT运算的分解。
图3的结构可以使用复用器来重新配置,以省略初始基2蝶形运算,将输入直接引入基4蝶形运算级。因此,128点FFT和64点FFT两种运算都可以仅使用基2蝶形运算和基4蝶形运算来执行。
基2蝶形运算和基4蝶形运算执行按频率抽取(DIF)方法以简化多级间的控制逻辑。可以使用为其它运算或结构参数优化的其它方法。如图3所示,根据示例性实施例,将 128点FFT分解为两个64点FFT需要将输出值乘以相对于全128点单位圆的旋转因子。在这级之后,各个基4级还包括旋转因子乘法运算。使用DIF方法实现基4蝶形运算维持了蝶形-旋转-蝶形-旋转的顺序。
逆FFT运算(IFFT)与FFT结构相同。通过反转各个旋转因子的符号(即旋转方向)以及还通过在基4蝶形运算中对j_乘进行逆运算,来从前述结构中得到IFFT。
为了简化硬件,全部处理是顺序进行的并利用GPAP来执行旋转乘法运算。例如, 只要有一个基2蝶形运算和一个基4蝶形运算以及合适的存储单元即足以执行所需要的运算。为了分别执行128点FFT或64点FFT (或IFFT),将这些点成对地应用到基2蝶形运算或以4个为一组地应用到基4蝶形运算。这种类型的结构将会为需要所述FFT/IFFT功能的任意设备节省有效区域。
以上结构适于处理单个数据流。如在2x2MM0系统的情况下,支持多个并行数据流,只需增加用于数据存储和蝶形互连的附加硬件,以及附加GPAP。其它并行数据流使用相同的控制信号、寻址和旋转系数,产生可应用于多种MMO配置的可升级设计。
该结构清晰地分成两个部分或模块集合,控制部分和数据路径部分。当调整实施例时,使用相同的数据路径部分,因此增加附加流只增加了数据路径部分,而控制部分对于不同数目的数据流和数据路径保持相同。
可以采用易于支持用于FFT和IFFT两种运算的64点和128点运算的存储结构。 在典型的802. 11实施中,IFFT用于分组传输。输入数据能够以相对较高的处理速度,即 200MHz充满到模块中,而输出数据通过传输数据速率,即20兆符号每秒(Msps)或40Msps 来调节。相反地,在分组接收期间到达FFT的输入数据局限于同样的传输数据速率,即 200Msps或40Msps。FFT输出数据能够以200Mz的处理速度突发以用于解调和解码。
如图4所示,具有数据速率-时钟比为50或100的双缓冲结构满足了这些假设。 双缓冲循环用法基于控制分配。如图5的时序图所示,定义了 3种模式写输入,蝶形运算读写,读输出。对模式分配进行排序以处理上述不同的输入和输出场景。在IFFT模式中, 一个缓冲接收突发输入并且随后以时钟速度执行基运算。在此期间,以传输数据率读出第二缓冲。应该注意这并不限定读取输出数据的方式-该方式可以是突发的或者在采样中延迟。以传输速率的间隔调整缓冲,例如对于802. 11为每4 ii S。对于第一 OFDM符号,各个模式通过第一缓冲进行处理。为了确保保持传输速率,当第一符号输出数据被读出时,第二 OFDM符号处理必须开始。这时,输入模式在第二缓冲上初始化,并且该过程重复。在FFT 模式中,第一 OFDM符号同样地通过第一缓冲进行处理。然而,因为输入数据是连续的,第二 OFDM符号立即在第二缓冲上开始。假设给定处理速率,确保在第二 OFDM符号完全写入之前完成第一 OFDM符号蝶形运算和输出操作。图5示出了用于FFT和IFFT处理的存储模式重叠。如果处理速率没有高到足以确保所示的时序,存储结构将需要用于各个模式的专用缓冲,或在所示实例种需要三个缓冲。
图4的存储结构的另一个特征是在缓冲内处理数据以支持64点和128点运算的数据处理方式。各个缓冲的大小是针对最大128个条目的情况设置的,但是该缓存被设置为2x64即两个并列的64条目区,而不是1x128即一个128条目区。顺序写入输入数据,使得被64分割的条目被写到相同可寻址位置的两个相邻半区中,即,第65个条目占用与第0 个条目或(i,i+64)相同地址的后一半地址。例如,如果各条目是I字节(byte)宽,并且各个可寻址位置是I字(word)宽,即两字节宽,则项目i可以写到字的高位字节中,项目i+64 可以写到相同字的低位字节中。为了满足实现和性能的需要,可以使用其它条目大小。在字可寻址存储器情况中,缓冲字节-写使能允许这种设计假设,因为如这里所说明的在64点和128点运算中一次性读出整个项目对(i,i+64),所以该假设是为64点和128点两种运算重用控制逻辑的关键,其中缓冲字节-写使能提供了特殊寻址模式,在该模式中只写入字可寻址存储器位置中的一个字节而不干扰其它字节。在基2蝶形运算中,分解操作将被64分割的数据对进行组合。使两组并行可用允许在单个循环或总计64个循环中执行蝶形运算。在基4蝶形运算中,对于64点运算需要4次存取,但是在128点FFT情况中,读取操作为两个64点运算提供数据。这种并行存取意味着第二个64点运算不会带来任何附加延迟。对于只是64点的运算,只需忽略条目64-127中的数据。
这种存储器结构描述了单个数据流所需的特征。对于N个并行流,该结构应当复制N次。
对应三种存储模式存在三种寻址模式写输入,蝶形存取(读取或写入),读输出。 如先前所述,所有地址的生成独立于N,即并行流的数目。所有处理流共享相同的寻址逻辑。
写输入是按次序有序的。尽管如此,接口支持不同条件以匹配运算(正向或逆向) 和阶次(64点或128点)。在分组接收期间,输入按次序抵达而与阶次无关,每次一个采样。 接收模式匹配正向运算,因此在这种情况下,从索引0到63顺序地将输入写入到低位存储对。在128点模式中,写输入继续,再次从索引0到63,但是写入相同存储器缓冲的高位存储对中。对于64点模式,输入再次写入到低位存储对,但是写入其它缓冲。在分组发送期间,或在逆运算期间,假设在128点模式中数据可以成对获得。这样,对于从索引0到63的各个循环写入全部存储对。在64点模式中,只写入低位存储对。
46对于蝶形存取,创建简化控制逻辑以便在不工作时生成地址,而不使用LUT来存储用于基2和基4级的寻址次序。首先考虑基4运算,64点FFT需要3级每级具有16个蝶形运算。对在DIF算法的各级中的寻址次序仔细检查之后,缓冲地址仅仅是对模64计数器(6比特)的重新排序。在第一级中,到各个蝶形运算的4个输入被16分割。通过按照 [1:0] [5:2]重新排列计数器比特,顺序计数产生数值0,16,32,48,1,17,33,49, 15,31, 47,63。在第二级中,4个输入被4分割。按照[5:4] [1:0] [3:2]重新排列计数器比特产生数值 0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15, 51,55,59,63。在第三和终级中,4 个输入是顺序的,所以计数器比特不重新排列。
基2运算包括具有被64分割的输入的64个蝶形运算。假定先前所描述的缓冲存储对,基2寻址能够使用任意随机顺序,因为各个读取提供了已经被64分割的两个输入。为了简化起见,顺序匹配基4运算的第一级。所以不论FFT阶次(64或128),在一个6比特计数器内包含所有寻址。
读输出需要特殊处理。尽管在适当的位置完成基处理,但是该基处理按照反比特顺序产生输出。因此,输出寻址必须将索引重新排列。对于所需的输出顺序,只需要从[5:0] 到[1:0] [3:2] [5:4]对地址比特进行比特交换。对于128点运算,同时输出存储对。在按 64分割输入时,蝶形运算产生顺序对作为输出。在64点模式中,输出控制只是不触发用于高位存储对的输出有效。这适合于64点和128点无缝处理。
旋转因子取决于处理的基和级。对于基2级,旋转因子顺序位于128点单位圆周围,如图6所示,或者是Wnl28其中n = 0. . . 63。对于第一基4级,旋转因子也是顺序的,但是在64点单位圆周围以4个为一组,或者是Wnk64其中n = 0. . . 15且k = 0. . . 3。对于第二基4级,旋转因子也是以4个为一组,但是在16点单位圆周围,或者是Wnkl6其中n =0.. . 3且k = 0. . . 3。在最后的基4级中,旋转因子全部是I。
该示例性实施例选择使用混合模寻址和部分查找表(LUT)方法来在不工作时生成旋转因子,而不是将全部系数存储到LUT中。使用128点单位圆作为参考(参见图6),各个象限内的余弦值和正弦值相互为镜像复制,并且在给定象限内的数值还能够围绕中心点进行镜像。因此,部分LUT仅需要存储半个象限的“x”和“y”值,或128/4/2+1 = 17个条目(第17个条目是对数值在周围进行镜像的中心点)。后面的图6示出了二分之一个象限如何围绕单位圆映射到余弦值和正弦值。
如此对至少一个实施例的若干方面进行了描述,应当注意,各种变体、修改和改进对本领域技术人员而言是显而易见的。这些变体、修改和改进旨在作为本公开的一部分,并且旨在属于本公开的精神和范围内。
权利要求
1.一种用于执行快速傅立叶变换(FFT)的处理器,包括至少一个基2蝶形结构;至少一个基4蝶形结构;缓冲结构,其用于输入数据流并且存储从所述基2蝶形结构和所述基4蝶形结构输出的数据;FFT逻辑,其被配置为通过将数据流交替地耦合到所述基2蝶形结构的输入或所述基4 蝶形结构的输入,在多级中对所述数据流执行FFT,其中,取决于所选择的输入,所述FFT逻辑能够执行至少两种不同分辨率的快速傅立叶变换;以及地址生成逻辑,其被配置为通过对顺序计数器的比特进行重新排列,生成在所述多级期间用于所述缓冲结构的缓冲地址,以及其中,所述缓冲结构是以并行成对配置来构造的,以使得在第一分辨率下对所述基4 蝶形结构的寻址可重用于在第二分辨率下对所述基2蝶形结构的寻址。
2.如权利要求I所述的处理器,还包括逆FFT(IFFT)逻辑,其被配置为通过将接收数据流交替地耦合到所述基2蝶形结构的输入或所述基4蝶形结构的输入,在多级中对所述接收数据流执行IFFT,其中,取决于所选择的输入,所述IFFT逻辑能够执行至少两种不同分辨率的IFFT。
3.如权利要求I所述的处理器,其中所述缓冲结构包括至少第一缓冲和第二缓冲,其中的每个缓冲被安排为并列的N条目区;并且由N分割的条目被写入相同的可寻址位置的相邻半区。
4.如权利要求3所述的处理器,其中每个条目为一字节宽;每个可寻址位置为两字节宽;并且由N分割的条目被与入相同的可寻址字中的最闻有效字节和最低有效字节。
5.如权利要求4所述的处理器,其中,当使用对应于所述相同的可寻址字的缓冲地址来进行寻址时,将被写入所述相同的可寻址字的字节对同时从所述缓冲结构读出。
6.如权利要求I所述的处理器,其中所述FFT逻辑在至少第一级和第二级中执行FFT运算;并且所述地址生成逻辑通过以下方式来生成所述缓冲地址以第一方式对所述顺序计数器的比特进行重新排列以在所述第一级中生成由第一量值分割的缓冲地址,并且以第二方式对所述顺序计数器的比特进行重新排列以在所述第二级中生成由第二量值分割的缓冲地址。
7.一种用于无线通信的装置,包括至少一个基2蝶形结构;至少一个基4蝶形结构;缓冲结构,其用于输入数据流并且存储从所述基2蝶形结构和所述基4蝶形结构输出的数据,其中,所述缓冲结构是以并行成对配置来构造的,以使得在第一分辨率下对所述基 4蝶形结构的寻址可重用于在第二分辨率下对所述基2蝶形结构的寻址;快速傅立叶变换(FFT)逻辑,其被配置为通过将数据流交替地耦合到所述基2蝶形结构的输入或所述基4蝶形结构的输入以在多级中对所述数据流执行FFT的方式来生成发送符号,其中,取决于所选择的输入,所述FFT逻辑能够执行至少两种不同分辨率的快速傅立叶变换;地址生成逻辑,其被配置为通过对顺序计数器的比特进行重新排列,生成在所述多级期间用于所述缓冲结构的缓冲地址;以及发射机,其用于发送所述发送符号。
8.如权利要求7所述的装置,还包括逆FFT (IFFT)逻辑,其被配置为通过将接收数据流交替地耦合到所述基2蝶形结构的输入或所述基4蝶形结构的输入,在多级中对所述接收数据流执行IFFT,其中,取决于所选择的输入,所述IFFT逻辑能够执行至少两种不同分辨率的IFFT。
9.如权利要求7所述的装置,其中所述缓冲结构包括至少第一缓冲和第二缓冲,其中的每个缓冲被安排为并列的N条目区;并且由N分割的条目被写入相同的可寻址位置的相邻半区。
10.如权利要求9所述的装置,其中每个条目为一字节宽;每个可寻址位置为两字节宽;并且由N分割的条目被与入相同的可寻址字中的最闻有效字节和最低有效字节。
11.如权利要求10所述的装置,其中,当使用对应于所述相同的可寻址字的缓冲地址来进行寻址时,将被写入所述相同的可寻址字的字节对同时从所述缓冲结构读出。
12.如权利要求7所述的装置,其中所述FFT逻辑在至少第一级和第二级中执行FFT运算;并且所述地址生成逻辑通过以下方式来生成所述缓冲地址以第一方式对所述顺序计数器的比特进行重新排列以在所述第一级中生成由第一量值分割的缓冲地址,并且以第二方式对所述顺序计数器的比特进行重新排列以在所述第二级中生成由第二量值分割的缓冲地址。
13.一种用于执行快速傅立叶变换(FFT)的方法,包括通过将数据流交替地耦合到基2蝶形结构的输入或基4蝶形结构的输入,在多级中对所述数据流执行快速傅立叶变换(FFT);取决于所述输入来选择要对所述数据流执行的至少两种不同分辨率的快速傅立叶变换中的一个;以及通过对顺序计数器的比特进行重新排列,生成在所述FFT的所述多级期间用于将数据输入或输出缓冲结构的缓冲地址,所述缓冲结构包括至少第一缓冲和第二缓冲,所述第一缓冲和所述第二缓冲被安排为并列的N条目区;并且由N分割的条目被写入相同的可寻址位置的相邻半区。
14.如权利要求13所述的方法,其中每个条目为一字节宽;每个可寻址位置为两字节宽;并且由N分割的条目被与入相同的可寻址字中的最闻有效字节和最低有效字节。
15.如权利要求14所述的方法,其中当使用对应于所述相同的可寻址字的缓冲地址来进行寻址时,将被写入所述相同的可寻址字的字节对同时从所述缓冲结构读出。
16.如权利要求13所述的方法,其中所述FFT逻辑在至少第一级和第二级中执行FFT运算;并且所述地址生成逻辑通过以下方式来生成所述缓冲地址以第一方式对所述顺序计数器的比特进行重新排列以在所述第一级中生成由第一量值分割的缓冲地址,并且以第二方式对所述顺序计数器的比特进行重新排列以在所述第二级中生成由第二量值分割的缓冲地址。
17.一种用于执行快速傅立叶变换(FFT)的装置,包括用于通过将数据流交替地耦合到基2蝶形结构的输入或基4蝶形结构的输入,在多级中对所述数据流执行快速傅立叶变换(FFT),从而能够取决于所选择的输入来执行至少两种不同分辨率的快速傅立叶变换的模块;以及用于通过对顺序计数器的比特进行重新排列,生成在FFT的所述多级期间用于将数据输入或输出缓冲结构的缓冲地址的模块,其中,所述缓冲结构是以并行成对配置来构造的, 以使得在第一分辨率下对所述基4蝶形结构的寻址可重用于在第二分辨率下对所述基2蝶形结构的寻址。
18.如权利要求17所述的装置,其中所述缓冲结构包括至少第一缓冲和第二缓冲,其中的每个缓冲被安排为并列的N条目区;并且由N分割的条目被写入相同的可寻址位置的相邻半区。
19.如权利要求18所述的装置,其中每个条目为一字节宽;每个可寻址位置为两字节宽;并且由N分割的条目被与入相同的可寻址字中的最闻有效字节和最低有效字节。
20.如权利要求19所述的装置,其中当使用对应于所述相同的可寻址字的缓冲地址来进行寻址时,将被写入所述相同的可寻址字的字节对同时从所述缓冲结构读出。
21.如权利要求17所述的装置,其中所述用于执行所述FFT的模块包括用于在至少第一级和第二级中执行FFT运算的模块;并且所述用于生成所述缓冲地址的模块包括用于通过以下方式来生成所述缓冲地址的模块以第一方式对所述顺序计数器的比特进行重新排列以在所述第一级中生成由第一量值分割的缓冲地址,并且以第二方式对所述顺序计数器的比特进行重新排列以在所述第二级中生成由第二量值分割的缓冲地址。
22.一种用于执行快速傅立叶变换(FFT)的软件存储装置,所述软件存储装置包括具有存储在其上的指令的存储器,其中,所述指令可由一个或多个处理器执行,所述指令包括用于通过将数据流交替地耦合到基2蝶形结构的输入或基4蝶形结构的输入,在多级中对所述数据流执行快速傅立叶变换(FFT),从而能够取决于所选择的输入来执行至少两种不同分辨率的快速傅立叶变换的代码;以及用于通过对顺序计数器的比特进行重新排列,生成在FFT的所述多级期间用于将数据输入或输出缓冲结构的缓冲地址的代码,其中,所述缓冲结构是以并行成对配置来构造的, 以使得在第一分辨率下对所述基4蝶形结构的寻址可重用于在第二分辨率下对所述基2蝶形结构的寻址。
23.如权利要求22所述的软件存储装置,其中所述缓冲结构包括至少第一缓冲和第二缓冲,其中的每个缓冲被安排为并列的N条目区;并且由N分割的条目被写入相同的可寻址位置的相邻半区。
24.如权利要求23所述的软件存储装置,其中每个条目为一字节宽;每个可寻址位置为两字节宽;并且由N分割的条目被与入相同的可寻址字中的最闻有效字节和最低有效字节。
25.如权利要求24所述的软件存储装置,其中当使用对应于所述相同的可寻址字的缓冲地址来进行寻址时,将被写入所述相同的可寻址字的字节对同时从所述缓冲结构读出。
26.如权利要求22所述的软件存储装置,其中所述用于执行所述FFT的代码包括用于在至少第一级和第二级中执行FFT运算的代码;并且所述用于生成所述缓冲地址的代码包括用于通过以下方式来生成所述缓冲地址的代码以第一方式对所述顺序计数器的比特进行重新排列以在所述第一级中生成由第一量值分割的缓冲地址,并且以第二方式对所述顺序计数器的比特进行重新排列以在所述第二级中生成由第二量值分割的缓冲地址。
全文摘要
本专利申请涉及多端口混合基FFT,具体提出了一种用于执行快速傅立叶变换(FFT)的处理器,包括至少一个基2蝶形结构;至少一个基4蝶形结构;缓冲结构,其用于输入数据流并且存储从所述基2蝶形结构和所述基4蝶形结构输出的数据;FFT逻辑,其被配置为通过将数据流交替地耦合到所述基2蝶形结构的输入或所述基4蝶形结构的输入,在多级中对所述数据流执行FFT,其中,取决于所选择的输入,所述FFT逻辑能够执行至少两种不同分辨率的快速傅立叶变换;以及地址生成逻辑,其被配置为通过对顺序计数器的比特进行重新排列,生成在所述多级期间用于所述缓冲结构的缓冲地址,以及其中,所述缓冲结构是以并行成对配置来构造的,以使得在第一分辨率下对所述基4蝶形结构的寻址可重用于在第二分辨率下对所述基2蝶形结构的寻址。本专利申请还提出了用于执行快速傅立叶变换(FFT)的方法和装置。
文档编号G06F17/14GK102541812SQ20111038677
公开日2012年7月4日 申请日期2007年4月27日 优先权日2006年4月28日
发明者G·W·施 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1