当我在看有关SDRAM的芯片手册的时候,我一直在想这样一个问题:SDRAM的容量它究竟是如何计算的呢?经过查找网上的各种资料,最后在这里给大伙分享一下我的总结!

就以我的开发板的SDRAM的芯片手册的型号:h57v2562gtr60c为例。通过查看我的h57v2562gtr60c的datasheet,我们知道:

行地址选择线有13根(RA0~RA12),列地址选择线有9根(CA0~CA8), 
Bank选择线有2根(BA0,BA1),数据线16根(DQ0~AQ15)

而我们知道SDRAM的总单元数=(2^行地址选择线)*(2^列地址选择线)*(2^Bank选择线)

由此我们得出我们的SDRAM的总单元数=(2^13)*(2^9)*(2^2)=2^24 个单元数

注:行地址选择线位13,并不代表我们的每个Bank只有13行,而是代表我们每个Bank可以表示的行数为2^13行,对于列地址选择线和Bank线也是同样的道理。

我们知道了SDRAM的总的单元数,但是我们还不能确定整个SDRAM的容量,因为我们还不清楚我们的SDRAM的每个单元存放的数据是多少位,那么这个又是如何确定的呢?

那么这就涉及到了位宽的概念,在TQ2440的开发板中,是用两块SDRAM组成一整个SDRAM的,其中地址线是公用同一个地址,而数据线则分成两个16位,因为每片SDRAM只提供16的数据线,那么我个人的理解是:低16位存在其中一片SDRAM中,高16位存在另一片SDRAM中,这样就达成了,每次往同一地址发送或读取数据的时候,就达成了一次发送或读取32位位宽的数据的目的,亦即,每个地址下所对应的一个存储单元的数据都是32位的。

所以我们整个的SDRAM的容量=(SDRAM的总单元数)*(位宽)=(2^24) * 32 =2^29 bit

注:我这里算的是TQ2440开发板的整个SDRAM的总的容量,而不是只单独每一片的SDRAM的总的容量。若是单独每一片的SDRAM的容量 = 整个的SDRAM的容量 / 2

注:这里计算的单位是bit,若我们把它转化成字节数则是 2^29 bit / 8 = 2^26 Byte = 2^6 MB = 64 MB

这就是TQ2440开发板的最终的SDRAM的容量。

SDRAM容量的计算方法的更多相关文章

  1. 【转】S3C2440与SDRAM NorFlash NandFlash连线分析

    一.SDRAM(HY57V561620F)连线分析 1.  S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址 ...

  2. 是否有必要学习使用纯Verilog写一个SDRAM控制器

    在做这个SDRAM控制器之前,博主有一个疑问,对于学生来说,是否有必要学习用纯Verilog写一个SDRAM控制器?因为目前X家和A家都有了DDR IP Core,对于要实现一个应用可以直接调用IP ...

  3. STM32F429驱动SDRAM

    1 SDRAM控制原理 1.1 SDRAM信号线 1.2 SDRAM地址线 SDRAM包含有“A”以及“BA”两类地址线: A:行(Row)与列(Column)共用的地址线 BA:独立的用于指定SDR ...

  4. Elasticsearch集群规模和容量规划的底层逻辑

    转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484628&idx=1&sn=666e416ae ...

  5. CF卡技术详解——笔记

    知识太全面了,摘抄摘不完,还是粘过来加上注释和笔记吧. 重点以及断句用加粗,注释用红括号. 一.CF卡技术及规格 一.CF卡技术及规格 1.CF卡简史 随着数码产品的高速普及,近年来闪存卡也进入了高速 ...

  6. ubuntu-14.04中/boot分区不足的解决办法

    环境:ubuntu-kylin 或者 ubuntu-14.04,/boot单独分区工具:ubuntu的liveCD. 问题: 由于当初安装的时候,看网上说/boot很小,100M足以,于是单独分区,分 ...

  7. 【DSP开发】6455EMIF

     外部设备连接接口包括外部存储器连接接口(EMIF).主机接口(HPI)等.外部存储器接口主要用来同并行存储器连接,这些存储器包括SDRAM.SBSRAM.Flash.SRAM存储器等,外部存储器接口 ...

  8. 初学嵌入式Linux

    初学嵌入式Linux,感觉需要学习的东西太多了.把学习过程中的收获和问题记录在这里,算是一份经验吧.     前面利用开发板带的现成的东西step by step让Linux 2.4.19在开发板上跑 ...

  9. 基于RT1052 Aworks 内存扩容记录(一)

    本文主要是通过迁移的思维,记录本人初次使用周立功的Aworks框架进行BSP开发 1. 首先阅读原理图 内存容量由32M扩容至64M. 2. 再则比较两颗芯片的参数 通过比较32M和64M SDRAM ...

随机推荐

  1. C#中分别对委托、匿名方法、Lambda表达式、Lambda表达式树以及反射执行同一方法的过程进行比较。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. 手机触屏滑动图片切换插件swiper.js

    今天给大家分享一款手机触屏滑动图片切换插件swiper.js是一款swiper手机触屏滑动图片幻灯片,适合各种尺寸.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  3. 【Unity笔记】物体的Transform操作:速度、旋转、平移

    例如,通过按键/摇杆来操作飞机在三维空间的飞行状态.包括速度(大小,方向).位移. public class ExampleClass : MonoBehaviour { public float s ...

  4. Linux 进程间通信(posix消息队列 简单)实例

    Linux 进程间通信(posix消息队列 简单)实例 详情见: http://www.linuxidc.com/Linux/2011-10/44828.htm 编译: gcc -o consumer ...

  5. Spring事件监听Demo

    Spring事件监听实现了观察者模式.本Demo在junit4测试环境中实现 主要有三个类事件类.监听器类.事件发布类(入口) 事件类必须继承 ApplicationEvent,代码如下: impor ...

  6. HTML——表单与锚点

    练习做一个邮箱的注册页面 1.12行2列的表格 2.表格里面嵌入表单 3.最后建一个锚点 4.写具体内容 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTM ...

  7. docker 部署nginx+weblogic集群

    測试一段时间.再来报告

  8. Golang map 如何进行删除操作?

    Cyeam 关注 2017.11.02 10:02* 字数 372 阅读 2784评论 0喜欢 3 map 的删除操作 Golang 内置了哈希表,总体上是使用哈希链表实现的,如果出现哈希冲突,就把冲 ...

  9. 传说中的纯CSS圆角代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. 一个小bug

    如果提交表单给按钮一个名字,就会报错... <html> <body> <form action="{:U('Index/login')}" meth ...