CN117312733B - 一种动态调整计算速度的fft实现方法 - Google Patents

一种动态调整计算速度的fft实现方法 Download PDF

Info

Publication number
CN117312733B
CN117312733B CN202311471774.8A CN202311471774A CN117312733B CN 117312733 B CN117312733 B CN 117312733B CN 202311471774 A CN202311471774 A CN 202311471774A CN 117312733 B CN117312733 B CN 117312733B
Authority
CN
China
Prior art keywords
fft
butterfly operation
calculation
num
order
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.)
Active
Application number
CN202311471774.8A
Other languages
English (en)
Other versions
CN117312733A (zh
Inventor
周同
吴树伟
庄志青
胡红明
张希鹏
周玉镇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canxin Semiconductor Shanghai Co ltd
Original Assignee
Canxin Semiconductor Shanghai Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canxin Semiconductor Shanghai Co ltd filed Critical Canxin Semiconductor Shanghai Co ltd
Priority to CN202311471774.8A priority Critical patent/CN117312733B/zh
Publication of CN117312733A publication Critical patent/CN117312733A/zh
Application granted granted Critical
Publication of CN117312733B publication Critical patent/CN117312733B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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实现方法。
背景技术
传统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中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到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中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到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中的数据完成计算,表示本阶计算完成,进入步骤五;
步骤五:对已经计算完成的阶数进行计数,得到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计算已经完成,否则进入步骤二,进行下一阶运算,直到所有阶数的运算都已经完成。
CN202311471774.8A 2023-11-07 2023-11-07 一种动态调整计算速度的fft实现方法 Active CN117312733B (zh)

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 CN117312733A (zh) 2023-12-29
CN117312733B true 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 (5)

* Cited by examiner, † Cited by third party
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处理器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013097217A1 (zh) * 2011-12-31 2013-07-04 中国科学院自动化研究所 一种多粒度并行fft蝶形计算的方法及相应的装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 中兴通讯股份有限公司 一种并行模数转化装置及控制模数转换通道偏斜的方法
CN103412851A (zh) * 2013-07-30 2013-11-27 复旦大学 一种高精度低功耗的fft处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种高速并行FFT处理器的VLSI结构设计;万红星, 陈禾, 韩月秋;电子技术应用;20050525(第05期);全文 *

Also Published As

Publication number Publication date
CN117312733A (zh) 2023-12-29

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
CN109977347B (zh) 一种支持多模式配置的可重构fft处理器
EP2408158B1 (en) Circuit and method for implementing fft/ifft transform
CN111324303B (zh) Ssd垃圾回收方法、装置、计算机设备及存储介质
KR20200108774A (ko) 순환 큐 기반의 명령어 메모리를 포함하는 메모리 장치 및 그 동작방법
US7543010B2 (en) Modular pipeline fast Fourier transform
CN111209232A (zh) 访问静态随机存取存储器的方法、装置、设备和存储介质
CN112506823B (zh) 一种fpga数据读写方法、装置、设备及可读存储介质
US20220253668A1 (en) Data processing method and device, storage medium and electronic device
Lenart et al. A 2048 complex point FFT processor using a novel data scaling approach
US20050289207A1 (en) Fast fourier transform processor, dynamic scaling method and fast Fourier transform with radix-8 algorithm
CN117312733B (zh) 一种动态调整计算速度的fft实现方法
US6408319B1 (en) Electronic device for computing a fourier transform and corresponding control process
CN110989970B (zh) 一种双精度浮点矩阵运算处理器及方法
US20200293452A1 (en) Memory device and method including circular instruction memory queue
CN111158757B (zh) 并行存取装置和方法以及芯片
CN110737678B (zh) 一种数据查找方法、装置、设备和存储介质
CN116361605A (zh) 递归型fft处理器的低功耗优化方法和装置
Mohan et al. Implementation of N-Point FFT/IFFT processor based on Radix-2 Using FPGA
US20230237121A1 (en) Method for accelerating fast fourier transform based on field programmable gate array
EP1851614A1 (en) Low-power register array for fast shift operations
CN112163187B (zh) 一种超长点数高性能fft计算装置
Yu et al. A $2.81\mu\mathrm {W} $, Energy Efficient MFCC Feature Extractor for Keyword-Spotting in 65nm CMOS
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