CN117312733A - 一种动态调整计算速度的fft实现方法 - Google Patents
一种动态调整计算速度的fft实现方法 Download PDFInfo
- Publication number
- CN117312733A CN117312733A CN202311471774.8A CN202311471774A CN117312733A CN 117312733 A CN117312733 A CN 117312733A CN 202311471774 A CN202311471774 A CN 202311471774A CN 117312733 A CN117312733 A CN 117312733A
- Authority
- CN
- China
- Prior art keywords
- fft
- butterfly operation
- calculation
- order
- num
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 11
- 230000015654 memory Effects 0.000 claims abstract description 18
- 238000013507 mapping Methods 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 abstract description 4
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种动态调整计算速度的FFT实现方法,属于数字处理技术领域;本发明通过系统总线接口将待计算的数据按地址加载到FFT内部缓存中,在加载数据的过程中,根据FFT蝶形运算单元类型基‑2、基‑4和基‑8,由地址映射单元对输入数据的地址进行调整,数据缓存完成后,由蝶形运算模块启动FFT运算,通道控制模块根据系统乘法器阵列中空闲乘法器的数量,配置蝶形运算模块的并行通道数;本发明根据系统空闲乘法器数量,动态改变并行计算的通道数,能够有效的利用系统的乘法器资源,提高乘法器使用效率,避免造成乘法器资源的浪费。
Description
技术领域
本发明涉及数字处理技术领域,更具体地说,它涉及一种动态调整计算速度的FFT实现方法。
背景技术
传统FFT实现结构通常使用固定数量的乘法器和SRAM(Static Random-AccessMemory,静态随机存储器)资源,无法针对系统资源使用情况进行动态调整。当系统内处于空闲状态的乘法器较多时,该FFT结构无法调用更多的乘法器加速运算,造成FFT的计算延迟无法缩减,当系统内其他处理模块运算量较大时,而此时FFT处于空闲状态,由于其他模块无法调用FFT内部的乘法器以实现加速运算,这会造成乘法器资源的浪费。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种动态调整计算速度的FFT实现方法,用于解决上述技术问题。
本发明的目的可以通过以下技术方案实现:
一种动态调整计算速度的FFT实现方法,包括如下步骤:
步骤一:SOC将N点待计算的原始数据,根据地址映射单元的地址映射规则,通过系统总线接口写入FFT内部缓存中,以N=4096点FFT为例,地址信号的位宽为12位,地址映射规则如图2所示;FFT内部缓存分为M个块存储器;
步骤二:通道控制模块查询系统乘法器阵列中处于空闲状态的乘法器数量K,若K为0,则进入等待状态,若K大于1,则配置蝶形运算模块的并行计算通道数为K,0<K≤M;
步骤三:通过蝶形运算模块启动一阶FFT运算,蝶形运算模块分为M个蝶形运算单元,蝶形运算单元0,1,…,K-1分别从FFT内部缓存的块存储器SRAM0,SRAM1,...,SRAM K-1中读取数据进行蝶形运算,计算完成后,将数据写回原地址,进入步骤四;
步骤四:若K=M,则表示本阶FFT计算已经完成,若K≤M/2,则蝶形运算单元K,K+1,…,2·K-1启动计算,若M/2<K<M,则蝶形运算单元K,K+1,…,M启动计算,直到块存储器SRAM M-1中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到num_done,并与FFT计算所需要的总阶数num_stage进行对比判断,以FFT点数N=4096点为例,当选择基-2蝶形运算单元时,所需要计算的阶数为num_stage=log2(N)=12,当选择基-4蝶形运算单元时,所需要计算的阶数为num_stage=log4(N)=6,当选择基-8蝶形运算单元时,所需要计算的阶数为num_stage=log8(N)=4,若num_done=num_stage,则表示本次FFT计算已经完成,否则进入步骤二,进行下一阶运算,直到所有阶数的运算都已经完成。
一种可动态调整计算速度的FFT实现结构,包括总线接口、地址映射单元、FFT内部缓存、蝶形运算模块、通道控制模块以及系统乘法器阵列;
SOC(System on Chip,片上系统)通过系统总线接口将待计算的数据按地址加载到FFT内部缓存中,在加载数据的过程中,根据FFT蝶形运算单元类型基-2、基-4和基-8,由地址映射单元对输入数据的地址进行调整,数据缓存完成后,由蝶形运算模块启动FFT运算,通道控制模块根据系统乘法器阵列中空闲乘法器的数量,配置蝶形运算模块的并行通道数。
与现有方案相比,本发明的有益效果:
本发明根据系统空闲乘法器数量,动态改变并行计算的通道数,能够有效的利用系统的乘法器资源,提高乘法器使用效率,避免造成乘法器资源的浪费。
附图说明
图1为本发明中一种可动态调整计算速度的FFT实现结构图。
图2为地址映射规则图。
图3为FFT单阶计算处理流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明的实施例是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显而易见的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
实施例1
参照图1-图3所示,本发明为一种动态调整计算速度的FFT实现方法,包括如下步骤:
步骤一:SOC将N点待计算的原始数据,根据地址映射单元的地址映射规则,通过系统总线接口写入FFT内部缓存中,以N=4096点FFT为例,地址信号的位宽为12位,地址映射规则如图2所示;FFT内部缓存分为M个块存储器;
步骤二:通道控制模块查询系统乘法器阵列中处于空闲状态的乘法器数量K,若K为0,则进入等待状态,若K大于1,则配置蝶形运算模块的并行计算通道数为K,0<K≤M;
步骤三:通过蝶形运算模块启动一阶FFT运算,蝶形运算模块分为M个蝶形运算单元,蝶形运算单元0,1,…,K-1分别从FFT内部缓存的块存储器SRAM0,SRAM1,...,SRAM K-1中读取数据进行蝶形运算,计算完成后,将数据写回原地址,进入步骤四;
步骤四:若K=M,则表示本阶FFT计算已经完成,若K≤M/2,则蝶形运算单元K,K+1,...,2·K-1启动计算,若M/2<K<M,则蝶形运算单元K,K+1,...,M启动计算,直到块存储器SRAM M-1中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到num_done,并与FFT计算所需要的总阶数num_stage进行对比判断,以FFT点数N=4096点为例,当选择基-2蝶形运算单元时,所需要计算的阶数为num_stage=log2(N)=12,当选择基-4蝶形运算单元时,所需要计算的阶数为num_stage=log4(N)=6,当选择基-8蝶形运算单元时,所需要计算的阶数为num_stage=log8(N)=4,若num_done=num_stage,则表示本次FFT计算已经完成,否则进入步骤二,进行下一阶运算,直到所有阶数的运算都已经完成。
参阅图1,一种可动态调整计算速度的FFT实现结构包括系统总线接口、地址映射单元、FFT内部缓存、蝶形运算模块、通道控制模块以及系统乘法器阵列;
SOC(System on Chip,片上系统)通过系统总线接口将待计算的数据按地址加载到FFT内部缓存中,在加载数据的过程中,根据FFT蝶形运算单元类型基-2、基-4和基-8,由地址映射单元对输入数据的地址进行调整,数据缓存完成后,由蝶形运算模块启动FFT运算,通道控制模块根据系统乘法器阵列中空闲乘法器的数量,配置蝶形运算模块的并行通道数。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”“相连”“连接”等应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接连接,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (1)
1.一种动态调整计算速度的FFT实现方法,其特征在于,包括如下步骤:
步骤一:SOC将N点待计算的原始数据,根据地址映射单元的地址映射规则,通过系统总线接口写入FFT内部缓存中;FFT内部缓存分为M个块存储器;
步骤二:通道控制模块查询系统乘法器阵列中处于空闲状态的乘法器数量K,若K为0,则进入等待状态,若K大于1,则配置蝶形运算模块的并行计算通道数为K,0<K≤M;
步骤三:通过蝶形运算模块启动一阶FFT运算,蝶形运算模块分为M个蝶形运算单元,蝶形运算单元0,1,...,K-1分别从FFT内部缓存的块存储器SRAM0,SRAM1,…,SRAM K-1中读取数据进行蝶形运算,计算完成后,将数据写回原地址,进入步骤四;
步骤四:若K=M,则表示本阶FFT计算已经完成,若K≤M/2,则蝶形运算单元K,K+1,…,2·K-1启动计算,若M/2<K<M,则蝶形运算单元K,K+1,…,M启动计算,直到块存储器SRAMM-1中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到num_done,并与FFT计算所需要的总阶数num_stage进行对比判断,当选择基-2蝶形运算单元时,所需要计算的阶数为num_stage=log2(N),当选择基-4蝶形运算单元时,所需要计算的阶数为num_stage=log4(N),当选择基-8蝶形运算单元时,所需要计算的阶数为num_stage=log8(N),若num_done=num_stage,则表示本次FFT计算已经完成,否则进入步骤二,进行下一阶运算,直到所有阶数的运算都已经完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311471774.8A CN117312733B (zh) | 2023-11-07 | 2023-11-07 | 一种动态调整计算速度的fft实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311471774.8A CN117312733B (zh) | 2023-11-07 | 2023-11-07 | 一种动态调整计算速度的fft实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117312733A true CN117312733A (zh) | 2023-12-29 |
CN117312733B CN117312733B (zh) | 2024-04-16 |
Family
ID=89242832
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311471774.8A Active CN117312733B (zh) | 2023-11-07 | 2023-11-07 | 一种动态调整计算速度的fft实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117312733B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029630A (ja) * | 2001-07-12 | 2003-01-31 | Toshiba Corp | べき乗剰余演算装置 |
CN101300572A (zh) * | 2005-03-11 | 2008-11-05 | 高通股份有限公司 | 快速傅里叶变换旋转乘法 |
CN102035553A (zh) * | 2010-11-15 | 2011-04-27 | 中兴通讯股份有限公司 | 一种并行模数转化装置及控制模数转换通道偏斜的方法 |
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN103412851A (zh) * | 2013-07-30 | 2013-11-27 | 复旦大学 | 一种高精度低功耗的fft处理器 |
US20140330880A1 (en) * | 2011-12-31 | 2014-11-06 | Institute Of Automation, Chinese Academy Of Sciences | Methods and devices for multi-granularity parallel fft butterfly computation |
-
2023
- 2023-11-07 CN CN202311471774.8A patent/CN117312733B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003029630A (ja) * | 2001-07-12 | 2003-01-31 | Toshiba Corp | べき乗剰余演算装置 |
CN101300572A (zh) * | 2005-03-11 | 2008-11-05 | 高通股份有限公司 | 快速傅里叶变换旋转乘法 |
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102035553A (zh) * | 2010-11-15 | 2011-04-27 | 中兴通讯股份有限公司 | 一种并行模数转化装置及控制模数转换通道偏斜的方法 |
US20140330880A1 (en) * | 2011-12-31 | 2014-11-06 | Institute Of Automation, Chinese Academy Of Sciences | Methods and devices for multi-granularity parallel fft butterfly computation |
CN103412851A (zh) * | 2013-07-30 | 2013-11-27 | 复旦大学 | 一种高精度低功耗的fft处理器 |
Non-Patent Citations (1)
Title |
---|
万红星, 陈禾, 韩月秋: "一种高速并行FFT处理器的VLSI结构设计", 电子技术应用, no. 05, 25 May 2005 (2005-05-25) * |
Also Published As
Publication number | Publication date |
---|---|
CN117312733B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11307769B2 (en) | Data storage method, apparatus and storage medium | |
US10152455B2 (en) | Data processing method and processor based on 3072-point fast Fourier transformation, and storage medium | |
CN114356223B (zh) | 存储器的访问方法及装置、芯片、电子设备 | |
EP2408158B1 (en) | Circuit and method for implementing fft/ifft transform | |
CN111209232B (zh) | 访问静态随机存取存储器的方法、装置、设备和存储介质 | |
CN111324303B (zh) | Ssd垃圾回收方法、装置、计算机设备及存储介质 | |
US20050160127A1 (en) | Modular pipeline fast fourier transform | |
Lenart et al. | A 2048 complex point FFT processor using a novel data scaling approach | |
US20220253668A1 (en) | Data processing method and device, storage medium and electronic device | |
US20050289207A1 (en) | Fast fourier transform processor, dynamic scaling method and fast Fourier transform with radix-8 algorithm | |
US6408319B1 (en) | Electronic device for computing a fourier transform and corresponding control process | |
CN117312733B (zh) | 一种动态调整计算速度的fft实现方法 | |
CN110989970B (zh) | 一种双精度浮点矩阵运算处理器及方法 | |
CN111047037B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115525651A (zh) | 数据查询处理方法、设备及存储介质 | |
CN112286863B (zh) | 处理暨存储电路 | |
US20040019764A1 (en) | System and method for processing data in an integrated circuit environment | |
CN109117454B (zh) | 3780点快速傅立叶转换处理器及其运作方法 | |
US20200073556A1 (en) | System and method for accessing redundant array of independent disks | |
CN113094328B (zh) | 一种用于合成孔径雷达实时成像的多通道并行计算系统 | |
US20230237121A1 (en) | Method for accelerating fast fourier transform based on field programmable gate array | |
CN110703982A (zh) | 一种结构体排序方法、排序装置及排序器 | |
RU2730174C1 (ru) | Реконфигурируемый вычислитель быстрого преобразования фурье сверхбольшой длины преобразования | |
Zhang et al. | Small area high speed configurable FFT processor | |
US20240152386A1 (en) | Artificial intelligence accelerator and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |