CN102129495B - 一种降低可重构算子阵列结构功耗的方法 - Google Patents
一种降低可重构算子阵列结构功耗的方法 Download PDFInfo
- Publication number
- CN102129495B CN102129495B CN201110053883A CN201110053883A CN102129495B CN 102129495 B CN102129495 B CN 102129495B CN 201110053883 A CN201110053883 A CN 201110053883A CN 201110053883 A CN201110053883 A CN 201110053883A CN 102129495 B CN102129495 B CN 102129495B
- Authority
- CN
- China
- Prior art keywords
- power consumption
- array structure
- restructural
- operator
- array
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种降低可重构算子阵列结构功耗的方法。其中,该可重构算子阵列结构包括至少一个可重构算子,所述可重构算子按列分布式排列,则本发明的方法包括:生成可重构算子阵列结构的可执行文件;根据配置信息对可重构算子阵列结构进行低功耗配置;对进行低功耗配置后的阵列结构进行功耗分析,如果所述阵列结构的功耗满足设计要求,则将所述可执行文件加载至所述阵列结构并进行调试,如果功耗不满足设计需求,则对所述阵列结构进行功耗优化处理。本发明的方法通过对阵列结构进行低功耗配置,从而降低该阵列结构的功耗,如果该阵列结构仍不满足设计要求,则再通过对该阵列结构进行功耗优化,来降低该阵列的系统级功耗。
Description
技术领域
本发明涉及一种集成电路设计领域,尤其涉及一种降低可重构算子阵列结构功耗的方法。
背景技术
集成电路阵列处理结构作为一种先进计算的架构,从20世纪90年代就开始被关注和研究。阵列处理结构的规模较大,集成大量的处理单元,在提高运算性能的同时,带来了功耗的提升,所以阵列处理结构的低功耗研究一直是研究的重点之一。
目前低功耗研究主要从版图级、电路级、逻辑门级、RTL级、结构级和系统级进行研究,而版图级到RTL级之间较低层次的低功耗研究相对比较成熟,但是它们带来的功耗降低有限。结构级和系统级的低功耗技术逐渐成为近年来低功耗研究的重点,因为它们带来的功耗降低分别在40%-70%和50%-90%之间。
目前,北京大学深圳研究生院集成微系统实验室提出一种基于并行计算技术的统一架构的阵列处理结构,采用可重构运算算子和存储算子支持处理的需求,同时采用可重构路径算子和布线资源支持数据传输的实现。因此该结构基于可重构算子的设计能够支撑多种应用的需要。随着规模的增大和运算性能的提升,该结构同样存在降低功耗的问题。
发明内容
本发明要解决的主要技术问题是,提供一种降低可重构算子阵列结构功耗的方法,从结构级和系统级降低该阵列结构的功耗。
为解决上述技术问题,本发明采用的技术方案如下:
一种降低可重构算子阵列结构功耗的方法,所述可重构算子阵列结构包括至少一个可重构算子,所述可重构算子按列分布式排列,包括步骤:
生成可重构算子阵列结构的可执行文件;
根据配置信息对可重构算子阵列结构进行低功耗配置;
对进行低功耗配置后的阵列结构进行功耗分析,如果所述阵列结构的功耗满足设计要求,则将所述可执行文件加载至所述阵列结构并进行调试,如果功耗不满足设计需求,则对所述阵列结构进行功耗优化处理。
进一步地,可重构算子包括用于实现算子功能的功能单元、配置单元和功耗控制单元,所述低功耗配置包括降低可重构算子阵列的静态功耗的配置和降低可重构算子阵列动态功耗的配置,所述降低可重构算子阵列的静态功耗的配置包括:
配置单元根据功能单元的配置信息判断该功能单元是否被利用,如果没被利用则输出低功耗状态启动信号;
功耗控制单元根据低功耗状态启动信号切断可重构算子中除配置单元以外的其他部分的电源;
所述降低可重构算子阵列动态功耗的配置包括:
配置单元在功能单元被利用的状态下判断数据流是否连续,如果不连续,则锁定功能单元的输出。
进一步地,所述可重构算子阵列结构包括多个时钟网络,所述降低可重构算子阵列动态功耗的配置还包括:
根据可重构算子的速度要求产生相应的配置信息;
使可重构算子的工作时钟接口在配置信息的控制下连接到相应的时钟网络。
进一步地,所述功耗优化处理包括:
对所述阵列结构进行功耗分布分析,得到功耗集中区域;
将所述功耗集中区域的映射对应的算法描述还原;
对所述阵列结构进行功耗优化,生成新的可执行文件用于加载至所述阵列结构并进行调试。
更进一步地,所述功耗优化包括功能等价替换,即将所述阵列结构中高功耗的硬件执行用低功耗的硬件执行代替。
更进一步地,所述功能等价替换包括:移位和乘法的功能等价替换,和/或固定次数循环与乘法的功能等价替换。
更进一步地,所述功耗优化还包括存储访问消除即将所述阵列结构的存储中的数组用变量表示,再通过可重构算子之间的连接来实现变量之间的数据的传递。
更进一步地,所述存储访问消除包括数组展开,即将数组中的成员数据展开并用相等数量的变量代替;或者循环拼接,即将两个具有数据生产和消费关系的两个循环拼接;或者函数复用,即将循环中读入的数组和写出的数组均用变量代替,并用函数替换循环体,将需要被处理的变量通过复用函数而有序的进行运算产生对应的输出变量。
更近一步地,所述功耗优化还包括寄存器优化即去除部分路径上的寄存器映射。
更近一步地,所述功耗分析包括步骤:
读入所述可执行文件;
根据所述可执行文件确定被利用的可重构算子,并添加属性信息;
根据所述属性信息计算所述被利用的可重构算子的功耗;
将所有可重构算子的功耗求和得到阵列结构的总功耗。
本发明的有益效果是:本发明的一种降低可重构算子阵列结构功耗的方法,通过对阵列结构进行低功耗配置,再对其进行功耗分析,如果该阵列结构的功耗满足设计要求,则加载可执行文件并调试;如果该阵列结构的功耗不满足设计要求,则对该阵列结构进行功耗优化处理,从而分别从结构级和系统级来降低阵列结构的功耗
附图说明
图1为一种可重构算子阵列结构示意图;
图2为图1中的一种可重构算子的结构示意图;
图3为本发明的降低可重构算子阵列结构功耗的方法的一种具体实施方式的流程图;
图4为图3的对阵列结构的可重构算子进行低功耗配置示意图;
图5为图3的对阵列结构的可重构算子进行多时钟网络配置示意图;
图6为图3的对阵列结构进行功耗分析的一种实施例的流程图;
图7为图3的功耗优化的一种具体实施例的流程图;
图8为对系统进行函数复用的示意图;
图9a和图9b分别为可重构算子进行寄存器优化前和进行寄存器优化后的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
本实施方式的映射方法是针对一种基于并行计算技术的统一架构的阵列结构而言的。
请参考图1,为一种阵列结构示意图。该阵列结构100由可重构运算算子101、可重构路径算子102、可重构调度算子103、可重构DSP(Digital SignalProcessing,DSP,数字信号处理)算子104、可重构存储算子105以及IO106。在阵列结构100的内部,可重构运算算子101、可重构路径算子102、可重构调度算子103、可重构DSP算子104、可重构存储算子105按照一定的比例,以列为单位排列,分布式交叉排列,这样的布局方式可以保证结构内任意一个算子可以与其它任意一种算子的部分最短距离连接,减少芯片内部长线互联,提高数据的传输效率,缩短数据延时。各类算子的组成比例和阵列结构的规模根据具体的应用而定,多个阵列结构100亦可在芯片级以级联的形式形成更大的规模从而支持应用的需要。不论是单个阵列结构规模的扩大,还是芯片级级联形成的更大规模的系统,对阵列结构的低功耗需求均非常急迫,本发明提出了一种降低可重构算子阵列结构功耗的方法,从算法映射的角度来解决阵列结构中的低功耗问题。
请参考图2,为图1的阵列结构中的一种可重构算子结构示意图。该可重构算子200可以是100中可重构运算算子101、可重构路径算子102、可重构调度算子103、可重构DSP算子104中的任意一种。该可重构算子200包括:功能单元201、功耗控制单元202、配置单元203。该可重构算子200的接口有数据输入、数据直接输出、数据寄存输出、电源、地、配置信息传输链(包括配置信息入口和配置信息出口)、配置时钟、工作时钟。其中配置信息传输链、配置时钟、电源和地在系统中为固定连接,其它的接口的连接均可配置。
该可重构算子200包括具有三种状态:低功耗状态、等待状态和工作状态。其中,当该可重构算子200未被利用时,其配置信息全部为零,其可配置连接的接口均为断开状态,此时该可重构算子200无动态功耗,但仍存在静态功耗;当该可重构算子200被利用时,由于数据流来到并且其上次生产的数据已被消费,则可以开始当前数据的消费和新数据的产生,即该可重构算子200处于工作状态;当该可重构算子200被利用,但是数据流还没有到来或者输出数据未被消费时,则该可重构算子200将继续等待或者其输出将被锁定,则该可重构算子200处于等待状态。
请参考图3,基于上述并行计算技术的统一架构的阵列结构,本实施方式的降低可重构算子阵列结构功耗的方法包括以下步骤:
S1,生成可重构算子阵列结构的可执行文件。
本实施方式的可执行文件指用户在使用可重构算子阵列结构时,由设计描述语言,例如C、Java、Matlab等高级语言,通过综合工具、仿真、布局布线等操作后,产生的可以加载到该可重构算子阵列结构上的配置文件。
S2,根据配置信息对可重构算子阵列结构进行低功耗配置。
本实施方式中的配置信息,在对阵列处理结构编程时已加载。
本实施方式中的低功耗配置包括降低阵列结构的静态功耗的配置和降低阵列结构的动态功耗的配置。
在实际应用中,阵列结构中的可重构算子并不是都会被利用,当阵列结构中的部分可重构算子没有被利用时,其配置信息全部为零,其可配置连接的接口均为断开状态,即此时无动态功耗,但仍存在静态功耗,则此时可对阵列结构进行降低静态功耗的配置来降低阵列结构的功耗,即为:切断可重构算子中除了配置单元以外的其他部分的电源。
因此,本实施方的对阵列结构进行降低静态功耗的配置包括步骤:
S210,配置单元203根据功能单元201的配置信息判断该功能单元201是否被利用,如果没被利用则输出低功耗状态启动信号;
S211,功耗控制单元202根据低功耗状态启动信号切断可重构算子200中除配置单元203以外的其他部分的电源。
如图4所示,本实施方式的一种具体实施例中,可重构算子200的功耗控制单元202包括三态缓冲器301和功耗控制模块302,其中三态缓冲器301接收来自配置单元203的低功耗控制信号,当该低功耗控制信号为高时,则VDD’=VDD;当低控制信号为低时,VDD’=0,此时功能单元201和功耗控制模块302的电源被切断。由于该可重构算子200未被利用,则其功能单元201的配置信息全为零,当配置单元203根据检测到该功能单元201的配置信息全为零,则确定该可重构算子200为被利用,并输出低功耗控制状态启动信号,此时该低功耗控制状态信号为低;功耗控制单元202的三态缓冲器301接收该的低功耗控制状态信号,由于低功耗控制状态信号为低,则VDD’=0,此时功能单元201和功耗控制模块302的电源被切断,从而消除静态功耗,实现低功耗。
实际应用中,消除阵列结构的静态功耗后,如果该阵列结构仍不满足设计的功耗要求,则通过降低该阵列结构的动态功耗来降低系统的整体的功耗,以满足设计的功耗要求。
由于数据的流动并不是永远连续不间断的,当数据流间断的流动时,如果可重构算子仍然全速运行则会造成功耗的增加。因此,当可重构算子被利用时,数据流不连续时,由功耗控制单元202控制该可重构算子的数据处理。
因此,本实施方式中,当数据流不连续时,对阵列结构进行降低动态功耗的配置包括步骤:
S22,功耗控制单元202在功能单元201被利用的状态下判断数据流是否连续,如果不连续,则锁定功能单元201的输出。
本实施方式中,当检测到数据流不连续时,通过锁定功能单元201的输出,即由功耗控制单元202来控制可重构算子的数据处理,从而通过降低时序单元以及其后续组合逻辑的跳变率来降低动态功耗。
由于阵列结构中被利用的可重构算子,根据算法功能实现的各个部分对应的性能要求不同,当性能要求低的部分和性能要求高的部分在同一时钟控制下,则性能要求低的部分则会等待性能要求高的部分,从而进行同步,则相应地性能要求低的部分则会存在不必要的功耗。因此,还可以通过根据不同的性能要求,将可重构算子连接到相应的时钟网络,从而降低阵列结构的功耗。
本实施方式中,的性能要求指数据从进入到最后完成处理被输出所需要的时间即为执行数据处理的这部分硬件的性能要求。但阵列结构的性能需要在某个具体中的应用中来定义,例如一个设计完成综合后得到了阵列结构的可执行文件,然后进行加载,数据从进入硬件到最后完成处理被输出所需要的时间即为阵列结构的性能。
因此,本实施方式中对阵列结构进行降低动态功耗的配置还包括:
S231,根据可重构算子200的速度要求产生相应的配置信息;
S231,使可重构算子的工作时钟接口在配置信息的控制下连接到相应的时钟网络。
由于一个设计常常被划分成多个部分,每个部分均有一个性能的要求即执行时间,由于各个部分对应的运算量不同,其处理时间不同,在同一时钟控制下,会有完成时间不一,运算量少的先完成,等待运算量多的部分,进行同步。因此,本实施方式通过根据算法功能实现的各个部分对应的不同的性能要求,将运算量少(性能要求低)的部分的连接到较低频率的时钟网络,而运算量多(性能要求高)的部分则连接到较高频率的时钟网络,使得最后所花的时间差不多。这样按需分配时钟,消除运算少(性能要求低)的那部分单元不必要的功耗消耗。
请参考图5,本实施方式的一种具体实施例中,可重构算子200的工作时钟接口可以连接到多个时钟网络中,包括CLK1、CLK2、CLK3,并由可配置节点401来为该可重构算子200进行相应的连接。
本实施方式通过对阵列结构进行低功耗配置来消除系统的静态功耗和动态功耗,从而从工作状态和时钟方面来降低系统整体的功耗。
在实际应用中,当设计对阵列结构的功耗要求低,则当对阵列结构进行低功耗配置,消除了阵列结构的静态功耗和动态功耗后,系统的功耗可以满足设计要求,则将生成的可执行文件加载至该阵列结构,并进行调试。
S3,对进行低功耗配置后的阵列结构进行功耗分析,如果该系统的功耗满足设计要求,则将该可执行文件加载至该阵列结构并进行调试;否则执行步骤S4。
S4,对该阵列结构进行功耗分布分析,得到功耗集中区域。
本实施方式中的对阵列结构进行功耗分析包括步骤:首先,读入该阵列结构的可执行文件;并根据该可执行文件确定被利用的可重构算子,并为被利用的可重构算子添加属性信息;再根据该属性信息计算被利用的可重构算子的功耗;最后,将所有可重构算子的功耗求和得到阵列结构的总功耗。
本实施方式中的功耗分析由功耗分析工具对该阵列结构进行功耗分析,该功耗分析工具包括在可重构算子内部的功耗模型和功耗评估两部分,其中,每个可重构算子对应的模型参数作为相应的属性。功耗分析工具读入可重构算子阵列结构的可执行文件,从而得到阵列结构中每个可重构算子的功能、布局、连接信息,然后根据模型中各类算子的功耗模型、互连资源的功耗模型信息,进行阵列结构的功耗计算。
请参考图6,本实施方式中,对阵列结构进行功耗分析包括步骤:
S31,读入映射文件,该映射文件中包含所有被选择的可重构算子、被利用的互连线段的例化,它们的属性有位置、输入输出连接。
S32,挑选出被选择的可重构算子形成一个集合。
S33,读入仿真文件,该文件中有每个可重构算子的状态记录和各状态出现的比率,有每个可重构算子的所有输入节点、输出节点在每个时钟周期的数据值和跳变比率。
S34,为S32中的每个可重构算子添加工作状态比率属性和各输入输出节点的跳变率的属性。
S35,为S32中每个可重构算子添加输入节点和输出节点电容的属性,即计算等效电容。
S36,根据S34得到的各可重构算子的工作状态比率,可计算每个可重构算子的内部功耗,计算公式在可重构算子内部功耗建模部分。
S37,每个被选算子的输入节点功耗可根据S34得到的跳变率和S35得到的输入节点电容,采用公式P=αCiV2f计算功耗。
S38:每个被选算子的输出节点功耗的计算与输入节点功耗计算类似。
S39:将可重构算子的内部功耗、输入节点功耗、输出节点功耗相加得到可重构算子的功耗。
S310,将所有可重构算子的功耗求和得到可重构算子功耗总和即阵列结构功耗。
本实施方式中的该功耗分析工具不仅可以计算阵列结构整体的功耗消耗,还可以给出局部每个单元每个连接对应的功耗消耗,从而指出哪些区域的功耗高,哪些区域功耗低。
S5,将该功耗集中区域的映射对应的算法描述还原。
本实施方式中对算法描述进行还原实际上是产生可重构算子可执行文件的一个逆向过程。由于将设计描述语言通过综合工具转换成可执行文件后,可执行文件中的信息与设计描述语言中的描述存在着对应关系,因此,对算法描述进行还原时,从布局布线向上开始搜索,便可找到可执行文件中对应的算法原型,即通过索引的方式来查找该可执行文件中某部分对应到高级语言描述中的对应部分算法。
S6,对该阵列结构进行功耗优化,生成新的可执行文件,并执行步骤S2。
本实施方式中的新的可执行文件指由步骤S5产生的部分设计描述语言,再通过综合工具、仿真、布局布线等操作后,而产生的可以加载到该可重构算子阵列结构上新的配置文件。由于在步骤S2中进行了低功耗配置,因此,在生成的新的可执行文件中会相应地修改对应部分的信息。
实际应用中,当设计对阵列结构的功耗要求高,则当进行低功耗配置后的阵列结构的功耗仍不满足设计要求时,则还需要根据对该阵列结构进行功耗优化。
本实施方式中的功耗优化包括功能等价替换,存储访问消除和寄存器优化。其中,功能等价替换即为将高功耗的硬件执行用低功耗的硬件执行代替,从而降低硬件执行的功耗;存储访问消除即将存储中的数组用变量表示,变量则可通过可重构算子之间的连接来实现数据的传递,从而降低功耗;寄存器优化即去除部分路径上的寄存器映射,增大组合逻辑的长度,从而可降低时序逻辑的频率,降低系统的功耗。因此,请参考图7,本实施方式的方法中步骤S6包括步骤:
S61,对阵列结构进行功能等价替换,即将该阵列结构中高功耗的硬件执行用低功耗的硬件执行代替。
通常用户会根据自己代码编写需要进行运算和数据流的描述,而不会考虑其硬件执行的代价。而在特定的硬件系统中不同的描述在性能、面积和功耗等方面都会有很大的差别。
本实施方式中的可进行功能等价替换的运算包括移位和乘法的功能等价替换,以及固定次数循环与乘法的功能等价替换。
在本发明的一种实施例中,采用支持乘法运算的DSP类算子的乘法运算:a=b*8,该乘法运算可采用支持移位操作的算术逻辑类算子来替换该DSP类算子,则进行移位等价替换后有:a=b□3。
虽然该阵列处理结构中,支持移位操作的算术逻辑类算子与支持乘法运算的DSP类算子对应的运行功耗不一样,但从算法的角度可以执行部分的等价功能运算。
本发明的一种具体实施例中,固定次数循环为:
i=0;
while(i<4){
a=a+2;
}
其中,固定次数循环的映射方法采用相应的路径类算子、支持加法运算的算术逻辑类算子等协同实现数据的处理。但由于固定循环次数为四次,并且均是对变量a进行固定次数的加法运算,因此可以直接采用支持乘法运算的DSP类算子可以实现等价的运算,则进行乘法等价替换后有:
b=2*4;
a=a+b;
当然乘法运算也可以通过固定次数循环的映射方法实现。
本实施方式通过将该阵列结构中高功耗的硬件执行用低功耗的硬件执行代替,从而从功能实现方面降低了该阵列结构的功耗。
S62,对阵列结构进行存储访问消除,即将存储中的数组用变量表示,变量则可通过可重构算子之间的连接来实现数据的传递。
本实施方式中的存储访问消除包括数组展开,即将数组中的成员数据展开并用相等数量的变量代替;循环拼接,即将两个具有数据生产和消费关系的两个循环拼接;函数复用,即将循环中读入的数组和写出的数组均用变量代替,并用函数替换循环体,将需要被处理的变量通过复用函数而有序的进行运算产生对应的输出变量。
本发明的一种具体实施例中,数组int a[4],将其展开用相等数量的变量代替为:int a1,a2,a3,a4,其中,该变量通过可重构算子之间的连接来实现数据的传递。
本发明的一种实施例中,循环1和循环2分别如下:
循环1:
i=0;
while(i<16){
a[i]=b[i]+c[i];
}
循环2:
j=0;
While(j<16){
e[j]=a[j]+d[j];
}
通过循环拼接,即将两个具有数据生产和消费关系的两个循环拼接,消除它们之间用于通信的中间数组,则有:
本发明的一种实施例中,循环如下:
i=0;
While(i<4){
c[i]=a[i]+b[i];
}
对该循环采用函数复用,即将循环中读入的数组和写出的数组均用变量表示,而循环体用函数表示,需要被处理的变量通过复用函数而有序的进行运算产生对应的输出变量,即将数组a、b和c均替换成变量,而循环体用函数代替的,结果如图8所示。其中,多选器501为能实现输入选择的可重构路径算子102;函数体502为一个支持加法运算的可重构运算算子101;分发器503为能实现数据分发的可重构路径算子102。本实施例通过函数复用代替了循环处理中对存储的读写访问,数据均以变量的形式出现,有序的被选择后进行处理,消除存储访问,降低功耗。
本实施方式通过将存储中的数组用变量表示,变量则可通过可重构算子之间的连接来实现数据的传递,消除存储访问,从而从存储的方面上降低了该阵列结构的功耗。
S63,对阵列结构进行寄存器优化,即去除部分路径上的寄存器映射。
请参考图9a和图9b,可重构算子的功能单元201、功耗控制单元202和配置单元203为组合逻辑,REG204为时序逻辑,运算输出的数据可以通过时序逻辑再输出也可以直接输出。但由于在产生可重构算子阵列可执行文件中时,默认每个可重构算子的输出均是通过时序逻辑后再输出的,因此,为了降低阵列结构的功耗,需要对该阵列结构进行寄存器优化,即去除部分路径上的寄存器映射。
请参考图9a。本实施方式的一种具体实施例中,第一可重构算子601和第二可重构算子602的输出经过寄存器单元后是送入到第三可重构算子603的输入,其结果再通过寄存器输出。假设用户对该部分的性能要求对应的时钟频率为f,那么这三个可重构算子的时钟均接在频率为f的时钟网络上。第一重构算子601的延迟为t1,第二可重构算子602的延迟为t2,第三可重构算子603的延迟为t3,这三个时间均满足下面的公式:
0<ti<1/f(i=1,2,3)
当检测到t1+t3<1/f且t2+t3<1/f均成立时,那么第一可重构算子601和第二可重构算子602的输出便可不经过寄存器,则将该路径上的寄存器进行优化,即直接将第一可重构算子601和第二可重构算子602的输出连到第三可重构算子603的输入,如图9b所示,从而达到寄存器优化的目的,实现低功耗。当两个条件不能同时满足时,则不能在该路径上进行寄存器优化。
本实施方式中的寄存器优化,通过去除部分路径上的寄存器映射,增大组合逻辑的长度,降低了时序逻辑的频率,从而从时钟方面降低阵列结构的功耗。
S64,对阵列结构进行功耗优化后得到新的可执行文件,执行步骤S2。
本实施方式的功耗优化,通过对该阵列结构进行功能等价替换、存储访问消除和寄存器优化,从而分别从功能实现。存储和时钟三个方面来降低系统的功耗。当然本实施方式中对阵列结构进行功耗优化时,可以采用功能等价替换、存储访问消除和寄存器优化中的任意一种,或者两种,或者两种方式相结合。
本实施方式的降低可重构算子阵列结构功耗的方法,通过对该阵列结构进行低功耗配置,从而从工作状态方面降低该阵列结构的功耗,如果进行低功耗配置后的阵列结构仍不满足设计要求,则通过对该阵列结构进行功耗优化,即分别从功能实现、存储和时钟频率四个方面来降低系统功耗,进而使得该阵列结构满足设计要求。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (7)
1.一种降低可重构算子阵列结构功耗的方法,所述可重构算子阵列结构包括至少一个可重构算子,所述可重构算子按列分布式排列,其特征在于,包括步骤:
生成可重构算子阵列结构的可执行文件;
根据配置信息对可重构算子阵列结构进行低功耗配置;
可重构算子包括用于实现算子功能的功能单元、配置单元和功耗控制单元,所述低功耗配置包括降低可重构算子阵列的静态功耗的配置和降低可重构算子阵列动态功耗的配置,所述降低可重构算子阵列的静态功耗的配置包括:
配置单元根据功能单元的配置信息判断该功能单元是否被利用,如果没被利用则输出低功耗状态启动信号;
功耗控制单元根据低功耗状态启动信号切断可重构算子中除配置单元以外的其他部分的电源;
所述降低可重构算子阵列动态功耗的配置包括:
配置单元在功能单元被利用的状态下判断数据流是否连续,如果不连续,则锁定功能单元的输出;
对进行低功耗配置后的阵列结构进行功耗分析,如果所述阵列结构的功耗满足设计要求,则将所述可执行文件加载至所述阵列结构并进行调试,如果功耗不满足设计需求,则对所述阵列结构进行功耗优化处理;
所述功耗优化处理包括:
对所述阵列结构进行功耗分布分析,得到功耗集中区域;
将所述功耗集中区域的映射对应的算法描述还原;
对所述阵列结构进行功耗优化,生成新的可执行文件用于加载至所述阵列结构并进行调试;
所述功耗优化包括功能等价替换,即将所述阵列结构中高功耗的硬件执行用低功耗的硬件执行代替。
2.如权利要求1所述的方法,其特征在于,所述可重构算子阵列结构包括多个时钟网络,所述降低可重构算子阵列动态功耗的配置还包括:
根据可重构算子的速度要求产生相应的配置信息;
使可重构算子的工作时钟接口在配置信息的控制下连接到相应的时钟网络。
3.如权利要求1所述的方法,其特征在于,所述功能等价替换包括:移位和乘法的功能等价替换,和/或固定次数循环与乘法的功能等价替换。
4.如权利要求1至3任一所述的方法,其特征在于,所述功耗优化还包括存储访问消除即将所述阵列结构的存储中的数组用变量表示,再通过可重构算子之间的连接来实现变量之间的数据的传递。
5.如权利要求4所述的方法,其特征在于,所述存储访问消除包括数组展开,即将数组中的成员数据展开并用相等数量的变量代替;或者循环拼接,即将两个具有数据生产和消费关系的两个循环拼接;或者函数复用,即将循环中读入的数组和写出的数组均用变量代替,并用函数替换循环体,将需要被处理的变量通过复用函数而有序的进行运算产生对应的输出变量。
6.如权利要求5所述的方法,其特征在于,所述功耗优化还包括寄存器优化即去除部分路径上的寄存器映射。
7.如权利要求4所述的方法,其特征在于,所述功耗分析包括步骤:
读入所述可执行文件;
根据所述可执行文件确定被利用的可重构算子,并添加属性信息;
根据所述属性信息计算所述被利用的可重构算子的功耗;
将所有可重构算子的功耗求和得到所述阵列结构的总功耗。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110053883A CN102129495B (zh) | 2011-03-07 | 2011-03-07 | 一种降低可重构算子阵列结构功耗的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110053883A CN102129495B (zh) | 2011-03-07 | 2011-03-07 | 一种降低可重构算子阵列结构功耗的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102129495A CN102129495A (zh) | 2011-07-20 |
CN102129495B true CN102129495B (zh) | 2012-10-24 |
Family
ID=44267577
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110053883A Expired - Fee Related CN102129495B (zh) | 2011-03-07 | 2011-03-07 | 一种降低可重构算子阵列结构功耗的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102129495B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567281B (zh) * | 2011-12-16 | 2014-10-15 | 北京大学深圳研究生院 | 可重构调度算子阵列结构、集成电路阵列结构及控制模块 |
CN104182578B (zh) * | 2014-08-20 | 2017-09-22 | 清华大学 | 基于可重构阵列的电池功耗优化方法及系统 |
CN106326084A (zh) * | 2016-08-17 | 2017-01-11 | 上海交通大学 | 一种用于粗粒度可重构阵列的系统级功耗建模方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1450627A (zh) * | 2003-05-21 | 2003-10-22 | 中国科学院计算技术研究所 | 一种具有并行结构的大规模数字电路最大功耗估计方法 |
CN101739382A (zh) * | 2008-11-19 | 2010-06-16 | 北京大学深圳研究生院 | 一种基于可重构部件的集成电路和设计方法 |
-
2011
- 2011-03-07 CN CN201110053883A patent/CN102129495B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1450627A (zh) * | 2003-05-21 | 2003-10-22 | 中国科学院计算技术研究所 | 一种具有并行结构的大规模数字电路最大功耗估计方法 |
CN101739382A (zh) * | 2008-11-19 | 2010-06-16 | 北京大学深圳研究生院 | 一种基于可重构部件的集成电路和设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102129495A (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10452452B2 (en) | Reconfigurable processor fabric implementation using satisfiability analysis | |
Venkataramani et al. | RaPiD: AI accelerator for ultra-low precision training and inference | |
EP3005139B1 (en) | Incorporating a spatial array into one or more programmable processor cores | |
Cong et al. | A fully pipelined and dynamically composable architecture of CGRA | |
US7401333B2 (en) | Array of parallel programmable processing engines and deterministic method of operating the same | |
JP6059413B2 (ja) | 再構成可能命令セル・アレイ | |
Bohnenstiehl et al. | Kilocore: A fine-grained 1,000-processor array for task-parallel applications | |
CN114450661A (zh) | 用于可重配置架构的编译器流程逻辑 | |
Alle et al. | Redefine: Runtime reconfigurable polymorphic asic | |
CN102163248B (zh) | 一种集成电路的高级综合方法 | |
Paul et al. | MAHA: An energy-efficient malleable hardware accelerator for data-intensive applications | |
CN102129495B (zh) | 一种降低可重构算子阵列结构功耗的方法 | |
Han et al. | Compiling control-intensive loops for CGRAs with state-based full predication | |
CN103365821B (zh) | 一种异构多核处理器的地址生成器 | |
Lemaire et al. | A flexible modeling environment for a NoC-based multicore architecture | |
Ragheb et al. | Elastic multi-context CGRAs | |
CN103455367A (zh) | 用于实现可重构系统中多任务调度的管理单元和方法 | |
Chiou et al. | Synthesis of application-specific highly efficient multi-mode cores for embedded systems | |
Teimouri et al. | Improving scalability of CMPs with dense ACCs coverage | |
Purohit et al. | Throughput/resource-efficient reconfigurable processor for multimedia applications | |
Tortorella et al. | RedMule: A mixed-precision matrix–matrix operation engine for flexible and energy-efficient on-chip linear algebra and TinyML training acceleration | |
Rettkowski et al. | Application-specific processing using high-level synthesis for networks-on-chip | |
Javaid et al. | Multi-mode pipelined mpsocs for streaming applications | |
CN101236576B (zh) | 一种适用于异质可重构处理器的互联模型 | |
Ebeling | The general RaPiD architecture description |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121024 Termination date: 20200307 |