您好,欢迎访问三七文档
Xieyu2017.12.04DDR3学习总结INDEXMEMORYDDR3基本概念DDR3工作机制MEMORYRAMSRAM静态随机存储器由触发器存储数据DRAM动态随机存储器MOS管栅极电容存储电荷DRAMSDRAM单倍数据速率随机存储器在时钟脉冲的上升沿读取数据速率动态存储器DDRRRAM双倍数据速率随机存储器在时钟脉冲的上升和下降沿均读取数据速率动态存储器DDR发展目前最新的DDR系列为DDR4,16bitPre-fetch,工作电压1.2V带宽2133/2400MbpsLPDDR3(mDDR3)LOWPOWERDDR31.2VDDR3DDR31.5V/LDDR31.35VTSOP封装SDRAM内部结构示意图DDR3基础概念L-BANK位宽频率&带宽容量及计算LPDDR3pin脚定义L-BANKL-bank(逻辑bank)一个L-bank类似于二维仓储,每个小仓库对应一个地址,每个地址对应行和列。一个小仓库可以存放N个bit的数据。N(数据宽度):存储单元存储的数据量。位宽物理bank/位宽/rank:为保证CPU正常工作,一个周期传送出的CPU所需要的数据信息bit数。现在一般模组为32bit或者64bit。也称为内存总线的数据位宽(i/o总线位宽)单个DDR3芯片的位宽一般为8/16bit物理BANK类似于电脑主板上内存条的插槽频率&带宽时钟频率,即核心频率:DDR3的clk频率。(上升沿)I/0频率,总线频率,工作频率:数据线上传输频率。(上升沿)等效频率:等效数据传输频率。(上升沿,下降沿)带宽:内存总线所能提供的数据传输能力。带宽=内存核心频率×倍增系数×(内存总线位数/8)Eg:DDR3-1600200*8*64/8=12800MB/S=1.28GB/S容量及计算内存容量:能够存储多少数据的能力。存储单元数量=行数*列数(得到一个L-Bank的存储单元数量)*L-Bank的数量内存容量=存储单元数量*位宽=行数*列数*L-Bank的数量*位宽Eg:2^14*2^10*2^3*8=2^30bit=2^20Kb=2^10Mb=1Gb=256Mb*4LPDDR3pin脚定义CK_t,CK_c差分时钟信号(Input)CKE时钟使能(Input)CS_n片选(Input)CA0-CA9DDR命令/地址输入DQ0-15/31数据输入输出(I/O)DQS_t,DQS_c差分数据选取(I/O)DM数据掩码(写)ODT片上终端电阻ZQ输出驱动能力校准参考PINVdd/Vss电源/地DDR3的工作机制初始化&RESETPrecharge/refresh读/写DQSDMWrtinglevelingODTZQCATRAININGPOWERDOWN简化状态图初始化&RESET初始化:DDR芯片中有若干模式寄存器,存储默认参数设置。上电及Reset过程中芯片内部会轮询MR(ModeRegister),即MRR(MRRead),配置参数。RESETDDR3新加入的功能,可重置设备。DDR3中有单独的RESETpin发出RESET命令LPDDR3RESET功能在MRW(MRWrite)过程与POWER-DOWN过程Refresh&PrechargeRefreshDRAM是电容型存储器,所以必须定时进行数据刷新(refresh)。此过程是内部过程,不需要外部提供行/列信息。内部有一个刷新计数器,自行发出行命令。基本过程,提供一个基准电压(一般电容容量的1/2),一个个数据对比基准电压,如果大,重新赋值1,小则不管。Refresh分为AUTORefresh(自动刷新)和SelfRefresh(自刷新)。而AR又分为:1.per-bankrefresh:刷新的目标bank处于闲置状态,而其他BANK可以进行访问。2.all-bankrefresh:所有BANK处于闲置状态。而SR又分为:1.自刷新:SDRAM数据保存不需要外部时钟信号,进入POWERDOWN保存数据。2.局部自刷新:部分bank中进行自刷新操作。自动刷新时间间隔不超过64ms(全部数据刷一遍,所有行)。局部自刷新MR17来设置局部自刷新Refresh&PrechargePrecharge(预充电):DRAM工作时,L-BANK中只有一个行激活,当进行完读写操作后,在同一个L-BANK操作时,关闭一行,打开另一行的过程称为预充电。关闭行的过程,需要S-AMP对行内所有数据进行重写,地址进行复位。其过程与REFRESH一样。读/写激活命令(active)每次开始读写任务之前,Bank中的目标行必须进行激活命令,进入激活状态。最多4个Bank可同时进入激活状态。同一个Bank中不同行激活命令之前都需要进行Precharge命令。读/写当Bank中目标行激活后,就可以发出读/写命令。过程:首先确定行(包括片选及L-bank的确定),行有效命令,并使其处于激活状态;然后确定列,列寻址信息与读/写命令同时发出。读/写预取Pre-fetch:在芯片发出开始请求信号之前,存储单元已经准备好8bit的数据。不考虑时钟上下沿读取数据均触发,每个存储单元在触发沿会准备4bit数据,所以8BIT预取技术仅通过I/O控制器将I/O频率提升为实际频率的4倍。DDR2bit预取,DDR24bit预取读/写突发传输(Brust):当每完成一次读/写操作都需要寻址一次时,非常浪费资源。所以有一个Brust机制,当读/写为连续的几个存储单元时,只需要指定列起始地址及突发长度(Brustlengths),可以不需要多次寻址,直接写入/输出存储的数据信息。非突发传输突发传输上文讲到的初始化过程中的MRS阶段就要对BL进行设置。目前可用的选项是1、2、4、8、全页(FullPage),常见的设定是4和8。数据选取脉冲(DQS)在一个时钟周期内区分传输周期,便于选取数据。读取时,DQS信号和数据信号同时开始生成,由于预存机制,当DQS生成时,数据已在芯片内部预取完毕。最终实际数据信号传输会比DQS信号先发生。在写入时,芯片不再自己生成DQS,而以发送方传来的DQS为基准,并相应延后一定的时间,在DQS的中部为数据周期的选取分割点读取时分割点就是上下沿写入时分割点就是中部数据掩码技术(DM)当数据写入时,不需要的数据可以通过数据掩码技术将其舍弃,不进行保存。注:以上对于LPDDR3而言,DDR3由DQM技术,可对读/写操作进行掩码。Wrtingleveling由于DDR3内存颗粒之间连接方式发生了变化。利用Fly-by拓扑结构(属于菊花链拓扑),减少了ODT的数量,地址、控制和时钟信号之前不要求等长走线,方便PCB布线。导致以上信号不能与数据信号同步。WriteLeveling功能就可以自动调节DQS与CLK之间的时序,使其同步。通过提前或者延后DQS信号,从DQ得到反馈,直到时序同步时,锁住时序。Fly-by拓扑结构ODT(On-dietemination)控制器控制ODT引脚,决定它的使用,模式寄存器设置RTT的值。ZQ由MRW命令开启。根据不同的操作,温度和电压情况,来校准输出驱动阻抗和片上终端电阻(ODT)阻抗。一般ZQ引脚上接有一个240欧姆的低公差(1%)参考电阻。ZQ过程分为4个:1.tZQINIT:ZQ初始化校准1us2.tZQRESET:重置ZQ默认输出阻抗50ns3.tZQCL:上电校准360ns4.tZQCS:周期校准90nsZQCS时间间隔公式ZQCorrectionZQ有效调整精度Tdriftrate温度漂移率Vdriftrate电压漂移率TSens温度敏感度VSens电压敏感度CATraining随着多样的工作环境和信号频率越来越高的影响,DDR在工作中clk与CA时序越来越不稳定,为了让终端接收信息的时序满足协议要求,引入CATraining。芯片内部还有一个温度传感器,可根据检测温度来调节时钟信号的频率,温度高时降频。PowerdownPowerdown:在ROWACTIVE,PRECHARGE,REFRESH下,CKE拉低,数据保存,但数据总线命令无效,只有CKE拉高,外部时钟无效。退出POWERDOWNMODE之后才可进行数据读取。DEEPPOWERDOWN:所有bank进入闲置状态,无激活的行,且不执行任何命令,CKE拉低,数据丢失,功耗很低,外部时钟无效,使用内部自带计时器。附录:典型时间参数1.RAS-CASDelaytRCD行有效命令到列读取命令的间隔。后改进,可让CAS紧接着RAS发出。可提高CA利用率,时序参数上添加一个AL(附加延迟)2.CLCASLatency读取潜伏期读命令到数据出现在I/O总线上的时间3.写入/校正时间tWR写操作完成,会留出一定的时间以保证数据完成有效的写入芯片。附录:REFRESH补充4.tREFIMtREFIM=tREFI*RMRM由MR4来设置,BANK在可在tREFI刷新的行数可通过提前插入或者延后最多8个刷新间隔来合理分配CA命令,提高DDR效率EMMCeMMC=NANDFLASH+主控ICeMCPLPDDR3eMCP=eMMC+LPDDR=NANDFLASH+主控IC+LPDDR容量计算验证2^15*2^11*2^3*16bit*¾=6Gb32GBeMMC+24GbLPDDR36Gb*464bit8GBEmmc+8GbLPDDR34Gb*264bit
本文标题:ddr3-学习分享
链接地址:https://www.777doc.com/doc-1342036 .html