芯片原理图

引脚原理图

指令

通过对上面指令的总结,简化出要用到的指令如下:

指令

常量名

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个存储单元。

初始化时序图

初始化操作过程如下:

  1. 上电等待200us
  2. 发送PR命令
  3. 满足tRP时间要求至少20ns
  4. 发送AR(AutoRefresh)命令
  5. 满足tRFC(tRPC又名tRCC)时间要求至少63ns
  6. 发送AR(AutoRefresh)命令
  7. 满足tRFC(tRPC又名tRCC)时间要求至少63ns
  8. 发送LMR(LodeModeRegister)命令和相关配置信息
  9. 满足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 (静态内存,无需刷新仍能保留数据)取得成本优势的同时所付出的代价。

操作过程如下:

  1. 先发送Precharge命令,命SDRAM释放所有资源库。
  2. 相关操作需要消耗时间tRP-20ns。
  3. 发送AutoRefresh命令,命SDRAM刷新内部逻辑的内容。
  4. 相关操作需要消耗时间tRFC-63ns、
  5. 发送AutoRefresh命令,命SDRAM刷新内部逻辑的内容。
  6. 相关操作需要消耗时间tRFC-63ns。

写操作

SDRAM的写操作有两种模式,如下

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

两者的区别就是A10的电平高低。

操作过程如下:

  1. 发送Active命令,发送库(Bank)和行(Row)地址信息。
  2. 满足tRCD时间要求,至少20ns。
  3. 发送Write命令、库(Bank)和列(Column)地址;A10拉高代表With Auto Precharge;
  4. 同时写入的一字数据。这时候DQM必须拉低。
  5. 满足tWR(tDPL)时间要求,至少2个时钟。
  6. 满足tRP时间要求,至少20ns。

经过时间tWR(tDPL)以后,一字数据就成功被写入。随后SDRAM开始执行Auto Precharge的操作,释放当前相关的资源库。最后经过tRP以后(Auto Precharge的操作完成)。

读操作

  1. 发送Active命令、行(Row)和库(Bank)地址。
  2. 满足时间要求tRCD-20ns。
  3. 发送Read命令、列(Column)和库(Bank)地址,DQM拉低,拉高A10一个时钟,表示读操作后自动释放资源库(WithAutoPrecharge)。
  4. 满足CAS Latency时间要求
  5. CAS Latency满足之后,接下来满足时间要求tAC-6ns、tRP-20ns,然后读取数据。

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

最新文章

  1. 探索ASP.NET MVC框架之控制器的查找与激活机制
  2. jquery循环操作
  3. git入门札记
  4. MySQL 数据库双向镜像、循环镜像(复制)
  5. memcache(使用php操作memcache)
  6. [LintCode] Add and Search Word 添加和查找单词
  7. python中的构造函数和析构函数
  8. 3、Linux 获取帮助的方法-关机命令-7个系统启动级别
  9. 为Fitnesse-20140630定制RestFixture代码
  10. think straight系列读书笔记之《暗时间》
  11. 使用PHP-Barcode轻松生成条形码(一)
  12. 【转载】基于vw等viewport视区相对单位的响应式排版和布局
  13. Java开发快速上手
  14. Angularjs 学习笔记-2017-02-05-初识Angular及app、model、controller、repeat指令和fileter、orderBy
  15. QT应用在windows和Linux平台的发布指南
  16. Linux下安装mysql(示例mysql5.6安装)
  17. vim插件的安装方式 -- vim注释插件和doxygen函数注释生成插件-ctrlp插件-tabular等号对齐 插件
  18. [原][osg]osgconv浅析
  19. 【转】关于easyui的窗口和tab页面不执行js说明
  20. javaresource 红色X

热门文章

  1. C#读取XML文件
  2. SQL指令中一些特别值得注意的地方
  3. Linux信号
  4. [转]NopCommerce How to code my own payment method
  5. POJ3621Sightseeing Cows[01分数规划 spfa(dfs)负环 ]
  6. USACO(含training section)水题合集[5/未完待续]
  7. NOIP2000方格取数[DP]
  8. KSFramework常见问题:Excel如何进行SVN协作、差异比较?
  9. 把web项目部署到tomocat上
  10. noip2013 积木大赛