DRAM(Dynamic Random Access Memory),即动态随机存取存储器.

1. Storage Cell

如上图,一个DRAM的基本存储单元由4个部分组成。

Storage Capacitor,即存储电容,它通过存储在其中的电荷的多和少,或者说电容两端电压差的高和低,来表示逻辑上的 1 和 0。

Access Transistor,即访问晶体管,一般是场效应管。它的导通和截止,决定了允许或禁止对Storage Capacitor 所存储的信息的读取和改写。

Wordline,即字线,也可以叫行地址线。它决定了 Access Transistor 的导通或者截止。

Bitline,即位线,也可以叫列地址线。它是外界访问 Storage Capacitor 的唯一通道,当 Access Transistor 导通后,外界可以通过 Bitline 对 Storage Capacitor 进行读取或者写入操作。

1. 读数据时,Wordline 设为逻辑高电平,打开 Access Transistor,然后读取 Bitline 上的状态

2. 写数据时,先把要写入的电平状态设定到 Bitline 上,然后打开 Access Transistor,通过Bitline 改变 Storage Capacitor 内部的状态。

2. Memory Array

如上图,多个存储单元就可以组成一个存储矩阵了。这个存储矩阵叫做Memory Array。

如上图,读写数据时,首先要激活Wordline。

然后从bitline上读写数据。

上图Memory Array表示了4根地址线(绿色,2根行地址线,2根列地址线),通过行列的解码器来访问16个内存存储单元的Memory Array。也就是2的N次方。

对上图的Memory Array来说,没有画出地址线,我们可以分析出这个MemoryArray需要行地址线3根来产生8种组合,列地址也一样。这样6根地址线,2的6次方为64,可以访问到上图中64个bit。

3. Memory Bank

多个Memory Array合并在一起构成一个Bank。上图的bank由4个Memory Array构成,也就是说我们给出一个确定地址,可以一次访问到4个 bit。

4. Memory Device

多个bank组成一个memory device,即内存芯片。因此我们在读写DRAM时,还要给出BANK地址,因此这时,内存地址由Memory Bank地址+Memory Array地址。

因为DRAM需要一直刷新来维持数据,因此我们在读写完一个BANK上的数据后,下次会读写另一个BANK上的数据,来给上一个BANK以刷新时间,提高的读写效率。

5. Memory Rank

多个Memory device可以组成一个RANK.

每个Memory device的数据线是排列在一起分别连接在内存控制器上,而地址线是共用。也就是说,如果有4个Memory device,并且每个Memory device里的Memory array是8位的话,每个Memory device中读出8个位,一次可以读出32位个bit。

6. 原理图分析

1) 数据线连接

从上面原理图和datasheet可以看到,原理图上用了两片K4T1G164QE,这两片K4是16个IO的,所以两片K4的数据线

并排连接到CPU的数据线上,因此可以一次读取到32位数据。

2) 地址线连接

两片K4的地址线和bank线是共用的,因此如果给出一个地址,那么这个地址前两个字节从第1片读出,后两个字节从第2片

中读出,因此构成4字节32位数据。

3) 容量计算

从芯片上可以看到是1Gb,也就是128MB。

从地址线可以算出,一个芯片上有13个行地址线,10个列地址线,3个bank线,一次能读取16位。

因此,一片的总大小是2的26次方再乘以2,也就是128MB。

inside uboot (五) DRAM的构成相关推荐

  1. inside uboot (六) DRAM芯片的控制线及时序

    Clock (差分信号,CLK和nCLK)为时钟信号                   (同一个rank共用) CKE 时钟信号使能                                  ...

  2. Architect Inside I - 五年后的软件界

        业界趋势分析及对应的技术战略         张大磊 Ray Zhang 十几年前的某一天,当微软发布Windows3.1操作系统的时候,大家都认为它是一个理所当然的软件公司,但是现在微软还是 ...

  3. inside uboot (三) 异常向量表

    1. 异常向量表概述 从上面的地址映射来看,中断向量表的地址为0xD0037400,因此如果我们想在SRAM中,也就是BL1中处理异常的话, 就需要把我们的异常向量表拷贝到这个地址上.或者我们可以在链 ...

  4. inside uboot (二) 启动流程

    1. S3C6410 启动流程 1). 6410上电后,首先执行片内iROM的程序(BL0),初始化时钟和看门狗等外围器件. 2). 然后把flash中头4K(BL1)的内容加载到片内的SRAM中执行 ...

  5. Tiny210(S5PV210) U-BOOT(五)----Nand Flash源码分析

    1.u-boot参考源码  Nand Flash的初始化代码在board/samsung/tiny210/lowlevel_init.S 2.初始化Nand Flash 在u-boot中,Nand的低 ...

  6. u-boot分析之内核启动(五)

    目录 u-boot(五)内核启动 概述 分区空间 内核文件格式 内核复制跳转 内核启动 机器ID 启动参数 (起始tag)setup_start_tag 内存设置 根文件系统,启动程序,串口设备 (结 ...

  7. [学习资料] Tiny210(S5PV210) u-boot移植

    Tiny210(S5PV210) u-boot移植 http://www.microoh.com/bbs/forum.php?mod=viewthread&tid=254&fromui ...

  8. 【嵌入式开发】ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

    文章目录 一. 内存 简介 1. 两大内存分类 ( 1 ) DRAM 简介 ( 定期刷新 | 速度慢 | 成本低 ) ( 2 ) SRAM 简介 ( 不需刷新 | 存取速度快 | 功耗大 | 成本高 ...

  9. 基于tiny4412的u-boot移植(二)_ git clone

    转载于  :  http://www.cnblogs.com/pengdonglin137/p/5080645.html 作者信息 作者:彭东林 邮箱:pengdonglin137@163.com Q ...

最新文章

  1. css图片悬停边框,CSS悬停边框使内联元素稍微调整
  2. C++中文转码问题(GB2312 - UTF8)
  3. 区块链死亡项目列表小程序:死亡硬币
  4. POJ 1177 Picture [离散化+扫描线+线段树]
  5. LeetCode Implement Trie (Prefix Tree)(字典树)
  6. 技术系列课|网易云信音视频通话2.0产品中的美声/变声功能
  7. 算法竞赛——归并排序算法
  8. python安装sklearn_让机器学习自动帮我们建模,这4个Python库能让你大开眼界!
  9. 怎样用VB获得Windows各类系统目录
  10. 自然语言处理系列-1.什么是NLP?
  11. 九江职业技术学院工业机器人_黑龙江农业工程职业学院学子喜获工业机器人大赛一等奖...
  12. jeecms idea部署
  13. VB代码窗口鼠标滚轮的使用
  14. WDN302国产化网络存储控制模块
  15. Web前端面试指导(四十):CSS3有哪些新特性?
  16. ubuntu使用meld/beyond compare 做git的diff工具
  17. spyder快捷键大全
  18. DW大学生网页作业制作设计 基于html+css我的家乡贵州网页项目的设计与实现
  19. 软件工程基础知识--认识软件工程
  20. 8 PyQt5 QTabWidget

热门文章

  1. Cass2008 for CAD2006 安装
  2. cad幕墙下料lisp_石材幕墙屋面不锈钢角钢接闪带施工方法
  3. 21 | 哈希算法(上):如何防止数据库中的用户信息被脱库?
  4. php 类的注释标准,php标准注释
  5. 通配符的匹配很全面, 但无法找到元素 'mvc:annotation-driven' 的声明
  6. 【C语言进阶深度学习记录】一 数据类型的本质与变量的本质
  7. MySQL 表和列的注释
  8. Lesson 028 —— python 模块
  9. 基于MODBUS协议的单片机与(串口屏)触摸屏通信(图文)
  10. LeetCode-Spiral Matrix-螺旋矩阵