尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

LPDDR6分享

LPDDR6分享 文章目录结构地址数据包格式初始化及training流程row操作read/write操作refresh操作power down操作Alert OuputMBIST/mPPR结构Normal Mode支持2个子通道同时工作每个sub-channel独立的时钟、命令、数据功耗更高带宽更大。Dynamic Efficiency Mode支持2个通道在数据访问粒度较小时一个子通道满足访问需求另一个子通道可以进入低功耗降低系统功耗。Static Efficiency Mode只能使用一个子通道另一个处于关闭状态极致省电带宽下降。地址不同容量下的Page Size都为2KBX12子通道共64列突发长度BL24一列有效数据12bit*BL24-32bit(meta/dbi/ecc)256bit一页为64*256/82048B固定4BG/4BA。数据包格式一个子通道X12突发长度按BL24一次接口上可传输数据量为12bit*BL24288bit其中256bit是normal data32bit为metadbi/ecc从图中可以看出dbi和ecc是复用了16bit不能同时有效。相较于之前的LPDDR5/5Xdbi/ecc不再使用专门的pad直接同数据一起传输节省了pad。初始化及training流程初始化上电和复位释放时钟稳定后配置MRmode register支持三套频点FSP_WR[2:0]/FSP_OP[2:0]之后再进行ZQCAL Latch实现阻抗匹配然后再做各种trainingtraining完成后进行读写操作。ZQ CalibrationZQ Calibration实现阻抗匹配颗粒内部周期性校准当当前的校准值和锁存值不一致时置高MR4的ZQUF位phy或控制器发送MRR读MR4的标志位ZQUF结果为1需要通过MPC发ZQCAL Latch命令更新校准结果。由于外部参考的电阻240Ω±1%是共享的需要可通过配置ZQ stop实现单独校准ZQ Reset则为设置默认值的±30%。training流程CS training采样CS与期望数据比对通过DQ[7:6]反馈结果。不同阶段DQ每个bit具体含义。DQ与MR15VREFCS的OPcode对应关系。由于DRAM颗粒端无低速接口来配置MRCS training过程前配置MR需要低频下完成保证颗粒端正常识别CS/CA命令。step1、配置MR13选择对应的目标频点FSP_OP配置MR16与MR13的频点一致且选择CS training mode。step2、phy端驱动DQ[11]拉高FSP switch/CK Sync OFF切换CK时钟和FSP频点对应的MR配置命令间的延时严格按照协议要求。step3、phy配置DQ[6:0]用于VREFCS更新然后再拉高DQ[10]颗粒端检测到DQ[10]上升沿更新锁存DQ[6:0]的值到MR15等待VREFCS更新完成。step4、phy再拉高DQ[9]清除颗粒内部的CS计数和采样CS的比较结果为下一次采样比较做准备phy再拉低DQ[9]phy内部生成CS pattern1010...序列维持32个CK周期颗粒CK采样CS与期望的数据偶数全1奇数全0做比对结果反馈到DQ[7:6]如DQ[7:6]2b00则pass反之则fail。step5、重复step3/4重新调整phy发送CS pattern的delay直到DQ[7:6]2b00phy记录当前的调整delay结果一般是一个窗口可取均值。step6、phy拉低DQ[11]发送NOPCK sync配置MR16进入normal mode退出CS training。其中每次phy发送CS pattern前会先发VREFCS应该是颗粒内部有类似电压比较器可以更好的识别CS的电平。FSP_OP[0]boot频点大于18ns55MFSP_OP[1]频点1高频、中频FSP_OP[2]频点2高频、中频可在boot下训练完成后切到其他频点进行训练boot频点下完成对其他频点的MR设置。CBT trainingDQ与MR12VREFCAOPcode对应关系。不同阶段下DQ每个bit的含义。反馈DQ与采样的CA的相位关系DQ[7:4]对应CA[3:0]的下降沿DQ[3:0]对应CA[3:0]的上升沿。PRBS16的算法逻辑。伪代码如下always(posedge clk or negedge rst_n)beginif(!rst_n)begincurr_d 16h4411;endelse beginif(load_seed)begincurr_d seed;//16h4411endelse begincurr_d next_d;endendendassign latch_zero curr_d[0];assign next_d[15] latch_zero;assign next_d[14] curr_d[15];assign next_d[13] curr_d[14] ^ latch_zero;assign next_d[12] curr_d[13];assign next_d[11] curr_d[12];assign next_d[10] curr_d[11];assign next_d[9] curr_d[10];assign next_d[8] curr_d[9] ^ latch_zero;assign next_d[7] curr_d[8];assign next_d[6] curr_d[7];assign next_d[5] curr_d[6];assign next_d[4] curr_d[5];assign next_d[3] curr_d[4] ^ latch_zero;assign next_d[2] curr_d[3];assign next_d[1] curr_d[2];assign next_d[0] curr_d[1];assign ca curr_d;assign ca_r1 ca[0: 4];assign ca_f1 ca[4: 4];assign ca_r2 ca[8: 4];assign ca_f2 ca[12:4];LFSR移位结果如原始seed数据为16h4411经过LFSR移位后得到16h8300。step1、由于DRAM颗粒端无低速接口来配置MRCBT training过程前配置MR需要低频下完成保证颗粒端正常识别CS/CA命令在上一步CS training完成后固定延时。step2、配置MR13选择对应的目标频点FSP_OP配置MR16与MR13的频点一致且选择CBT training modephy内部设置好prbs16的seed如16h4411做线性移位生成CA。step3、phy端驱动DQ[11]拉高FSP switch/CK Sync OFF切换CK时钟和FSP频点对应的MR配置命令间的延时严格按照协议要求。step4、phy配置DQ[6:0]用于VREFCA更新然后再拉高DQ[10]颗粒端检测到DQ[10]上升沿更新锁存DQ[6:0]的值到MR12等待VREFCA更新完成。step5、phy再拉高DQ[9]颗粒内部复位LFSR和比较逻辑phy再拉低DQ[9]phy内部通过prbs16生成CA pattern序列颗粒CK采样CS和CA结果反馈到DQ[7:0]phy再采样颗粒返回的DQ结果与生成CA做比对如一致则pass反之则fail。step6、重复step4/5需要重新调整phy发送CA pattern的delay直到比对一致phy记录当前的调整delay结果一般是一个窗口可取均值。step7、phy拉低DQ[11]发送NOPCK sync配置MR16进入normal mode退出CBT training。其中每次phy发送CA pattern前会先发VREFCA应该是颗粒内部有类似电压比较器可以更好的识别CA的电平。FSP_OP[0]boot频点大于18ns55MFSP_OP[1]频点1高频、中频FSP_OP[2]频点2高频、中频可在boot下训练完成后切到其他频点进行训练boot频点下完成对其他频点的MR设置。注CA pattern采样的比较需要phy内部判断颗粒只采样ca值然后回传数据到DQ。WCK2CK Leveling在CS/CBT training完成后颗粒端很正确识别命令类型phy发送MRW命令配置MR16使能WCK2CK Levelingphy发送带WS1WCK2CK Sync的WFF命令颗粒端采样到WFF命令后内部生成一个WLV pulsephy发送WCK等待WCK_t的最后一个toggle的上升沿采样到WLV pulse后延时tWLVO输出结果到DQphy采样DQ等到0到1跳变时记录对应的delay0然后继续调整delay等待DQ从1跳变到0时记录前一个delay1取均值(delay0delay1)/2phy发送MRW配置MR16进入normal mode退出wck2ck leveling。Duty Cycle MonitorDCMDCA code与DCM Flip结果对应关系WCK占空比调整需要频率大于1600M更新FSP_OP到目标频点phy发送一个带WS1(WCK2CK Sync)的CAS命令phy发送MRW命令配置MR26 OP[0]1b(DCM Start)等待tDCMM个CK周期phy发送MRW配置MR26 OP[1]1b(DCM Flip)等待tDCMO个CK周期颗粒反馈结果到DQ[2]输出等待tDCMM个CK周期phy发送MRW配置MR26 OP[1]0b(DCM Flip)等待tDCMO个CK周期颗粒反馈结果到DQ[3]输出phy采样到DQ[2]和DQ[3]同时为1时记录当前的级数得到对应DCA code也对应一个区间然后取均值。注调整DCM期间DCA code值固定如初始调整前DCA code-7调整MR26的Flip高低变化到7次时DQ[2]为1记录当前次数调整MR26的Flip高低变化到10次时DQ[2]为1DQ[3]为1记录当前次数一直到15次调整完记录DQ[2]和DQ[3]同时为1的次数区间推到出DCA code在[2,7]区间均值取DCA code4/5颗粒端采样WCK的占空比大于等于50%。可实现实时检测然后对应调整当前processtemperatureVoltage下的wck duty Cycle。Duty Cycle AdjusterDCAphy根据DCM的结果得到DCA codephy通过发送MRW命令配置MR45实现对wck duty cycle调整。Read DCA (Duty Cycle Adjuster)phy根据DCM的结果得到DCA codephy通过发送MRW命令配置MR46实现对read duty cycle调整。READ DQ CalibrationRDCMR16 OP[3]0bMR304hFDQ[11:8]翻转MR304h0DQ[11:8]保持原始输出不变 MR16 OP[3]1bMR304hFDQ[11:8]4h0MR304h0DQ[11:8]保持原始输出不变。MR16 OP[3]0bMR318hFFDQ[7:0]翻转MR318h00DQ[7:0]保持原始输出不变MR16 OP[3]1bMR318hFFDQ[7:0]8h00MR318h00DQ[7:0]保持原始输出不变。MR16 OP[3]0bDQ InvertYes表示MR30/MR31有OPcode位为1DQ InvertNo表示MR30/MR31有OPcode位为全0。MR16 OP[3]1bDQ output Data fix0Yes表示MR30/MR31有OPcode位为1DQ output Data fix0No表示MR30/MR31有OPcode位为全0。MR16 OP[3]0bDQ数据翻转总开关使能是否翻转还要取决于MR30/MR31对应的OPcode位是否为1 MR16 OP[3]1bDQ数据固定输出为0总开关使能是否fix0还要取决于MR30/MR31对应的OPcode位是否为1。MR30opcode位为0不翻转/不fix0opcode位为1翻转/fix0。MR31opcode位为0不翻转/不fix0opcode位为1翻转/fix0。phy发送MRW配置MR13选择目标频点FSP_OPphy可配置MR32/MR33/MR34设置输出到DQ上的24bit数据phy配置MR16 OP[3]选择RDC DQ mode1fix0/not0invert/notphy配置MR30/MR31配合MR16实现DQ不同数据输出phy内部需相同的配置phy发送RDC命令颗粒采样到RDC命令后等待RL个CK_t周期回数据到DQphy内部调整rdqs相对dq的延时采样dq输出dq结果与phy内部已知结果比对一致时记录当前delayfail后继续调整。注由于rdqs的在颗粒中还是wck生成所以本质上还是phy调整wck相对dq的延时进而使phy内部rdqs正常采样到dq数据。WCK-DQ TrainingRDC training调整完成后phy能够正常采样颗粒端回dq数据写过程需要颗粒端发送VREFDQ命令调整DQ电压phy发送WFF命令可发送两种类型数据WFF和WFF命令按BL24突发传输WCK:CK2:1则命令间隔最小是6CK周期如大于6nCK则有气泡先调整这种延时然后发WFF和WFF间隔为6nCK无气泡。phy内部调整wck相对dq的延时使颗粒端采样到WFF命令后在WL个ck后wck_t时钟正常采样到dq数据写入颗粒再通过RFF命令回读颗粒数据与已知发送数据比对完成写方向的dq调整。LP6简易状态跳转bank处于ilde状态下可完成对应命令发送bank被激活后可进行读写也可以对未激活的per-bank进行refresh需要对激活的bank进行刷新需要使用precharge使bank回到ilde状态。ROW操作行激活耗时tRAS可做precharge预充电预充电后需要tRPab(all bank precharge)、tRPpb(per bank precharge)时间后再做其他命令操作同bank激活(act a to act a)需要等待tRC等预充电完成后再激活同bank耗时tRCtRAStRPab/tRPpb。不同bank激活(act a to act b)耗时tRRD激活到读命令(act to rd)延时tRCDr读到预充电(rd to pre)延时tRTP。激活到写命令(act to wr)延时tRCDw写到预充电(wr to pre)延时WLBL/n_mintWTP。tRRD适用于不同bg下的相同bank相同bg下的不同bank。tFAW窗口内激活个数不大于4tFAWmin(4*tRRD)。读写操作前需要先对bank做激活开行操作激活操作根据bg/ba可分同bg/ba同bg不同ba不同bg同ba不同bg不同ba协议要求tFAW窗口内激活不同bank数不超过4个从时序分析读写效率如数据量大连续地址访问大于一次刷新时间只激活一个bank可完成刷新的内数据量读写需要关行prechargebank回到ilde状态然后发送刷新命令读耗时tRCDrtRTPtRPpb/ab写耗时tRCDwWLBL/ntWTPtRPpb/ab如激活2个banktRC远大于tRRD如调度配置合理可实现2倍效率即bank0进行刷新时bank1还在读写等bank1刷新时bank0可以读写。使用带atuo-precharge预充电的读命令读延时tRCDrnRTP。使用带atuo-precharge预充电的写命令写延时tRCDwWLBL/nnWTPtRPpb。DVFSL和Link Protection都不使能以6400Mbps为例BL24nRTP8nCK。以6400MbpsBL24为例tRTPmin(BL/n1.25nsWCK:CK2:1CK0.625nstCCD_L6nCKSame BG下BL/nMax(6,RU(tCCD_L/tCK)6nCKDifferent BG下BL/n6nCK所以tRTPmin(6nCK1.25/0.625)8nCK。DVFSL和Write Link Protection都不使能使用normal mode以6400Mbps为例BL24nWTP20nCK12.5ns。以6400MbpsBL24为例tWTPmin(max(12ns6nCK))12nsWCK:CK2:1CK0.625ns。随机地址访问访问粒度小且离散。带atuo-precharge的读命令延时tRCDrnRTPtRPpb/tRPab写延时tRCDwWLBL/n_maxnWTPtRPpb/tRPab。不带atuo-precharge的读命令延时tRCDrtRTPtRPpb/tRPab写延时tRCDwWLBL/n_maxtWTPtRPpb/tRPab。read/write操作data rate不管BL24same bg/different bgBL/n_min6nCKtWCKPST后拉低WCKBL24WCK:CK2:1对应到6nCK若第一写或读命令带WS1(WCK2CK Sync)命令间隔在WL/RL6nCKtWCKPST/CK内无需再发WS1WCK2CK Sync在同步周期内。Meta数据读写一个子通道X12突发BL24一次传输12bit*BL24288bit数据传输中带了meta数据但数据是否写入到内存阵列需要配合MR配置MR92 OP[7]1b使能System Meta mode配置MR95使能Segment对应的Bankmeta数据才能写入banknormal数据256bit32Bmeta数据16bit2Bpage划分64列中使能了meta后normal数据列地址在0x0~0x3B空间meta数据列地址在0x3C~0x3F空间配置MR92使能system meta mode可以将meta数据暂存到MDRmeta data register配置MR95使能Segment这里协议没有明确指出8bit的opcode与16bank的对应关系暂且认为是op[0]对应bank0/1op[1]对应bank2/3以此类推每个op管2个bankmeta数据从MDR写入到bank中。refresh操作刷新命令同时实现2个bank的刷新且同一个刷新命令下dBG0/dBG1和BG0/BG1不同但都是BG含义。如上refresh Counter为n时下发REFdb命令refresh bank分别是0/80对应{BG1,BG0,BA1,BA0}8对应{dBG1,dBG0,BA1,BA0}以此类推8个dual bank内不能出现2次如刷新了0/8不能再出现刷新0/8当8个dual bank未刷新完可发送refab命令使refresh counter重新开始8个dual bank的顺序可随机。刷新还支持推迟和提前最大支持8个推迟和提前这样也可以提高读写效率等到读写空闲时统一发送刷新命令。dual bank刷新不同bank相同行的刷新时间小于不同行的时间可根据需要配置不同映射。优化刷新进入自刷新清分三种情况a、进入自刷新前保证控制器和颗粒的刷新计数一致可在未刷完的8个dual bank后发送refab命令然后再发自刷新控制器下一次刷新可从8个dual bank中任意选择自刷新期间颗粒端可自行按协议时序要求进行刷新。b、进入自刷新前保证控制器和颗粒的刷新计数一致等待刷完8个dual bank后发自刷新控制器下一次刷新可从8个dual bank中任意选择自刷新期间颗粒端可自行按协议时序要求进行刷新。c、进入自刷新前保证控制器和颗粒的刷新计数一致8个dual bank未刷完已发自刷新控制器需要记录剩下待刷新bank等待退出自刷新后再启动未刷新bank刷新操作自刷新期间颗粒端可自行按协议时序要求进行刷新。Partial Array Self-RefreshPASRPartial Array Refresh ControlPARC支持对bank进行Refresh mask操作可实现减少刷新操作同时也无法对该bank Segment进行读写。power down操作self-refresh配合power down可实现在关闭ck时钟关闭VDDQ后颗粒自己刷新也可以实现切频操作。Alert OutputMR97和MR99配合实现不同类型的检测输出到alert信号。MBIST/mPPRmbist可用于检测阵列错误单比特错误多比特错误phy发送MRR命令读MR41 OP[1]1b支持mbistphy发送MRW命令配置MR41 OP[3:2]10b使能MBIST-Test配置MR42发送guard key序列拉高alert信号完成mbist-test检测读MR41的OP[6:5]判断检测结果若为10b/11b更换内存若为01b可执行MBIST-mPPR操作phy发送MRW命令配置MR41 OP[3:2]11b使能MBIST-mPPR配置MR42发送guard key序列拉高alert信号完成mbist-mppr完成读MR41的OP[6:5]判断检测结果00b则无错误若为01b重新执行mbist-test之后再mbist-mppr。
返回列表