Write Leveling是从DDR3开始引入的概念,为了解决DQS和CLK的edge alignment的问题。
  因为从DDR3开始采用了新的拓扑结构:fly-by。即多个DRAM放置在PCB上时(或多个die),地址线,控制线,时钟线采用fly-by方式进行布线,DQ,DQS和DMI还是采用点对点的布线方式。采用了fly-by的结构,CLK到达菊花链的各个die的时间是不一样的。具体而言,到达菊花链起始端会早些,到达末端会晚些,对于分布在链上的各个DRAM chip来说,不仅存在time skew,而且不同DRAM芯片(die)端的DQS对和CLK对的信号延时是不同的。
  所谓Write Leveling,即MC(Memory Controller)通过调节发出DQS的时间,来让各个DIE的DQS和CLK对齐,起到补偿skew的作用。
 总而言之,Write leveling作为业界标准解决方案,来解决PCB布线造成的时序问题。

1. 理解CLK-to-DQS的时序要求

DDR协议中定义了tDQSS时间,它限定了在写操作时的DQS和CLK上升沿之间的相对关系。
 tDQSS:DQS rising edge to CK rising edge, as described on Table 65 of JESD79-3C
 在JESD209-4B LPDDR4 spec的table 27中(如下表),tQDSS描述为 Write command to 1st DQS latching. 其实和上述同一个意思, 它必须在0.75~1.25个cycle之间,如果违背了就可能造成错误数据写入DDR中。


2. DDR布线拓扑结构

基本分为T型和fly-by, DDR3之前因为频率低,都是T型,DDR3开始在超过1Ghz时钟后,T型结构的眼图很差,而采用fly-by既可以节省布线空间,还可以改善信号完整性。
 在4个die以下时,T型和fly-by的差别不大,但超过四个die时,fly-by的优势比较明显。

Fly-By即指地址线,命令和clock在PCB布线时的fly-by拓扑结构,而DQ,DQS仍是端到端的形式,因此对于每一个DRAM,其Data Skew是不同的,因此需要做Write Leveling,来de-skew每个DRAM的skew。

3. Write Leveling 的training过程

Write Leveling的基本过程是,DDR进入Write Leveling后,用DQS的上升沿采样CLK信号的状态,然后将采样结果通过DQ pin 反馈给MC,MC根据收到的反馈结果后调整CLK-to-DQS的关系,将这个过程不断重复,直到training成功。
 LPDDR4的DQ[7:0]传输DQS[0]的反馈结果,DQ[8:15]传输DQS[1]反馈结果。也就是说LPDDR4的两个channel要独立的做Write Leveling,每个channel的16比特也要分两个byte lane来做。
  MC通过配置LPDDR4的模式寄存器MR2的OP[7]为1,来让LPDDR4进入write leveling模式。在该模式下,LPDDR4只允许接受DESLECT命令以及退出该模式的MRW命令。当Write Leveling操作完成后,MC使用MRW命令将MR2的OP[7]置0来使LPDDR4退出write leveling操作。
  Write leveling应该在write training(DQS2DQ training)前进行

LPDDR4的Write Leveling的具体过程如下(JESD209-4B的4.31):

  1. MC设置MR2-OP[7]使LPDDR4进入Write Leveling模式
  2. 一旦进入Write leveling模式,在tWLDQSEN时间后,MC必须驱动DQS到低电平
  3. 在tWLMRD时间后提供第一个DQS信号输入。tWLMRD是和不同的MC有关。
  4. 由于第一个DQS沿不稳定,所以DRAM或许能抓到第一个DQS沿,也可能抓不到,因此MC每次必须提供两个连续的DQS脉冲。每次由DQS沿采到的时钟电平都会被overwritten掉,DRAM会在tWLO时间后异* 步的通过DQ来反馈给MC。
  5. MC参考DRAM提供的反馈结果,来增到或减小DQS_t and/or DQS_C的延时设置。
  6. 重复第4到第5步,直到合适的DQS_t/DQS_c延时建立。
  7. 通过设置MR2-OP[7]=0, 退出Write-Leveling模式

参考文章
JESD209-4_LPDDR4
DDR4 SDRAM - Initialization, Training and Calibration
DDR3基本概念6 - Write leveling(写入均衡)
DDR Design: Write leveling for better DQ timing: from Mentor
DDR工作原理

版权声明:本文为CSDN博主「wonder_coole」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:LPDDR4的训练(training)和校准(calibration)–Write Leveling(写入均衡)

LPDDR4的训练(training)和校准(calibration)--Write Leveling(写入均衡)相关推荐

  1. 2021-07-15 深度学习服务器Linux终端网络训练training结果(顶会ECCV网络BiSeNet)

    1.网络BiSeNetV1训练training结果 训练集结果在好多个小时终于出来了哈哈哈哈,在迭代8万次之后结果如图: $ python evaluate.py --config configs/b ...

  2. 深度学习的不确定性(Uncertainty/confidence score)与校准(Calibration)

    目录 不确定性估计(uncertainty estimates) 什么是不确定性(uncertainty ) 不确定性的统计学定义 不确定性分类 什么是不确定性估计值(uncertainty esti ...

  3. 二值网络训练--Training Competitive Binary Neural Networks from Scratch

    Training Competitive Binary Neural Networks from Scratch https://github.com/hpi-xnor/BMXNet-v2 MXNet ...

  4. 2021-7-14 深度学习服务器Linux终端网络训练training(顶会ECCV网络BiSeNet)

    1.Linux终端执行: 通过readme.md文件的指示: 终端执行以下文件: bisenetv1 cityscapes Linux命令如下: export CUDA_VISIBLE_DEVICES ...

  5. [日常训练]training

    Description 一条线上有栋楼,第栋楼有层,每层有1个价值为的物品. 可以花费1个单位时间完成以下3种移动: 1.在同一栋楼中向上或者向下走一层; 2.如果此刻在顶楼,可以通往1楼; 3.从当 ...

  6. [DDR]2 - Initialization, Training and Calibration

    最近看到一篇比较好的ddr的文章,转在这里. DDR4 SDRAM - Initialization, Training and Calibration Introduction When a dev ...

  7. Pytorch 60分钟入门之(四) TRAINING A CLASSIFIER 训练一个分类器

    目录 TRAINING A CLASSIFIER 训练一个分类器 数据呢? Training an image classifier 训练一个图像分类器 1. 载入和归一化CIFAR10 2. Def ...

  8. 独家 | Python的“predict_prob”方法不能真实反映预测概率校准(如何实现校准)...

    作者:  Samuele Mazzanti 翻译:欧阳锦 校对:王可汗 本文约2300字,建议阅读8分钟 本文讨论了使用python中" predict_proba"的方法所生成的 ...

  9. 文献阅读(60)ACL2021-Attention Calibration for Transformer in Neural Machine Translation

    本文是对<Attention Calibration for Transformer in Neural Machine Translation>一文的浅显翻译与理解,如有侵权即刻删除. ...

最新文章

  1. 运维和开发慌了,Redis突然 慢 了,到底谁背锅?
  2. Ubuntu16.04系统下汉字显示为方框解决办法(图文详解)
  3. SQLSERVER中修复状态为Suspect的数据库
  4. Java基础篇(05):函数式编程概念和应用
  5. functools.reduce() 函数(不同于einops.reduce)
  6. for循环之性能优化
  7. crontab下执行设置壁纸出错问题
  8. iSPRINT:Google 最高能的创新加速课程,让你 5 天就能验证创业想法!
  9. 【No.4 变量作用域】
  10. Java引入依赖aar_Grade将依赖的jar 打包进aar
  11. Kerio Network Monitor
  12. 苹果提交版本后显示”缺少出口合规证明“的解决办法
  13. python 自动交易_Python自动化交易入门
  14. 群晖NAS教程(十五)、利用Web Station安装typecho博客
  15. java基础之ArrayLis类
  16. 推荐!这款3D全场景编辑器,能快速搭建三维大场景
  17. 网站订单销售统计电商后台前端模板
  18. iOS模拟器找不到证书?
  19. Java文件的上传和下载
  20. 数据库实验三 数据查询一

热门文章

  1. 离散数学5:二元关系
  2. MQL5 代码自动生成文档
  3. 简单的网络考试系统__java
  4. Appium-desktop的下载安装
  5. python交互模式下输出一首古诗
  6. python内置函数slice()
  7. 阅读vue3官方文档之摘录
  8. 我的3D游戏开发书架 1
  9. SpringBoot集成WebSocket实现及时通讯聊天功能!!!
  10. 通信接口:RS-232 / RS-422 / RS-485三者概述与区别