在进行嵌入式系统设计过程中总功耗的计算是一个无法绕开的问题,在总功耗的计算过程中尤其以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类功耗是非常困难的,写本文目的只是想让感兴趣的分析一下。

sdram/ddr 功耗计算相关推荐

  1. SRAM/SDRAM/DDR/Cache

    参考:正点原子<I.MX6U 嵌入式 Linux 驱动开发指南> 1.RAM 与 ROM RAM:随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失.比如内存条.SRAM.SD ...

  2. SDRAM/DDR/DDR2学习笔记

    在说明初始化之前先了解一下SDRAM的一些基础知识吧. SDRAM (Synchronous Dynamic Random Access Memory),同步动态随机存储器.同步是指其时钟频率与CPU ...

  3. SRAM SDRAM DDR 简介

    SRAM SDRAM DDR 简介 转载 SRAM SDRAM DDR 简介 https://blog.csdn.net/monkea123/article/details/103267121 SRA ...

  4. RAM,ROM,SRAM,SDRAM,DDR内存

    一.RAM和ROM RAM: 随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失.比如内存条. SRAM. SDRAM. DDR 等都是 RAM. RAM 一般用来保存程序数据.中间结果, ...

  5. [攻克存储] 掌握SDRAM/DDR的结构与寻址

    本系列前面两篇文章<[攻克存储] SRAM地址线的连接>和 <[攻克存储] 存储芯片的写屏蔽及扩展>已经介绍了SRAM芯片的地址线连接方法以及存储芯片的写屏蔽扩展,这两篇文章基 ...

  6. 你可能不知道的leakage功耗计算

    本文总结工具中进行leakage功耗计算的一般方法. 背景 leakage power在深亚微米下占比越来越高.在很多情况下,leakage power可能会占到芯片总功耗的30~50%. 即使在st ...

  7. 超级详细的MOSFET功耗计算-MOSFET Power Losses

    目录 背景 前言 一.MOSFET的功耗(Power losses)包含几部分? 二.功耗计算 1.MOSFET的开通过程详解(以安森美的NVMFD5C66NL) 2.MOSFET loss计算详解 ...

  8. 【硬件】芯片温度/功耗计算

    本博客参考:一纸沙漏的博客 芯片的四个温度 内核温度.封装表面温度.空气周边温度以及PCB板温度. TJ(Die Junction Temp) 芯片的硅核温度,就是芯片内部核心的温度,从英文缩写就可以 ...

  9. 反相器动态功耗计算和短路电流

    1 反相器动态功耗计算 2 短路电流

最新文章

  1. 将Nodelist快速转换为Array数组
  2. Ubuntu管理开机自启动程序
  3. 资源 | 2018年值得关注的200场机器学习会议(建议收藏)
  4. python读取红外图
  5. iOS 开发中的各种证书
  6. 32岁男子沉迷网游十年离世 临终称真有意思
  7. String是java中的基本数据类型吗
  8. C++ ——Qt的信号和槽的详解
  9. 幻想三国android官方版,幻想三国ol官方版下载
  10. oppo preloader驱动_手机企业冲向IoT新赛道,HOMA格局下OPPO有何不同?
  11. 工业镜头视场、倍率、焦距之间的关系
  12. 最全电商分类信息(10)
  13. python画笔颜色_Python画图 plt.plot()函数细节颜色字符,风格字符,和标记字符
  14. PDF怎么转换成长图
  15. 工厂IT人员如何自学ERP系统
  16. linux的yum命令无法使用在哪里下载_一行命令下载全网视频,这个命令太牛逼了!...
  17. leetcode -- 953验证外星语词典
  18. HC-05蓝牙模块AT指令设置教程
  19. 搜索优化—如何在Google搜索引擎上排名靠前Google左侧排名
  20. 亚马逊FBA标签打印技巧(深圳风火轮amazon团队)

热门文章

  1. 【论文笔记06】智能合约的合约安全和隐私安全研究综述
  2. 基于N32G45的按键驱动
  3. 监控平台实践(三)Telegraf 实现组件监控
  4. bert中文文本情感分类 微博评论挖掘之Bert实战应用案例-文本情感分类
  5. 记一下最近遇到的网络时断时连问题
  6. 一文详解:P6KE6.8CA双向TVS二极管参数
  7. 山海演武传·黄道·第一卷 雏龙惊蛰 第六章 八卦与奇门
  8. 【小程序】初识小程序
  9. 【stm32】引脚高低电平、上拉输入与下拉输入
  10. Nginx高阶用法(二)