本帖最后由 zhuang1127 于 2010-1-31 22:23 编辑
SDRAM基本操作原理
本文以三星公司的SDRAM器件K4S561632C为例来说明SDRAM的工作原理。
SDRAM的结构特点
存储器的最初结构为线性,它在任何时刻,地址线中都只能有一位有效。设容量为N×M的存储器有S0~Sn-1条地址线;当容量增大时,地址选择线的条数也要线性增多。利用地址译码虽然可有效地减少地址选择线的条数,但这种存储器的长宽比太大,显然,这在工业上是无法实现的。而且由于连线的延时与连线的长度成正比,这样的设计会使存储器的存取速度很慢。为了解决这个问题,现在常用的存储器都是将存储单元设计成阵列形状,使其长宽比接近1:1。这样,电路就必须增加一个列地址译码器,才能选出正确的存储单元。这样,整个存储器的地址线被分为行地址线和列地址线,行地址线要将要选择执行读或写操作的行,而列地址线则可从被选中的一行中再选出一个用于真正执行读或写操作的存储单元。
SDRAM的行地址线和列地址线是分时复用的,即地址线要分两次送出,先送行地址线,再送列地址线。这样可进一步减少地址线的数量、提高器件的性能,但寻址过程会由此变得复杂。新型的SDRAM的容量一般比较大,如果还采用简单的阵列结构,就会使存储器的字线和位线的长度、内部寄生电容及寄生电阻都变得很大,从而使整个存储器的存取速度严重下降。实际上,现在SDRAM一般都以Bank(存储体或存储块)为组织,来将SDRAM分为很多独立的小块;然而由Bank地址线BA控制Bank之间的选择;SDRAM的行、列地址线贯穿所有的Bank;每个Bank的数据位宽同整个存储器的相同。这样,Bank内的字线和位线的长度就可被限制在合适的范围内,从而加快存储器单元的存取速度。另外,BA也可以使被选中的Bank处于正常工作模式,而使没有被选中的Bank工作在低功耗模式下,这样还可以降低SDRAM的功耗。
为了减少MOS管的数量、降低功耗、提高集成度和存储容量,SDRAM都是利用其内部电容存储信息。由于电容的放电作用,必须每隔一段时间给电容充电才能使存储在电容里的数据信息不丢失,这就是刷新过程。这种机制使SDRAM的控制过程变得更加复杂,从而给应用带来难度。
三星公司的SDRAM(K4S561632C)的外部同步时钟速率可在一定的频率范围内连续变化,最高频率可达到133MHz;每块SDRAM内含四个独立的Bank;它的基本存储单元都是按照阵列排列的,它的数据位宽和整个存储器的位宽相同,同时支持多种读写模式;所有的输入信号均以时钟的上升沿为基准,这使得地址、控制和数据输入到缓冲器的时间可保持一致且建立和保持的时间很小;该器件使用完全流水线型内部结构;另外,它还具有突发长度可编程、延迟可编程等优点。这些优点使得K4S561632C能广泛地应用于宽频带、高性能存储器应用系统。
SDRAM的基本信号
SDRAM的基本信号可以分成以下几类:
(1)控制信号:包括片选(CS)、同步时钟(CLK)、时钟有效(CLKEN)、读写选择(WE)、数据有效(DQM)等;
(2)地址选择信号:包括行地址选择(RAS)、列地址选择(CAS)、行/列地址线(SA0~SA12),分时复用、Bank块地址线(BA0~BA1);
(3)数据信号:包括双向数据端口(DQ0~DQ15)、接收数据有效信号(DQM)控制等。DQM为低时,写入/读出有效。
对SDRAM的基本命令
要正确地对SDRAM进行操作,就需要输入多种命令:包括模式寄存器设置、预充电、激活、读写、自动刷新、自我刷新、突发停止、空操作等命令。SDRAM内部的状态会根据表1的命令进行转移。其中,命令COM={CS#;RAS#;CAS#;WE#}。
![]()
模式寄存器的规定
利用模式寄存器(Mode Register)可通过装载模式寄存器命令(LOAD MODE REGISTER)进行编程,这组信息将会一直保存在模式寄存器中,直到它再次被编程或器件掉电为止;它规定了SDRAM的操作模式;包括突发长度、突发类型、CAS延迟时间、运行模式及写突发模式。具体格式如图2所示,模式寄存器M0~M2用于规定突发长度(Burst length)。M3用于规定突发类型BT(Burst Type),M3=0时,突发类型是连续的;M3=1时,突发类型是交错的。M4~M6用于规定CAS延迟的时钟周期数。M7~M8规定运行模式。M9规定写突发模式WB(Write Burst Mode),当M9=0时,按实际编程的突发长度存取;当M9=1时,则按单个存储单元写入,但可按实际编程的突发长度读出。M10和M11为保留位,可供未来使用。在模式寄存器装载期间,地址A12(M12)必须被驱动至低电平。本方案中,模式寄存器的值为ox220h。
![]()
初始化操作
SDRAM在上电以后必须先对其进行初始化操作,而后才能对其进行其它操作。初始化操作具体步骤如下:
(1)SDRAM在上电以后需要等待100~200μs。在等待时间结束后还至少要执行一条空操作命令;
(2)SDRAM执行一条预充电命令后,要执行一条空操作命令;这两个操作会使所有的存储单元进行一次预充电,从而使所有阵列中的器件处于待机状态;
(3)SDRAM要执行两条自刷新命令,每一条刷新命令之后,都要执行一条空操作命令;这些操作可使SDRAM芯片内部的刷新计数器进入正常运行状态,以便SDRAM为模式寄存器编程做好准备;
(4)执行加载模式寄存器(LOAD MODE REGISTER)命令,完成对SDRAM工作模式的设定。
完成以上步骤后,SDRAM即可进入正常工作状态,以等待外部命令对其进行读、写、预充电和刷新等操作。
SDRAM的基本读写操作
SDRAM的基本读操作需要控制线和地址线相配合并发出一系列命令来完成。SDRAM的读操作只有突发模式(Burst Mode);而写操作则可以有突发写和非突发写两种模式,具体如下:
(1)带有预充电的突发读写模式,该模式一次能够访问的列地址的最大数为1、2、4、8;
(2)不带有预充电的全页读写,此模式可任意控制一次能够访问的列地址的最大数。 |