[发明专利]用于FFT计算的RISC-V扩展架构有效
申请号: | 202310691502.2 | 申请日: | 2023-06-13 |
公开(公告)号: | CN116431219B | 公开(公告)日: | 2023-08-22 |
发明(设计)人: | 郑茳;肖佐楠;匡启和;陈石;施彦;王耀 | 申请(专利权)人: | 无锡国芯微高新技术有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30;G06F17/14 |
代理公司: | 无锡市汇诚永信专利代理事务所(普通合伙) 32260 | 代理人: | 朱晓林 |
地址: | 214000 江苏省无锡市锡山经*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 fft 计算 risc 扩展 架构 | ||
1.一种用于FFT计算的RISC-V扩展架构,包括由取指模块、译码模块、执行模块、访存模块和写回模块构成的流水线结构,以及寄存器组和Cache;其特征在于,所述Cache连接外部存储器Memory,用于读写蝶形数据;所述寄存器组分别和所述Cache和所述执行模块连接,用于从所述Cache读写蝶形数据并送入所述寄存器组,以及将所述执行模块计算结果写入到所述Cache中;所述Cache包括至少两个Cache组,在初始执行蝶形数据读取指令,且对其中的目标Cache组命中失效时,将所述目标Cache组中的原始数据移动到其他Cache组中并设置独占标志位,所述独占标志位用于在离散快速傅里叶变换FFT计算阶段独占对所述目标Cache组的缓存控制;
所述取指模块用于读取FFT计算指令;FFT计算指令基于RISC-V指令集扩展构建,包括I型蝶形数据读取指令、S型蝶形数据写入指令和R型蝶形数据运算指令;
所述译码模块内置FFT指令译码单元,对FFT计算指令进行译码;所述访存模块内置FFT访存控制单元,控制所述Cache、寄存器组和Memory中蝶形数据的读取及缓存;所述执行模块内置FFT蝶形运算组,基于寄存器组中的蝶形数据执行FFT蝶形运算;一组蝶形数据包括两个浮点型输入数据和一个浮点型旋转因子。
2.根据权利要求1所述的用于FFT计算的RISC-V扩展架构,其特征在于,当CPU执行所述蝶形数据读取指令时,逐次从指定内存地址中读取2个32bit的蝶形数据到所述寄存器组中的第一寄存区;内存地址包括所述Cache或Memory对应的地址;
当CPU执行所述蝶形数据运算指令时,根据设置的蝶形运算单元数量从所述第一寄存区中读取目标蝶形数据,并通过所述FFT蝶形运算组进行蝶形计算,将输出的蝶形计算结果存放到所述寄存器组中的第二寄存区;
当CPU执行所述蝶形数据写入指令时,读取所述第二寄存区中的蝶形计算结果,将其回存到所述内存地址。
3.根据权利要求2所述的用于FFT计算的RISC-V扩展架构,其特征在于,所述旋转因子根据FFT点数存放在Memory的连续存储空间,不同FFT点数对应不同数量的旋转因子;输入数据、输出数据和旋转因子为复数,包括实部数据和虚部数据,实部和虚部分别占32bit;
所述第一寄存区和所述第二寄存区包含若干数量的32bit寄存器,用于存蝶形计算前后数据的实部或虚部;读取待读蝶形数据和存入蝶形计算结果时,直接将数据的实部和虚部同时读取或存放到两个连续的寄存器中。
4.根据权利要求3所述的用于FFT计算的RISC-V扩展架构,其特征在于,在读取阶段,所述第一寄存区中的每组蝶形数据按照第一输入数据、第二输入数据和旋转因子的顺序存储;在FFT计算阶段,一个蝶形运算单元对应输入一组蝶形数据,输出一组蝶形计算结果,一组蝶形计算结果包括两个频域数据。
5.根据权利要求2所述的用于FFT计算的RISC-V扩展架构,其特征在于,所述FFT蝶形运算组包括4个并行的所述蝶形运算单元,用于并行执行4组蝶形数据,输出和存入4组频域数据。
6.根据权利要求5所述的用于FFT计算的RISC-V扩展架构,其特征在于,所述蝶形运算单元基于两个输入数据将硬件结构分为三级计算结构,一级结构为4组并行浮点乘法器、二级和三级结构分别为4组并行浮点加法器;其中,所述三级计算结构的级与级之间为串行架构,级内为并行结构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡国芯微高新技术有限公司,未经无锡国芯微高新技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310691502.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种海绵棒消毒刷循环加工运输设备
- 下一篇:一种模具钢及其连铸生产方法