DDR4设计概述以及分析仿真案例 下载本文

DRAM (动态随机访问存储器)对设计人员特别具有吸引力,因为它提供了广泛的性能,用于各种计算机和嵌入式系统的存储系统设计中。本文概括阐述了DRAM 的概念,及介绍了SDRAM、DDR SDRAM、DDR2 SDRAM、DDR3 SDRAM、DDR4 SDRAM、DDR5 SDRAM、LPDDR、GDDR。

DRAM

DRAM较其它内存类型的一个优势是它能够以IC(集成电路)上每个内存单元更少的电路实现。DRAM 的内存单元基于电容器上贮存的电荷。典型的DRAM 单元使用一个电容器及一个或三个FET(场效应晶体管)制成。典型的SRAM (静态随机访问内存)内存单元采取六个FET 器件,降低了相同尺寸时每个IC 的内存单元数量。与DRAM 相比,SRAM 使用起来更简便,接口更容易,数据访问时间更快。

DRAM核心结构由多个内存单元组成,这些内存单元分成由行和列组成的两维阵列(参见图1)。访问内存单元需要两步。先寻找某个行的地址,然后在选定行中寻找特定列的地址。换句话说,先在DRAM IC 内部读取整个行,然后列地址选择DRAM IC I/O(输入/ 输出)针脚要读取或要写入该行的哪一列。

DRAM读取具有破坏性,也就是说,在读操作中会破坏内存单元行中的数据。因此,必需在该行上的读或写操作结束时,把行数据写回到同一行中。这一操作称为预充电,是行上的最后一项操作。必须完成这一操作之后,才能访问新的行,这一操作称为关闭打开的行。

对计算机内存访问进行分析后表明,内存访问中最常用的类型是读取顺序的内存地址。这是合理的,因为读取计算机指令一般要比数据读取或写入更加常用。此外,大多数指令读取在内存中顺序进行,直到发生到指令分支或跳到子例程。

图1. DRAMs 内存单元分成由行和列组成的两维阵列

DRAM的一个行称为内存页面,一旦打开行,您可以访问该行中多个顺序的或不同的列地址。这提高了内存访问速度,降低了内存时延,因为在访问同一个内存页面中的内存单元时,其不必把行地址重新发送给DRAM.结果,行地址是计算机的高阶地址位,列地址是低阶地址位。由于行地址和列地址在不同的时间发送,因此行地址和列地址复用到相同的DRAM 针脚上,以降低封装针脚数量、成本和尺寸。一般来说,行地址尺寸要大于列地址,因为使用的功率与列数有关。

早期的RAM拥有控制信号,如RAS# (行地址选择低有效)和CAS# (列地址选择低有效),选择执行的行和列寻址操作。其它DRAM 控制信号包括用来选择写入或读取操作的WE# (写启动低有效)、用来选择DRAM的CS#(芯片选择低有效)及OE#

(输出启动低有效)。早期的DRAM拥有异步控制信号,并有各种定时规范,涵盖了其顺序和时间关系,来确定DRAM 工作模式。

早期的DRAM读取周期有四个步骤。第一步,RAS# 与地址总线上的行地址变低。第二步,CAS# 与地址总线上的列地址变低。第三步,OE#变低,读取数据出现在DQ 数据针脚上。在DQ 针脚上提供数据时,从第一步第三步的时间称为时延。最后一步是RAS#, CAS# 和OE# 变高(不活动),等待内部预充电操作在破坏性读取后完成行数据的恢复工作。从第一步开始到最后一步结束的时间是内存周期时间。上述信号的信号定时与边沿顺序有关,是异步的。这些早期DRAM没有同步时钟操作。

DRAM 内存单元必需刷新,避免丢失数据内容。这要求丢失电荷前刷新电容器。刷新内存由内存控制器负责,刷新时间指标因不同DRAM内存而不同。内存控制器对行地址进行仅RAS# 循环,进行刷新。在仅RAS# 循环结束时,进行预充电操作,恢复仅RAS# 循环中寻址的行数据。一般来说,内存控制器有一个行计数器,其顺序生成仅RAS# 刷新周期所需的所有行地址。

刷新策略有两个(参见图2)。第一个策略内存控制器在刷新周期突发中顺序刷新所有行,然后把内存控制返回处理器,以进行正常操作。在到达最大刷新