您当前的位置:五五电子网电子知识单片机-工控设备EDA/PLD技术SOC参数自动配置设计方法与功耗优化分析 正文
SOC参数自动配置设计方法与功耗优化分析

SOC参数自动配置设计方法与功耗优化分析

点击数:7919 次   录入时间:03-04 11:47:25   整理:http://www.55dianzi.com   EDA/PLD技术

    ……

    ∥Update FIFO memory。

    always @(posedge clk) begin

    if ( rstp==1′b0 && writep==1′b1 &&fullp==1′b0)

    fifomem [head]<= din [15:0];

    end

    ∥Update the head register。

    always @(posedge clk) begin

    if ( rstp==1′b1)

    head[1:0 ]<=2′b0;

    else

    if (writep==1′b1 & & fullp==1′b0)

    head[1:0 ]<=head[1:0 ] + 1;

    end

    ……

    在上述程序段中, din [15:0 ] 对应参数fifo_width=16 的情况, 如果在dma_top 模块中用Vperl 语法例化了dma_fifo ( &Instance(dmafifo);) ,那么Vperl把din[15:0]连接进dma_top ,并进而生成dma_top.v 代码,即dma_top.v 的信号定义。

    Vperl 实际上是接管了模块间的信号连接工作,使得设计师不用担心参数改变对模块间关系的影响。 另外,Vperl 的另一项优点就是省去了每个HDL 文件中繁琐的信号定义,避免因为信号定义引起的语法错误(比如信号忘记定义、信号名打错等) ,大大加快源代码的编写速度。 当然,使用Vperl 需要遵循一定的语法。

    在参数自动配置机制中,结合Eperl 和Vperl这两种工具就可以由选定的参数组合自动地配置硬件结构。 对于软件而言,由C 语言编写的应用程序不需要修改,但是编译器需要针对不同的执行单元的配置增加减少指令并进行优化。

    SOC 参数优化

    一个SOC 中包括了P1 , P2 , P3 , ..., Pn 等参数。每个参数的值都可以从一个有限集合中选取。 为了选择最优的参数值,也就是为了达到最优的系统配置,使功耗、性能和面积达到合理的目标,需要进行参数优化。 一种方法是运行一次仿真后,记录下指令序列(trace) ,将不同的参数配置结合指令序列通过纯软件的行为分析器进行分析。 这种方法的优势是速度快。 但是在不同的结构参数下,指令序列差别很大,特别是当指令集都发生改变时,结果的可信度大大降低;而且行为分析器对一些动态参数,比如动态电压,对功耗的影响无法估计,所以可能不得不进行多次仿真来获得较准确的功耗估计。 由于仿真时间一般较长,参数的优化算法对设计周期的影响很大。

    参数的属性

    在SOC 设计中的定制概念不再是晶体管级的定制,而是体现在模块级层面上,具体表现为系统的结构参数。 SOC 的系统参数具有一些属性,如大多数系统参数是相互影响的,这些相关性必须在参数配置时予以考虑。 相关性可以区分为数值相关和性能相关。 参数自身也有单调性和层次性。

    数值相关

    两参数的数值相关意味着一个参数的选择限制了另一个参数的选择范围。 例如对于容量限制为64 ×8 bit s 的直接存储器存取(DMA) 缓冲区,可以缓冲64 个8 位数据,但是当用于缓冲32 位数据时,只能放16 个数据。 在这里数据个数和数据格式是数值相关的。 再如可配置处理器的乘法器(MUL) 单元一般不会和乘累加器(MAC)单元一起出现,因为两者的功能是重叠的。 在进行参数选择时,利用数值相关性可以去除一些不可能的参数值,缩小参数的选择范围。

    性能相关

    两参数的性能相关意味着一个参数的改变会影响另一个参数的最优选择。性能相关是有方向性的,如果参数B 与A 性能相关, 则参数A 是B 的主动参数,参数B 是A 的随动参数。 在参数选择时,可以先确定A 再确定B 。如寄存器的个数相关与MUL 单元相关意味着MUL 单元是主动参数,而寄存器个数是随动参数。 两个参数也可能互相相关,也就是说参数A 和B 之间形成环路。 这时两个参数必须同时调整才能得到最优的方案。 例如高速缓存的组参数和每个缓存块的容量参数的性能是相关的。 在进行参数选择时,性能不相关的参数可以独立选取最优解。

    单调性

    很多参数对某一优化目标而言是单调函数。 例如决定UART 缓冲区大小的参数,对功耗这一优化目标,一般是缓冲区越大功耗越大。 参数的方向性也可以缩小参数的选择范围。

    层次性

    模块参数只影响模块自身,比如Cache 容量、Cache 行大小和关联组个数。 多个模块参数可以形成一个系统参数,比如从系统角度来看,Cache 失配率就是一个系统参数。 利用参数的层次性可以进行局部优化。



www.55dianzi.com

    邻域搜索算法

    参数的性能相关性是参数优化的主要难题。 首先需要一种数据结构来表征性能相关性。 图1 较好地表示了参数的性能相关性。 其中,参数用节点表示,而节点与节点间的连线表示两参数的性能相关。节点和节点之间的连线是有方向性的,从A 到B 的边表示参数B 与A 的性能相关。

     

7

    图1  功耗性能相关图

    随着SOC集成度的进一步提高,参数个数增多,导致设计选择空间急剧扩大,完全地对每一个参数组合进行评价是不可能的。 由于每次计算代价函数需要很长的时间,一些进化优化算法,如遗传算法不再适用。 邻域搜索算法是一种解决优化问题的方法。 一般来说,邻域搜索算法只能找到局部最优解。但是与大多数优化问题不同,SOC 的参数具有一定的方向性,系统设计师的经验可以帮助设计师找到一种较优化的参数组合,SOC 参数优化的主要目的是对系统性能进行微调,因此邻域搜索算法可以满足SOC 参数优化的要求。

    以一个数据采集系统为例来验证领域搜索算法的有效性,数据采集系统的参数如表1 所示。 在这个应用中,系统从UART 接收数据,利用DMA 运送到内存,软件进行32 点FIR 滤波处理。 UART 的接收速率是10kB/s ,参数的性能相关图如图1 所示。

    首先建立功耗相关图。在建图过程中,可以利用参数的数值相关进行参数归并,比如MUL的选用和MAC的选用可以归并为一个参数;以及区分参数的层次性,比如ICache 的失配参数N 由参数A 、B 、C 的一个子图组成。 接着设立代价函数f ( K) =系统功耗, K 是一个参数组合。 选择初始解Kbest.f best=f(Kbest ) 。 然后进行参数优化,参数优化的算法步骤如下。

    1) 分析功耗相关图的拓扑顺序,包括较低层次的子图。 一般可以采用邻接表作为实现上述算法的数据结构。 首先从图中选一个入度为0 的节点并将其输出,然后从图中删掉此节点及其所有的边。 反复执行这两步,直至剩下的图中再也没有入度为0 的节点。 剩下的就是单个节点或环路。 分析拓扑顺序是 为了确定参数优化的顺序。 拓扑序列的第一个节点就是第一个被优化的参数。

    表1  数据采集系统参数表

6

    2) 邻域映射定义为取当前优化节点的最近可选值。 仿真得到功耗f ( K) 。 如果f ( K) < f best ,则Kbest = K , f best = f ( K) ;否则退回原来的值。 重复步骤2) ,直到最近的可选值都被仿真过。

    3) 选择下一个优化的节点,一般选择拓扑序列的下一个参数,但是在环路中,如果一个参数发生改变,则需要重新遍历一遍环路,这时应取环路上的节点。 如果该节点包含较低层次的子图,则选取子图中的节点。 重复步骤2) 。

    实验结果

    在进行优化实验前, 需要建立IP的功耗模型。 门级电路的功耗估计已经比较成熟了。 因为门电路的结构比较简单,可以比较容易地测量静态功耗,并根据标准单元的输入建立动态功耗的查询表。 但是门电路的功耗分析可能需要较大的运算量,而且门电路方法一般用于设计的后期,这时软硬件划分、硬件微结构设计、寄存器传输级(RTL)设计、综合都已经完成了。 这种方法无法对系统设计提供帮助或参考,这对系统设计师来说是很大的担心,也可能对设计周期产生影响。 当前功耗建模的方向主要是在RTL 或行为级领域。功耗常常与状态相关。 对于状态机电路来说,由于硬件模块一般有几个状态,在不同状态下,每个时钟周期上消耗的能量是不同的,可以利用IP 的状态机建模。 状态功耗模型并不一定和IP 核的电路状态机完全一致,它还可以考虑电路中的一些组合逻辑输出和关键输入信号如门控时钟信号等,只要这些信号的组合可以表示一个特殊的功耗状态即可。本文采用常用的状态功耗建模方法,利用TSMC0。18 工艺的门电路仿真数据对Cache 、GPR、各运算单元、DMA 和UART 进行建模。

    在软硬件仿真平台上,对这个数据采集系统进行仿真。 由于应用程序较短以及采样速率不是很高,在实验中,共经过了28 个参数组合的仿真,得到的优化解如表2 所示。 如果对整个设计空间进行仿真则需要1.92×107 次仿真。

    表2  对参数进行邻域搜索优化的结果

8

    结 语

    原有的硬件描述语言难以适应参数化设计的要求,Eperl 和Vperl 提供了硬件描述语言的扩展。 利用参数自动配置环境嵌入Eperl 和Vperl ,可以生成对应特定参数配置的SOC 硬件语言描述。 参数优化建立在参数自动配置环境的基础上。 在分析SOC参数属性基础上提出的领域搜索算法可以大大减少SOC优化周期。 该设计环境已应用于一款嵌入式RISC处理器CK520和基于它的SOC开发,并取得了满意的效果。



上一页  [1] [2] 


本文关键字:暂无联系方式EDA/PLD技术单片机-工控设备 - EDA/PLD技术

《SOC参数自动配置设计方法与功耗优化分析》相关文章>>>