SDRAM基础知识
SDRAM知识普及
在学习SDRAM之前,必须先了解"SDRAM"这个概念性的东西,并有感性的认识转变到一种理性的认识,所谓理性的认识就是实质性的东西…….不多说,相信你已经迫不急待了。那我们就开始了。
初识SDRAM
SDRAM的全称是:Synchronous Dynamic Random Access Memory,同步动态随机存储器,同步是指 Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
相信通过这段话,你已经知道什么是SDRAM了,这里面有几个概念性的东西需要我们好好了解:同步、动态、随机。
同步:这个词在FPGA设计之中我们经常会遇到它,它反映了驱动sdram必须遵守一种时序原则,就是数据/命令和时钟在时间上同时的概念,也是在驱动sdram时要十分注意的一点。
动态:RAM这中存储结构会掉电丢失,在上电的时候也会丢失。为什么?因为SDRAM内部存储的数据是二进制数据,非0则1。用来存储该二进制数据的电路是由电容构成的,由于电容这种器件会随着时间而慢慢放电,就像人的记忆一样,有些记忆会随着时间的流逝而淡忘了。很简单,如果你不想让某些事某些人淡忘,怎么办?就只有时不时地去回忆。那SDRAM不想"忘"了它的数据,怎么办,一样,也只有不断地回忆,就是不断地去刷新里面的存储电路。
随机:随机就是不指定为一次连续,也就是可以对SDRAM里面的随意地址进行读写操作。
SDRAM的历史
SDRAM从发展到现在已经经历了四代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM.
第一代SDRAM采用单端(Single-Ended)时钟信号,第二代、第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。
SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。
之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。
DDR的读写频率从DDR200到DDR400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1600。
实验中要操作的SDRAM就是第一代SDRAM,虽然SDRAM经历了这么多次的更新换代,但其内部的架构还是相差无几,更多的是在速率和存储数量上的不同。
实验的SDRAM介绍
通过上面的两节,相信你已经对SDRAM已经有了大致的了解。现在就以实验中用到的SDRAM--HY57V641620ET-H(海力士的SDRAM)为一个例子对SDRAM的内部结果进行一个详细的介绍
HY57V641620ET-H的内部结构

通过上图可以看到SDRAM的"五脏六腑",下面就来一一剖析:

SDRAM指令接口模块,这些信号组成了SDRAM的控制指令,控制指令通过"state machine"进行译码,由此产生了一系列的控制动作。

SDRAM地址线,其中包括块地址线、行地址线、列地址线,至于会有这么多线,是因为用到了总线复用,其行线和列线分时复用,从而节省了总线资源,又可以操作到SDRAM的全部存储单元。至于块地址线,下面会讲到。

SDRAM存储块和数据接口:HY57V641620ET-H内部存储由四个一模一样的存储块组成,至于怎么识别这四个存储块,必须要有两条地址线,所以就用到了上面的那两条地址线。

动作电路模块:这几个模块主要是根据"state machine"的译码结果进行工作的、包括行列地址的编码、自刷新定时和自刷新操作。

模式寄存器解码和突发操作模块:在对SDRAM的寄存器进行配置的时候,是通过地址线对SDRAM进行配置的,SDRAM中有一种突发操作模式,该模式由寄存器进行配置,所以该电路中包含一个突发操作的计数器。至于突发操作的原理下面会涉及到。
相信看到这里,你已经对SDRAM由感性的认识升级到实质性的认识,恭喜你,哈哈….
HY57V641620ET-H的存储量
看到这之前相信你应该了解过不少SDRAM的资料,也相信很多资料中从未讲过SDRAM名称的问题,现在我就来帮你解析这个SDRAM
HY:代表是海力士的SDRAM存储器
57:代表这是SDRAM芯片
V:代表这个SDRAM芯片工作电压是3.3V
641620:代表这个SDRAM芯片的存储容量
ET:代表SDRAM的块反应时间和封装
H:代表SDRAM的速度等级

下面我们来计算下这个芯片的存储容量:
存储容量由存储深度和存储宽度决定,这是任何存储芯片存储容量的定义;
存储深度:HY57V641620ET-H内部有4个块,每个块有行地址12bit,列地址8bit
所以每个块就有2^12*2^8 = 4096*256=1048576个存储单元,4个块就有4*1048576=4194304个存储单元。
存储宽度:该SDRAM的数据位宽为16bit
存储容量:4194304*16bit = 67108864bit,就是64M
每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

SDRAM基础知识的更多相关文章
- 驱动实现led,pwm和中断基础知识
2015.4.8星期三 晴天 今天老师讲的内容是内核编写led和pwm驱动,实现花样灯和放歌的功能.理解应用和驱动的对接,最后自己实现了在放歌的时候根据歌曲的节奏亮灭一个小灯,应为两个独立的驱动都已经 ...
- 计算机科学基础知识(一)The Memory Hierarchy
一.前言 最近一个问题经常萦绕在我的脑海:一个学习电子工程的机械师如何称为优秀的程序员?(注:本文作者本科学习机械设计,研究生转到电子工程系学习,毕业后却选择了系统程序员这样的职业).经过思考,我认为 ...
- 【STM32H7教程】第47章 STM32H7的FMC总线基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第47章 STM32H7的FMC总线基础知识和HA ...
- 【STM32H7教程】第57章 STM32H7硬件JPEG编解码基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第57章 STM32H7硬件JPEG编解码基础知识 ...
- 【STM32H7教程】第50章 STM32H7的LCD控制器LTDC基础知识和HAL库API
完整教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980 第50章 STM32H7的LCD控制器LTDC基础 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
- Java基础知识(壹)
写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...
- selenium自动化基础知识
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要 ...
随机推荐
- C#显示SQL语句格式
--SQL SERVER生成测试环境: Create database Test; go USE [Test] GO if OBJECT_ID('Tab','U') is not null drop ...
- Windows下常用软件工具的命令
Linux上主要操作是命令,懂一点linux知识的都知道,其实windows下边很多工具也是可以用命令来操作打开的,这样会提高效率,节省很多的时间.下边就记录一下常用的命令. 一.常用命令 1.远程桌 ...
- 单调队列优化DP,多重背包
单调队列优化DP:http://www.cnblogs.com/ka200812/archive/2012/07/11/2585950.html 单调队列优化多重背包:http://blog.csdn ...
- android代码优化----ListView中自定义adapter的封装(ListView的模板写法)
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- 第四章 Hibernate入门
1.构建了一个Student实体类 public class Student { private Integer id; //name private String name; //age priva ...
- AC日记——潜伏着 openjudge 1.7 11
11:潜伏者 总时间限制: 1000ms 内存限制: 65536kB 描述 R国和S国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动. 历经艰险后,潜伏于S国的R国间谍小C终于摸清了S国军 ...
- HMAC算法AS3版
http://www.cnblogs.com/appleseed/archive/2008/09/17/1292232.html
- Linux设备驱动之中断支持及中断分层
快速中断:在开启快速中断时,其他中断不会打断快速中断. 多个中断共享一个中断号. 中断行为受到限制: 1.不能使用可能引起阻塞的函数 2.不能使用可能引起调度的函数 中断注册:request_irq( ...
- [No000033]码农网-如何锻炼出最牛程序员的编码套路
最近,我大量阅读了Steve Yegge的文章.其中有一篇叫"Practicing Programming"(练习编程),写成于2005年,读后令我惊讶不已: 与你所相信的恰恰相反 ...
- iOS Block 内存管理的探讨
在很多情况下Block是造成程序循环引用内存泄漏的元凶.下面我们就讲解一下block对内存管理的影响.在讲解之前.希望大家对block有一定的了解.如果大家还不是太清楚block的实现原理.希望大家可 ...