DDR4设计概述以和分析仿真案例.docx
《DDR4设计概述以和分析仿真案例.docx》由会员分享,可在线阅读,更多相关《DDR4设计概述以和分析仿真案例.docx(33页珍藏版)》请在冰豆网上搜索。
DDR4设计概述以和分析仿真案例
DRAM(动态随机访问存储器)对设计人员特别具有吸引力,因为它提供了广泛的性能,用于各种计算机和嵌入式系统的存储系统设计中。
本文概括阐述了DRAM的概念,及介绍了SDRAM、DDRSDRAM、DDR2SDRAM、DDR3SDRAM、DDR4SDRAM、DDR5SDRAM、LPDDR、GDDR。
DRAM
DRAM较其它内存类型的一个优势是它能够以IC(集成电路)上每个内存单元更少的电路实现。
DRAM的内存单元基于电容器上贮存的电荷。
典型的DRAM单元使用一个电容器及一个或三个FET(场效应晶体管)制成。
典型的SRAM(静态随机访问内存)内存单元采取六个FET器件,降低了相同尺寸时每个IC的内存单元数量。
与DRAM相比,SRAM使用起来更简便,接口更容易,数据访问时间更快。
DRAM核心结构由多个内存单元组成,这些内存单元分成由行和列组成的两维阵列(参见图1)。
访问内存单元需要两步。
先寻找某个行的地址,然后在选定行中寻找特定列的地址。
换句话说,先在DRAMIC内部读取整个行,然后列地址选择DRAMICI/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)。
第一个策略内存控制器在刷新周期突发中顺序刷新所有行,然后把内存控制返回处理器,以进行正常操作。
在到达最大刷新时间前,会发生下一个刷新操作突发。
第二个刷新策略是内存控制器使用正常处理器内存操作隔行扫描刷新周期。
这种刷新方法在最大刷新时间内展开刷新周期。
图2.DRAM刷新实现方案包括分布式刷新和突发刷新。
早期的DRAM演进及实现了DRAMIC上的刷新计数器,处理顺序生成的行地址。
在DRAMIC内部,刷新计数器是复用器输入,控制着内存阵列行地址。
另一个复用器输入来自外部地址输入针脚的行地址。
这个内部刷新计数器不需要内存控制器中的外部刷新计数器电路。
部分DRAM在RAS#周期前支持一个CAS#,以使用内部生成的行地址发起刷新周期。
SDRAM
在接口到同步处理器时,DRAM的异步操作带来了许多设计挑战。
SDRAM(同步DRAM)是为把DRAM操作同步到计算机系统其余部分,而不需要根据CE#(芯片启动活动低)、RAS#、CAS#和WE#边沿转换顺序定义所有内存操作模式而设计的。
SDRAM增加了时钟信号和内存命令的概念。
内存命令的类型取决于SDRAM时钟上升沿上的CE#,RAS#,CAS#和WE#信号状态。
产品资料根据CE#,RAS#,CAS#和WE#信号状态,以表格形式描述内存命令。
例如,Activate(激活)命令向SDRAM发送一个行地址,打开内存的一个行(页面)。
然后是一个Deselect(反选)命令序列,在对列地址发送Read或Write命令前满足定时要求。
一旦使用Activate命令打开内存的行(页面),那么可以在内存的该行(页面)上运行多个Read和Write命令。
要求Precharge(预充电)命令,关闭该行,然后才能打开另一行。
表1.DDRSDRAM数据速率和时钟速度。
DDRSDRAM
通过提高时钟速率、突发数据及每个时钟周期传送两个数据位(参见表1),DDR(双倍数据速率)SDRAM提高了内存数据速率性能。
DDRSDRAM在一条读取命令或一条写入命令中突发多个内存位置。
读取内存操作必需发送一条Activate命令,后面跟着一条Read命令。
内存在时延后以每个时钟周期两个内存位置的数据速率应答由两个、四个或八个内存位置组成的突发。
因此,从两个连续的时钟周期中读取四个内存位置,或把四个内存位置写入两个连续的时钟周期中。
DDRSDRAM有多个内存条,提供多个隔行扫描的内存访问,从而提高内存带宽。
内存条是一个内存阵列,两个内存条是两个内存阵列,四个内存条是四个内存阵列,依此类推(参见图3)。
四个内存条要求两个位用于内存条地址(BA0和BA1)。
图3.DDRSDRAM中多个内存条提高了访问灵活性,改善了性能
例如,有四个内存条的DDRSDRAM的工作方式如下。
首先,Activate命令在第一个内存条中打开一行。
第二个Activate命令在第二个内存条中打开一行。
现在,可以把Read或Write命令的任意组合发送到打开行的第一个内存条或第二个内存条。
在内存条上的Read和Write操作结束时,Precharge命令关闭行,内存条对Activate命令准备就绪,可以打开一个新行。
注意,DDRSDRAM要求的功率与打开行的内存条数量有关。
打开的行越多,要求的功率越高,行尺寸越大,要求的功率越高。
因此,对低功率应用,一次在每个内存条中只应打开一行,而不是一次打开行的多个内存条。
在内存条地址位连接到内存系统中的低阶地址位时,支持隔行扫描连续内存条中的连续内存字。
在内存条地址位连接到内存系统中的高阶地址时,连续内存字位于同一个内存条中。
DDR2SDRAM
DDR2SDRAM较DDRSDRAM有多处改进。
DDR2SDRAM时钟速率更高,从而提高了内存数据速率(参见表2)。
随着时钟速率提高,信号完整性对可靠运行内存变得越来越重要。
随着时钟速率提高,电路板上的信号轨迹变成传输线,在信号线末端进行合理的布局和端接变得更加重要。
地址、时钟和命令信号的端接相对简明,因为这些信号是单向的,并端接在电路板上。
数据信号和数据选通是双向的。
内存控制器中心在写入操作中驱动这些信号,DDR2SDRAM在读取操作中驱动这些信号。
多个DDR2SDRAM连接到同一个数据信号和数据选通上,进一步提高了复杂度。
多个DDR2SDRAM可以位于内存系统相同的DIMM上,也可以位于内存系统不同的DIMM上。
结果,数据和数据选通驱动器和接收机不断变化,具体取决于读取/写入操作及访问的是哪个DDR2SDRAM。
表2.DDR2SDRAM数据速率和时钟速度。
通过提供ODT(芯片内端接),并提供ODT信号,实现片内端接,并能够使用DDR2SDRAM扩展模式寄存器对片内端接值编程(75欧姆、150欧姆等等),DDR2SDRAM改善了信号完整性。
片内端接大小和操作由内存控制器中心控制,与DDR2SDRAMDIMM的位置及内存操作类型(读取或写入)有关。
通过为数据有效窗口创建更大的眼图,提高电压余量、提高转换速率、降低过冲、降低ISI(码间干扰),ODT操作改善了信号完整性。
DDR2SDRAM在1.8V上操作,降低了内存系统的功率,这一功率是DDRSDRAM的2.5V功率的72%.在某些实现方案中,行中的列数已经下降,在激活行进行读取或写入时降低了功率。
降低工作电压的另一个优势是降低了逻辑电压摆幅。
在转换速率相同时,电压摆幅下降会提高逻辑转换速度,支持更快的时钟速率。
此外,数据选通可以编程为差分信号。
使用差分数据选通信号降低了噪声、串扰、动态功耗和EMI(电磁干扰),提高了噪声余量。
差分或单端数据选通操作配置有DDR2SDRAM扩展模式寄存器。
DDR2SDRAM引入的一种新功能是附加时延,它使得内存控制器中心能够在Activate命令后,更快地灵活发送Read和Write命令。
这优化了内存吞吐量,通过使用DDR2SDRAM扩展模式寄存器对附加时延编程来配置。
DDR2SDRAM使用八个内存条,改善了1Gb和2GbDDR2SDRAM的数据带宽。
通过隔行扫描不同的内存条操作,八个内存条提高了访问大型内存DDR2SDRAM的灵活性。
此外,对大型内存,DDR2SDRAM支持最多八个内存条的突发长度。
DDR3SDRAM
DDR3SDRAM是一种性能演进版本,增强了SDRAM技术,它从800Mb/s开始,这是大多数DDR2SDRAM支持的最高数据速率。
DDR3SDRAM支持六档数据速率和时钟速度(参见表3)。
DDR3-1066SDRAM的能耗低于DDR2-800SDRAM,因为DDR3SDRAM的工作电压是1.5V,是DDR2SDRAM的83%,DDR2SDRAM的工作电压是1.8伏。
此外,DDR3SDRAM数据DQ驱动器的阻抗是34欧姆,DDR2SDRAM的阻抗较低,是18欧姆。
表3.DDR3SDRAM数据速率和时钟速度。
DDR3SDRAM将从512Mb内存开始,将来将发展到8Gb内存。
与DDR2SDRAM一样,DDR3SDRAM数据输出配置包括x4、x8和x16.DDR3SDRAM有8个内存条,DDR2SDRAM则有4个或8个内存条,具体视内存大小而定。
DDR2和DDR3SDRAM都有4个模式寄存器。
DDR2定义了前两个模式寄存器,另两个模式寄存器则预留给将来使用。
DDR3使用全部4个模式寄存器。
一个重要差异是DDR2模式寄存器规定了读出操作的CAS时延,写入时延则是1减去模式寄存器读出时延设置。
DDR3模式寄存器对CAS读出时延和写入时延的设置是唯一的。
DDR3SDRAM使用8n预取架构,在4个时钟周期中传送8个数据字。
DDR2SDRAM使用4n预取架构,在2个时钟周期中传送4个数据字。
DDR3SDRAM模式寄存器可以编程为支持飞行突变,这会把传送8个数据字缩短到传送4个数据字,这在读出或写入命令期间把地址行12设为低来实现。
飞行突变在概念上与DDR2和DDR3SDRAM中地址行10的读出和写入自动预充电功能类似。
值得一提的另一个DDR3SDRAM属性是差分的数据选通信号DQS,DDR2SDRAM数据通信号则可以由模式寄存器编程为单端或差分。
DDR3SDRAM还有一个新引脚,这个引脚为活动低异步RESET#引脚,通过把SDRAM置于已知状态,而不管当前状态如何,改善系统稳定性。
DDR3SDRAM使用的FBGA封装类型与DDR2SDRAM相同。
DDR3DIMM为DIMM上的命令、时钟和地址提供了端接。
采用DDR2DIMM的内存系统端接主板上的命令、时钟和地址。
DIMM上的DDR3DIMM端接支持飞行拓扑,SDRAM上的每个命令、时钟和地址引脚都连接到一条轨迹上,然后这条轨迹终结在DIMM的轨迹端。
这改善了信号完整性,其运行速度要快于DDR2DIMM树型结构。
飞行拓扑为内存控制器引入了新的DDR3SDRAM写入电平功能,考虑了写入过程中时钟CK和数据选通信号DQS之间的定时偏移。
DDR3DIMM的主要不同于DDR2DIMM,防止把错误的DIMM插入主板中。
DDR4SDRAM
DDR4SDRAM(DoubleDataRateFourthSDRAM):
DDR4提供比DDR3/DDR2更低的供电电压1.2V以及更高的带宽,DDR4的传输速率目前可达2133~3200MT/s。
DDR4新增了4个BankGroup数据组的设计,各个BankGroup具备独立启动操作读、写等动作特性,BankGroup数据组可套用多任务的观念来想象,亦可解释为DDR4在同一频率工作周期内,至多可以处理4笔数据,效率明显好过于DDR3。
另外DDR4增加了DBI(DataBusInversion)、CRC(CyclicRedundancyCheck)、CAparity等功能,让DDR4内存在更快速与更省电的同时亦能够增强信号的完整性、改善数据传输及储存的可靠性。
DDR5SDRAM
作为DDR4内存的继任者,DDR5内存在性能上自然要高出DDR4一大截。
从美光公布的文件来看,DDR5内存将从8GB容量起步,最高可达单条32GB,I/O带宽能达到3.2-6.4Gbps,同时电压1.1V,内存带宽将为DDR4内存的两倍。
此外,美光还在芯片论坛上表示DDR5内存将从3200Mhz起步,主流内存频率可达6400Mhz。
同时,美光还表示他们将在2018年成功流片DDR5内存样品,并将在2019年实现正式量产。
据业内人士估计,DDR5内存的普及应该会在2020年来临,所以想要跳过DDR4内存的朋友还要等待一段时间。
GDDR和LPDDR
其它DDR变种,如GDDR(图形DDR)和LPDDR(低功率DDR),在业内的地位也在不断提高。
GDDR是一种图形卡专用存储技术,目前规定的变种有四个:
GDDR2、GDDR3、GDDR4和GDDR5.GDDR的技术与传统DDRSDRAM非常类似,但功率要求不同。
其降低了功率要求,以简化冷却,提供更高性能的存储器模块。
GDDR也是为更好地处理处理图形要求设计的。
简短总结:
SDRAM:
为同步动态随机存取内存,SDRAM是为了与CPU的计时同步化所设计,这使得内存控制器能够掌握准备所要求的数据所需的准确时钟周期,因此CPU从此不需要延后下一次的数据存取。
举例而言,PC66SDRAM以66MT/s的传输速率运作;PC100SDRAM以100MT/s的传输速率运作;PC133SDRAM以133MT/s的传输速率运作,以此类推。
DDRSDRAM(DoubleDataRateSDRAM):
为双通道同步动态随机存取内存,是新一代的SDRAM技术。
别于SDR(SingleDataRate)单一周期内只能读写1次,DDR的双倍数据传输率指的就是单一周期内可读取或写入2次。
在核心频率不变的情况下,传输效率为SDRSDRAM的2倍。
第一代DDR内存Prefetch为2bit,是SDR的2倍,运作时I/O会预取2bit的资料。
举例而言,此时DDR内存的传输速率约为266~400MT/s不等,像是DDR266、DDR400都是这个时期的产品。
DDR2SDRAM(DoubleDataRateTwoSDRAM):
为双通道两次同步动态随机存取内存。
DDR2内存Prefetch又再度提升至4bit(DDR的两倍),DDR2的I/O频率是DDR的2倍,也就是266、333、400MHz。
举例:
核心频率同样有133~200MHz的颗粒,I/O频率提升的影响下,此时的DDR2传输速率约为533~800MT/s不等,也就是常见的DDR2533、DDR2800等内存规格。
DDR3SDRAM(DoubleDataRateThreeSDRAM):
为双通道三次同步动态随机存取内存。
DDR3内存Prefetch提升至8bit,即每次会存取8bits为一组的数据。
DDR3传输速率介于800~1600MT/s之间。
此外,DDR3的规格要求将电压控制在1.5V,较DDR2的1.8V更为省电。
DDR3也新增ASR(AutomaticSelf-Refresh)、SRT(Self-RefreshTemperature)等两种功能,让内存在休眠时也能够随着温度变化去控制对内存颗粒的充电频率,以确保系统数据的完整性。
DDR4SDRAM(DoubleDataRateFourthSDRAM):
DDR4提供比DDR3/DDR2更低的供电电压1.2V以及更高的带宽,DDR4的传输速率目前可达2133~3200MT/s。
DDR4新增了4个BankGroup数据组的设计,各个BankGroup具备独立启动操作读、写等动作特性,BankGroup数据组可套用多任务的观念来想象,亦可解释为DDR4在同一频率工作周期内,至多可以处理4笔数据,效率明显好过于DDR3。
另外DDR4增加了DBI(DataBusInversion)、CRC(CyclicRedundancyCheck)、CAparity等功能,让DDR4内存在更快速与更省电的同时亦能够增强信号的完整性、改善数据传输及储存的可靠性。
DDR4关键技术和方法分析
1.1DDR4与DDR3不同之处
相对于DDR3,DDR4首先在外表上就有一些变化,比如DDR4将内存下部设计为中间稍微突出,边缘变矮的形状,在中央的高点和两端的低点以平滑曲线过渡,这样的设计可以保证金手指和内存插槽有足够的接触面从而确保内存稳定,另外,DDR4内存的金手指设计也有明显变化,金手指中间的防呆缺口也比DDR3更加靠近中央。
当然,DDR4最重要的使命还是提高频率和带宽,总体来说,DDR4具有更高的性能,更好的稳定性和更低的功耗,那么从SI的角度出发,主要有下面几点,下面章节对主要的几个不同点进行说明。
表1DDR3和DDR4差异
DDR4与DDR3内存差异二:
外型
卡槽差异
DDR4模组上的卡槽与DDR3模组卡槽的位置不同。
两者的卡槽都位于插入侧,但DDR4卡槽的位置稍有差异,以便防止将模组安装到不兼容的主板或平台中。
请注意DDR3与DDR4模组之间的细微差别
增加厚度
为了容纳更多信号层,DDR4模组比DDR3稍厚。
DDR4金手指变化较大
大家注意上图,宇瞻DDR4内存金手指变的弯曲了,并没有沿着直线设计,这究竟是为什么呢?
一直一来,平直的内存金手指插入内存插槽后,受到的摩擦力较大,因此内存存在难以拔出和难以插入的情况,为了解决这个问题,DDR4将内存下部设计为中间稍突出、边缘收矮的形状。
在中央的高点和两端的低点以平滑曲线过渡。
这样的设计既可以保证DDR4内存的金手指和内存插槽触点有足够的接触面,信号传输确保信号稳定的同时,让中间凸起的部分和内存插槽产生足够的摩擦力稳定内存。
接口位置同时也发生了改变,金手指中间的“缺口”位置相比DDR3更为靠近中央。
在金手指触点数量方面,普通DDR4内存有284个,而DDR3则是240个,每一个触点的间距从1mm缩减到0.85mm。
曲线边
DDR4模组提供曲线边以方便插入和缓解内存安装期间对PCB的压力。
仔细看,是一个曲面
1.2POD和SSTL的比较
POD作为DDR4新的驱动标准,最大的区别在于接收端的终端电压等于VDDQ,而DDR3所采用的SSTL接收端的终端电压为VDDQ/2。
这样做可以降低寄生引脚电容和I/O终端功耗,并且即使在VDD电压降低的情况下也能稳定工作。
其等效电路如图1(DDR4),图2(DDR3)。
图1POD((PseudoOpenDrain)
图2SSTL(StubSeriesTerminatedLogic)
可以看出,当DRAM在低电平的状态时,SSTL和POD都有电流流动
图3DDR4
图4DDR3
而当DRAM为高电平的状态时,SSTL继续有电流流动,而POD由于两端电压相等,所以没有电流流动。
这也是DDR4更省电的原因
图5DDR4
图6DDR3
1.3数据总线倒置(DBI)
如上面描述,根据POD的特性,当数据为高电平时,没有电流流动,所以降低DDR4功耗的一个方法就是让高电平尽可能多,这就是DBI技术的核心。
举例来说,如果在一组8-bit的信号中,有至少5-bit是低电平的话,那么对所有的信号进行反转,就有至少5-bit信号是高电平了。
DBI信号变为低表示所有信号已经翻转过(DBI信号为高表示原数据没有翻转)。
这种情况下,一组9根信号(8个DQ信号和1个DBI信号)中,至少有五个状态为高,从而有效降低功耗。
图7DBIExample
1.4ODT控制
为了提升信号质量,从DDR2开始将DQ,DM,DQS/DQS#的Termination电阻内置到Controller和DRAM中,称之为ODT(OnDieTermination)。
Clock和ADD/CMD/CTRL信号仍需要使用外接的Termination电阻。
图8OnDieTermination
在DRAM中,On-DieTermination的等效电阻值通过ModeRegister(MR)来设置,ODT的精度通过参考电阻RZQ来控制,DDR4的ODT支持240,120,80,60,48,40,34欧姆。
和DDR3不同的是,DDR4的ODT有四种模式:
Dataterminationdisable,RTT_NOM,RTT_WR,和RTT_PARK。
Controller可以通过读写命令以及ODTPin来控制RTT状态,RTT_PARK是DDR4新加入的选项,它一般用在多Rank的DDR配置中,比如一个系统中有Rank0,Rank1以及Rank2,当控制器向Rank0写数据时,Rank1和Rank2在同一时间内可以为高阻抗(Hi-Z)或比较弱的终端(240,120,80,etc.),RTT_Park就提供了一种更加灵活的终端方式,让Rank1和Rank2不用一直是高阻模式,从而可以让DRAM工作在更高的频率上。
一般来说,在Controller中可以通过BIOS调整寄存器来调节ODT的值,但是部分Controller厂商并不推荐这样做,以Intel为例,Intel给出的MRCCode中已经给出了最优化的ODT的值,理论上用户可以通过仿真等方法来得到其他ODT值并在BIOS中修改,但是由此带来的所有问题将有