SDRAM操作原理分析
芯片原理图

引脚原理图


指令


通过对上面指令的总结,简化出要用到的指令如下:
|
指令 |
常量名 |
CKE |
CSn |
RAS |
CASn |
WEn |
备注 |
|
空操作 |
NOP |
1 |
0 |
1 |
1 |
1 |
|
|
行激活 |
ACTIVE |
1 |
0 |
0 |
1 |
1 |
|
|
读操作 |
READ |
1 |
0 |
1 |
0 |
1 |
|
|
写操作 |
WRITE |
1 |
0 |
1 |
0 |
0 |
|
|
预充电 |
PR |
1 |
0 |
0 |
1 |
0 |
|
|
自刷新 |
AR |
1 |
0 |
0 |
0 |
1 |
|
|
设置寄存器 |
LMR |
1 |
0 |
0 |
0 |
0 |
|
|
突发停止 |
BURST_STOP |
1 |
0 |
1 |
1 |
0 |
1 |
芯片配置


操作模式:SDRAM内部有三种操作模式:单一的读写、突发读写、页读写(突发读写全页)
突发传输模式:一般情况下都采用顺序读写操作;
CAS潜伏期:即发出读指令之后,经过多少个时钟周期才可以读取数据,而在写数据中是没有这个概念的。
突发长度:突发就是连续读写的操作,如果没有突发操作,对SDRAM内部连续地址进行读写则要发送指令和地址,然后读取或写入数据,循环操作,有了突发操作后,就可以制定突发长度,发送读写的起始地址然后对SDRAM进行连续的读写,突发的长度可以设置,突发全页就是连续操作一行,就是256个存储单元。
初始化时序图

初始化操作过程如下:
- 上电等待200us
- 发送PR命令
- 满足tRP时间要求至少20ns
- 发送AR(AutoRefresh)命令
- 满足tRFC(tRPC又名tRCC)时间要求至少63ns
- 发送AR(AutoRefresh)命令
- 满足tRFC(tRPC又名tRCC)时间要求至少63ns
- 发送LMR(LodeModeRegister)命令和相关配置信息
- 满足tMRD 时间要求至少1个时钟
定时自动刷新
存储体中电容的数据有效保存期上限是64ms,也就是说每一行刷新的循环周期是64ms。这样刷新速度就是:行数量/64ms 。我们在看内存规格时,经常会看到4096 Refresh Cycles/64ms 或8192 Refresh Cycles/64ms的标识,这里的4096与8192就代表这个芯片中每个L-Bank的行数。刷新命令一次对一行有效,发送间隔也是随总行数而变化,4096行时为15.625 μs,8192行时就为7.8125 μs。
刷新操作分为两种:Auto Refresh,简称AR与Self Refresh,简称SR。不论是何种刷新方式,都不需要外部提供行地址信息,因为这是一个内部的自动操作。对于AR,SDRAM内部有一个行地址生成器(也称刷新计数器)用来自动的依次生成行地址。由于刷新是针对一行中的所有存储体进行,所以无需列寻址,或者说CAS 在RAS 之前有效。所以,AR又称CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新过程中,所有L-Bank都停止工作,而每次刷新所占用的时间为9个时钟周期(PC133 标准),之后就可进入正常的工作状态,也就是说在这9个时钟期间内,所有工作指令只能等待而无法执行。64ms之后则再次对同一行进行刷新,如此周而复始进行循环刷新。显然,刷新操作肯定会对SDRAM 的性能造成影响,但这是没办法的事情,也是DRAM 相对于SRAM (静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。

操作过程如下:
- 先发送Precharge命令,命SDRAM释放所有资源库。
- 相关操作需要消耗时间tRP-20ns。
- 发送AutoRefresh命令,命SDRAM刷新内部逻辑的内容。
- 相关操作需要消耗时间tRFC-63ns、
- 发送AutoRefresh命令,命SDRAM刷新内部逻辑的内容。
- 相关操作需要消耗时间tRFC-63ns。
写操作
SDRAM的写操作有两种模式,如下

Write with Autopre-charge:每当一次性的写发生以后,SDRAM自动释放相关的资源库,以方便下一次的写操作。相反则需要手动进行释放,一般采用Write with Autopre-charge。
两者的区别就是A10的电平高低。

操作过程如下:
- 发送Active命令,发送库(Bank)和行(Row)地址信息。
- 满足tRCD时间要求,至少20ns。
- 发送Write命令、库(Bank)和列(Column)地址;A10拉高代表With Auto Precharge;
- 同时写入的一字数据。这时候DQM必须拉低。
- 满足tWR(tDPL)时间要求,至少2个时钟。
- 满足tRP时间要求,至少20ns。
经过时间tWR(tDPL)以后,一字数据就成功被写入。随后SDRAM开始执行Auto Precharge的操作,释放当前相关的资源库。最后经过tRP以后(Auto Precharge的操作完成)。
读操作

- 发送Active命令、行(Row)和库(Bank)地址。
- 满足时间要求tRCD-20ns。
- 发送Read命令、列(Column)和库(Bank)地址,DQM拉低,拉高A10一个时钟,表示读操作后自动释放资源库(WithAutoPrecharge)。
- 满足CAS Latency时间要求
- CAS Latency满足之后,接下来满足时间要求tAC-6ns、tRP-20ns,然后读取数据。
每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

SDRAM操作原理分析的更多相关文章
- CAS操作原理分析
一.CAS简单介绍 CAS:Compare and Swap, 翻译成比较并交换. java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁 ...
- s3c2440裸机-内存控制器(五、SDRAM编程实现)
配置内存控制器-SDRAM编程配置 2440内存控制器共有13个寄存器. BANK0--BANK5只需要设置BWSCON和BANKCONx(x为0-5)两个寄存器: BANK6.BANK7外接SDRA ...
- Java类集框架详细汇总-底层分析
前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...
- JUC——JUC开发简介(一)
前言 JUC是Java5.0开始提供的一组专门实现多线程并发处理的开发框架,利用JUC开发架构可以有效的解决实际线程项目开发之中出现的死锁.阻塞.资源访问与公平机制. 此笔记主要记录java.util ...
- 【转】S3C2440与SDRAM NorFlash NandFlash连线分析
一.SDRAM(HY57V561620F)连线分析 1. S3C2440 有27根地址线ADDR[26:0],8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址 ...
- ARM裸板开发:04_MMU 链接地址与运行地址不一致时,(SDRAM)初始化程序地址无关码问题的分析
ARM裸板开发过程,程序的链接地址设置为为0x30000000,而前期的启动代码以及相关硬件的初始化代码需要在内部iRAM(steppingstone,起始地址0x0)的4K中运行.链接地址与运行地址 ...
- mini2440的SDRAM分析
首先是2440的存储控制器: 暂时不管是从nand启动还是nor启动,因为我现在只关注内存,从上图可以看到由2440的Memory Controller可以寻址的范围是0x0000,0000---0x ...
- u-boot源码汇编段简要分析
Hi,大家好!我是CrazyCatJack,你们可以叫我CCJ或者疯猫.今天我给大家带来的是u-boot的源代码汇编段分析,以后还会给大家讲解后续的C代码,请持续关注哦^_^ 先简单说一下u-boot ...
- orpsocv2 从ROM(bootrom)启动分析--以atlys板子的启动为例子
1 复位后的启动地址 1) 复位后,启动地址在or1200_defines.v最后宏定义,atlys板子的目录:orpsocv2\boards\xilinx\atlys\rtl\verilog\inc ...
随机推荐
- 简易的GCC图形界面GCCUI
这个 GCCUI.EXE 是配合上一篇博文<用VC6开发嵌入式LINUX程序>说的:用VC6辅助开发LINUX程序的时候使用.把 gcc 编译器增加一个简易的图形界面,可以自动读取 vc6 ...
- linux 中/proc 详解
proc 文件系统 在Linux中有额外的机制可以为内核和内核模块将信息发送给进程-- /proc 文件系统.最初设计的目的是允许更方便的对进程信息进行访问(因此得名),现在它被每一个有有趣的东西报告 ...
- addrinfo 结构
typedef struct addrinfo {int ai_flags;int ai_family;int ai_sockty ...
- 配置nginx好了,html能打开,index.php打不开?
启动这2个 #service nginx restart # service php-fpm restart
- 浅谈C++设计模式之抽象工厂(Abstract Factory)
抽象工厂(Abstract Factory)模式是为了提供一系列相关或相互依赖对象的接口.对象创建型模式的一种. 客户Client 抽象工厂接口AbstractFactory 抽象工厂的实现类Conc ...
- vsftpd 配置:chroot_local_user与chroot_list_enable详解
chroot_local_user,chroot_list_enable,chroot_list_file三个配置项的解释: chroot_local_user #是否将所有用户限制在主目录,YES为 ...
- 提升效率(时间准确性),减少时间和资源的消耗——由89C52/89C51的定时器中断引出的一些问题
尽量用最少的文字描述清楚问题. 事情起因是这样的: 要做遥控小车的平台迁移,STM32开发板无法方便地供电,因此又拿出了尘封的51(STC89C52RC),搭配上最小系统板就可以用排针加杜邦线供电了. ...
- Neutron分析(5)—— neutron-l3-agent中的iptables
一.iptables简介 1.iptables数据包处理流程 以本机为目的的包,由上至下,走左边的路 本机产生的包,从local process开始走左边的路 本机转发的包,由上至下走右边的路 简化流 ...
- 大话设计模式C++版——代理模式
本篇开始前先发个福利,程杰的<大话设计模式>一书高清电子版(带目录)已上传至CSDN,免积分下载. 下载地址:http://download.csdn.net/detail/gufeng9 ...
- AI (Adobe Illustrator)详细用法(三)
本文主要是介绍和色彩相关的用法. 一.路径外观设置 1.设置描边粗细 手动输入20px 下拉选择 鼠标选中数值,按向上或向下的箭头调整 在右边的描边菜单中修改 Note:按住shift键,然后上下箭头 ...