基于SDRAM基本结构\操作及相关时序参数的研究

时间:2022-10-30 08:59:44

基于SDRAM基本结构\操作及相关时序参数的研究

摘要:本文从SDRAM的基本结构入手,研究了SDRAM的读写等操作的详细过程和相关时序参数的取值依据。

关键词:SDRAM;结构;操作;时序参数

A Research of Basic Structure Operations

and Relative Timing Parameters of SDRAM

SUN Rui

(National Key Laboratory of Science and Technology on Communications, UESTC, Chengdu, 611731, China)

Abstract: This paper introduces detailed procedure of read、write and other operations of SDRAM based on basic structure of SDRAM and explains the determination of relative timing parameters.

Keywords: SDRAM; structure; operation; timing parameter

1引言

同步动态随机访问存储器(Synchronous Dynamic Random Access Memory, SDRAM)的发展到现在已经经历了四代,分别是:第一代单数据率(Single Data Rate,SDR)SDRAM,第二代双数据率(Double Data Rate,DDR)SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM。本文介绍的是SDR SDRAM的结构、操作和时序。理解了本文所讲的内容后就可以灵活地使用SDR SDRAM,并且也为更好理解DDRx SDRAM做了准备。

2SDRAM的基本结构

图1是SDRAM的整体框图结构,包括内存库(bank),内部控制逻辑和输入输出(IO)接口。bank由行地址译码器、列地址译码及复用器、存储阵列和感应放大器构成。行地址译码器输入为M根行地址线,输出为2M根字线(wordline),列地址译码器输入为N根列地址线,输出为2N根列选择线 (Column Select Line,CSL),另外还有2N根位线(bitline),即数据线。

要存取数据时,先选中一行(wordline加高电位),于是这一行上挂着的所有的行选通NMOS都导通,电容中的数据就沿着bitline进入感应放大器,经其放大后到达列选通NMOS处。接下来,当某根CSL置高后,相应的列选通NMOS就导通,数据沿着bitline继续向IO接口传,或者外面的数据立即写入存储阵列。图2是bank内部结构示意图,现在实际应用中的结构如图3所示,它由存储阵列、差分感应电路、电压均衡电路和I/O逻辑组成,其中每两条bitline(bitline1,bitline2)一组构成差分结构。下面的研究均基于图3来展开。

现在的SDRAM一般都采用4个bank的设计,这样做是为了防止寻址冲突,提高SDRAM的访问效率。例如,现代公司的HY57283220T-7型SDRAM,它的数据手册上标有4 Banks x 1M x 32Bit字样。它表示这款芯片含有4个bank,每个bank包括1M 个存储单元,每个存储单元含有32 bit的数据,即芯片位宽是32 bit,而图2仅表示出了1 bit。可以想象,在图2的背后还有31层一模一样的存储阵列。

3SDRAM的基本操作

3.1预充电(Precharge)

当上一次的读写操作结束后,bank中的所有电压均衡电路马上开始工作,即在EQ上加高电位,使得每个电压均衡电路中的3个NMOS导通。注意到电路中加了VCC/2的电压(VCC是存储电容的电压峰值,但远低于数字电路中能被识别为1的电压),这样就将两条bitline上各点电压拉回到VCC/2,且如果接下来此bank中没有读写操作,那么直到自动刷新(见3.6)之前,两条bitline上各点电压均保持为VCC/2。这就是预充电的全过程,它需要持续一定的时间tRP,根据器件的不同而不同,但都是固定的,一般为2或3个时钟周期。

3.2 行地址选通(Row Address Strobe,RAS)

当某一条wordline加高电位后(电压均衡电路同时失效),wordline上挂着的所有NMOS即处于导通状态。此时,若与NMOS相连的电容中储满了电荷(1状态),则所有的bitline即构成了电荷通路。电荷瞬间进入到bitline上,使bitline电压升高。若电容中无电荷,则bitline上原来为VCC/2的电压就会被电容的低电位拉到0。

3.3 感应(Sense)

注意到bitline上的电压就是差分感应电路中MOS管的栅极电压。当bitline1上的电压超过T2的预置电压时,T2导通,T4截止,SAN所加的0V电压就会导入bitline2,使得bitline2上各个点的电气特性可被外部电路识别为0;接下来,T3导通,T1截止,SAP所加的5V(或3.3 V)电压就会导入bitline1,使得bitline1上各个点的电气特性可被外部电路识别为1。其实,差分感应电路就是一个双稳态电路,由两个方向相反的反相器构成,如图4所示。

3.4重写(Restore)

感应后,bitline上所有点的电压都为0 V或5 V(或3.3 V),而wordline还处在导通状态,很自然地,存储电容就会被bitline电压充满电或者放空电。只要wordline还处在导通状态,这个过程就会一直持续,直到发出预充电命令关闭此行为止。行地址选通命令与预充电命令之间的时间间隔就是tRAS。由于预充电命令是随机发送的,所以tRAS并不是固定的,但存储器厂家会给出最小值,就是规定每次行地址选通要保持的最少时间,而tRAS的最大值可达120000 ns。tRAS持续时间长的好处是可以使4个bank同时处于打开状态的时间增长,这样在从一个bank寻址到另一个bank的时候(假如刚好选中另一个bank中已经打开的行),就可以省去tRCD(见下文)的等待时间,从而提高了SDRAM的访问效率。这里需要注意的是不能在同一时刻打开多个bank,打开两个不同的bank需要有一个最小时间间隔tRRD,这与图1中的bank control logic及其他相关控制逻辑的响应时间有关。最后再补充一个时间参数:行周期Row Cycle,tRC=tRAS+tRP。

3.5列地址选通(Column Address Strobe,CAS)

RAS命令发出后,电容里的电荷(或低电位)经过了行选通NMOS,再通过bitline到达差分感应电路,差分感应电路花了一段时间将bitline电压拉到极值电位,之后极值电位再到列选通NMOS管处,这一系列动作所花的时间定义为tRCD。 tRCD根据器件的不同而不同,但也都是固定的,大概要用2或3个时钟周期。在经过tRCD后,列地址选通命令就可以发出了,同时发出的是读或写的命令。在读命令发出后最快可以在下个时钟周期就可以发出预充电命令。

3.6 自动刷新(Auto Refresh)

SDRAM是用电容来存储信息的。当电容中有电荷时(即存“1”),由于行选通NMOS在截止时存在漏电流,导致电容中的电荷发生泄漏,若不采取一定的措施补充电荷,时间一长,剩余的电荷将不足以被识别为“1”,而补充电荷的措施就是自动刷新,即周期性的对存储电容进行读后重写。目前SDRAM存储电容中电荷的有效保存期上限是64 ms,那么每隔64 ms就要重新对电容进行读后重写,也就是说对于每一个电容,自动刷新的周期都是64 ms。注意到读和重写都是行操作,即自动刷新是一行一行进行的,每隔一定的时间发送一个自动刷新命令,而一个自动刷新命令同时只对一行有效,64 ms就要完成对一个bank中所有行的刷新,那么自动刷新命令的发送间隔就会随总行数的不同而不同了。假设一个bank中有4096行,自动刷新命令的发送间隔就是64 ms/4096 = 15.625μs,对于时钟频率为133 MHz的SDRAM来说,就是15.625μs/7.5 ns = 2083个时钟周期,而其实自动刷新的操作只占用了9个时钟周期(如图5所示),其余的时间都是用来进行SDRAM正常的读写操作的。

3.7读延迟(CAS Latency)

在列读取命令发出后,数据还需要经过tCL的时间来经过I/O门、输出锁存器以及输出寄存器,最终才能到达数据总线。这里还涉及到另外两个重要的时间参数tAC和tHZP(如图6所示)。tAC即Access Time from Clock,它描述的是从数据总线上有数据输出的前一个时钟上升沿开始,到数据刚到达输出寄存器所经历的时间。tAC必须小于一个时钟周期,以便在下一时钟沿到来前使输出寄存器的建立时间满足要求,即tSETUP=tclock-tAC。tHZP即Data output Hi-Z from Precharge,它表示从发出预充电命令开始到数据总线上有高阻输出的时间间隔,其实这就是读延迟的时间,因为预充电命令产生的高阻和列读取命令产生的数据都是通过同样的路径输出到数据总线上的。

3.8写回(Write Recovery)

在列写入命令发出之前,数据已经在输入寄存器入口处等待了一段时间,满足了输入寄存器的建立时间条件。在列写入命令发出后,数据立即陆续通过输入寄存器、写入驱动器、列选通NMOS、bit line及行选通NMOS,最后进入存储电容,这一过程经历的时间即写回时间tWR,其实等效于列写入命令与预充电命令的最小时间间隔。

3.9突发读/写(Burst Read/Write)

在对地址不连续的存储单元(假设是在同一行)进行读/写操作时,需要在每个时钟周期都进行一次列寻址,也就是要不断的发送列地址与读/写命令。由于读/写延迟相同,可以保证数据在数据总线上是连续的。但在对地址连续的存储单元进行读/写操作时,就不需要在每个时钟周期都发送列地址与读/写命令了,因为这将占用大量的控制资源,并且在进行连续数据传输时无法输入新的命令,导致效率降低。此时只要指定起始列地址与传输长度,SDRAM就会依次地自动对后面相应数量的存储单元进行读/写操作,这就是突发传输。除了第一笔数据的传输需要tRCD外,其后每次数据传输只需一个时钟周期即可。

但是当SDRAM正在进行突发读或者突发写时,下一个所需数据的地址不与前一个的连续(假设是在同一行),这时就需要用新的读或写命令加之以相应的地址来打断突发传输了。

另外当SDRAM正在进行突发写时,下一个命令是读出刚写入的数据,这也是最极端的情况,为了避免发生不稳定的情况,则必须要等到数据完好的写入存储单元即等待tWR后才能发出读命令。

还有当SDRAM正在进行突发读时,下一个命令是写入新的数据,如图6所示。此时为了避免数据总线冲突,必须在发出写命令的前2个时钟周期发出DQM命令,以屏蔽刚通过列选通NMOS的数据和将要通过列选通NMOS的数据。此时注意到读命令和写命令之间的时间间隔为读延迟加上1个时钟周期,但是若tOH+tSETUP>tclock,则还需再加1个时钟周期的总线转换时间。

4总结

SDRAM所有的操作及相关时间参数的选取都取决于它的内部结构。只有先将SDRAM的内部结构理解透彻,才能理解好SDRAM的操作流程,进而理解相关时间参数的选取。

参考文献

[1] Bruce Jacob, Spencer W. Ng, David T. Wang. Memory Systems - Cache, DRAM, Disk. Morgan Kaufmann 2008: 362~366,425~454,467.

[2] Hynix Semiconductor Inc. HY57V283220T Datasheet. 2004年7月.

[3]Texas Instrument. TMS320C6000 DSP External Memory Interface (EMIF) Reference Guide.2006年2月:99~109,140~144.

作者简介

孙睿,电子科技大学通信抗干扰实验室通信与信息系统专业硕士研究生,主要研究方向为移动通信系统的电路设计。

上一篇:先进封装投影光刻机 下一篇:一种IP核AMBA总线兼容性验证的通用方法研究