Pswitch = Ceff * Vvdd^2*Fclk,

Pshort-circuit = Isc * Vdd * Fclk,

Pleakage = f(Vdd, Vth, W/L)

尽管对电压的scaling,可以以平方的关系减小dynamic/leakage power,但是voltage的scaling会影响gate delay,

setup/hold timing,memory access time scale。

voltage 的dynamic scaling,在processor和multi media的sys中会有明显的作用。

但是每一个votage的产生,都需要一个regulator的配合,会造成设计的复杂。每一个votage的产生都需要额外的power rail,

造成power的浪费,所以一般都将voltage和frequency作为N个离散的pair来进行设计。

如何根据应用场景scenario,来决定voltage的大小是一个比较困难的事情。
可以通过FPGA的Prototype仿真来完成。

freq的降低,会使得处理时间增加,所以从任务处理方面来看,并没有节能,

主要是因为电压的降低不支持那么高的Freq,所以需要进行scaling。

常见的几种voltage scale的技术:

1)static votage scaling(SVS):不同的block和sys,给不同的fixed voltage。

2)Multi-level votage scaling(MVS):一个block和sys的voltage可以在几个不同值之间switch。

3)Dynamic voltage and Frequency scaling(DVFS):工作电压根据workload进行动态的调整。

4)Adaptive voltage scaling(AVS):一个闭环的电压调节控制。

针对DVFS来说:

在需要增加Freq,over drive的情况下:软件首先决定最小的clock frequency,再决定最小的voltage供应。

1)cpu program power supply to new voltage。(cpu可以换为其他逻辑)

2)cpu继续工作在现有freq,直到voltage稳定。

3)cpu program新的freq,可以是clock divider或者PLL,如果是PLL,则需要花费更多时间等待PLL稳定。

如果是要降低Freq,则执行顺序:

1)cpu program新的voltage。

2)等待clock divider或者PLL稳定。

3)cpu program新的voltage。

总之Freq只有在voltage增加之后,才能提高,Freq必须在voltage减小前,先降低。

针对timing/voltage的value。

很多的DVFS系统都设置一些discrete voltage/frequency pair。

如果pair太少,可能省电效果不好,太多可能造成decide逻辑冗杂。

可以根据:clock_divider可产生的值,voltage regulator的值来决定。

但是必须保证voltage的值在temperature inversion point以上。(一般情况下delay随着voltage的增加而减小,

delay随着temperature的增加而增加,但是,当voltage的值小于2Vt时,delay的值随着temperature的增加而减小)

(这个voltage的值不确定???)

voltage level的switch可能需要较长的时间,在做design时,可能需要加入counter等延时单元来等待。

如果Freq的scaling涉及到PLL,在relock有效之前,可以先利用别的clock保证logic的有效执行,在lock之后,进行切换。

DVFS是一个open loop的系统,通过frequency/voltage的预留margin来保证不同的PVT下,也可以正常工作。

但是AVS是一个close loop的系统,通过voltage scaling的power supply和delay sensing的performance monitor进行工作。

在DVFS block和剩下的sys之间,最好不要使用sync interface,因为电压的不同会导致clock的skew不同。

可以使用async逻辑或者latch

lower power设计中的DVFS设计的更多相关文章

  1. 2014年的Google I/O app设计中的材料设计-渣渣的翻译

    又是一篇翻译,用了三个多小时.http://android-developers.blogspot.co.id/2014/08/material-design-in-2014-google-io-ap ...

  2. Lower Power with CPF(一)

    CPF(Common Power Format):cadence推出的一种在设计中描述低功耗设计的文件.完全按Tcl的语言格式来定义. CPF文件在整个前端后端的过程中,需要的部分不一样,所以CPF文 ...

  3. lower power的IP设计

    在IP的实现过程中,考虑lower power部分进行设计: 1)Partition the design来满足lower power的一些strategies,尤其是power gating和clo ...

  4. 在嵌入式设计中使用MicroBlaze(Vivado版本)(转)

    原文Xilinx官方文档<ug898-vivado-embedded-design>第三章 一.MicroBlaze处理器设计介绍(略) 二.创建带有MicroBlaze处理器的IP设计 ...

  5. 在嵌入式设计中使用MicroBlaze(Vivado版本)

    原文Xilinx官方文档<ug898-vivado-embedded-design>第三章 一.MicroBlaze处理器设计介绍(略) 二.创建带有MicroBlaze处理器的IP设计 ...

  6. mysql中数据库的设计

      软件开发流程(CMMI): 1):项目启动; 2):项目计划: 3):需求分析; 需要得到的结果是什么? 4):系统设计;         该怎么做? 5):系统开发; 6):系统测试; 7):系 ...

  7. 数据库设计中的Soft Delete模式

    最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...

  8. UI设计中的48dp定律【转】

    有朋友建议我偶尔写写技术类的文章,所以我打算开始穿插性的写一些偏技术方面的科普文章,尽量往小白能看懂的方向写,今天我来讲讲UI设计中的48dp定律. 那么先说说什么是dp ?其实对于一个非技术人员要把 ...

  9. 浅谈UI设计中妙用无穷的深色系背景

    英文:medium 译者:优设网 - 陈子木 链接:http://www.uisdc.com/ui-benefits-of-dark-background# --------------------- ...

随机推荐

  1. 利用HTML和JS制作隔行换背景颜色的表格

    1.源代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  2. 解决VS2010无法打开,提示无法找到atl100.dll的方法

    这个问题是卸载VS2010一些组件造成的误删问题,且从网上下的atl100.dll通常与自己的VS2010不符 解决方法: 从路径:C:\Program Files\Microsoft Visual ...

  3. 如何在intellj Idea中给新建的项目添加jar包?

    1. 假如我加入joda.jar 2. 找到发布的你想要的jar包,下载! 3. 解压刚下载的jar包,复制 4. 在intellj idea中新建一个java项目,然后创建一个专门用于放jar的li ...

  4. JDK的安装!力求简单明了!

    作为一个java语言的开发人员,第一件事就是安装JDK,就像当兵的要有刀枪,学生要有书本纸笔一样!话不多说,配置如下: 1.下载一个JDK安装包,解压到任意目录,我解压的是:C:\Tools\Java ...

  5. java.lang.NoClassDefFoundError: Could not initialize class ......

    在测试数据字典工具类的时候一直报这个错误,找了好久,原来是SpringContextUtils这个类没有放入到容器中. 但是我在SpringContextUtils上面加了注解的,为什么注解没有扫到呢 ...

  6. Shell数组的增删改查

    Shell数组的增删改查 shell数组的定义及取值: a=(1 2 3) [root@bogon tmp]# echo ${a[*]}  1 2 3 [root@bogon tmp]# echo $ ...

  7. 请问下./在Linux下是什么意思

    请问下./在Linux下是什么意思 http://zhidao.baidu.com/link?url=1f-80KN7cdi-7XECpwXLUn6Ps4reMBL2zB6eiDk7JliwDgW6k ...

  8. Python基础 (yield生成器)

    如果在一个函数中使用了yield,那么这个函数实际上生成的是一个生成器函数 ,返回的是一个generator object.生成器是实现迭代的一种方式 特点: 其实返回的就是可以的迭代对象 和迭代的方 ...

  9. Android Framework框架_转

    选自<Android内核剖析> Framework定义了客户端组件和服务端组件功能及接口.包含3个主要部分:服务端,客户端和Linux驱动. (一)服务端 服务端主要包含两个重要类,分别是 ...

  10. IDE硬盘 SCSI硬盘 SATA硬盘

    IDE一般是有扁平电缆连接的,一个扁平电缆可以连接2个IDE硬盘,而一个计算机一般提供2个扁平电缆,所以一般允许4块IDE硬盘.IDE经过多年的发展,成熟,廉价,稳定.一般老式的电脑中装的都是这种硬盘 ...