一种用于粗粒度可重构阵列的系统级功耗建模方法技术方案

技术编号:14421013 阅读:115 留言:0更新日期:2017-01-12 23:21
本发明专利技术提供了一种用于粗粒度可重构阵列的系统级功耗建模方法包括:建立指令查找表;根据所述指令查找表确定单一指令的功耗;将所述单一指令的功耗累加获得系统级功耗。先前技术并没有对系统级的面向粗粒度可重构系统的功耗建模方法,而本发明专利技术为粗粒度可重构系统的架构提出了一种用于粗粒度可重构阵列的系统级功耗建模方法,从而能在模型的基础上指导系统进行优化,具有现实意义,在系统级层面提出了功耗模型,流程简单,能在系统级进行功耗的模拟,极大的提高了生产效率。

【技术实现步骤摘要】

本专利技术涉及通讯
,特别涉及一种用于粗粒度可重构阵列的系统级功耗建模方法
技术介绍
自20世纪60年代开始,可重构计算的概念开始进入了人们的视野,并且由美国加利福尼亚大学的GeraidEstrin研制出了原型系统。可重构计算是为了弥补指令集通用处理器性能与ASIC灵活性的不足,获取优于通用处理器性能和高于ASICS灵活性的一种介于两者之间的一种结构。而可重构系统就是基于可重构计算结构的一种体系架构。依照可重构系统的粒度划分,可以将可重构系统分为三种:细粒度、粗粒度与混合粒度。可重构架构的应用最早开始于现场可编程门阵列(FPGA,FieldProgrammableGateArrays),随着FPGA在工业领域中取得成功,可重构计算结构引起了人们的注意。FPGA是一种典型的细粒度体系架构,其基本的处理单元是逻辑门,且由逻辑单元之间的互联构成整个互联通路,应用广泛,灵活性高。然而FPGA也存在一些不足之处,首先在实现中由于其资源过于丰富,导致布线后面积和功耗增大,性能降低;其次,FPGA由于基本单元是门级单元,所以需要大量的配置数据,配置时间冗长。为了克服其不足,粗粒度可重构系统(CGRA)便应运而生。与FPGA相比,CGRA在灵活性与泛用性上存在一定的劣势,但其运算性能十分强大,十分适用于密集型算法;同时其需要的配置信息较FPGA要少,减少了大量的配置字传输与配置时间,有利于CGRA在处理过程中实现动态配置。CGRA作为一种比较新颖的体系架构,设计空间尤为巨大。由于设计空间困难,开发时间紧张,故在系统开发设计过程中,对于CGRA系统的硬件架构、映射方法、功耗分析就显得尤为重要。在设计阶段,一般CGRA系统的映射结构和硬件架构可以在系统级决定,并分析其执行效率与优化空间;对于功耗来说,常规的技术手段一般是从微电子工艺出发,通过可变的电压频率对系统降低功耗提供接口。但对于功耗优化来说,软件优化降耗则会有数量级的贡献[5]。所以,如果在前期设计中的系统级就进行功耗的建模及优化,则可以在功耗优化的基础上降低设计成本、缩短产品上市时间。对于CGRA系统来说,具体的体系结构如图1所示,其中功耗最大的部分则是粗粒度可重构阵列部分,如图2所示,为粗粒度可重构系统平均功耗分布,可以看出,阵列部分的功耗占到了总功耗的40%以上,如果是8个PEA阵列,功耗将占到系统功耗的65%,所以功耗优化最主要的部分就是对于可重构阵列的优化。综合国内和国外当前的研究情况,当前的系统级功耗模型主要有以下几种:一、指令级功耗模型这种模型在商业处理器上比较常用,主要方法是利用实验的手段,通过测量各条指令以及指令对的执行功耗而建立其功耗模型。该种功耗模型与以往的功耗模型不同的主要有以下两点:1)该电路的黑盒模块不是由完整的模块构建,而是由其中的部分功能单元构成,举例来说,如果进行ADD运算,ALU的黑盒模块就是一个加法器的运算部分,该模块的总功率由该部分的前输入和当前输入决定。2)该模型的工作主要是模拟和分析程序序列,而不是为程序预测平均的功率。可以看出,该模型是一种简捷的在系统级进行功耗仿真的一种模型,这种模型可以快速的分析出该程序的总功耗,并且由于系统的指令集较少,所以只需要一个很小的指令查找表就能完成功耗分析工作。而这种模型的缺点在于模型无法区分系统内部的主要功耗源,所以在不知道系统重点功耗源之前,无法指导系统体系结构层的设计;其次,该模型认为的平均功耗忽略了漏电功耗、短路功耗与门单元内部的充放电功耗,是一个较为粗糙的模型,很难对整个系统优化做出精确指导。二、部件级功耗模型部件级功耗模型主要用于描述系统的各个模块(如ALU,Cache,Registerfile)等的功耗,是在系统软硬件协同设计的基础上进行分析,并指导系统体系结构的设计,部件级功耗模型可以清晰的表现系统的重点功耗源,并以此为基础对系统进行功耗优化与仿真。部件级功耗模型主要分为两种,一种简单直观的建模方法是由Huzefa等人提出的前输入相关模型,该方法是建立一张以前次输入和当次输入为索引的开关电容表,在仿真的时候通过指令查找表得出每次输入所引起的开关电容,这种功耗模型能够提供非常精确的对功耗进行评估,然而采取该模型需要建立一张一一对应的指令查找表并进行查找,举例来说,如果一个部件有n个输入,则对于该模型来说,需要建立一张22n大小的指令查找表,其资源和时间开销是十分巨大的。另一种方法是对于某个部件,其各个输入并非是直接作用于输出的,而是经过中间节点的反转后,间接的作用在输出上的,对于输入不同的数据,当信号发生切换时,如果内部信号和输出信号不发生反转,我们就可以将这些信号归位一组,这就使得前输入模型的指令查找表长度大大的减小了。然而部件级的功耗分析方法需要通过多组实验建表,得出其基本数据,基于基本数据再进行优化分析,如果进行了优化分析,则需要重新建表,再以此为基准建立功耗模型进行分析,在多次建立指令查找表的过程中会浪费大量的时间。对于上述两个系统级功耗模型都有不同的缺点,主要存在以下两点:1)指令查找表需要大量时间资源和空间资源,且每次进行优化时都会重写指令查找表;2)指令级功耗模型以系统的ISA为切入点,描述了指令序列执行时的功耗特征,但无法区分系统内部的主要功耗源,所以在不知道系统重点功耗源之前,无法指导系统进行设计,且该模型较为粗糙,很难对整个系统优化做出精确指导。因此,为了兼顾目标代码优化与体系结构设计优化的需求,一种改进的系统级功耗模型的提出就显得尤为重要。
技术实现思路
为了解决上述问题,本专利技术提供用于粗粒度可重构阵列的系统级功耗建模方法,包括:建立指令查找表;根据所述指令查找表确定单一指令的功耗;将所述单一指令的功耗累加获得系统级功耗。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,通过实验数据建立指令查找表。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述实验数据包括:数据来源、数据去向和算术逻辑单元。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述数据来源的取值包括:立即数的数据、共享存储的数据、寄存器文件的数据、计算单元的数据、通过寄存器文件定位到共享存储的数据和通过计算单元定位到共享存储的数据中的一种或多种。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述数据去向的取值包括:立即数的数据、共享存储的数据、寄存器文件的数据、计算单元的数据、通过寄存器文件定位到共享存储的数据和通过计算单元定位到共享存储的数据中的一种或多种。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述算术逻辑单元包括:数学运算和/或逻辑运算。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述数学运算包括:加、减、绝对值和乘中的一种或多种。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,所述逻辑运算包括:与、或、异或、非、逻辑左移和逻辑右移中的一种或多种。优选的,在所述的用于粗粒度可重构阵列的系统级功耗建模方法中,通过如下公式获得系统级功耗,P=Σi=116Mi·NiN·rMi=Ei,1[IN1,IN2,OUT,O本文档来自技高网
...
一种用于粗粒度可重构阵列的系统级功耗建模方法

【技术保护点】
一种用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,包括:建立指令查找表;根据所述指令查找表确定单一指令的功耗;将所述单一指令的功耗累加获得系统级功耗。

【技术特征摘要】
1.一种用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,包括:建立指令查找表;根据所述指令查找表确定单一指令的功耗;将所述单一指令的功耗累加获得系统级功耗。2.如权利要求1所述的用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,通过实验数据建立指令查找表。3.如权利要求2所述的用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,所述实验数据包括:数据来源、数据去向和算术逻辑单元。4.如权利要求3所述的用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,所述数据来源的取值包括:立即数的数据、共享存储的数据、寄存器文件的数据、计算单元的数据、通过寄存器文件定位到共享存储的数据和通过计算单元定位到共享存储的数据中的一种或多种。5.如权利要求3或4中任一所述的用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,所述数据去向的取值包括:立即数的数据、共享存储的数据、寄存器文件的数据、计算单元的数据、通过寄存器文件定位到共享存储的数据和通过计算单元定位到共享存储的数据中的一种或多种。6.如权利要求3所述的用于粗粒度可重构阵列的系统级功耗建模方法,其特征在于,所述算术逻辑单元包括:数学运算和/或逻辑运算。...

【专利技术属性】
技术研发人员:侯子健赵仲元绳伟光何卫锋
申请(专利权)人:上海交通大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1