0%

Nand Training Feature

Training features shown in this section shall be supported by NAND devices operating over 800MT/s in heavily loaded systems.

ZQ校准

ZQ校准是什么

ZQ校准是一种电子调整过程,用于精确设定芯片输入/输出接口的电阻值,以确保在高速数据传输中信号清晰稳定,减少错误。ZQ校准就是这个“调音师”,它使用一个外部精密参考电阻作为“标准音叉”,来校准芯片内部电路这个“乐器”的音准(电阻值),无论环境如何变化,都能保持最佳性能。

ZQ校准的作用:它是一个动态、持续的过程。内存控制器会在初始化、退出低功耗状态、或者定期发起ZQ校准命令,让内存芯片根据当前的实时温度和电压重新进行校准,确保从轻载到重载的全工况下都能保持最佳状态。

Nand 端ZQ校准

对于超过400MT/s速度的NV-DDR3接口,ZQ校准是可选的,但推荐使用。对于NV-LPDDR4接口,无论数据速率如何,都需要进行ZQ校准。

ZQ校准分为长校准和短校准。

两者区别如下:

特性 长校准 短校准
主要目的 全面、精确的校准,建立初始基准或应对重大环境变化 快速、局部的微调,跟踪和补偿微小的漂移
触发时机 1. 上电初始化(Power-On)
2. 退出自刷新模式(Exit Self-Refresh)
3. 温度发生剧烈变化后(由传感器检测)
4. 可能由软件手动触发
正常激活状态(Active状态) 下,由内存控制器定期发起
校准时长 较长(通常是时钟周期的数百倍,可以通过看RB拉低时间) 非常短(通常比长校准短一个数量级)
功耗影响 相对较高,因为需要启动完整的校准电路并持续较长时间 非常低,因为只是对当前设置进行小幅修正

长校准时序:

短校准时序:

注意事项:

  1. 在tZQCL或tZQCS期间,控制器不得对NAND通道(即数据总线)执行任何操作,包括读取状态。

  2. 如果需要使用ZQ校准时,需要注意主控端应当同步进行ZQ校准。

  3. 目前大多数切高速的流程中加了ZQ校准流程(ZQ长校准),但是实际高速运行过程中,是否需要加入定时的ZQ短校准,可以根据实际情况提出方案(一般不考虑)。

  4. 如果需要使用ZQ短校准,应该需要注意时间间隔。

  5. ZQ校准时,需要将DQ配置为High阻抗。

ZQ校准和驱动强度的关系

驱动强度好比音响的音量旋钮,决定了输出信号的“推力”或“力度”。而ZQ校准则像一个专业的音响系统校准程序,它能根据现场环境(温度、电压)的变化,自动调整每个扬声器的音量和音色,确保无论处于音乐厅还是露天场地,播放效果都清晰精准、不失真。

注意:目前DataSheet在配置驱动强度和ZQ校准上没有明确先后顺序要求,但是在高速流程图里,是先设置驱动强度再去配置ZQ校准。

DCC Training

NAND Flash 中的 DCC Training(Duty Cycle Correction Training,占空比校正训练)是一项用于提升高速NAND接口数据传输可靠性的关键技术。它主要用于校准信号RE_t/c的占空比,以提供最佳的数据采样窗口。

FW可以发出以下两种时序,查询SR[0]的结果来确认当前RE_t/c是否能够正常使用。如果SR[0] == 1,需要调整占空比后,重新发起。

该training可以理解为给没有LA和示波器的用户使用,原则上,有这些可以抓信号的仪器的话,这个可以提前配置至符合Nand需求。

DCC Training 的两种方式

DCC Training Using Set Feature

FA 20h 的P1用于配置DCC Training相关参数。具体时序如下,Data长度为Page Size

DCC Training by using Command

Read DQ Training

Read/Write Training 的核心目的是通过校准DQ(数据)与 DQS(数据选通)的时序偏移、NAND / 主机的内部参考电压(VrefQ),确保高速读写时数据采样准确,仅适用于 NV-DDR3 和 NV-LPDDR4 接口。

如上图可见,FW读取数据时,DQS的边沿并不是恰好指向DQ中间,两者可能会有一个gap(专业术语叫相位偏移)。如果gap比较大,且FW没有采取任何措施的话,那么可能会造成采样出错。

由于FW无法改变Nand发出的时序,因此FW需要通过不断地进行read data训练,寻找一定规律,确认Nand发出的DQ和DQS之间的gap大致是多少,并调整FW接收端的DQ和DQS的delay。

当前常见确认delay的方法是:找到左右边界然后取中间值。

Read DQ Training是Nand厂家提供用于进行Read Training的一个方法。相关时序如下:

Nand反馈的数据是一个相对固定的值,具体数据由发出去的ADDR决定(Inverse Set/1st Pattern/2nd Pattern)。

以下为官方提供的一个Inverse Set = 0x35; 1st pattern = 0x5A;2nd pattern = 0x82时,FW发送62h nand吐出的数据内容:

需要注意的是,Nand吐出16Byte还是32byte的数据,可以通过set feature FA 20h P3来决定。

Internal VrefQ Training(DDR4 Only)

在NV-LPDDR4模式下,NAND内部VREFQ校准是提升高速信号完整性的必要条件。通过写入DQ训练中的连续读写操作配合内部VREFQ校准,可实现对VREFQ的精准校准。

Internal VrefQ Training是通过遍历设定值,找左右边界取中间得到一个比较合适的Vref。当前Internal VrefQ Training需要通过Write Training配合进行,因此具体操作可参考下一个章节的Write Training。

Write Training

为什么需要Write Training

Write Training与Read Training一样,DQS与DQ存在Gap。与之不同的是,Write Training是为了纠正主控发送给nand端的DQS与DQ之间的Gap。相关原理方面细节可参考Read Training。

Write DQ Training

Write DQ Training为Nand提供给FW进行Write training的接口,参考时序如下:

  • 63H CMD用于Host发送数据给Nand。
  • 64H CMD用于Host读取写入到Nand的数据。

Write Training Data size可以通过20h P3进行配置:

FW是通过读取写入的数据是否与预期一致来判断Write DQ training是否通过。

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment