专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
电源
sdram/ddr 功耗计算
2019-07-14 01:57
发布
生成海报
站内文章
/
电源技术
11970
0
1360
在进行嵌入式系统设计过程中总功耗的计算是一个无法绕开的问题,在总功耗的计算过程中尤其以SDRAM、DDR、DDR2等动态随机存储器件的功耗难以把握和计算。本人在进行电源IC选型时采用估算措施,一般嵌入式系统总电流不会超过400mA,所以选择电源IC只要在500mA以上即可;电子工程师在选电源IC计算系统总功耗时,总是会在计算DRAM器件功耗时难以下手而不得不对其进行估算。本人本着将革命进行到底的精神,在闲暇时间百度一些相关资料后进行了学习总结。
1.DDR功耗计算
现以DDR为例进行功耗计算,此过程可以推广到SDRAM和DDR2功耗计算。DRAM器件功耗难以准确计算的原因是由于该类器件工作状态繁多,且系统运行过程这些状态还不断切换,这些都为功耗的计算造成了阻碍。具体计算内存的功耗不是很容易的事,我们计算的结果只是一个假定工作条件下的平均值。为了估算内存芯片功耗,首先必须了解芯片的一些基本功能,下图是DDR功能模块图:
从上图可以看到,每个
BANK
都有一个
SENSE AMPLIRERS(
读出放大器
),
在进行读、写、自动刷新等操作时,需要先把存储阵列中的数据进行缓存后才能进行操作,
SENSE AMPLIRERS
就是这个缓存器。
DDR
大致有以下几种工作状态,特总结如下:
ACTIVE
(激活)、
Precharge
(预充电)、读、写、自动刷新、自刷新
ACTIVE
(激活)
用简单的一句话来描述,激活命令的作用就是将选择地址的
bit
信号送入读出放大器,以供下一步的读或写做准备。从字面上来理解,就是将存储矩阵电路中位信号发送到读出放大器以供外设使用,也就是将存储信号激活。
预充电(
Precharge
)
指关闭所有行地址线(
rowline
),所有列地址线(
bitline
)接
1/2Vcc
源经过足够长时间冲或放电使列地址电容电压值达到
1/2VCC
的动作。对不同列地址进行读或写都要进行新的预充电。
芯片上电后最先做的动作就是预充电,它是其他操作的基础。
读
芯片上电确定地址,进行预充电再进行激活处理将数值发送到读出处理器,再发送到
I/O
口;这就是读操作的全部流程。
写
芯片上电确定地址,
进行激活处理将
外设传递数据保存到读出处理器,再通过预充电操作将数据压入存储矩阵电路。
以上对
sdram
类器件的基本操作做了简要描述,这样对计算该类功耗计算起到了非常好的撬动作用。计算内存电源消耗的最重要的参数是操作电流
Idd
参数,这些值在标准的内存芯片参考手册上都可以查到。下面的列表介绍了
DDR
内存芯片的各种
Idd
电流的具体含义:
对应的中文表格如下图:
操作电流可分为如下几部分:
后台电源消耗(
Background Power
)
-
对应静态功耗
CKE
低电平节能状态的预充电模式:
P(Pre_down)=Idd2p*VDD
CKE
有效
Standby
状态的预充电模式:
P(Pre_stby)=Idd2f*VDD
CKE
低电平节能状态的激活模式:
P(ACT_down)=Idd3p*VDD
CKE
有效
Standby
状态的预充电模式:
P(ACT_stby)=Idd3n*VDD
自动刷新电流:
P (REF)=(Idd5/6–Idd2p)*VDD
激活时操作电流(
Activate Power
)
Active
到
Precharge
操作过程中的消耗:
P(ACT)=(Idd0-Idd3n)*VDD*[Trc(spec)/TACT(actual)]
读写操作电流(
Read/Write Power
)
写操作的功耗:
P(wr) =(Idd4w - Idd3n)*VDD*WR%
读操作的功耗:
P(rd) =(Idd4r - Idd3n)*VDD*RD%
读操作时
I/O
功耗:
P(DQ) =(Vout * Iout)*N*RD%
其中
WR%
和
RD%
指写
/
读操作在
ACT
周期中占的比重,
Vout
和
Iout
指
DQ
管脚的输出电压和电流,
N
指芯片上
DQ
和
DQS
的数目。
需要注意的是,芯片厂商的
Datasheet
上提供的数据通常都是在比较苛刻的条件下测量的结果比如
VDD
是工作在额定最大电压下(对
DDR
来说一般为
2.7V
)。遇到这种情况我们就要采取一些处理措施,办法就是根据实际电压和频率的变化,对计算的结果通过乘上变化因子进行调整:
经过调整之后,得到的就是在实际工作电压和频率下的功耗。当然,这时候计算出来的仅仅是各部分工作状态下相对独立的电源消耗情况,如果综合起来计算整个芯片的功耗,则不是简单地把各项相加就行,还要合理考虑各种状态所占的比例等实际问题,比如:所有
Bank
预充电占的时间比例
BNK_PRE%
,处于预充电状态中
CKE
低电平占的比例
CKE_LO_PRE%
,处于激活状态中
CKE
处于低电平的比例
CKE_LO_ACT%
等等。这时,相应的公式要调整为:
单个芯片电源消耗的计算方法学会之后,我们还可以类推到整个内存模块的功耗计算。下面我们就举例来分析一下
4
根
1G
的
DIMM
正常工作时的电源消耗,芯片采用
Samsung K4H560838D DDR333 64MX4
的芯片。
假设的系统工作条件如下:
带入相应的公式即可算出芯片的功耗:
2.sdram
功耗计算
SDR
的功耗计算和
DDR
基本相似,主要的区别在于以下几个方面:
后面是从美光网上下载的功耗计算文件,感兴趣的可以自己分析。
从上表可知:其测试电压为
3.3V
,时钟频率为
133M,
系统输出电容负载为
25pF;
所有片内
BANK
用于预充电的时间占总时间的
70%
;
当
CKE
有效时(即时能时钟信号时)所有片内
BANK
用于预充电的时间即占其有效总时间的
80%
;
激活
bank
的
active
命令平均时间为
120ns;
读取
SDRAM
时间占时钟有效时间的
40%
,而写
SDRAM
时间占时钟有效时间的
15%
,这样时钟有效传送数据时间比例为
55%
,即时钟有
45%
处于空闲状态,也就是说数据总线有
45%
没有传送数据;
上表展示的是依据三种不同情况计算得到的对应功耗:
worst-case
是依据手册电流数据得到的最大功耗;
第二个是依据使用情况得到的最大功耗;
第三个是依据系统时钟得到的最大功耗;
从以上分析可得出,准确计算
SDRAM
类功耗是非常困难的,写本文目的只是想让感兴趣的分析一下。
Ta的文章
更多
>>
Altium Designer学习---如何进行SI仿真
0 个评论
sdram/ddr 功耗计算
0 个评论
eclipse AVD模拟器打开以后显示没电,需要充电。
0 个评论
热门文章
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮