当前位置:文档之家› 内存器件介绍之RAM篇

内存器件介绍之RAM篇

提到内存,相信大家都不陌生,几乎所有的计算机系统中都有它的身影,按照内存的工作原理划分,可将内存分为RAM和ROM两大类。

RAM(Random Access Memory)存储器又称随机存取存储器,存储的内容可通过指令随机读写访问,RAM中的数据在掉电时会丢失;ROM(Read Only Memory)存储器又称只读存储器,只能从中读取信息而不能任意写信息。

ROM具有掉电后数据可保持不变的优点。

RAM和ROM两大类下面又可分很多小类,如下图所示:♦SRAM简介SRAM即Static RAM,也就是静态随机存取存储器,按照制造工艺可分为NMOS SRAM、CMOS SRAM和双极型SRAM(用的是TFT)。

SRAM的基本存储单元是数字锁存器,只要系统不掉电,它就会无限期地保持记忆状态。

掉电时,存储数据会丢失。

并且SRAM的行列地址线是分开的(DRAM的行列地址线是复用的)。

SRAM地特点是读写速度极快,在快速读取和刷新时能够保持数据地完整性,并且非常省电。

所以在一些高速和高可靠性要求电路中,基本上是SRAM 地天下,如CPU的Cache。

但是SRAM的存储单元电路结构非常复杂,它内部采用的是双稳态电路的形式来存储数据,制作一个bit存储位通常需要6个MOS 管(4个MOS管组成两个交叉耦合反相器,用来锁存数据,另外2个用于对读写操作过程的控制)。

由于SRAM的复杂电路结构,使得成本要比DRAM高很多,而且其集成度低,很难做成大容量,一般只有几十KByte到几百KByte的容量,最大也就几MByte。

下图为6个NMOS构成的基本SRAM存储单元,Xi和Yj为字线;I/O为数据输入/输出端;R/W为读/写控制端。

当R/W=0时,进行写操作;当R/W=1时,进行读操作。

图中红色虚线框中的T1、T2、T3、T4、T5、T6六个NMOS管构成一个基本的存储单元。

T1、T3和T2、T4两个反相器交叉耦合构成触发器。

电路采用二元寻址,当字线Xi和Yj均为高电平时,T5-T8均导通,则该单元被选中,若此时R/W为1的读操作,三态门G1、G2关闭,G3打开,存储的数据从数据线D,经过G3,然后从I/O输出。

若R/W为0的写操作,则G1、G2打开,G3关闭,I/O上的数据经G1、G2写入存储单元。

下图为32KByte容量的SRAM结构示意图,该SRAM有8位行地址,译码后生成256根行地址线;列地址线为7位,译码后生成128根列地址线。

对SRAM 进行读操作时,OE#和CS#为低电平,WE#为高电平,G1输出低电平将输入控缓冲器关闭,G2输出高电平将输出缓冲器打开,通过行列地址线选中的存储单元数据经I/O和输出缓冲器,最后从I/O[0:7]输出;写操作时,WE#和CS#为低电平,OE#为高电平,G1输出高电平将输入缓冲器打开,G2输出低电平将输出缓冲器关闭,I/O[0:7]上的输出经输出缓冲器和内部I/O总线,最后写入行列地址选中的存储空间中。

♦DRAM介绍DRAM即Dynamic RAM,动态随机存取存储器的意思,DRAM的种类有很多,常用的有:1).SDRAM:Synchronous Dynamic Random Access Memory,即同步动态随机存取存储器。

“同步”是指其时钟频率与CPU前端总线的系统时钟频率相同,并且内部命令的发送与数据的传输都以此频率为基准;“动态”是指存储阵列需要不断的刷新来保证所存储数据不丢失;“随机”是指数据不是线性一次存储,而是自由指定地址进行数据的读写。

2).DDR SDRAM:Double Data Rate SDRAM,即双倍速率SDRAM,普通SDRAM只在时钟信号的上升沿采样数据,而DDR SDRAM在时钟信号的上升沿和下降沿都采样数据,这样,在时钟频率不变的情况下,DDR SDRAM的数据存取速度提高了一倍,所以叫双倍速率SDRAM。

DDR SDRAM最早由三星公司于1996年提出,之后与日本电气、三菱、富士通、东芝、日立、TI、现代等8家公司协议制定规格,并得到AMD、VIA、SIS等公司的支持,并最终于2005年形成JEDEC标准ESD79E。

(JEDEC即Joint Electron Device Engineering Council,电子器件工程联合理事会)DDR SDRAM在其短暂的发展史中,先后经历了DDR SDRAM(也叫DDR1 SDRAM)、DDR2 SDRAM、DDR3 SDRAM三个阶段,技术越来越先进。

下面是DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM三种内存芯片的参数对比表:3).RDRAM:Rambus DRAM,是美国的RAMBUS公司开发的一种内存。

与DDR和SDRAM不同,它采用了串行的数据传输模式。

RDRAM的数据存储位宽是16位,远低于DDR和SDRAM的64位。

但在频率方面则远远高于前者,可以达到400MHz乃至更高。

同样也是在一个时钟周期内传输两次次数据,能够在时钟的上升期和下降期各传输一次数据,内存带宽能达到1.6Gbyte/s。

普通的DRAM行缓冲器的信息在写回存储器后便不再保留,而RDRAM则具有继续保持这一信息的特性,于是在进行存储器访问时,如行缓冲器中已经有目标数据,则可利用,因而实现了高速访问。

另外其可把数据集中起来以分组的形式传送,所以只要最初用24个时钟,以后便可每1时钟读出1个字节。

一次访问所能读出的数据长度可以达到256字节。

下图为SDRAM与RDRAM系统结构对比。

DRAM的存储单元结构与SRAM的锁存器存储结构不同,DRAM是利用电容来存储数据信息的,电容中有电荷代表逻辑“1”,没有电荷代表逻辑“0”,如下图所示。

DRAM进行读/写操作时,行选信号与列选信号将使存储电容与外界的传输电路导通,从而可进行放电(读取)或充电(写入)。

目前的主流设计中,刷新放大器功能已经被并入读出放大器(Sense Amplifier,简称S-AMP)中。

在《内存器件介绍之RAM篇(一)》中我们介绍了SRAM的相关知识以及DRAM 的部分知识,下面继续我们的DRAM探索之旅。

♦DRAM的物理BANK与逻辑BANK我们在进行内存设计选型时会有两种选择:内存颗粒和内存条。

1).内存颗粒其实也就是内存芯片,数据位宽通常是8bit,最高的也就是16bit。

2).内存条就是将多颗内存芯片放在一起组成通用标准模块,并在模块中加入管理信号(一般为I2C总线,用来读取厂家信息),然后从标准标准接口引出(就是我们常说的金手指)。

常见的内存条有SIMM和DIMM两种。

SIMM是Single In-line Memory Module缩写,即单列内存模组,它与主板插槽的接口只有一列引脚(虽然两侧都有金手指),72个PIN,数据位宽为32bit。

DIMM是Double In-line Memory Module的缩写,即双列内存模组。

所谓双列是指模组电路板与主板插槽的接口有两列引脚,两侧的金手指各对应一列引脚。

DIMM内存条一共有168个PIN,数据位宽为64bit。

传统内存系统为了保证CPU的正常工作,必须一次传输完CPU在一个传输周期内所需的数据,而CPU在一个传输周期能接受的数据容量就是CPU总线的位宽。

这个位宽就是物理BANK(Physical Bank,简称P-Bank)位宽。

如32位的CPU与内存进行数据交换时,一个时钟周期内必须是32bit,要是用普通8bit位宽的内存颗粒的话,就需要4片并联起来才能满足要求。

记得Pentium系列CPU刚上市时,需要在主板上插两条SIMM才能使CPU正常工作,这是因为Pentium系列CPU是64位的,而SIMM只能提供32bit位宽,所以必须要用两条并联起来才能满足其64bit的位宽要求。

直到后来64bit位宽的DIMM 上市后,才可以使用一条内存配合CPU正常工作。

早期的内存条,无论是SIMM,还是DIMM,都只有一个P-Bank。

随着计算机应用的发展,一个系统只有一个P-Bank已经不能满足容量的需求。

所以就出现了支持多个P-Bank的内存条,一次选择一个P-Bank工作,这就有了内存条支持多少个物理BANK的说法(Intel将P-Bank称为Row,比如845G内存条宣称支持4个Row,其实就是支持4个P-Bank,另外,在一些文档中,也把P-Bank称为Rank)。

DRAM的逻辑BANK概念是针对内存颗粒内部的。

大家都知道DRAM内部的存储单元是以阵列形式排列的。

如下图所示。

行列地址总线分别经过行列地址译码器译码后分别指向一行和一列,行列重叠的单元就是我们所寻找的存储单元,这就是内存芯片寻址的基本原理。

对于内存颗粒来说,这个阵列就是逻辑Bank(Logical Bank,简称L-Bank)。

但是,在实际应用中,由于技术、成本等原因,不可能只做一个全容量的L-BANK,而且最重要的是,由于DRAM的工作原理限制,单一的L-Bank将会造成严重的寻址冲突,大幅降低内存效率。

所以人们在DRAM内部分割成多个L-Bank,每个L-Bank形状相同,彼此独立,可以独立工作。

早期的DRAM芯片内部分为2个L-Bank,后来是4个,DDR3内存芯片为8个。

在进行寻址时需要先确定是哪个L-Bank,然后再在这个选定的L-Bank中选择相应的行与列进行寻址。

对内存的访问,一次只能是一个L-Bank,而每次与CPU交换的数据就是L-Bank 存储阵列中一个“存储单元”的容量。

SDRAM内存芯片一次传输的数据量就是芯片的位宽,那么这个存储单元的容量就是芯片的位宽(也是L-Bank 的位宽)。

下图为4BANK内存颗粒内部结构示意图。

内存芯片容量的计算方法为:存储单元数量=行数×列数(得到一个L-Bank 的存储单元数量)×L-Bank 的数量。

在很多内存产品介绍文档中,都会用M×W 的方式来表示芯片的容量。

M 是该芯片中存储单元的总数,单位是兆,W 代表每个存储单元的容量,也就是SDRAM 芯片的位宽(Width),单位是bit。

计算出来的芯片容量也是以bit 为单位,但用户可以采用除以8 的方法换算为字节(Byt)。

在《内存器件介绍之RAM篇(二)》中我们介绍了DRAM逻辑BANK和物理BANK 以及容量的计算方法,下面我们来学习下SDRAM芯片的初始化及读写时序。

针对内存的操作指令有如下几种:1).Command INHIBIT(初始化);2).No Operation(无动作);3).Active(使指定L-Bank中的指定行有效);4).Read(从指定L-Bank中的指定列开始读取数据);5).Write(从指定L-Bank中的指定列开始写入数据);6).Burst Terminate(突发传输终止);7).Precharge(预充电命令,关闭指定或全部L-Bank中的工作行);8).Auto Refresh(自动刷新);9).Load Mode Register(模式寄存器加载);10).写允许/输出允许;11).写禁止/输出屏蔽;♦内存的初始化一旦VDD、VDDQ被同时家电,并且时钟已经稳定,SDRAM需要一个200us 的延迟,在这个时间段中,Command INHIBIT和No Operation指令有效,这个过程实际上就是内存的自检过程,一旦这个过程通过后,一个Precharge命令就会生效,在这个命令周期中,内存会处于Idle状态。

相关主题