基于大规模粗粒度嵌入式可重构系统及其处理方法

文档序号:6548396阅读:178来源:国知局
基于大规模粗粒度嵌入式可重构系统及其处理方法
【专利摘要】本发明涉及一种基于大规模粗粒度嵌入式可重构系统及其处理方法,其包括:系统总线、控制总线、嵌入式微处理器、系统中断控制器、片外同步动态随机存储器、可重构处理器和重构控制单元,该处理方法针对点数为N(4千点N1兆点)的快速傅里叶变换算法,将N点信号长度分解成M阶蝶形运算,然后映射到可重构处理器上,形成数据流图,通过嵌入式微处理器启动重构控制单元,将配置信息发送给可重构处理器,控制可重构处理器开始进行加速型运算。本发明在兼顾灵活度的同时提高了运算效率。
【专利说明】基于大规模粗粒度嵌入式可重构系统及其处理方法
【技术领域】
[0001]本发明涉及嵌入式可重构系统领域,尤其涉及应用于雷达、通信等对实时性要求高且需要高性能的一种基于大规模粗粒度嵌入式可重构系统及其处理方法。
【背景技术】
[0002]长期以来,人们使用软件或硬件的方法来实现电子系统中的计算工作。软件的实现方法,主要特征是在由通用处理器(CPU或DSP)、内存和部分简单的外设组成的电子系统里,通过软件程序实现大部分的逻辑处理和运算功能;软件方法开发较单、灵活性高、易升级,但通常运行速度慢、效率低。硬件的实现方法,主要特征是由专用集成电路(ASIC)完成系统主要的计算工作。其开发周期长,缺乏灵活性,难以升级,但是可为目标任务特别定制,运行效率高、速度快。随着可重构技术的出现,运算任务被高效的映射到硬件资源上,从而避免了软件方式执行的缺陷,保证了执行的高并行度,同时能够根据应用变化通过配置改变其功能,实现了硅后重构的灵活性。
[0003]目前国内外已研究有多种可重构系统,如ReMAP错误!未找到引用源。、MORA错误!未找到引用源。、MorphoSys、ADRES、XPP-1I1、MORPHEUS和REMUS等。当傅里叶变换算法在现有的可重够系统上映射时,虽然输入A和输入B可被同时传输至可重构阵列基本运算单元,但是输入A在第3个计算周期才被使用,这样使得下一次的输入需要等待3个周期才可以进行,产生了流水气泡,使得蝶形运算单元执行效率较低。当傅里叶变换算法在可重构阵列上运算至最后两阶时,计算中的数据需要将结果进行写回,从而增大了可重构阵列间的数据传输量,造成数据访问延迟,严重影响系统的性能。
[0004]针对相关研究中数据运算时产生的流水气泡以及可重构阵列间的数据传输量增大的问题,目如尚未提出有效的解决方案。

【发明内容】

[0005]有鉴于此,本发明提出一种基于大规模粗粒度嵌入式可重构系统及其处理方法,其利用可重构技术的并行性执行指令、中间结果可流水式不间断操作、运算模块独立可配置等优点,针对快速傅里叶变换这种通用性强,数据量大的算法进行运算,能够在支持一定灵活度的同时,提供足够的计算能力。
[0006]为解决上述技术问题,本发明提供一种基于大规模粗粒度嵌入式可重构系统,其包括:系统总线、控制总线、嵌入式微处理器、系统中断控制器、片外同步动态随机存储器、可重构处理器和重构控制单元;其中,将进行快速傅里叶变换运算的N点信号长度分解成M阶蝶形运算,然后映射到所述可重构处理器上,形成数据流图,其中,4千点< NS I兆点;
[0007]通过所述嵌入式微处理器启动所述重构控制单元,将配置信息从所述控制总线上发送到所述可重构处理器,控制所述可重构处理器开始进行加速型运算,当所述可重构处理器完成当前任务后,通过所述系统中断控制器发送中断信号给所述嵌入式微处理器,以完成后续功能。[0008]所述系统中断控制器与系统总线之间的连接是双向的,用于向可重构处理器发送中断请求信号,由嵌入式微处理器响应。
[0009]所述系统总线用来连接各功能部件如嵌入式微处理器、系统中断控制器、片外同步动态随机存储器、可重构处理器和重构控制单元而构成一个完整的可重构系统,具体的,用于传送数据信息和配置信息,其中与各功能部件的连接是双向的,片外同步动态随机存储器发送配置信息至系统总线是单向的。
[0010] 所述控制总线,用于单向传递配置信息,通过嵌入式微处理器启动所述重构控制单元,将配置信息从所述控制总线上发送到所述可重构处理器,则可重构处理器开始进行运算。
[0011]优选地,所述可重构处理器包含可重构阵列、可重构阵列信息配置模块、片上数据传输网络和片上数据传输网络信息配置模块;其中,所述可重构阵列信息配置模块用于配置所述可重构阵列运算时相应的数据输入、运算控制、数据输出、可重构阵列循环次数、运行周期和配置信息的切换;所述片上数据传输网络信息配置模块用于片上数据传输网络的功能配置。
[0012]优选地,可重构处理器包括4个可重构阵列同时运算;每个所述可重构阵列由6行8列的二维基本运算单元构成,数据从上一层的所述基本运算单元传输到下一层;其层间互联采用直连线,上一层的所述基本运算单元可以与下一层的与其正对的及向两侧偏移2个的所述基本运算单元互联。
[0013]优选地,所述片上数据传输网络包括4个先进先出寄存器堆、旋转因子存储单元和外存访问接口 ;其中,4个先进先出寄存器堆#0-#3对应于4个可重构阵列#0-#3,用于存储相应所述可重构阵列运算过程中产生的临时数据,完成所述4个可重构阵列间的数据块重排;旋转因子是快速傅里叶变换运算过程中所需的输入数据,制成一个旋转因子表存储在旋转因子存储单元中,供4个可重构阵列读取;外存访问接口用于实现旋转因子存储单元与片外同步动态随机存储器之间的数据传输。
[0014]优选地,所述蝶形运算的输入数据为a、b和旋转因子W,输出为a+bW、a_b W,其中
a、b、W均为复数,完成一个基本蝶形运算需要4个基本运算单元。
[0015]优选地,所述映射为输入所需数据,在一所述可重构阵列上以6级流水完成前三阶运算;从第四阶开始,在所述可重构阵列的第一,三,五行上并排输入8个数据分别以2级流水计算;每次运算所需要的数据需要有规则的跳转,且不同阶的蝶形运算的数据输入的跳转规则有一定规律,进行L阶运算时,用于蝶形运算的数据间隔是2' L为阶数,L≥4 ;运算到M-1阶和M阶时,4个可重构阵列间在共享的片上数据传输网络上进行数据块重排后再在每个可重构阵列上进行运算,直至运算结束。
[0016]优选地,N点快速傅里叶变换所需进行的M阶运算,前1g2 (N/4)阶的运算在4个所述可重构阵列中独立并行执行,并将各自运算结果存储在相应先进先出寄存器堆中;当运算进行到到M-1阶和M阶时,需在共享的片上数据传输网络上进行数据块重排后再在每个所述可重构阵列上进行运算。
[0017]优选地,所述数据块重排为:将每个先进先出寄存器堆中的暂存数据分为上下两部分,对先进先出寄存器堆#0的数据的下半部分和先进先出寄存器堆#1的上半部分进行互换以及先进先出寄存器堆#2的数据的下半部分和先进先出寄存器堆#3的上半部分进行互换,然后进行M-1阶运算;将运算结果重新排列成最初的顺序,接着将先进先出寄存器堆#0的数据的下半部分和先进先出寄存器堆#2的上半部分进行互换,先进先出寄存器堆#1的数据的下半部分和先进先出寄存器堆#3的上半部分进行互换,再进行M阶运算。这种数据块重排技术设计使得最后两阶计算中的数据不需将结果进行写回,从而减少可重构阵列间的的数据传输量。
[0018]本发明还提供了一种基于大规模粗粒度嵌入式可重构系统处理方法,其包括以下步骤:
[0019](I)分析傅里叶变换的运算流程,将基本蝶形运算转换成数据流图的形式;
[0020](2)制定按时间抽取算法的倒位序输入顺序,并将配置信息和所需运算的数据存入相应存储器;
[0021](3)将N点离散傅里叶变换映射到可重构处理器上;
[0022](4)通过嵌入式微处理器启动重构控制单元,将配置信息从控制总线上发送到可重构处理器,控制可重构处理器的工作;
[0023](5)当可重构处理器完成当前任务后,发送中断信号给嵌入式微处理器。
[0024]本发明与现有技术相比,其优点在于:
[0025](I)本发明的基于大规模粗粒度嵌入式可重构系统及其处理方法,面向N点FFT运算,只需对配置信息稍加改动,便可实现不同点的运算。相比传统的通用处理器实现灵活性更高。
[0026](2)本发明利用可重构技术的并行性执行指令、中间结果可流水式不间断操作、运算模块独立可配置、等优点,针对快速傅里叶变换这种通用性强,数据量大的算法进行运算,使得可在同一时间执行大量操作;数据块重排技术减少了可重构阵列间数据传输量;并行流水化的运算模式使得此方法相对于专用集成电路运算效率更高。
【专利附图】

【附图说明】
[0027]附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0028]图1为本发明的基于大规模粗粒度嵌入式可重构系统结构框图;
[0029]图2为本发明可重构阵列结构框图;
[0030]图3为本发明可重构处理器中共享的片上数据传输网络内部结构图;
[0031]图4为基于本发明数据块重排技术的数据块位置图。
【具体实施方式】
[0032]以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0033]名词释义:系统总线(AHB, Advanced High performance Bus),快速傅里叶变换(Fast Fourier Transformation, FFT),基本运算单兀(PE)。
[0034]图1为本发明基于大规模粗粒度嵌入式可重构系统结构框图,如图1所示,本发明提供一种基于大规模粗粒度嵌入式可重构系统,其硬件结构包括由系统总线,如AMBA2.0ΑΗΒ、控制总线,如AMBA2.0ΑΗΒ、嵌入式微处理器,如ARM7TDM1、系统中断控制器,如INTC、片外同步动态随机存储器,如DDR2SDRAM、可重构处理器和重构控制单元构成的数字信号处理系统。具体的实现步骤为:
[0035](I)分析快速傅里叶变换的运算流程,将基本蝶形运算转换成数据流图的形式;
[0036](2)制定按时间抽取算法的倒位序输入顺序,并将配置信息和所需运算的数据存入相应存储器;
[0037](3)将64K点离散傅里叶变换映射到可重构处理器上;
[0038](4)通过ARM7TDMI启动重构控制单元,将配置信息从控制总线AMBA2.0AHB上发送到可重构处理器,控制可重构处理器的工作;
[0039](5)当可重构处理器完成当前任务后,发送中断信号给ARM7TDMI嵌入式微处理器ARM7TDMI。
[0040]下面就每一个步骤,进行具体说明:
[0041]I)分析快速傅里叶变换(FFT)的运算流程,将基本蝶形运算转换成数据流图的形式; [0042]本发明所针对的64K点的离散傅里叶变换按时间抽取算法,将64K点离散傅里叶变换分解成16阶,每阶由N/2个基本蝶形运算组成;x(n)表示需要进行傅里叶变换的序列,X(k)表示运算完的序列,η和k都代表非负整数的序列标号。经过16阶分解,数据完成由X(n)到X(k)的转换。本发明中的FFT运算基于复数型数据,因此一个基本的蝶形运算需要4个基本运算单元(PE):输入数据为a、b和旋转因子W,输出为a+b ff, a-bff0
[0043]2)制定按时间抽取算法的倒位序输入顺序,并将配置信息和所需运算的数据存入相应存储器;
[0044]a)FFT运算输入数据的特点是倒位序输入,所谓倒位序,就是将二进制数的最高有效位到最低有效位的位序进行颠倒排列而得到的二进制数。如当进行8点FFT运算时,输入次序为x(0),X (4)、X (2)、X (6)、X (I)、X (5)、X (3)、X (7)。针对这种数据输入的规律性,我们在可重构阵列信息配置模块内定义了一种倒位序的数据输入方式寄存器,使得每次发出读数据请求时,将二进制数的最高有效位到最低有效位的位序进行颠倒得到倒位序序列。
[0045]b)输入数据除x(n)外还有旋转因子,在FFT算法流程图中,每一级都有N/2个蝶
形元算,每个蝶形运算都要乘以旋转因子。每一级旋转因子都不相同,但是排列却很有规律:第L阶运算所需旋转因子数为2L-1个,分别是巧W^2\.wf U)W2L则M
、、O
阶运算所需的旋转因子总量为N/2。旋转因子^^=32((x)S (2 η k/N) — j sin(2 π k/N)),其
中求正弦和余弦函数值的计算量很大,在基本运算单元上完成会非常复杂。由于4个可重构阵列运算过程中都需要旋转因子的输入,因此将旋转因子制成旋转因子表存储在片上数据传输网络的旋转因子存储单元。针对旋转因子输入的规律性,我们在可重构阵列信息配置模块内定义了旋转因子的输入方式寄存器,使得每次发出读数据请求时,旋转因子可以在每级运算时输入所需数据。
[0046]c)关于配置信息,配置可重构处理器以生成配置信息。
[0047]表1为本发明的基于大规模粗粒度嵌入式可重构系统及其处理方法配置可重构阵列的配置寄存器堆。[0048]表2为表一中配置寄存器堆的相应功能配置。
[0049]表1
[0050]
【权利要求】
1.一种基于大规模粗粒度嵌入式可重构系统,其包括: 系统总线、控制总线、嵌入式微处理器、系统中断控制器、片外同步动态随机存储器、可重构处理器和重构控制单元; 其中,将N点信号长度分解成M阶蝶形运算,然后映射到所述可重构处理器上,形成数据流图,其中,4千点≤N≤1兆点; 通过所述嵌入式微处理器启动所述重构控制单元,将配置信息从所述控制总线上发送到所述可重构处理器,控制所述可重构处理器开始进行加速型运算,当所述可重构处理器完成当前任务后,通过所述系统中断控制器发送中断信号给所述嵌入式微处理器。
2.如权利要求1所述的嵌入式可重构系统,其特征在于:所述可重构处理器包含可重构阵列、可重构阵列信息配置模块、片上数据传输网络和片上数据传输网络信息配置模块;其中,所述可重构阵列信息配置模块用于配置所述可重构阵列运算时相应的数据输入、运算控制、数据输出、可重构阵列循环次数、运行周期和配置信息的切换;所述片上数据传输网络信息配置模块用于片上数据传输网络的功能配置。
3.如权利要求1或2所述的嵌入式可重构系统,其特征在于:可重构处理器包括4个可重构阵列同时运算;每个所述可重构阵列由6行8列的二维基本运算单元构成,数据从上一层的所述基本运算单元传输到下一层;其层间互联采用直连线,上一层的所述基本运算单元可以与下一层的与其正对的及向两侧偏移2个的所述基本运算单元互联。
4.如权利要求2所述的嵌入式可重构系统,其特征在于:所述片上数据传输网络包括4个先进先出寄存器堆、旋转因子存储单元和外存访问接口 ;其中,4个先进先出寄存器堆#0-#3对应于4个可重构阵列#0-#3,用于存储相应所述可重构阵列运算过程中产生的临时数据,完成所述4个可重构阵列间的数据块重排;旋转因子是快速傅里叶变换运算过程中所需的输入数据,制成一个旋转因子表存储在旋转因子存储单元中,供4个可重构阵列读取;外存访问接口用于实现旋转因子存储单元与片外同步动态随机存储器之间的数据传输。
5.如权利要求1所述的嵌入式可重构系统,其特征在于:所述蝶形运算的输入数据为a、b和旋转因子W,输出为a+bW、a-bff,其中a、b、W均为复数,完成一个基本蝶形运算需要4个基本运算单元。
6.如权利要求3所述的嵌入式可重构系统,其特征在于:所述映射为输入所需数据,在一所述可重构阵列上以6级流水完成前三阶运算;从第四阶开始,在所述可重构阵列的第一,三,五行上并排输入8个数据分别以2级流水计算;每次运算所需要的数据需要有规则的跳转,且不同阶的蝶形运算的数据输入的跳转规则有一定规律,进行L阶运算时,用于蝶形运算的数据间隔是2' L为阶数,L≤4 ;运算到M-1阶和M阶时,4个可重构阵列间在共享的片上数据传输网络上进行数据块重排后再在每个可重构阵列上进行运算,直至运算结束。
7.如权利要求4所述的嵌入式可重构系统,其特征在于:N点快速傅里叶变换所需进行的M阶运算,前1g2 (N/4)阶的运算在4个所述可重构阵列中独立并行执行,并将各自运算结果存储在相应先进先出寄存器堆中;当运算进行到到M-1阶和M阶时,需在共享的片上数据传输网络上进行数据块重排后再在每个所述可重构阵列上进行运算。
8.如权利要求4或6或7中所述的嵌入式可重构系统,所述数据块重排为:将每个先进先出寄存器堆中的暂存数据分为上下两部分,对先进先出寄存器堆#0的数据的下半部分和先进先出寄存器堆#1的上半部分进行互换以及先进先出寄存器堆#2的数据的下半部分和先进先出寄存器堆#3的上半部分进行互换,然后进行M-1阶运算;将运算结果重新排列成最初的顺序,接着将先进先出寄存器堆#0的数据的下半部分和先进先出寄存器堆#2的上半部分进行互换,先进先出寄存器堆#1的数据的下半部分和先进先出寄存器堆#3的上半部分进行互换,再进行M阶运算。
9.一种基于大规模粗粒度嵌入式可重构系统处理方法,其包括以下步骤: (1)分析傅里叶变换的运算流程,将基本蝶形运算转换成数据流图的形式; (2)制定按时间抽取算法的倒位序输入顺序,并将配置信息和所需运算的数据存入相应存储器; (3)将N点离散傅里叶变换映射到可重构处理器上; (4)通过嵌入式微处理器启动重构控制单元,将配置信息从控制总线上发送到可重构处理器,控制可重构处理器的工作; 当可重构处理器完成当前任务后,发送中断信号给嵌入式微处理器。
【文档编号】G06F17/16GK103984677SQ201410240100
【公开日】2014年8月13日 申请日期:2014年5月30日 优先权日:2014年5月30日
【发明者】曹鹏, 刘波, 杨苗苗, 刘杨, 汪芮合, 朱婉瑜 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1