一种基于开关网络的可配置fft处理器电路结构的制作方法

文档序号:6543543阅读:138来源:国知局
一种基于开关网络的可配置fft处理器电路结构的制作方法
【专利摘要】本发明属于信号处理硬件电路设计领域,具体为一种基于开关网络的可配置FFT处理器电路结构。本发明提出的可配置FFT处理器电路结构主要由控制器、若干个处理单元、开关网络和若干个存储器单元组成。本发明包括混合基蝶形运算单元的电路结构,以实现高效的FFT操作;单周期传输数据的开关网络电路结构,以实现流水线的处理;还包括单周期传输数据的开关网络电路结构等。同时,为了解决多处理单元之间的快速同步问题,本发明还提出了自同步访存方法来实现高效同步。本发明具有很高的可配置性,可以针对不同的FFT应用场合。本发明具有高度的灵活性,可以满足不同FFT大小、高吞吐率、低延时、低功耗等方面的要求。
【专利说明】—种基于开关网络的可配置FFT处理器电路结构【技术领域】
[0001]本发明属于信号处理电路设计领域,具体为一种基于开关网络的可配置FFT处理器电路结构设计。
【背景技术】
[0002]近些年来,随着FFT的应用越来越广泛,以及像软件无线电等领域的发展,对FFT处理器的可配置性与灵活性都提出了较高的要求。此外,从集成电路的生产制造成本来说,随着工艺的不断演进,相同面积的流片成本不断增加,同时面向不同领域设计不同的芯片会带来较大的人力以及财力开销,而设计出一款可配置的芯片来尽量满足不同的应用场合,可以较好的实现小的开销。所以高度可配置的FFT处理器也是目前的需求与挑战。对于一些MMO系统,多路的FFT并发运算也对FFT处理器提出了更高的要求。传统的芯片只能同时进行一路的FFT处理,多路的话需要进行时分复用工作,这样会大大降低效率。于此同时,在一些通信应用中对延时比较敏感,所以对FFT处理器的低延时特性也提出了要求。传统的低延时FFT处理器一般采用流水线的结构,然后其主要的问题是灵活性太差,很难满足不同的协议需求。一般传统的FFT处理器设计主要有基于存储器的设计和流水线设计,如图1所示。对于基于存储器的设计,由于其仅具有一个运算单元,虽然其灵活性较好,但是很难实现较高的吞吐率。而流水线FFT设计,由于其具有多个运算单元,并且可以流水线工作,所以其可以实现很高的吞吐率,但是其问题在于数据路径过于专用化,灵活性很差。因此,有必要设计一种高度可配置与灵活性的FFT处理器。

【发明内容】

[0003]本发明的目的在于提供一种灵活性强、吞吐率高的基于开关网络的可配置FFT处理器电路结构,基于其可配性型与灵活性,能够用于较多的应用场合,并且可以满足相应的性能需求。
[0004]本发明所提供的基于开关网络的可配置FFT处理器电路结构,其电路结构主要由控制器、若干个处理单元、开关网络和若干个存储器单元组成。如图2所示。
[0005]所述控制器用于通过发送指令来配置各个处理单元的功能,其可以由简单的状态机来实现,也可以由一个通用处理器来实现;所述处理单元作为实现FFT计算与控制的处理电路,其需要根据控制器发过来的相应指令来配置相应蝶形运算但单元的功能,并且处理一些开关网络的协议封包和解包操作;所述开关网络为处理单元与存储器单元之间通信的桥梁,可以实现任意处理单元对任意存储器单元的访问,主要负责数据包的解析与路由,并且可以实现单周期高速的数据连续传输;所述存储器单元为可以实现向量读取与写入等复杂功能的存储器模块;其需要根据处理单元发过来的读写数据的指令,连续地产生相应满足FFT运算的读写地址,并把读出来的数据经过封包后送到开关网络,或者把需要写的数据写入相应的存储 单元中;其中:
所述处理单元主要由指令缓冲队列、处理单元控制器和混合基蝶形运算单元构成;其中:
所述控制器向处理单元发出的64比特指令,该指令通过指令缓冲队列的写端口进行指令写入;处理单元控制器根据指令缓冲队列中的指令进行相应的操作;其中:
首先,处理单元控制器通过控制一个复用器的选通将存储器读取指令包送到开关网络接口 ;
然后,处理单元控制器接收到开关网络发来的数据包后,发出用于混合基蝶形运算单元的旋转因子控制信号、混合基选择信号和流水线暂停信号;混合基蝶形运算单元根据处理单元控制器发来的信号,对开关网络的输入数据进行运算,并将结果通过所述复用器送到开关网络的输入接口。如图3所示。
[0006]所述混合基蝶形运算单元可以进行一次基4蝶形运算或者同时进行2次基2蝶形运算;其主要由旋转因子产生电路、蝶形单元、复数乘法器以及若干个寄存器组成,从而实现了流水线高性能的运算单元;所述流水线暂停信号直接控制所有的寄存器实现流水线暂停;其他数据以及控制信号首先会在输入时经过寄存器寄存;经过寄存的旋转因子控制信号会送给三路旋转因子产生电路用于产生在下一拍需要使用的旋转因子;经过寄存的4个复数数据输入在混合基选择信号的控制下经过可配置的蝶形运算单元实现一次基4的运算或者两次基2的运算;在第一级产生的蝶形运算结果以及三个旋转因子将经过中间的一级寄存器进行寄存;在流水线第二级中,如果混合基选择信号为两个基2的运算,那么第一级计算的结果将直接送到输出寄存器寄存输出,否则通过复数乘法器与相应的旋转因子相乘后再送到输出寄存器寄存输出;如图4所示。
[0007]所述开关网络主要由两个完全相同的但方向相反的单向通信通路构成,如图8所示;
所述单向通信通路主要由输入/输出FIFO、请求器、仲裁器和复用器构成;如图7所示;其中:
所述输入/输出FIFO用于实现用开关网络的输入/输出缓冲队列,其中处理单元与存储单元将开关网络的输入FIFO接口作为开关网络的写接口,将开关网络的输出FIFO接口作为开关网络的读端口;
所述请求器用于对在输入FIFO的数据包包头进行解析,并且根据包头的信息区对相应的输出端口的仲裁器进行请求;请求器会连接到输出端口所有的仲裁器,输出端口的仲裁器也会接收所有输入端口的请求信号;
所述仲裁器用于对多个输入请求进行仲裁,并对相应的请求器进行应答;
开关网络中,所述请求器会将请求信号和源标号发给多个仲裁器,同时仲裁器也会将应答信号反馈给各个请求器。
[0008]本发明中,所述存储器单元主要由四个双端口存储器、In-Place策略逻辑、读地址产生单元、写地址产生单元和存储器控制器构成;存储器控制器接收开关网络发过来的数据包,并根据数据包的信息将配置信息发给读地址产生单元和写地址产生单元;读写地址产生单元分写要产生四个数的存储地址并送给In-Place策略逻辑;In-Place策略逻辑根据四个读写地址,产生相应的块(Bank)选择地址并送给四个双端口存储器;开关网络的数据输出也经过In-Place策略逻辑送给四个双端口存储器;四个双端口存储器的读端口经过相应的In-Place策略逻辑输出128比特信息到选通的复用器并送到开关网络接口 ;存储控制器会控制复用器选择存储器的输出数据还是存储器控制器发出的数据包头;如图5所示;
所述双端口存储器为FFT数据的物理存储单元;所述In-Place策略逻辑用于避免Bank间的访存冲突;所述读地址产生单元会根据读指令中的信息进行相应的向量读取地址产生,来实现满足运算顺序的连续数据读取;所述写地址产生单元也同样会根据写指令中的信息连续地产生相应的满足写顺序的地址;所述存储器控制器用于对存储器指令进行解析,并根据信息对读写地址产生单元进行配置,同时存储器控制还负责数据的封包解包操作。
[0009]本发明中,若干个处理单元间的可实现快速同,即通过一个处理单元为其他处理单元发起输出的读请求;当一个处理单元处理完一批数据后,直接为下一个处理单元发起读数据请求,存储器单元将读出来的数据直接通过开关网络传输给下一个处理单元。
[0010]这样,下一个处理单元可以在前一个处理单元运算完后就立即拿到数据,并且可以避免下一个处理单元读到还没有写完的数据,从而实现了多处理单元之间的高效同步,并且保证了数据读取的正确性。其访存示意如图10所示。
[0011]本发明还提出了一种用于减少访存开销的FFT批处理方式。该方法可以在一次访存开销下,通过完成FFT的后面一些级的操作,来实现多个小FFT的批量计算操作,如图9所示,通过执行32点FFT的第二级和第三级可以批量地实现4个8点独立的FFT运算。对于独立地去做4个8点FFT运算,需要发出4次访存请求,带来4次访存开销。而通过设置蝶形运算的起始级为32点FFT的第二级,只需要通过一次访存请求就可以进行4个8点FFT的第一级计算,从而可以减少FFT运算中的平均访存开销。尤其是对于小点数的FFT操作,该方法可以大大提高吞吐率。其执行时间比较可以见图11。
[0012]表1为处理单元指令说明。
[0013]表1
【权利要求】
1.一种基于开关网络的可配置FFT处理器电路结构,其特征在于主要由控制器、若干个处理单元、开关网络和若干个存储器单元组成; 所述控制器通过发送指令来配置各个处理单元的功能,由状态机来实现,或由一个通用处理器来实现;所述处理单元作为实现FFT计算与控制的处理电路,根据控制器发过来的相应指令来配置相应蝶形运算单元的功能,并且处理一些开关网络的协议封包和解包操作;所述开关网络为处理单元与存储器单元之间通信的桥梁,用于实现任意处理单元对任意存储器单元的访问,主要负责数据包的解析与路由,并且实现单周期高速的数据连续传输;所述存储器单元为可以实现向量读取与写入功能的存储器模块,其根据处理单元发过来的读写数据的指令,连续地产生相应满足FFT运算的读写地址,并把读出来的数据经过封包后送到开关网络,或者把需要写的数据写入相应的存储单元中;其中: 所述处理单元主要由指令缓冲队列、处理单元控制器和混合基蝶形运算单元构成;其中: 所述控制器向处理单元发出64比特指令,该指令通过指令缓冲队列的写端口进行指令写入;处理单元控制器根据指令缓冲队列中的指令进行相应的操作;其中: 首先,处理单元控制器通过控制一个复用器的选通将存储器读取指令包送到开关网络接口 ; 然后,处理单元控制器接收到开关网络发来的数据包后,发出用于混合基蝶形运算单元的旋转因子控制信号、混合基选择信号和流水线暂停信号; 混合基蝶形运算单元根据处理单元控制器发来的信号,对开关网络的输入数据进行运算,并将结果通过所述复用器送到开关网络的输入接口 ; 所述开关网络主要由两个完全相同的但方向相反的单向通信通路构成; 所述单向通信通路主要由输入/输出FIFO、请求器、仲裁器和复用器构成;其中: 所述输入/输出FIFO用于实现用开关网络的输入/输出缓冲队列,其中处理单元与存储单元将开关网络的输入FIFO接口作为开关网络的写接口,将开关网络的输出FIFO接口作为开关网络的读端口; 所述请求器用于对在输入FIFO的数据包包头进行解析,并且根据包头的信息区对相应的输出端口的仲裁器进行请求;请求器会连接到输出端口所有的仲裁器,输出端口的仲裁器也会接收所有输入端口的请求信号; 所述仲裁器用于对多个输入请求进行仲裁,并对相应的请求器进行应答; 开关网络中,所述请求器将请求信号和源标号发给多个仲裁器,同时仲裁器将应答信号反馈给各个请求器。
2.如权利要求1所述的基于开关网络的可配置FFT处理器电路结构,其特征在于所述存储器单元主要由四个双端口存储器、In-Place策略逻辑、读地址产生单元、写地址产生单元和存储器控制器构成;存储器控制器接收开关网络发过来的数据包,并根据数据包的信息将配置信息发给读地址产生单元和写地址产生单元;读写地址产生单元分写别要产生四个数的存储地址并送给In-Place策略逻辑;In-Place策略逻辑根据四个读写地址,产生相应的块(Bank)选择地址并 送给四个双端口存储器;开关网络的数据输出也经过In-Place策略逻辑送给四个双端口存储器;四个双端口存储器的读端口经过相应的In-Place策略逻辑输出128比特信息到选通的复用器并送到开关网络接口 ;存储控制器会控制复用器选择存储器的输出数据还是存储器控制器发出的数据包头;所述双端口存储器为FFT数据的物理存储单元;所述In-Place策略逻辑用于避免Bank间的访存冲突;所述读地址产生单元会根据读指令中的信息进行相应的向量读取地址产生,来实现满足运算顺序的连续数据读取;所述写地址产生单元也同样会根据写指令中的信息连续地产生相应的满足写顺序的地址;所述存储器控制器用于对存储器指令进行解析,并根据信息对读写地址产生单元进行配置,同时存储器控制还负责数据的封包解包操作。
3.如权利要求1所述的基于开关网络的可配置FFT处理器电路结构,其特征在于所述混合基蝶形运算单元可以进行一次基4蝶形运算或者同时进行2次基2蝶形运算;其主要由旋转因子产生电路、蝶形单元、复数乘法器以及若干个寄存器组成,从而实现了流水线高性能的运算单元;所述流水线暂停信号直接控制所有的寄存器实现流水线暂停;其他数据以及控制信号首先会在输入时经过寄存器寄存;经过寄存的旋转因子控制信号会送给三路旋转因子产生电路用于产生在下一拍需要使用的旋转因子;经过寄存的4个复数数据输入在混合基选择信号的控制下经过可配置的蝶形运算单元实现一次基4的运算或者两次基2的运算;在第一级产生的蝶形运算结果以及三个旋转因子将经过中间的一级寄存器进行寄存;在流水线第二级中,如果混合基选择信号为两个基2的运算,那么第一级计算的结果将直接送到输出寄存器寄存输出,否则通过复数乘法器与相应的旋转因子相乘后再送到输出寄存器寄存输出。
4.如权利要求1所述的基于开关网络的可配置FFT处理器电路结构,其特征在于若干个处理单元工作于流水线模式时,各处理单元间可实现快速同步: 通过一个处理单元为其他处理单元发起输出的读请求;当一个处理单元处理完一批数据后,直接为下一个处理 单元发起读数据请求,存储器单元将读出来的数据直接通过开关网络传输给下一个处理单元。
【文档编号】G06F17/14GK103902505SQ201410146046
【公开日】2014年7月2日 申请日期:2014年4月12日 优先权日:2014年4月12日
【发明者】窦仁峰, 韩军, 曾凌云, 曾晓洋 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1