法律状态公告日
法律状态信息
法律状态
2022-11-22
授权
发明专利权授予
2022-09-16
实质审查的生效 IPC(主分类):G06F15/78 专利申请号:2022109131421 申请日:20220801
实质审查的生效
技术领域
本发明涉及计算机处理器领域,尤其是一种算子频度压缩及上下文配置调度的FIR可重构处理器。
背景技术
数字滤波器在无线通信、图像处理、模式识别等领域都有着广泛的应用。通过滤波,将一组输入信号转变成一组输出信号,以达到修正信号中时域或频域信号属性的目的。数字滤波器通常可以分为有限冲激响应(FIR)和无线冲击相应(IIR)两种。FIR滤波器作为数字滤波器典型代表之一, 具有以下特点:(1)线性相位、具有任意的幅度特征;(2)单位冲激响应是有限长的、具有稳定的特征。FIR滤波器的实现通常采用DSP以及FPGA。DSP有专用的FIR函数,也可以根据指令集架构进行FIR的功能实现。由于FIR设计时其系数计算及其量化比较复杂,因此一般都采用MATLAB软件作为辅助设计,计算出FIR的系数。但由于程序顺序执行,速度受限,并且不同DSP芯片指令不同,这会导致开发时间较长。FPGA有规则的内部逻辑块阵列和丰富的连线资源,适合用于细粒度和高并行度结构的FIR滤波器的实现,相对于串行运算主导的通用DSP芯片来说,并行性和可扩展性都更好。随着关键各类应用的发展,低功耗实时处理需求越发强烈,相应FIR实现器件的处理速度、功耗、面积开销等问题越发明显。因此,需要提出一种FIR加速架构,既能满足高性能需求,同时能满足一定灵活性。
FIR滤波器实现通常有DSP和FPGA两种。对DSP来说,DSP将应用算法转化到命令式的软件指令串(或长指令、单指令多数据流指令等),然后用硬件来实现每条指令及其流水、调度、控制机制,从而完成应用功能的物理实现。这虽然最大程度保留了DSP的灵活性,但是这也将影响系统处理效率。由于硬件本身的特性基本没有得到体现,所以无法充分发挥硬件本身的优势。为了确保灵活性,DSP设计时包含了大量取指、译码等非算术逻辑单元逻辑,在取指译码和寄存器堆访问等非计算功能需要消耗80%以上的功耗,因此它在计算过程中的额外能量开销非常大,计算的能量效率低。因此DSP这种方式的效率低,难以满足应用需求的快速、低功耗的发展需求。
FPGA因具备定制实现大规模数字逻辑、快速完成产品定型等能力而被广为使用,在通信、网络、航天、国防等领域拥有牢固的重要地位。FPGA可以提供细粒度的重构,因此可以实现高灵活性。然而,随着应用需求的不断提高,以下三大问题逐渐成为制约FPGA发展的瓶颈:(1)能量效率低:性能低、功耗高,静态功耗巨大;(2)容量受限:所装载的电路通常不能超过FPGA本身规模的5%;(3)使用门槛高:可编程性差,开发困难,不懂电路设计的软件人员无法进行高效编程。这些问题是由单比特编程粒度、静态配置等这些FPGA的本征属性造成的。因此,由于FPGA的配置时间长、功耗高,这对于实时需求应用来说将难以接受。
随着可编程器件的发展,近年来,一种动态重构的架构被提出可以用于多种应用的信号处理过程,包括基于动态重构架构的神经网络加速器、基于动态重构的密码算法实现、一种动态重构架构以实现基带处理。从这些不同类型的动态重构架构可以看出,这种架构相对于FPGA在重构时间、代价上有明显优势。
现有的动态重构的架构存在如下问题:
在计算阵列方面,需要根据FIR所有可能存在的配置参数情况,生成所有针对PE(Processing element处理单元)基本结构的计算特征集合,并根据该集合定制化设计PE微结构。现有的动态重构架构,没有能够在灵活性和资源开销方面取得平衡,在动态重构处理器需要支持多种FIR算法时,将导致硬件资源消耗过大,从而降低整个处理器的效率。
发明内容
为了解决上述技术问题,本发明公开一种算子频度压缩及上下文配置调度的FIR可重构处理器。该处理器区别于传统专用电路、DSP和FPGA,通过动态可重构处理器架构,实现高能效、高灵活性和可扩展性。
基于动态可重构处理器架构的FIR硬件加速装置的主要计算模块是多个功能灵活可变的动态重构处理阵列,它由多个同构处理单元排列组成。通过变换各处理单元的功能、互连、输入输出数据流等,可以改变每个处理单元的计算逻辑。将这种变换方式运用到整体,就可以实现动态局部重构。
本发明的技术方案为:一种算子频度压缩及上下文配置调度的FIR可重构处理器,包括:
动态重构处理单元阵列,其包括多个处理单元阵列PEA及其对应的存储器、PEA的配置控制器、总线、ESRAM、主控制器;
其中,主控制器负责整个装置的任务控制并进行功能划分,将数据密集型运算操作分配到PEA执行;通过多个异构的处理单元阵列,拼接完成FIR算法功能;
每个PEA都会有一个配套的存储器,用来存放初始计算数据、输出数据、各PEA内部的PE需要交互的数据;整个PEA的功能由PEA的配置控制器以配置信息的形式实时定义,以此来实现处理器的动态重构。
有益效果:
本发明通过一种算子频度压缩及上下文配置调度的FIR可重构处理器,实现高能效、高灵活性和可扩展性。
(1)在计算阵列方面,根据FIR所有可能存在的配置参数情况,生成所有针对PE基本结构的计算特征集合,并根据该集合定制化设计PE微结构。相比较现在有的动态重构架构,其采用通用计算功能的PE,通过进行FIR算法定制的PE设计,可以实现面积效率的提升;PE设计是指PE微结构设计,即每个PE内部设计和PE之间互连方式设计。每个PE内有一个输入寄存器组,该寄存器组保存算术逻辑单元的输入数据,其中包括2个32比特的输入。算术逻辑单元的输入还有1个1比特的输入,因此PE可以配置成为单比特运算功能。算术逻辑单元的功能根据FIR算法进行定制,比如复数乘累加操作。算数逻辑单元有两个输出,包括1个32比特输出和1个1比特输出,以保持灵活性。同时,PE内部包括配置加载器,它根据处理器控制指令,从配置存储器中加载配置信息,将整个PE的功能进行快速重构。通过算法分析根据算法需求定制化设计PE微结构,能够减少不必要的互连面积开销、算数逻辑单元功能、多余配置存储器空间等,有利于提升面积效率。通过多个异构的处理单元阵列,拼接完成FIR算法功能,该阵列单元的功能可以动态实时切换,相对于传统FIR处理器以及FPGA架构,这里提出的架构可以实时改变处理单元功能,切换时间通常比FPGA快5-6个数量级,以达到动态实时重构。并通过层次化结构处理,实现系统级、PEA级、PE级处理的分离,实现硬件资源的充分并行利用。
(2)在电路设计方面,设计由配置信息控制的电压调整机制,利用互连和运算单元的延时随负载变化而波动明显的特点,对各处理单元的电压进行动态可配置设计,由动态配置信息来实时控制互连和运算单元的电压分配,以降低部分处理单元的功耗,实现整体处理器功耗的降低。
(3)本发明提出了一种基于算子使用频度的配置信息组织形式及其缓存结构,可以有效地减少配置信息存储量,减少了配置信息的存储面积,并为配置的高效调度提供便利。本发明通过分析FIR算法特征,将其计算归纳为几个粒度适合的基本算子,配置信息以这些算子为基本大小进行组织,按照不同算子在算法中的使用频度对算子进行分类,频度高的算子使用更多的存储资源;同时采用层次化的存储结构来进一步减少配置的存储面积,在计算时利用多级索引恢复出计算阵列的配置。采用本发明方案后,需要存储的配置信息量减少了82.25%以上。并且在随着算法数量增加时,在减小配置信息总存储量方面具有增长缓慢的优点;
(4)本发明提出了一种基于配置信息上下文的配置调度方式,通过配置信息空间上下文的关系,动态地选择可重构处理器计算阵列的重构粒度,在此基础上,再通过配置信息时间上下文的关系,在配置过程中跳过配置信息未改变的区域,减小了配置信息的传输量,缩短了配置信息的传输时间在整个执行时间中的比例,提升了可重构处理器的性能。
综上,相比较现在有的动态重构架构,本发明采用通用计算功能的PE,通过进行FIR算法定制的PE设计,可以实现面积效率的提升;相较于将多种类型、固定功能的FIR模块集成到PE内部,可以通过灵活切换,提升动态重构架构对不同FIR算法和参数的支持,通过一套硬件实现多种类型的计算。
附图说明
图1 一种算子频度压缩及上下文配置调度的FIR可重构处理器结构框图;
图2 整个处理器装置的工作流程;
图3 动态重构处理单元阵列结构示意图;
图4 15阶FIR滤波器的各PE实现示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅为本发明的一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域的普通技术人员在不付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明的保护范围。
本发明公开一种算子频度压缩及上下文配置调度的FIR可重构处理器,该装置区别于传统专用电路、DSP和FPGA,通过动态可重构处理器架构,实现高能效、高灵活性和可扩展性。
基于动态可重构处理器架构的FIR硬件加速装置的主要计算模块是多个功能灵活可变的动态重构处理阵列,它由多个同构处理单元排列组成。通过变换各处理单元的功能、互连、输入输出数据流等,可以改变每个处理单元的计算逻辑。将这种变换方式运用到整体,就可以实现动态局部重构。
本发明的装置总体架构如图1所示,它包括多个处理单元阵列(PEA)及其对应的存储器、PEA的配置控制器、总线、ESRAM、主控制器。
首先,在计算阵列方面,通过多个异构的处理单元阵列,拼接完成FIR算法功能,该阵列单元的功能可以动态实时切换,相对于传统FIR处理器以及FPGA架构,本发明提出的架构可以实时改变处理单元功能,切换时间通常比FPGA快5-6个数量级,以达到动态实时重构。
其次,本发明在电路设计方面,设计由配置信息控制的电压调整机制,利用互连和运算单元的延时随负载变化而波动明显的特点,对各处理单元的电压进行动态可配置设计,由动态配置信息来实时控制互连和运算单元的电压分配,以降低部分处理单元的功耗,实现整体处理器功耗的降低。
其中,主控制器负责整个装置的任务控制并进行功能划分,将数据密集型运算操作分配到PEA执行。每个PEA都会有一个配套的存储器,它可以用来存放初始计算数据、输出数据、各PEA内部的PE需要交互的数据等。整个PEA的功能由PEA的配置控制器以配置信息的形式实时定义,以此来实现处理器的动态重构。
整个处理器装置的工作流程如图2所示:
首先,通过ESRAM初始化各PEA的存储器包括共享存储器和配置存储器,并使能各PEA和定时器Timers;
第二,读取配置存储器中的配置信息,并通过配置信息确定各PEA的计算循环次数;
第三,通过配置信息确定PEA内部各PE的计算循环次数以及PE的数据和操作码等;
第四,各PE进行计算;
第五,每个PE完成循环计算后,判断整个PEA是否完成了循环计算。当所有PEA的计算都完成后,打印时间开销,并将计算结果的数据搬移到各存储器和ESRAM。
第六,验证计算结果和时间开销,并关闭PEA。
可见,本发明通过层次化结构处理,实现系统级、PEA级、PE级处理的分离,实现硬件资源的充分并行利用。其次,由于配置信息是针对系统级、PEA级和PE级,因此,本发明设计的配置信息结构将会有所不同。利用FIR不同类型算子的调度频度信息,结合上下文配置信息进行各处理模块的配置信息组织和调度形式设计,相对于传统的设计来说,可以针对性的提升FIR算法实现时的配置速度,同时大幅缩短FIR算法的配置信息存储开销。
PEA作为计算核心模块(如图3所示),将对整个处理器有着非常重要的作用,首先,此部分的改进主要包括以下几点:
1、在计算阵列方面,需要根据FIR所有可能存在的配置参数情况,生成所有针对PE基本结构的计算特征集合,比如FIR算法常用的基本算子、每个算子的数据来源和去向等,并根据该集合定制化设计PE微结构。相比较现在有的动态重构架构,本发明通过进行FIR算法定制的PE设计,可以实现面积效率的提升;相较于将多种类型、固定功能的FIR模块集成到PE内部,可以通过灵活切换,提升动态重构架构对不同FIR算法和参数的支持,通过一套硬件实现多种类型的计算。
2、在配置系统设计方面,提出了一种基于算子使用频度的配置信息组织形式及其缓存结构,可以有效地减少配置信息存储量,减少了配置信息的存储面积。本发明通过分析FIR算法特征,将其计算归纳为几个粒度适合的基本算子,配置信息以这些算子为基本大小进行组织,按照不同算子在算法中的使用频度对算子进行分类,频度高的算子使用更多的存储资源;同时采用层次化的存储结构来进一步减少配置的存储面积,在计算时利用多级索引恢复出计算阵列的配置。采用本发明方案后,需要存储的配置信息量减少了82.25%以上。并且在随着算法数量增加时,在减小配置信息总存储量方面具有增长缓慢的优点;
同时,本发明采用基于配置信息上下文的配置调度方式,配置信息空间上下文关系,通常表示通过FIR算法的分析,得到配置信息的组成,各配置信息间会根据FIR算法存在一定关系,本发明利用这种由FIR算法产生的配置信息空间上下文关系,动态地选择可重构处理器计算阵列的重构粒度,可以缩短配置执行时间。每个PEA由三种方式驱动,包括控制流、配置流、数据流。其中,控制流对整个PE的功能进行控制,包括PE的使能和结束、任务的使能和结束、数据搬移的使能和结束等;配置流在控制流的使能下,将配置信息搬运到各PE,随后对各PE的功能进行重新配置;数据流在控制流和配置流的基础上,以流处理的方式,对输入数据进行逻辑计算,并输出到存储器中。三种流相互配合,形成了PEA的快速计算和实时功能重构。
在每个PEA中,有多个以阵列方式排列的PE,各PE通过配置信息可以实时更新,保持高度灵活性。同时,为了保证PE间数据交互的流畅性,各PE间有互连结构;所有PE有共享的寄存器和存储器单元。每个PE的主要功能就是进行计算,这由PE内部的ALU完成,ALU包括多种逻辑计算功能,比如基础运算(加法、乘法、移位等)、复杂运算(复数乘法、复数乘累加等)。ALU由两个32比特的输入、一个1比特的输入、一个32比特的输出和一个1比特的输出构成。ALU的输入有多种方式,包括其他PE,寄存器、存储器等,这是由配置信息控制的。
根据本发明的一个实际应用的参考实施例,具体如下:
为便于理解,本实施例将简化介绍基于动态可重构处理器架构的FIR硬件加速装置的实现。
对于长度为
其中,
其中,
如图4所示,为15阶FIR滤波器的各PE实现示意图。
以15阶FIR滤波器为例解释算子频度压缩及上下文配置调度的FIR可重构处理器的实现。每个PE存放1个系数。每个PE输入该时钟在4相通道采到的4个数,第1拍为x0~x3,第2拍为x4~x7,以此类推。每一拍输出4相滤波后的4个数,均从PE0输出。
Y0 = PE0_x0 + sum_0
Y1 = PE1_x0 + PE0_x1 + sum_1
Y2 = PE2_x0 + PE1_x1 + PE0_x2 + sum_2
Y3 = PE3_x0 + PE2_x1 + PE1_x2 + PE0_x3 + sum_3
其中,sum_n是上一拍4个PE的累加和。共有64个,每4个PE对应4个。
sum_0 = sumD_4+ PE1_x3 + PE2_x2 + PE3_x1 + PE4_x0
sum_1 = sumD_5 + PE2_x3 + PE3_x2 + PE4_x1 + PE5_x0
sum_2 = sumD_6 + PE3_x3 + PE4_x2 + PE5_x1 + PE6_x0
sum_3 = sumD_7 + PE4_x3 + PE5_x2 + PE6_x1 + PE7_x0
即: sum_n = sumD_n+4 + PEn+1_x3 + PEn+2_x2 + PEn+3_x1 + PEn+4_x00
sumD_n是上一拍的sum结果。也就是sum 累计的。
各PE的执行过程如下图所示,横轴为周期,纵轴为不同PE以及其存放的系数。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,且应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
机译: 可重构处理器的控制方法,可重构处理器的配置信息的生成方法以及配置信息生成工具
机译: 可重构处理器和可重构处理器的上下文切换方法
机译: 可重构处理器,可重构数据处理单元,数据处理系统可重构单元,可配置数据处理器