在说明初始化之前先了解一下SDRAM的一些基础知识吧.
SDRAM (Synchronous Dynamic Random Access Memory),同步动态随机存储器。同步是指其时钟频率与CPU的前端总线的系统时间频率相同,并且他的内部命令的发送与数据的传输都是以这个时钟为基准的,动态是指存储阵列需要不断的刷新才能保证数据的不丢失。随机是指数据不是线性存储的,是可以自由指定地址进行数据读写。
位宽:是指内存一次数据传输的数据量就是位宽,以位为单位。
SDRAM的内部结构:
SDRAM相当于一个excel,一个工作溥中有几个工作表,每个工作表里有行列。
SDRAM中的一个bank就相当于excel中的一个工作表, SDRAM中的行(Column)与列(Row)相当于工作于中的行与列,我们对内存的读写就是根据bank 号 Column 、Row来准确的找到所需要的单元格(存储阵列)。
由于技术、成本等原因,不可能只做一个全容量的Bank,而且最重要的是,由于SDRAM的工作原理限制,单一的Bank将会造成非常严重的寻址冲突,大大降低了内存的效率,所以把SDRAM内部分割成多个Bank,较早以前是2个,目前市面上大多都是4个Bank的,
SDRAM容量的计算。
SDRAM容量 = 单元格的总数(地址总数) X 位宽 单元格的总数 = Bank数 X Column数 X ROW数
如果要以字节为单位的话,刚需要将SDRAM容量(bit) / 8(bit)
型号为:HY57V641620E的为64Mbit (8M字节)位宽为16bit 的SDRAM,内部结构为4个Bank,Column数为 8(CA0-CA7),Row数为12(RA0- RA11),SDRAM的行地址线和列地址线是分时复用的,即地址要分两次送出,先送出行地址,再送出列地址。这样,可以大幅度减少地址线的数目。
计算方法为:每个bank的容量为: 2 Row 次方 X 2 的Column X 16(bit) = 256 X4096 X 16 /1024 = 16384 bit = 16 Mbit = 2 M字节,再乘以bank 数就是64 Mbit (8M字节了),更简单的方法是行列加起了相当于20根地址线,所以每个bank能访问的地址空间是 2 的20次方 = 1048576 bit = 1M字节,但由于第次传输的数据位宽是16位,所以每个bank的空量是 16 Mbit ,总共有4个bank ,所以就有64Bbit的容量,换成字节单位就是8M字节。
初始化:
上电后,等到VDD和VDDQ稳定后并且CKE设为高电平时。
1.将SDRAM的一些特性写入配置寄存中,如,同步时间 ,列数,行数,CAS延时等,还有需要将数据线宽度写入模式寄存器,这个数据宽度是要根据实妹的硬件接口宽度的。
2. 等待一个最少200us 的延时,这个根据不同的SDRAM可能不同
3. 向SDRAM 发一个NOP命令:应用程序需要把模式模式寄存器写为模式1并写一个数到任意地址
4. 设置所有Bank 预冲电(precharge):应用程序需要将模式寄存器设置为模式2并下任意地址写入数据,可能需要延时.
实际上,预充电是一种对工作行中所有存储体进行数据重写,并对行地址进行复位,同时释放S-SMP(重新加入比较电压,一般是电容电压的1/2,以有助于判断读取数据的逻辑电平,,S-AMP是通过一个参考电压与存储体的电压比较来判断逻辑值的),以用来准备新的工作。
5. 自动刷新(auto refresh). 提供8个自动刷新时序。将模式寄存器切换到 第四种方式,并向任意地址写一个数据,重复8次。
刷新说明,因为SDRAM需要不断的进行刷新,所在称作为动态内存-DRAM,刷新操作有两种,一种是Auto Reresh,简称AR,另一种是Self Refresh ,简称是SR,但不管是哪种刷新方法,都不需要外部提供行地址住处,因为他们都是内部的自动操作。结于AR,SDRAM有一个行地址生成器(也称亻刷新计数器)用来自动依次生成行地址。由于刷新是针对一行中所有存储单无际是行的,所以无需列寻址,或都说CAS在RAS之前,所以AR在有的地方叫作 CBR(意思是CAS Before RAS)式刷新。
刷新时间,目前公认的标准是,存储单元中电容的数据有效保存上限是64ms(1000ms = 1 s),也就是说每一行新的循环周期是64ms,我们在有的内存上看这样样的参数4096 Refresh Cycles/64ms之类的信息,从中可以看出,这个内存的行是
12行,相当于每一行就行地址的扫描时间是64ms / 4096 = 15.625us(1000us = 1ms)。
6. 设置CAS延时与突发长度。数据将模式寄存器设置为第三种模式,然后向写入任意数据。
空发时间Burst Length :空发长度是什么呢,如果突发长度(BL)为4,那就是每次传输的的是4 X W(数据宽度)的数据,这样就可能造成第二笔数据是不需要的,这就引入了数据掩码(DQM)技术,通过DQM,,内存可以控制I/O数据取消哪些输出或输入的数据。
7,设置为正常工作模式,然后向SDRAM写入任意
8.将刷新率写入SDRAM的刷新计数器中,刷新率=刷新周期之间的延迟。
以上初始化的基于MCU是at91sram7se,SDRAM是HY57V641620XXX
内存颗粒识别
看看如今CPU的发展,频率一再冲高,二级缓存也一路飙升。但是CPU速度越来越快,是不是整个系统的性能提升了吗?当然不是!如果把整个系统 比喻成一个木水桶,它性能就好比是水桶的盛水量,那系统的各个配件就是组成水桶的木板。如果其中一片木板短了一截,整个水桶的盛水量就会跟着降下来。换言 之,要使整个电脑系统的每个配件都发挥全部功效,那就要求配件之间不存在所谓的“瓶劲”。在众多的瓶劲中,内存方面的瓶劲尤为突出。如何挑选适合自己的内 存条,成为很多DIYer们考虑的重要问题。
首先,你要了解自己的CPU到底是个什么“样子”。这里的样子就是CPU自己的带宽大小。比如说P43.0c的外频是200MHz,前端总线频 率高达800MHz,而它提供的前端总线带宽是64位总线位宽×200 MHz系统外频×4倍/8=6400MB/s。要让系统不会出现瓶劲,那我们就要让内存的带宽也要达到6400MB/s。如果是在以前,这在技术上根本就 不可能,不过电脑厂商们从另外一个方面解决了这个问题,那就是内存的双通道DDR技术!所谓双通道,它是相对于以前的单通道来说的。在单通道时代,无论你 插上几根内存条,内存总带宽就是单条内存的带宽,就算是现在,除了I850E支持的Rambus PC1066规范外,根本没有内存可以满足处理器的需要。而双通道DDR技术,是一种可以让2条DDR内存共同使用,数据并行传输的技术。双通道DDR技 术的优势在于,它可以让内存带宽在原来的基础上增加一倍,这对于P4处理器来说,可谓最佳搭配。不过要说明一点,双通道DDR技术并不只是针对P4的超线 程技术而言的。就拿FSB533MHz的P4处理器来说,其本身带宽达到4.3G/s,而一条DDR333的带宽仅仅有2.7G/s,就算是现在当红的 DDR400的带宽也就3.2G/s。所以说双通道DDR技术的出现,在很大程度上解决了CPU“好汉使不出力”的情况,使主板、CPU、内存之间的传输 速率达到更好的协调。 其次,对内存本身的选择,主要注意以下几个方面:
首先是内存的做工和用料。
内存的做工和用料的好坏主要体现在PCB板质量、.布线设计是否合理、.使用的内存颗粒的质量等级和品牌自由品质控制。随着电脑芯片的频率增加, 稳定性也越来越重要,所以现在品牌内存大多采用6层板,目的就是为了设计具有完整的电源层和其他层,且完善的过滤杂波,来保证内存稳定的高速运转。而内存 颗粒的品质,一般人较难辨别,不过名牌内存条一般都会采用A级内存颗粒,质量绝对有保障,所以在这里向大家推荐买内存条的时候最好选名牌,这已经不仅仅是 钱的问题了,一不小心搞到一条差的内存条,轻侧让你身心疲惫,重则还要多花上几百块钱重新购买,真是欲哭无泪呀~~~(现在市场上主流的名牌内存 有:KINGSTONE,KINGMAX,金邦,三星金条等)
此外还要注意内存的remark!!
提起remark,实在是让我们这些消费者深恶痛绝。俗话说,诚信第一,但那些JS就是要摆你一道,稍微不留神就要被“黑”。本人少说也帮人装 过几十台电脑,对电脑硬件还算略知一二,去年帮一哥们装机,就遇到被JS黑内存的状况。所以一气之下,回家上网收集了一下识别内存编号的文章,在这里拿出 来给大家分享一下: 三星颗粒
一、三星颗粒一般以KM开头
二、内存颗粒类型:4表示DDR SDRAM
三、芯片输出的数据位宽:40、80、16、32分别代表4位、8位、16位和32位 四、工作电压:H=DDR SDRAM,3.3V、L=DDR SDRAM,2.5V
五、内存颗粒位数:4:4Mbit、8:8 Mbit、16:16 Mbit、32:32 Mbit、64:64 Mbit、12:128 Mbit、25:256 Mbit、51:512 Mbit
六、芯片容量及刷新速度:0:64m /4K [15.6μs]、1:32m/2K [15.6μs]、2:128m/8K [15.6μs]、3:64m/8K [7.8μs]、4:128m/16K [7.8μs]
七、内存BANK:3:4排、4:8排
八、电压:混合接口LVTTL+SSTL3(3.3V)、1:SSTL2(2.5V) 九、封装类型:T:66针TSOP II、B:BGA、C:微型BGA(CSP)
十、工作频率:0:10ns、100MHz(200Mbps);8:8ns、125MHz(250Mbps);Z:7.5ns、 133MHz(266Mbps);Y:6.7ns、150MHz(300Mbps);6:6ns、166MHz(333Mbps);5:5ns、 200MHz(400Mbps) HYUNDAI
一、HY是现代颗粒的标志
二、内存颗粒类型:(57=SDRAM,5D=DDR SDRAM); 三、工作电压:空白=5V,V=3.3V,U=2.5V
四、芯片容量和刷新速率:16=16Mbits、4K Ref;64=64Mbits、8K Ref;65=64Mbits、4K Ref=128Mbits、8K Ref;129=128Mbits、4K Ref;256=256Mbits、16K Ref;257=256Mbits、8K Ref
五、芯片输出的数据位宽:40、80、16、32分别代表4位、8位、16位和32位 六、内存BANK:1、2、3分别代表2个、4个和8个Bank,是2的幂次关系 七、电压代表:1:SSTL_3、2:SSTL_2
八、芯片版本:可以为空白或A、B、C、D等字母,越往后代表内核越新 九、功耗:L=低功耗芯片,空白=普通芯片
十、封装类型:JC=400mil SOJ,TC=400mil TSOP-Ⅱ,TD=13mm TSOP-Ⅱ,T TG=16mm TSOP-Ⅱ
十一、工作频率:55 :183MHZ、5 :200MHZ、45 :222MHZ、43 :233MHZ、4 :250MHZ、33 :300NHZ、L :DDR200、H :DDR266B、K :DDR266A
Micron(美光)
SDRAM—DDR-DDR2学习笔记
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)