一种数据处理的方法和系统的制作方法

文档序号:6577837阅读:253来源:国知局

专利名称::一种数据处理的方法和系统的制作方法
技术领域
:本发明涉及电数字数据处理领域,特别涉及一种数据处理的系统和方法。
背景技术
:快速傅立叶变换(FastFourierTransformAlgorithm,FFT)运算是信号处理过程中最核心的运算,它为频谱分析、巻积与相关、数字滤波器的设计与实现、功率谱计算、传递函数建模和图象处理等工作提供了快速运算方法。现有技术下,FFT运算包括两种第一种先对输入数据执行蝶形运算,再对蝶形运算输出结果进行重排序;而第二种先对输入数据进行重排序,再对重排序结果执行蝶形运算。下面以第一种FFT运算为例进行说明。参阅图1A所示,对输入的16个数(N=16)进行FFT运算时,蝶形运算输出结果包含的16个数据是乱序存放的,需要对这16个数据进行重排序,使其存放顺序恢复成顺序的。参阅图1B所示,重排序即是把乱序序列X(O)、X(8)、X(4)、X(12)、X(2)……X(15)存放次序转换为顺序序列X(O)、X(l)、X(2)、X(3)、X(4)…….X(15)。参阅图1C所示,对输入的8个数(N=8)进行FFT运算时,输入数据为x(O)、x(l)、x(2)、x(3)、x(4)、x(5)、x(6)、x(7),经蝶形运算后输出的乱序数据为X(O)、X(4)、X(2)、X(6)、X(l)、X(5)、X(3)、X(7),经重排序后输出的顺序数据为X(O)、X(l)、X(2)、X(3)、X(4)、X(5)、X(6)、X(7)。通过图1B所示的例子可以看出,在对蝶形运算输出结果进行重排序时,需要开辟新的N个存储单元用于存放顺序的数据。下面以第二种FFT运算为例进行说明。参阅图1D所示,对输入的8个数(N=8)进行FFT运算时,先要对这8个数据进行重排序,将其存放为乱序序列,再对乱序的各数据执行蝶形运算,这样,蝶形运算输出结果包含的8个数据便是顺序存放的;如图1D所示,输入数据为x(O)、x(l)、x(2)、x(3)、x(4)、x(5)、x(6)、x(7),经重排序后输出的乱序数据为x(O)、x(4)、x(2)、x(6)、x(l)、x(5)、x(3)、x(7),经蝶形运算后输出的顺序凄t据为X(O)、X(l)、X(2)、X(3)、X(4)、X(5)、X(6)、X(7)。显然,在蝶形运算前/后,需要对存储单元的数据进行重排序,而在进行重排序时,需要开辟新的N个存储单元用于存放乱序的数据。综上所述,使用现有方法进行FFT运算会占用大量的存储空间,如,为了得到输入的N个数经过FFT运算的顺序输出结果,需要开辟2xN个存储单元;同时,使用现有方法进行FFT运算会降低处理效率,如,在重排序过程中,所有数据都会被读取一次和写入一次,从而造成了数据读写操作的过于频繁,增加了FFT运算所需的时间。
发明内容本发明实施例提供一种数椐处理的方法和系统,其目的在于,不需要增加额外的存储单元进行数据排序,减少了FFT运算所占用的存储空间,降低了系统的功津4。本发明实施例提供的一种数据处理系统,该系统包括存储装置,用于根据地址译码装置发送的存储单元索引值保存数据,其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值;地址译码装置,用于接收数据索引值,对所述数据的数据索引值进行码位倒置运算,获得所述存储单元索引值,并发送所述存储单元索引值给所述存储装置;数据处理装置,用于在所述数据是需要读取的数据时,生成读控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值,在所述数据是需要写入的数据时,生成写控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值。本发明实施例提供的一种数据处理的方法,该方法包括地址译码装置接收需要读取或写入的各数据的数据索引值,并对数据索引值进行码位倒置运算得到相应的存储单元索引值;在所述数据是需要读取的数据时,数据处理装置从存储单元索引值对应的存储装置中的存储单元中读出所述数据,在所述数据是需要写入的数据时,数据处理装置将所述数据写入存储单元索^I值对应的存储装置中的存储单元中;其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值。本发明实施例存储装置,用于根据地址译码装置发送的存储单元索引值保存数据,其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值;地址译码装置,用于接收数据索引值,对所述数据的数据索引值进行码位倒置运算,获得所述存储单元索引值,并发送所述存储单元索引值给所述存储装置;数据处理装置,用于在所述数据是需要读取的数据时,生成读控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值,在所述数据是需要写入的数据时,生成写控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值。由于在FFT运算过程中,不需要对数据进行排序,就可以准确找到需要的数据,从而节省了存储空间;同时,避免了频繁的读写操作,进而降低了功耗。图1A为本发明现有技术下针对16个输入数据的第一类FFT运算内蝶形运算示意图1B为本发明现有技术下针对16个输入数据的第一类FFT运算内重排序流程示意图1C为本发明现有技术下针对8个输入数据的第一类FFT运算示意图;图ID为本发明现有技术下针对8个输入数据的第二类FFT运算示意图;图2A为本发明实施例数据处理系统结构示意图;图2B为本发明实施例中地址译码装置结构示意图;图2C为本发明实施例地址倒置模块结构示意图;图2D为本发明实施例地址整合模块结构示意图一;图2E为本发明实施例地址整合模块结构示意图二;图3为本发明实施例数据处理的方法流程示意图4为本发明实施例中针对16个输入数据的码位倒置后的数据存储示意图。具体实施例方式本发明实施例获取需要读取或写入的各数据的数据索引值;对所述数据索引值进行码位倒置运算,获得相应的存储单元索引值;在所述数据是需要读取的数据时,从存储单元索引值对应的存储单元中读出所述数据,在所述数据是需要写入的数据时,将所述数据写入存储单元索引值对应的存储单元中。由于在FFT运算过程中,不需要对数据进行排序,就可以准确找到需要的数据,从而节省了存储空间;同时,避免了频繁的读写操作,进而降低了功耗。此外,本发明还可兼容多种点数的FFT,适应不同的应用需求。下面介绍的本发明实施例中,在针对N个数进行FFT运算时,将输入数据表示为x(i),数据x(i)的索引值为i,i6。所述N限定为2的整数次幂,即N-2"1,如8,16,32,64,...。这N个输入数据存^t在存储装置中开辟的N个存储单元中,其中第k个存储单元的索引值为k,k6。下面结合说明书附图对本发明实施例作进一步详细描述。如图2A所示,本发明实施例数据处理系统包括存储装置IO、地址译码装置20和数据处理装置30。存储装置10,用于保存需要读取或写入的各数据,在收到来自数据处理装置30的读控制信号时,对来自地址译码装置20的存储单元索引值和片选信号对应的存储单元中读出所述数据,在收到来自数据处理装置30的写控制信号时,将数据写入来自地址译码装置20的存储单元索引值和片选信号对应的存储单元中。具体的,存储装置10根据片选信号确定对应的存储区域,再根据存储单元索引值从存储区域中确定对应的存储单元。其中,如果读写控制信号为读出数据,则将存储单元索引值和片选信号对应的存储单元中的数据输出给数据处理装置30;如果读写控制信号为写入数据,则将收到的来自数据处理装置30的数据存储到存储单元索引值和片选信号对应的存储单元中。地址译码装置20,用于接收来自数据处理装置30的数据索引值和片选信号,对该数据索引值进行码位倒置运算,获得存储单元索引值,并向存储装置IO输出获得的存储单元索引值和片选信号。其中,数据处理装置还用于在获取索引值之前,确定需要读取或写入的数据的个数,根据确定的所述数据的个数确定码位倒置需要的比特数。在具体实施过程中,地址译码装置20根据来自数据处理装置30的倒置使能信号,确定是否需要进行码位倒置运算,如果不需要,则将来自数据处理装置30的数据索引值作为存储单元索引值,并向存储装置IO输出获得的存储单元索引值。数据处理装置30,用于在数据是需要读取的数据时,向存储装置10发送生成的读控制信号,在数据是需要写入的数据时,向存储装置10发送生成的写控制信号,同时向地址译码装置20发送生成的数据索引值和片选信号。其中,数据处理装置30还用于引值不相同时(即存储数据的位置不同),触发地址译码装置20对数据索引值进行码位倒置运算(即发送码位倒置使能信号为enable)。在具体实施过程中,对数据处理装置30预先设定为触发地址译码装置20不对数据索引值进行码位倒置运算(即发送码位倒置使能信号为disable)。其中,数据处理装置30还用于在确定需要读数据时,接收来自存储装置10的数据,并对接收的数据进行处理;在确定需要写数据时,向存储装置IO发送处理后的数据。在具体实施过程中,地址译码装置20根据收到的码位倒置使能信号,判断是否需要进行码位倒置,如果地址译码装置20收到的码位倒置使能信号为disable,则不进行码位倒置;如果地址译码装置20收到的码位倒置使能信号为enable,则进行码位倒置。下面列举几个需要触发地址译码装置20进行码位倒置运算的情况1)需要将数据x(O)、x(l)、x(2)、x(3)、x(4)、x(5)、x(6)、x(7)、x(8)、x(9)、x(lO)、x(ll)、x(12)、x(13)、x(14)、x(15)分别写入存储单元0、8、4、12、2、10、6、14、1、9、5、13、3、11、7、15时,则触发地址译码装置20;2)需要将数据x(O)、x(8)、x(4)、x(12)、x(2)、x(lO)、x(6)、x(14)、x(l)、x(9)、x(5)、x(13)、x(3)、x(ll)、x(7)、x(15)分别写入存储单元0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15时,则触发地址译码装置20;3)需要按照上述关系将数据从存储单元中读出时,则触发地址译码装置20;4)需要按照上述关系读/写单个数据时,则触发地址译码装置20。地址译码装置20的具体结构可以参见图2B。其中,图2B中的地址总线为8条,根据需要可以增加或减少地址总线的数量,具体需要多少条地址总线可以参照表O:数据总数用到地址线的条数16432564612872568表o其中,地址获^4莫块200,用于获取数据索引值和片选信号。地址直通模块210,用于将地址获取模块200获取的数据索引值作为存储单元索引值,将上述存储单元索引值和片选信号发送给地址整合模块230。地址倒置模块220,用于对地址获^Mt块200获取的数据索?1值进行码位倒置,作为存储单元索引值,将处理后的存储单元索引值发送给地址整合模块230。地址整合才莫块230,用于将收到的地址直通i^莫块210输出的存储单元索引值和/或地址倒置模块220输出的存储单元索引值与片选信号进行整合,并输出。其中,地址倒置模块220的内部结构参见图2C。地址倒置模块220可以支持N-8、16、32、64、128、256等的情况。图2C中的地址线为8bits。连线关系是B[i]-I[total-l-i],其中total表示地址线总数,地址线总共8条;B[i]表示B的第i条地址线;I[i]表示I的第i条地址线即17连B0,16连B1,15连B2,14连B3,13连B4,12连B5,II连B6,10连B7。由于地址线总共8条,可以最多支持256个数据,而如果数据索引值的总数N不同,地址直通模块210和地址倒置模块220,与地址整合模块230之间的地址线也会有区别,下面分别进行说明如果输入数据为256个,C的地址线特点是由于N-256时,256=28,数据索引值用到了8条地址线,即1[7、6、5、4、3、2、1、O];地址倒置模块220倒置后输出的存储单元索引值用到了8条地址线是B[7、6、5、4、3、2、1、O];最后输出的存储单元索引值用到了8条地址线,即C[7、6、5、4、3、2、1、O];此时,C的8位为倒置后的结果,即B的8位;那么C[7]=B[7],C[6]=B[6],C[5]=B[5],C[4]=B[4〗,C[3]=B[3],C[2]=B[2],C[1]=B[1],C=B。如果输入数据为16个,C的地址线特点由于N46时,16=24,数据索引值用到了4条地址线,即1[3、2、1、O];地址倒置模块220倒置后倒置后输出的存储单元索引值用到了4条地址线是B[7、6、5、4];最后输出的存储单元索引值用到了4条地址线,即C[3、2、1、O];此时,C的低4位为倒置后的结果,即B的高位。那么C[3]-B[7],C[2]=B[6],C[1]=B[5],C=B[4]。地址线为8bits,输入数据为24=16点时,地址整合;f莫块230的连线图参见2D。如果输入数据为64个,C的地址线特点是当N-64时,64=26,数据索引值用到了6条地址线,即1[5、4、3、2、1、o];地址倒置模块220倒置后输出的存储单元索引值用到了4条地址线是B[7、6、5、4、3、2];最后输出的存储单元索引值用到了4条地址线,即C[5、4、3、2、1、O];此时,C的低6位为倒置后的结果,即B的高位。夷P么C[5]=B[7],C[4]=B[6〗,C[3]-B[5],C[2]=B[4],C[1]=B[3],C=B[2]。因此,地址线为8bits,输入数据为26=64点时,地址整合^^块230的连线图参见2E。上面只是以16、64、256为例进行说明,其他数量的数据与上面介绍的方式类似,不再赘述。从图2D和图2E中可以看出,在输入数据不是256时,C的高位地址线4妻到了A的高位地址线。比如N=64中,8条地址线可以访问28=256个存储单元。256个存储单元可以存放4组数据,每组64个数据(256/64=4)。第0组数据存放在64个存储单元,对应的存储单元索引值为0~63;第1组数据存放在相邻的更高地址的64个存储单元,相当于在256个存储单元中,对应的存储单元索引值为64127;第2组数据存放在相邻的更高地址的64个存储单元,相当于在256个存储单元中,对应的存储单元索引值为128~191;第3组数据存放在相邻的更高地址的64个存储单元,相当于在256个存储单元中,对应的存储单元索引值为192255;这4组数据的地址的bit7和bit6分别是00、01、10、11。这样可以把这256个存^f渚单元分成4块,地址线的bit7和bit6就可以作为片选信号。即当1[7~6]=00时,选择第0片;当1[7~6]=01时,选择第1片;当1[7~6]=10时,选择第2片;当1[76]=11时,选择第3片;由此,就可以读写256个数据(64个数据/组x4组)。读写第0组数据时,I[7~6]=00;A[76]=00;C[76]-00;读写第l组数据时,I[7~6]=01;A[7~6]=01;C[7~6]=01;读写第2组数据时,I[7~6]—二10;A[7~6]=10;C[7~6]=10;读写第3组数据时,I[7~6]=11;A[7~6]=11;C[7~6]=11;因此,高位地址线就可以用来做片选信号。对于N-64的情况C的低6位为倒置后的结果,即B的高位;C的高位为片选信号;那么C[7]=I[7]=A[7],C[6]=I[6]=A[6〗,C[5]=B[7],C[4]=B[6],C[3]=B[5],C[2]=B[4],C[1]=B[3],C=B[2]。从而充分利用存储单元的容量,不会因为输入数据少而浪费存储单元的容量。需要说明的是,其他输入数据小于可存储数据的情况,与可存储数据为256个,每组输入数据为64个的情况类似,不再赘述。如图3所示,本发明实施例数据处理的方法包括下列步骤步骤300、地址译码装置接收需要读取或写入的各数据的数据索引值。需要读取或写入的各数据的数据索?1值是预先设置的。步骤301、地址译码装置对数据索引值进行码位倒置运算得到相应的存储单元索引值。步骤302、在数据是需要读取的数据时,数据处理装置从存储单元索引值对应的存储装置中的存储单元中读出数据,在数据是需要写入的数据时,数据处理装置将数据写入存储单元索引值对应的存储装置中的存储单元中。其中,存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值其中,步骤300之前还可以进一步包括地址译码装置确定需要读取或写入的数据的个数,根据确定的数据的个数确定码位倒置需要的比特数。其中,步骤301中,地址译码装置对获取的数据索引值进行码位倒置运算还可以进一步包括地址译码装置确定数据对应的数据索引值和存储该数据对应的存储单元的存储单元索引值不相同时(即存储数据的位置不同),对数据索引值进行码位倒置运算。其中,在数据是需要写入的数据时,步骤302还可以进一步包括数据处理装置生成片选信号,并向地址译码装置发送片选信号;地址译码装置将片选信号向存储装置发送;存储装置根据片选信号确定对应的存储区域,对确定的区域中存储单元索引值对应的存储单元进行写操作。在数据是需要读取的数据时,步骤302还可以进一步包括数据处理装置生成片选信号,并向地址译码装置发送片选信号;地址译码装置将片选信号向存储装置发送;存储装置根据片选信号确定对应的存储区域,对确定的区域中存储单元索引值对应的存储单元进行读操作以16个输入数据为例,对本发明实施例进行说明。其中,步骤300中各数据的数据索引值参阅表1所示,上述各数据的数据索引值分别为O、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15。本实施例步骤301中,对数据索引值i执行码位倒置运算时,需要对数据索引值i的二进制编码进行倒序排列,得到的倒序二进制编码所对应的十进制数字即是相应的存储单元索引值j;本实施例中,数据索引值i与相应的存储单元索引值j的对应关系如表1所示。<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>表lI列为数据索引值,即0、1、2、3、4、5、6、7、8、9、10、11、12、13、14、15,j列为执行码位倒置运算后的存储单元索引值,即0、8、4、12、2、10、6、14、1、9、5、13、3、11、7、15。步骤302中,假设需要处理的数据索引值为8的数据,实际该数据位于存储单元索引值为1的存储单元中,则对存储单元索引值为1的存储单元中的数据进行处理,具体参见图4。从上述实施例中可以看出本发明实施例存储装置,用于根据地址译码装置发送的存储单元索引值保存数据,其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值;地址译码装置,用于接收数据索引值,对所述数据的数据索引值进行码位倒置运算,获得所述存储单元索引值,并发送所述存储单元索引值给所述存储装置;数据处理装置,用于在所述数据是需要读取的数据时,生成读控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值,在所述数据是需要写入的数据时,生成写控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值。由于在FFT运算过程中,不需要对数据进行排序,就可以准确找到需要的数据,从而节省了存储空间;同时,避免了频繁的读写操作,进而降低了功耗。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发16明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。权利要求1、一种数据处理系统,其特征在于,该系统包括存储装置,用于根据地址译码装置发送的存储单元索引值保存数据,其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值;地址译码装置,用于接收数据索引值,对所述数据的数据索引值进行码位倒置运算,获得所述存储单元索引值,并发送所述存储单元索引值给所述存储装置;数据处理装置,用于在所述数据是需要读取的数据时,生成读控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值,在所述数据是需要写入的数据时,生成写控制信号并发送给所述存储装置,同时向所述地址译码装置发送数据索引值。2、如权利要求i所述的系统,其特征在于,所述需要读取或写入的各数据的数据索?I值是预先设置的。3、如权利要求1或2所述的系统,其特征在于,所述地址译码装置还用于在获取索引值之前,确定需要读取或写入的数据的个数,根据确定的所述数据的个数确定码位倒置需要的比特数。4、如权利要求l所述的系统,其特征在于,所述数据处理装置还用于生成片选信号,并向所述地址译码装置发送所述片选信号;所述地址译码装置还用于将所述片选信号向所述存储装置发送;所述存储装置还用于在收到的所述存储单元索引值和所述片选信号后,根据所述片选信号确定对应的存储区域,对确定的区域中所述存储单元索引值对应的存储单元进行读或写操作。5、一种数据处理的方法,其特征在于,该方法包括地址译码装置接收需要读取或写入的各数据的数据索引值,并对数据索引值进行码位倒置运算得到相应的存储单元索引值;在所述数据是需要读取的数据时,数据处理装置从存储单元索引值对应的存储装置中的存储单元中读出所述数据,在所述数据是需要写入的数据时,数据处理装置将所述数据写入存储单元索引值对应的存储装置中的存储单元中;其中所述存储装置由存储单元构成,每个存储单元分别对应相应的存储单元索引值。6、如权利要求5所述的方法,其特征在于,所述需要读取或写入的各数据的数据索引值是预先设置的。7、如权利要求5或6所述的方法,其特征在于,所述接收需要读取或写入的各数据的数据索引值之前还包括地址译码装置确定需要读取或写入的的数据的个数,根据确定的所述数据的个数确定码位倒置需要的比特数。8、如权利要求5所述的方法,其特征在于,所述对从存储单元索引值对应的存储单元中读出所述数据进一步包括所述数据处理装置生成片选信号,并向所述地址译码装置发送所述片选信号;所述地址译码装置将所述片选信号向所述存储装置发送;所述存储装置根据所述片选信号确定对应的存储区域,对确定的区域中所述存储单元索?I值对应的存储单元进行读操作。9、如权利要求5所述的方法,其特征在于,所述数据处理装置对从存储单元索引值对应的存储单元中写入所述数据进一步包括所述数据处理装置生成片选信号,并向所述地址译码装置发送所述片选信号;所述地址译码装置将所述片选信号向所述存储装置发送;所述存储装置根据所述片选信号确定对应的存储区域,对确定的区域中所述存储单元索引值对应的存储单元进行写操作。全文摘要本发明涉及电数字数据处理领域,特别涉及一种数据处理的方法和系统,用以解决现有技术中需要增加额外的存储单元进行数据排序,从而增加了FFT运算所占用的存储空间,增加了功耗的问题。本发明实施例的方法包括获取需要读取或写入的各数据的数据索引值;对所述数据索引值进行码位倒置运算,获得相应的存储单元索引值;在所述数据是需要读取的数据时,从存储单元索引值对应的存储单元中读出所述数据,在所述数据是需要写入的数据时,将所述数据写入存储单元索引值对应的存储单元中。采用本发明实施例的方法能够节省存储空间,避免频繁的读写操作,提高FFT运算的处理效率。文档编号G06F17/14GK101520769SQ20091013491公开日2009年9月2日申请日期2009年4月10日优先权日2009年4月10日发明者张媛媛,温浩礼申请人:炬才微电子(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1