使用大小减半的存储器的快速傅立叶变换处理器和方法

文档序号:7612000阅读:207来源:国知局
专利名称:使用大小减半的存储器的快速傅立叶变换处理器和方法
技术领域
本发明涉及一种有线/无线通信系统,并尤其涉及一种用于在有线/无线通信的收发机中执行调制或解调的快速傅立叶变换处理器。
背景技术
诸如无线LAN、非对称数字用户线(ADSL)、超高数据率数字用户线(VDSL)、正交频分多路复用(ODFM)、数字音频广播(DAB)、以及多载波调制(MCM)系统的技术和应用需要能够执行快速傅立叶变换的处理器。快速傅立叶变换算法通过从离散傅立叶变换(如等式1的变换)中移除重复计算,而减少执行的计算数目。在等式1中,n表示时间指数(time index),k表示频率指数(frequency index),而N表示点数,或输入数据的数目。通常,在接收机中执行的快速傅立叶变换将时域信号变换为频域信号。在发射机中执行的快速傅立叶逆变换将频域信号变换为时域信号。在傅立叶逆变换中,执行快速傅立叶变换的逆过程。快速傅立叶变换将串行输入的数据流x(n)变换为N点并行数据,将并行变换的数据X(k)调制到副载波上并传送,由此增加了数据传输率。
X(k)=Σn=0N-1x(n)e-j2πNnk,0≤k≤N-1]]>等式1为了执行快速傅立叶变换,如果输入数据的数目m用于基m蝶式(butterfly)运算,则FFT运算所需要的级数等于通过对输入数据的总数N以m为底取对数而得到的值,并且,在每级执行多次基m蝶式运算。在每级中,作为用m来执行蝶式运算的结果,将m个新数据存储在具有与输入数据的地址相同的地址的不同存储单元中。在快速傅立叶变换中,由于时域和频域的属性不同,所以,一般执行数据校准(data alignment)操作,如位混洗(bitshuffling)。使用存储在存储器的预定地址中的数据来执行蝶式运算,并且,通过复杂的硬件来实现存储作为蝶式运算的结果而改变的数据的位混洗操作。然而,当使用了需要复杂硬件的序贯设计(sequential design)或流水线设计时,由于复杂的硬件使得难以实现延迟转换器(delay commutator)。延迟转换器为在每级快速傅立叶变换中执行数据校准的单元。当输入数据的数目较小时,通过移位寄存器来实现延迟转换器。当输入数据的数目较大时,会增加移位寄存器的制造成本和大小。因此,存储器替代移位寄存器用于此操作。上述配置为确定硬件设计中需要的存储器大小的重要因素。
通常,在蝶式运算中,基2算法处理两个输入数据来生成两个新数据。基2算法反复地读取两个数据、并将两个运算结果写入到不同存储器的相同地址。为了增加硬件利用率和减少执行运算所需时间,最多同时执行两个数据读取操作和两个数据写入操作。为了通过硬件来实现最多四个同步数据操作,为此目的而使用由只读存储器和只写存储器组成的两个双端口(dual-port)存储器,或使用流水线架构。
图1为采用两个双端口存储器的传统快速傅立叶变换处理器100的方框图。参照图1,快速傅立叶变换处理器100包括各自存储16点数据的第一和第二存储单元110和120、以及蝶式计算元件130。图2为用于说明图1的快速傅立叶变换处理器100的基2算法的示意图。在图2中,假定输入数据为16点数据。参照图1和2,在使用存储16点数据的两个双端口存储器的传统快速傅立叶变换处理器100中,只读存储器和只写存储器在每级运算中分离,并且,最多同时执行四个操作(两个读取操作和两个写入操作)。由于将只读存储器改变为只写存储器,并且反之亦然,以前进到下一级运算,所以不出现数据冲突。例如,在第一级运算中,第一存储单元110用作只读存储器,并输出16点输入数据,而第二存储单元120为存储基2蝶式运算的结果的只写存储器。在第二级运算中,第二存储单元120用作只读存储器,并输出来自第一运算级的结果,而第一存储单元110被改变为存储使用新系数的基2蝶式运算的结果的只写存储器。由于在下一级中只读存储器作为只写存储器操作,并且反之亦然,所以,不产生输入数据和输出数据之间的冲突,并且,仅使用蝶式运算的一个计算元件。然而,所需存储器的大小为输入数据的大小的两倍。
图3为具有流水线架构的传统快速傅立叶变换处理器300的方框图。参照图3,快速傅立叶变换处理器300包括存储16点数据的第一存储器410、存储16/2点数据的第二存储器420、存储16/4点数据的第三存储器430、存储16/8点数据的第四存储器、第一蝶式计算元件411、第二蝶式计算元件421、第三蝶式计算元件431、第一延迟转换器412、第二延迟转换器422、以及第三延迟转换器432。图4为用于说明图3的快速傅立叶变换处理器的基2算法的示意图。参照图3和4,具有流水线架构的快速傅立叶变换处理器300在每级运算中使用用于蝶式运算的计算元件,并且,在每级运算需要的存储器和延迟转换器的大小逐渐变小。参照图4,实际上不需要存储区423、433到435、以及443到449,并且它们和存储区420、430和440一样在各级被共享。如上所述,在传统的流水线架构中,将所述区分类为与在相同级执行相同操作的地址对应的区,并在每级重复使用用于蝶式运算的计算元件。在流水线架构中,可在未完成前一级运算的状态下,开始与在连续级之间没有数据相关性的地址对应的数据区的下一级蝶式运算,由此减小了获得最终变换结果FD需要的时间。然而,在每级运算中,需要用于蝶式运算的计算元件、延迟转换器、以及存储器N+N/2+N/4+N/8+...,由此增加了硬件成本。
如上所述,在基m运算中,用于蝶式计算元件的硬件成本的增加仅和蝶式运算中需要的输入数据的数目m有关,并且,用于蝶式计算元件的硬件成本并不和输入数据的点大小N的增加相关地增加。由于存储每级运算的结果的存储器的成本而导致大部分硬件成本,所以当输入数据的点大小N增加时,成本显著增加。

发明内容
本发明提供一种执行新快速傅立叶变换算法的处理器,其中,使用虚拟地址空间来变换每个蝶式运算级中的数据数组运算,以减小用于执行该算法的存储器的大小。
本发明还提供一种快速傅立叶变换处理方法,其中,使用优化存储器来执行数据数组运算。
根据本发明的一个方面,提供了一种快速傅立叶变换处理器,包括存储单元,用于接收N点输入数据,存储N点输入数据,在第一级运算中存储使用输入数据而计算出的N点蝶式运算结果,并在余下的(logmN)-1个运算级的每级中存储根据存储的前一级运算的蝶式运算结果而计算出的N点蝶式运算结果;以及蝶式计算元件,用于对存储在存储单元中的N点数据执行基m运算,以生成被存储在存储单元中的N点蝶式运算结果。
在一个实施例中,该存储单元包括第一存储单元,用于存储N点数据中的N/2点数据;以及第二存储单元,用于存储N点数据中的另外N/2点数据。
在另一个实施例中,例如,蝶式运算包括基2、基4、或基8运算。第一存储单元和第二存储单元可包括双端口存储单元。
在另一个实施例中,蝶式计算元件从第一存储单元和第二存储单元中的每个接收m/2个数据,以执行基m运算;将基m运算结果划分为m/2个数据;以及将划分为m/2个数据的基m运算结果存储在第一存储单元和第二存储单元的每个中。蝶式计算元件同时存储基m运算结果,并接收要在随后的基m运算中使用的m个数据。蝶式计算元件将基m运算结果存储到同步操作之前输入的数据的地址。蝶式计算元件在两个或更多周期期间执行基m运算,在一个周期期间执行同步操作,并使用在同步操作之前输入的数据而在同步操作期间执行下一个基m运算。
根据本发明的另一个方面,提供了一种快速傅立叶变换处理方法,包括接收并存储N点输入数据;在logmN个运算级中的第一运算级,存储使用输入数据而计算出的N点蝶式运算结果;在余下的(logmN)-1个运算级中的每级,存储根据存储的前一级运算的结果而计算出的N点蝶式运算结果;以及分别在logmN个运算级的每级中,利用存储的N点数据来执行基m蝶式运算,以生成N点蝶式运算结果。
在一个实施例中,存储操作包括将N点数据中的N/2点数据存储在第一存储器中;以及将N点数据中的另外N/2点数据存储在第二存储器中。例如,运算的基数可为基2、基4、或基8。第一存储单元和第二存储单元可包括双端口存储单元。
在另一个实施例中,生成蝶式运算结果的操作包括对从第一存储器接收的m/2个数据和从第二存储器接收的m/2个数据执行基m运算;将基m运算结果划分为m/2个数据;以及将划分为m/2个数据的基m运算结果存储在第一存储单元和第二存储单元中。可选地,生成蝶式运算结果的操作包括同时存储基m运算结果、并接收要在随后的基m运算中使用的m个数据。另外,生成蝶式运算结果的操作还可选地包括将基m运算结果存储到同步操作之前输入的数据的地址。生成蝶式运算结果的操作还可选地包括在两个或更多时钟周期期间执行基m运算;在一个时钟周期期间执行同步操作;以及在同步操作期间,使用在同步操作之前输入的数据来执行随后的基m运算。


通过参照附图来详细描述本发明的示范实施例,本发明的以上和其它特征和优点将变得更为清楚,其中图1为使用两个双端口存储器的传统快速傅立叶变换处理器的方框图;图2为用于说明图1的快速傅立叶变换处理器的基2算法的示意图;图3为具有流水线架构的传统快速傅立叶变换处理器的方框图;图4为用于说明图3的快速傅立叶变换处理器的基2算法的示意图;图5为根据本发明的实施例的快速傅立叶变换处理器的方框图;图6为用于说明图5的快速傅立叶变换处理器的基2算法的示意图;图7为图5的蝶式计算元件的方框图;图8为用于说明图5的快速傅立叶变换处理器的操作的时序图;以及图9为用于详细说明图5的存储单元的操作的示意图。
具体实施例方式
参照用于图解本发明的优选实施例的附图,以获得对本发明及其优点、以及通过实现本发明而达到的目的的足够理解。
下面,将通过参照

本发明的优选实施例,来详细描述本发明。附图中,相同的附图标记表示相同的元件。
如图1所示,在使用存储16点数据的两个双端口存储器的传统快速傅立叶变换处理器100中,作为只读存储器操作的存储单元与作为只写存储器操作的存储单元分离,并且,在蝶式计算元件130的基运算中,处理器100最多同时执行两个读取操作和两个写入操作。然而,在每级的基运算中,需要各自具有容纳数据宽度(即16点)的大小的只读存储器和只写存储器。因此,本发明的一个方面提供一种仅需要存储器的一半数量的新快速傅立叶变换算法。使用两个双端口、一半大小的存储器,即数据宽度的一半大小的存储器,并且,将蝶式运算中的数据数组运算变换为作为流水线架构操作,由此提供仅需要一个蝶式计算元件的新快速傅立叶变换系统和处理。
图5为根据本发明的实施例的快速傅立叶变换处理器的方框图。参照图5,快速傅立叶变换处理器500包括两个分离的存储单元510和520、以及蝶式计算元件530。存储单元510和520包括第一双端口存储单元510和第二双端口存储单元520。
如所公知的,在快速傅立叶变换的数据数组运算中,如果输入数据数目m被用于基m蝶式运算,则FFT运算所需的级数等于通过对输入数据的总数N以m为底取对数而得到的值,即logmN。下面,假定快速傅立叶变换的大小N为16,并且蝶式计算元件530执行基2蝶式运算。然而,根据本发明的实施例的快速傅立叶变换处理器500不限于上述内容,而快速傅立叶变换的大小N可取决于系统大小而为任意数,例如256、512、1024、或2048。蝶式计算元件530不仅执行基2蝶式运算,还根据系统大小而执行基4、基8等蝶式运算。
在上述假定下,第一存储单元510存储N(16)点输入数据的N/2(8)点数据。第二存储单元520存储(16)点输入数据的另外N/2(8)点数据。
图6为用于说明图5的快速傅立叶变换处理器的基2算法的示意图。
参照图6,第一存储单元510和第二存储单元520各自接收并存储总共N(16)点输入数据中的N/2(8)点。接下来,存储单元510和520存储通过对输入数据执行第一级运算而计算出的N(16)点的蝶式运算结果。接下来,在从第二运算级到(logmN)-1运算级(此例子中为第四运算级)的每级运算中,存储单元510和520存储从所存储的前一级运算的结果而计算出的N(16)点的蝶式运算结果。在此情况中,在任意给定时间,第一存储单元510和第二存储单元520不作为只读存储器或只写存储器操作。在传统的双端口存储器处理中,只读存储器和只写存储器相互转换。然而,根据本发明的实施例,参照图6,使用新的存储器读取寻址处理和新的存储器写入寻址处理,以避免数据冲突。
通常,在传统架构中,在每级运算中,对于基2运算来说,将基2蝶式运算结果存储在与从只读存储器输入的数据的地址相同的只写存储器的地址中。并且,在基2蝶式运算中使用只读存储器的所有数据,将基2蝶式运算的结果存储在只写存储器中,将只读存储器的内容转移到只写存储器,并将只写存储器的内容转移到只读存储器。相反,在本发明的实施例中,第一存储单元510和第二存储单元520不用作只读存储器或只写存储器,并且在每级运算中同时执行读取操作和写入操作。例如,参照图2,在第一级运算中,将对第一存储单元110的地址(0)的数据和地址(8)的数据执行的传统的基2蝶式运算的结果存储为第二存储单元120的地址(8)的数据和地址(0)的数据。然而,参照图6,在本发明中,在第一级运算中,将对第一存储单元510的地址(0)的数据和第二存储单元520的地址(8)的数据执行的基2蝶式运算的结果存储为第一存储单元510的地址(4)的数据和地址(0)的数据。并且,参照图6,在本发明中,在第一级运算中,将对第一存储单元510的地址(4)的数据和第二存储单元520的地址(12)的数据执行的基2蝶式运算的结果存储为第二存储单元520的地址(12)的数据和地址(8)的数据。在此情况中,第一存储单元510和第二存储单元520不同时执行两个写入操作,而可通过以流水线传递操作的方式执行寻址,来同时在一个存储器中执行读取操作和写入操作。下面将通过参照图8和9来详细描述寻址处理。
图7为图5的蝶式计算元件530的方框图。
参照图7,蝶式计算元件530包括乘法器531、加法器532、以及减法器533。尽管图解了用于基2运算的蝶式计算元件530的结构,但可将根据本发明的实施例的快速傅立叶变换处理器500应用到用于基4运算或基8运算等的蝶式计算元件的结构。在logmN(4)个运算级中的各级执行基运算8次,以相应地得到离散傅立叶变换结果,如由等式1得到的结果,通过logmN(4)级运算来完成数据数组运算。在一般通信理论中充分描述了离散傅立叶变换和基运算。
在logmN(4)级的各级运算中,蝶式计算元件530为存储在存储单元510和520中的N(16)点数据执行基m(2)运算。将蝶式计算元件530计算出的N(16)点蝶式运算的结果再次存储在存储单元510和520中。在每级中,蝶式计算元件530从第一存储单元510和第二存储单元520一个接一个地接收数据,并将两个运算结果逐个存储在第一存储单元510和第二存储单元520中。在每级利用N(16)个输入数据来执行蝶式运算,并总共重复执行8次。例如,参照图7,通过使用预定系数COEF来对第一存储单元510的地址(0)的数据“0”和第二存储单元520的地址(8)的数据“8”执行基2蝶式运算而获得的结果在预定数目的系统时钟周期之后又成为第一存储单元510的地址(0)的数据“0”和地址(4)的数据“8”。这里,为了描述的方便,假定蝶式运算的结果具有和输入数据的值相同的值。也就是说,输入到蝶式计算元件530的数据值“0”和“8”在运算之后仍保持为值“0”和“8”。为了描述的方便,其它输入数据值也产生具有和输入数据值相同的值的结果。图6中示出了上述输入数据和蝶式运算中的结果,并且在每级运算中的全部关系相同。
图8为用于说明图5的快速傅立叶变换处理器500的时序图。
参照图8,假定地址生成器(未示出)生成第一读取地址R1ADDR、第二读取地址R2ADDR、第一写入地址W1ADDR、以及第二写入地址W2ADDR。地址生成器参考系统时钟SCLK的计数值CNT和级设置信号STSET。级设置信号STSET在每个运算级的开始有效。蝶式计算元件530分别从第一读取地址R1ADDR和第二地址R2ADDR中的每个接收第一输入数据MRD1和第二输入数据MRD2,并将第一运算结果MWD1和第二运算结果MWD2分别存储在存储单元510和520各自的第一写入地址W1ADDR和第二写入地址W2ADDR中。
参照图6和8,首先,在第一运算级中,将第二存储单元520的地址(8)的数据“8”和第一存储器的地址(0)的数据“0”输入到蝶式计算元件530。在与计数值CNT“5”和“4”相对应的周期期间,生成通过对地址(8)的数据“8”和地址(0)的数据“0”执行蝶式运算而获得的结果,并将其依次存储为第一存储单元510的地址(4)的数据“8”和地址(0)的数据“0”。接下来,将第二存储单元520的地址(12)的数据“12”和第一存储单元510的地址(4)的数据“4”依次输入到蝶式计算元件530。在与计数值CNT“6”和“5”相对应的周期期间,生成通过对地址(12)的数据“12”和地址(4)的数据“4”执行蝶式运算而获得的结果,并将其存储为第二存储单元520的地址(12)的数据“12”和地址(8)的数据“4”。图8中详细图解了其它数据的读取和写入操作。
在此情况中,由于第一存储单元510和第二存储单元520为双端口型存储器,所以不能同时执行两个写入操作。因此,为了防止在存储单元510和520的读取操作以及存储单元510和520的写入操作之间发生数据冲突,根据图8中图解的寻址处理,在单个存储器中,仅同时执行一个读取操作和一个写入操作。例如,在计数值CNT为“5”时,第一和第二输入数据MRD1和MRD2为“2”和“14”,而第一和第二运算结果MWD1和MWD2为“4”和“8”。并且,第一和第二读取地址R1ADDR和R2ADDR为(2)和(14),而第一和第二写入地址W1ADDR和W2ADDR为(8)和(4)。参照图9,当计数值CNT为“5”时,第一存储单元510从地址(2)读取“2”,并在地址(4)写入“8”。并且,当计数值CNT为“5”时,第二存储单元520从地址(14)读取“14”,并在地址(8)写入“4”。地址生成器参考与已从存储单元510和520输入到蝶式计算元件530的数据相对应的地址来生成地址,以防止在存储单元510和520中执行同步读取和写入操作时产生数据冲突。蝶式计算元件530将基m(2)运算结果存储到存储单元510和520中的同步读取和写入操作之前已输入的数据地址。
当计数值CNT为“6”时,第一存储单元510从地址(6)读取数据“6”,并向地址(1)写入数据“1”。并且,在计数值CNT为“6”时,第二存储单元520从地址(11)读取数据“11”,并向地址(12)写入数据“12”。如上所述,由于在计数值的每个计数期间,同步执行一个读取操作和一个写入操作,所以在第一和第二存储单元510和520的每个中,使用可容纳16点数据的存储器来同时进行四个存储器存取是有可能的。如上所述的操作与第二运算级的操作相同。例如,通过再次参照图8,在第二级运算中,首先,将第二存储单元520的地址(8)的数据“4”和第一存储器的地址(0)的数据“0”依次输入到蝶式计算元件530。在计数值CNT为“13”和“12”时,生成对地址(8)的数据“4”和地址(0)的数据“0”执行蝶式运算的结果,并将其依次存储为地址(2)的数据“4”和地址(0)的数据“0”。在第二运算级中,根据和第一运算级的处理相同的处理,在第一存储单元510和第二存储单元520的每个中同步执行一个读取操作和一个写入操作。
如上所述,执行基m(2)蝶式运算的蝶式计算元件530从第一存储单元510和第二存储单元520中的每个接收m/2(1)个数据,以执行蝶式运算,将基2运算结果划分为m/2(1)个数据,并将划分为m/2(1)个数据的基2运算结果存储在第一存储单元510和第二存储单元520的每个中。参照图8,在两个或更多周期期间执行基m(2)蝶式运算,而在一个周期期间执行同步操作,其中所述同步操作同时执行从两个存储单元510和520的数据读取、以及向两个存储单元510和520的数据写入。蝶式计算元件530使用在同步读取和写入操作之前已输入的数据,而执行同步读取和写入操作中的下一个基m运算。
另一方面,当蝶式计算元件530执行基4或基8蝶式运算时,第一存储单元510和第二存储单元520接收2个或4个数据来执行蝶式运算,将运算结果划分为2个或4个数据值,并将运算结果存储在第一存储单元510和第二存储单元520的每个中。并且,将第一存储单元510和第二存储单元520中的每个分割为2个或4个双类型存储器,并且,每个划分的存储器同时执行一个读取操作和一个写入操作,由此执行相同处理。当存储基m运算结果时,蝶式计算元件530接收在下一个基m运算中使用的m个数据。并且,蝶式计算元件530将基m运算结果存储到读取和写入操作之前已输入的数据的地址。
表1中相互比较并示出了当用硬件实现根据本发明实施例的快速傅立叶变换算法和传统算法时所需的晶体管的数目。表1包括与通过基2处理而实现在非对称数字用户线(ADSL)中使用的256点快速傅立叶变换处理器的例子相关的特定数据。在表1中,约需要10000个门来实现蝶式计算元件,并且,在数字逻辑中,一个门包括4个晶体管。并且,在静态随机存取存储器(SRAM)中,约需要6个晶体管来实现存储器的1位。因此,通过本发明的建议方法和结构,用于实现256点快速傅立叶变换处理器的全部硬件成本减少了超过50%。可通过使用诸如基4或基8的算法的传统的流水线方法来实现蝶式计算元件的数目和存储器的大小的减小,然而,这种减小不如通过本发明的建议方法和结构而实现的减小那么大。
表1

如上所述,根据本发明的实施例的快速傅立叶变换处理器500利用传统双端口存储器结构和流水线架构的优点,在每个蝶式运算级中执行数据数组运算。假定容纳N/2点数据的两个存储单元510和520的每个中有虚拟存储空间,则快速傅立叶变换处理器500使用一个蝶式计算元件530,并在一个时钟周期期间执行一个写入操作和一个读取操作。
如上所述,与使用容纳N点数据的两个存储单元的传统双端口存储器结构或流水线架构相比,在根据本发明的实施例的快速傅立叶变换处理器中,采用的存储单元的大小可至少减小50%。并且,在本发明中使用一个蝶式计算元件。因此,存在这样的效果,即在对数据延迟时间敏感的系统中使用最小硬件成本来实现快速傅立叶变换处理器。
尽管已通过参照示范实施例来具体示出并描述了本发明,但本领域的普通技术人员应当理解,其中可作出形式和细节上的各种改变,而不背离由所附权利要求限定的本发明的精髓和范围。
权利要求
1.一种快速傅立叶变换处理器,包括存储单元,用于接收N点输入数据,存储N点输入数据,在第一级运算中存储使用输入数据而计算出的N点蝶式运算结果,以及在余下的(logmN)-1个运算级的每级中存储根据存储的前一级运算的蝶式运算结果而计算出的N点蝶式运算结果;以及蝶式计算元件,用于对存储在存储单元中的N点数据执行基m运算,以生成被存储在存储单元中的N点蝶式运算结果。
2.如权利要求1所述的处理器,其中该存储器包括第一存储单元,用于存储N点数据中的N/2点数据;以及第二存储单元,用于存储N点数据中的另外N/2点数据。
3.如权利要求1所述的处理器,其中,m为2。
4.如权利要求1所述的处理器,其中,m为4。
5.如权利要求1所述的处理器,其中,m为8。
6.如权利要求2所述的处理器,其中,第一存储单元和第二存储单元为双端口存储单元。
7.如权利要求2所述的处理器,其中,蝶式计算元件从第一存储单元和第二存储单元中的每个接收m/2个数据,以执行基m运算,将基m运算结果划分为m/2个数据,并将划分为m/2个数据的基m运算结果存储在第一存储单元和第二存储单元的每个中。
8.如权利要求7所述的处理器,其中,蝶式计算元件同时存储基m运算结果、并接收要在随后的基m运算中使用的m个数据。
9.如权利要求8所述的处理器,其中,蝶式计算元件将基m运算结果存储到同步操作之前输入的数据的地址。
10.如权利要求8所述的处理器,其中,蝶式计算元件在两个或更多周期期间执行基m运算,在一个周期期间执行同步操作,并使用在同步操作之前输入的数据而在同步操作期间执行下一个基m运算。
11.一种快速傅立叶变换处理方法,包括以下操作接收并存储N点输入数据;在logmN个运算级中的第一运算级,存储使用输入数据而计算出的N点蝶式运算结果;在余下的(logmN)-1个运算级中的每级,存储根据存储的前一级运算的结果而计算出的N点蝶式运算结果;以及分别在logmN个运算级中的每级,利用存储的N点数据来执行基m蝶式运算,以生成N点蝶式运算结果。
12.如权利要求11所述的方法,其中,存储操作中的每个包括将N点数据中的N/2点数据存储在第一存储单元中;以及将N点数据中的另外N/2点数据存储在第二存储单元中。
13.如权利要求11所述的方法,其中,m为2。
14.如权利要求11所述的方法,其中,m为4。
15.如权利要求11所述的方法,其中,m为8。
16.如权利要求12所述的方法,其中,第一存储单元和第二存储单元为双端口存储单元。
17.如权利要求12所述的方法,其中,生成蝶式运算结果的操作包括对从第一存储器接收的m/2个数据和从第二存储器接收的m/2个数据执行基m运算,将基m运算结果划分为m/2个数据,以及将划分为m/2个数据的基m运算结果存储在第一存储单元和第二存储单元中。
18.如权利要求17所述的方法,其中,生成蝶式运算结果的操作包括同时存储基m运算结果、并接收要在随后的基m运算中使用的m个数据。
19.如权利要求18所述的方法,其中,生成蝶式运算结果的操作包括将基m运算结果存储到同步操作之前输入的数据的地址。
20.如权利要求18所述的方法,其中,生成蝶式运算结果的操作包括在两个或更多时钟周期期间执行基m运算,在一个时钟周期期间执行同步操作,以及在同步操作期间使用在同步操作之前输入的数据来执行随后的基m运算。
全文摘要
在使用大小减半的存储器的快速傅立叶变换处理器和快速傅立叶变换方法中,假定可容纳N/2点数据的两个存储单元的每个中有虚拟存储空间,则利用蝶式计算元件,并在一个时钟周期期间执行一个写入操作和一个读取操作。
文档编号H04L27/26GK1655143SQ200510008220
公开日2005年8月17日 申请日期2005年2月6日 优先权日2004年2月11日
发明者李廷周 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1