上节内容介绍了SRAM与DRAM的原理,并介绍了SRAM的接口与使用,SRAM与早期发展的DRAM接口都是异步接口,所谓异步接口是只地址、数据与控制接口在读写双方的应答中没有与时钟产生直接的关系,尽管主从设备的总线可能都是在各自的系统时钟控制下完成的(从设备系统可能没用自己系统时钟),但由于双发的时钟各自生成,没有直接的关系,这种在没有统一时钟控制下的读写,称为异步读写。因次存储器芯片也分为同步存储器芯片和异步存储器芯片。如只读存储器中I2C 接口的EEPROM, SPI接口的EEPROM, SPI接口的Flash 存储器都可以看作同步存储器,而并行接口的EPROM, NOR Flash,NAND Flash 等都认为是异步只读存储器。随机存取存储器也有同步与异步之分,如上面介绍的SRAM,早期的DRAM都是异步的,但随着技术的发展,同步DRAM由于结构简单,读写速度快,接口时序易于控制等优点,在市场竞争中具有巨大的优势,因此在高速及大容量的内存使用中占有主导地位。下面将着重介绍同步随机存取存储器的原理,接口及应用。
图1 异步DRAM的读写时序
-
同步随机存取存储器
同步随机存取存储器由称为SDRAM(Synchronous DRAM) 。 SDRAM与早期的DRAM最大的不同就是采用了同步时钟,从图1 可以看出,DRAM在外部接口上没有采用时钟同步信号,因此在读写上都要进行异步时钟到同步时钟的转换,读写效率很低。一个简单的例子,SRAM有RD#,WE#信号,在主机与SRAM硬件连接后主机生成的控制信号都是在主机时钟的控制下进行的,但是SRAM在接收的地址线和数据线时依赖CE#和WE#信号的选通,此时如果在内部译码将会产生延迟逻辑,具体的延迟随着芯片的不同而不同,因此在使用时都会给出比较大的时序冗余。如IS61WV51216BLL-10TI,虽然读写速度可以达到100M,但在真正应用时,很难做到主机端100M时钟恰好满足要求。如图2,虽然从时序上看可以做到ADDR,CE#,WE#,RD#等信号可以同时建立和撤销,但在考虑到布线延时(包括FPGA的布线延时和PCB板的布线延时)等因素 ,往往要降低主频使用。特别是在目前要求1GHz以上的读写要求时,显得无能为力。
特别是前面介绍过的FLASH芯片有复杂的读写命令,往往数据,控制信号,数据等都需要锁存,然后再转换成内部时钟,此时就会出现不同时钟域的转换。因此目前的内存都是同步的SDRAM。同步的SDRAM比非同步的DRAM多一套时钟线CLK, 在考虑到非读写期间降低功耗的要求,会添加CLKE#信号,即时钟使能信号。SDRAM的时序如图4所示。
图2 SRAM的读写时序
图3 内存条示意图
2. SDRAM(Synchronous DRAM)的分类
随着时间的推进,同步DRAM经过了不同的发展阶段。SDRAM比较典型的阶段及代表产品有SDRAM,DDR-SDRAM, DDR2-SDRAM ,DDR3-SDRAM ,DDR4-SDRAM,DDR5-SDRAM等产品。
-
SDRAM
SDRAM(Synchronous DRAM)是比较早期的产品,主频一般低于100M,与SRAM相比容量大,读写速度高,但读写操作复杂。同时芯片内部采用DRAM结构,因此需要刷新。SDRAM的电压是3.3V,IO口的电平标准一般LVCOMS33(3.3V)。目前在嵌入式领域仍在使用,但性价比不高。
-
DDR-SDRAM
DDR-SDRAM(double data rate)与SDRAM相比突出特点是,在读取与写入时时钟都采用双边沿操作,即在上升沿和下降沿都可以进行读/写操作。DDR-SDRAM的时钟主频一般在150Mhz左右,但由于采用双边沿操作,实际的读写速度要比SDRAM快的多。DDR-SDRAM的供电电压为2.5V,IO的电平标准为LVCMOS25(2.5V)。目前基本上处于淘汰状态。
-
DDR2-SDRAM
DDR2-SDRAM与DDR-SDRAM相比在DDR2内部采用双倍预读取,因此DDR2的时钟一般比DDR-SDRAM的接口时钟高很多。比较流行的333Mhz, 400Mhz ,533Mhz等,接口电压为1.8V。虽然DDR2_SDRAM 在存储器采用双倍预读取,但外部接口依然采用双边沿的读写方式,因此对外接口与DDR-SDRAM 相比仅接口不同电压,读写速度仅时钟频率决定。
DDR3-SDRAM
由于DDR3性价比比DDR2-SDRAM高很多,因此目前嵌入式系统中DDR3-SDRAM是主流产品。DDR3-SDRAM与DDR2-SDRAM相比在芯片内部读写又提高一倍,因此主频也比DDR2有大幅提升。DDR3-SDRAM供电及接口电压典型的为1.5V,低电压系列为1.35V,如DDR3L SDRAM 供电电压和接口电压都为1.35V。目前仍然是计算机内存的主流产品。特别是在嵌入式系统中,由于多数主流控制器件还不支持DDR4,因此多数嵌入式系统仍以DDR3 为主。
-
DDR4-SDRAM
为目前最高性能的SDRAM,主频最高可以达到2.4G,目前在性价比上与DDR3比有优势,因此在不久的将来会逐渐替代DDR3成为嵌入式系统的主要存储器。
本章课程会结合DDR3-SDRAM MT41J128M16HA-125实例讲解原理,硬件设计,FPGA接口设计及应用实例。由于SDRAM为同步DRAM,因此与读写相关的地址,数据,控制信号都与时钟有关,除了复位信号外,其它的信号都为同步信号。时钟由主控制器提供,主从设备共用同一套系统时钟。典型时序如图4所示,
图4 DDR典型时序
3. DDR3-SDRAM芯片实例详解(MT41J128M16HA-125)
-
标志
标志:(1)MT41J —-Micron(美光) DDR3的标志(2)128M16–表示128M X 16的存储单元,输入、输出为16位(3)HA–封装形式指96-ball 9mm x 14mm FBGA(4)-125–表示读写速度为1.25ns的级别,时钟最高可以达到800MHz
-
特性
(1)供电电压与IO电压一致,都为1.5V-0.075V 到1.5V+0.075V,低电压系列为1.35V。 0.75V为中心的IO推拉结构
(2)差分时钟线
(3) 8n-bit数据预取结构(内部)
(4)ODT:为数据、数据选通、数据屏蔽提供芯片内部固定或动态可选的终端电阻(ODT , on die termination)。
(5)可编程的CAS# 读数据潜伏(latency) CL
(6)可编程附加的CAS# 数据潜伏(latency) AL (additive latency)
(7)可编程的写CAS# 的latency ,CWL(CAS Write Latency)
(8)突发长度,固定的8突发长度(burst length)或砍半(chop)的4突发长度(BC4)
(9)封装:96 PINs FBGA封装(16 接口)(fine BGA,HA/JT/JE)或78 PINs FBGA(HX/DA)封装(仅4位或8位接口),如图5,图6所示。
图5 MT41J128M16HX(DA)-125 封装(78 PIN FBGA)
图6 MT41J128M16HA(JT)-125 封装
图7 美光DDR3 芯片型号识别
-
美光(MICRON)DDR3-SDRAM 的组织结构
以2Gb容量的芯片为例介绍DDR3不同的数据接口和寻址方式,见表1。
-
-
数据接口
-
不同芯片数据接口宽度不同,分别为4,8,16位数据接口。
-
-
寻址方式
-
地址寻址的差别主要在行(ROW)、列(COLOUM)以及BANK组成了立体结构的寻址方式。每一行与不同列地址组成一个页面(page),有多个页面组成一个BANK。整个芯片根据容量由8个BANKs组成。行地址与列地址根据数据接口位数不同而不同。如:
4位数据接口: 行地址A[14:0] ,列地址A[11,9:0]。
8位数据接口: 行地址A[14:0] ,列地址A[9:0]。
16位数据接口:行地址A[13:0] ,列地址A[9:0]。
页面容量由数据位宽和列地址共同决定:分别为1KB,1KB,2KB
表1
- 容量计算
DDR3如何根据上表进行容量计算呢?传统的计算方式都是以字节(byte)为单位进行容量计算的,表1中Configuration栏给出的是按位的计算方法,如:
MT41J512M4JE-125 总容量为 Volbit=64M x 4 x 8 banks=2Gbits ,
转换成byte时的容量为 Volbyte=Volbit / 8=64M x 4 x 8 banks/8=64 x 4 =256M bytes
MT41J256M8JE-125 总容量为 Volbit=32M x 8 x 8 banks=2Gbits ,
转换成byte时的容量为 Volbyte=Volbit / 8=32M x 8 x 8 banks/8=32 x 8=256M bytes
MT41J128M16JE-125 总容量为 Volbit=16M x 16 x 8 banks=2Gbits ,
转换成byte时的容量为 Volbyte=Volbit / 8=16M x 16 x 8 banks/8=16 x 16=256M bytes
也可以按照行(row),列(column),bank的方式进行计算。以MT41J128M16JE-125为例计算方法如下:
-
- 计算每个page的容量, Volpage = 2KB, 注意这里B代表 byte,
- 计算每个bank的容量 , Volbank=Volpage x Rownum=2KB x 16K=32MB
- 计算总容量 Vol =Volbank x 8 =32M x 8 =128MB
有关DDR3的接口、时序及控制器的设计,将在后续章节中展开。