lower power设计中的DVFS设计
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设计的更多相关文章
- 2014年的Google I/O app设计中的材料设计-渣渣的翻译
又是一篇翻译,用了三个多小时.http://android-developers.blogspot.co.id/2014/08/material-design-in-2014-google-io-ap ...
- Lower Power with CPF(一)
CPF(Common Power Format):cadence推出的一种在设计中描述低功耗设计的文件.完全按Tcl的语言格式来定义. CPF文件在整个前端后端的过程中,需要的部分不一样,所以CPF文 ...
- lower power的IP设计
在IP的实现过程中,考虑lower power部分进行设计: 1)Partition the design来满足lower power的一些strategies,尤其是power gating和clo ...
- 在嵌入式设计中使用MicroBlaze(Vivado版本)(转)
原文Xilinx官方文档<ug898-vivado-embedded-design>第三章 一.MicroBlaze处理器设计介绍(略) 二.创建带有MicroBlaze处理器的IP设计 ...
- 在嵌入式设计中使用MicroBlaze(Vivado版本)
原文Xilinx官方文档<ug898-vivado-embedded-design>第三章 一.MicroBlaze处理器设计介绍(略) 二.创建带有MicroBlaze处理器的IP设计 ...
- mysql中数据库的设计
软件开发流程(CMMI): 1):项目启动; 2):项目计划: 3):需求分析; 需要得到的结果是什么? 4):系统设计; 该怎么做? 5):系统开发; 6):系统测试; 7):系 ...
- 数据库设计中的Soft Delete模式
最近几天有点忙,所以我们今天来一篇短的,简单地介绍一下数据库设计中的一种模式——Soft Delete. 可以说,该模式毁誉参半,甚至有非常多的人认为该模式是一个Anti-Pattern.因此在本篇文 ...
- UI设计中的48dp定律【转】
有朋友建议我偶尔写写技术类的文章,所以我打算开始穿插性的写一些偏技术方面的科普文章,尽量往小白能看懂的方向写,今天我来讲讲UI设计中的48dp定律. 那么先说说什么是dp ?其实对于一个非技术人员要把 ...
- 浅谈UI设计中妙用无穷的深色系背景
英文:medium 译者:优设网 - 陈子木 链接:http://www.uisdc.com/ui-benefits-of-dark-background# --------------------- ...
随机推荐
- ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
原文:ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...
- .net加载到vb 进程
.net加载到vb 进程时,总是不能加载进去,什么原因呢? 要尝试三个步骤, 首先调试vb ,没有问题,代码能够调试 然后注册.net的dll,生成tlb文件,生成解决方案,调整附加到进程时的选项. ...
- imx6 android 进入文件系统闪屏
imx6进入文件系统的时候都会闪屏,应该是framebuffer未初始化,就已经打开了背光.目前解决办法,在kenel阶段关闭背光,显示android的开机动画之后(此时framebuffer已经初始 ...
- search支持多种标签
织梦的搜索页面支持dede标签的方法一 打开文件:include/arc.searchview.class.php 找到: require_once(DEDEINC."/taglib/hot ...
- JavaScript:复选框事件的处理
复选框事件的处理 复选框本身也是多个组件的名字相同.所以在定义复选框的同事依然要使用document.all()取得全部的内容. 范例:操作复选框,要求是可以一个个去选择选项,也可以直接全选,全选按钮 ...
- 微信域名weixin.com天价成交!是腾讯吗?
据业内人士爆料,“微信”双拼域名weixin.com已于今天交易了,成交价格8位数.如此大手笔,神秘买家会是腾讯吗? 通过查询该域名的whois信息,最近一次的更新时间显示为今年4月13日,注册邮箱信 ...
- php 表单提交
<?php header("Content-Type:text/html; charset=utf8"); class config{ public static funct ...
- C# MySqlHelper
1.MySql官方提供ADO.NET访问模式的MySql.Data.dll,下载地址:http://dev.mysql.com/downloads/connector/net/ 2.MySqlHelp ...
- Xshell下VI打开文件中文乱码解决
修改 /etc/sysconfig/i18n 成如下值:LANG="zh_CN.utf8"LANGUAGE="zh_CN.utf8"SUPPORTED=&quo ...
- ES6入门之Iterator和for...of
Iterator遍历器 遍历器(Iterator)就是这样一种机制.它是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据 ...