【FLASH存储器系列九】ONFI数据接口详述之二

news2025/1/18 10:52:25

目录

1.1 总线状态

1.2 ZQ校准

1.3 CE_n引脚缩减机制

1.4 差分信号

1.5 Warm up周期

1.6 从SDR到NV-LPDDR4的技术发展总结


1.1 总线状态

        SDR 的总线状态:

        NV-DDR总线状态:值为11b的ALE/CLE 用于数据传输。总线状态在CLK的上升沿开始,持续一个完整的CLK周期。因此,对于数据周期,每个总线状态会有两个数据输入周期或两个数据输出周期。 Idle总线状态用于在一个命令周期、地址周期或一个数据流(stream of data)之后中止 DQ 总线上的操作。CE_n 的值仅可在总线状态为 idle(例如, ALE 和 CLE 都被清为 0)且该时钟周期内没有数据传输时被改变。

        NV-DDR2、NV-DDR3NV-LPDDR4总线状态:

1.2 ZQ校准

        ZQ 校准是可选的,但对超过 400MT/s 速度的 NV-DDR3 接口是推荐的。ZQ校准对 NV-DDR2 接口是可选的。对于ZQCL(ZQ long calibration),ZQ校准是通过发送F9h命令来执行的,而对于ZQCS(ZQ short calibration),ZQ 校准是通过发送 D9h 命令执行的。 ZQ 校准用来校正 NAND Ron&ODT 的值。在初始化阶段需要比较长的时间来校正输出驱动和on-die termination电路,相对地,执行定期校正的时间会较短。

1.3 CE_n引脚缩减机制

        在高容量的设计中可能会有很多数量的 CE_n 引脚,这种设计会包含有很多 NAND 封装,每个封装有2到8个CE_n引脚。 CE_n引脚reduction机制可以让host的单个 CE_n引脚被多个NAND target复用,因此可以使Host需要的CE_n引脚数目大大减少。 CE_n引脚reduction机制可以使用在数据接口(SDR、NV-DDR、NV-DDR2、NV-DDR3、NV-LPDDR4)中。CE_n引脚reduction机制在初始化过程中,为每个 NAND target指定一个Volume地址。初始化完成后, host可以通过Volume选择命令来寻址特定的 Volume(例如,NAND target)。下图展示了一个使用CE_n引脚reduction机制的拓扑的例子。每个NAND封装都增加了ENi和ENo引脚(支持此机制的nand芯片要有这两个引脚),NAND 封装之间使用daisy chain连接。 Chain中第一个NAND封装的ENi没有被连接,而其它所有NAND封装的Eni引脚都连到前一个封装的ENo引脚。

        下图展示了一个更复杂的拓扑。该拓扑中,多个 NAND target可以被连接到一个host CE_n信号上。

        不是所有的拓扑都支持CE_n缩减机制。如果同一个nand封装内的两个nand target共享相同的数据总线,这时每个target应有一个独立的片选信号出到芯片封装外,host应使用不同的CE_n信号分别连接这两个nand target。

        Eni的状态决定了此时的nand芯片能否接收指令。Eni在封装内是上拉的。如果Eni为高,且片选CE_n为低,这时就nand target可以接收指令。如果Eni为低,这时就nand target不可以接收指令。注意:芯片上电后的第一个指令是一个特殊场景,这时走的是初始化流程,详见3.5.2。

        当CE_n为低并且NAND target没有被指定Volume地址时,ENo被device驱动为低。当与 NAND target关联的 CE_n为低并且该 NAND target被指定了一个Volume地址时, ENo被device驱动为三态(这样做相当于前一级的volume地址被指定后,下一级才能访问,这有点不合理)。当共享一个ENo信号的所有目标NAND 的 CE_n 信号为高时,ENo被device驱动为三态。注意,在Volume 地址被指定后,Eno会被下一个封装的Eni拉高。

        当一个Volume地址被指定给一个NAND target后,该Volume地址会变为取消选择状态(deselected),并忽略 ENi引脚直到下一个电源周期。

        为了被选定来处理命令,一个Volume选择命令应该被发送到host对象,该Volume 选择命令使用之前被指定的Volume地址。在CE_n信号被拉高tCEH时间后,Volume上所有LUNs 返回之前的状态(参见 3.2.4)。

1.4 差分信号

        一种用于高速操作的方法,使用RE_n和DQS的差分信号。一个互补的RE_n和互补的DQS信号构建的差分信号对(RE_t/RE_c 和 DQS_t/DQS_c)。差分信号可用于通过增强抗扰度(enhanced noise immunity)来提高信号完整性,还可以补偿因环境变化造成的边沿变缓或变陡。只有NV-DDR2、NV-DDR3和NV-LPDDR4接口支持差分信号。

        device是否支持差分RE_n或差分DQS信号报告在参数 page 中。默认情况下,差分信号是被NV-DDR2、NV-DDR3 disable的,而NV-LPDDR4差分信号是强制使能的。Host可以通过NV-DDR2/NV-DDR3的配置特性(Configuration feature)来配置devic以使用差分信号,参见 5.31.2。互补的 RE_n(如 RE_c)和互补的 DQS(如 DQS_c)信号是单独被配置/使能的。

        当选定的接口是NV-DDR2或NV-DDR3时,在 NV-DDR2/NV-DDR3 的配置特征(Configuration feature)中使能差分信号,差分信号有效。在使能NV-DDR2接口前,推荐使用 SDR 接口来配置 NV-DDR2/NV-DDR3的配置特征(Configuration feature)。 NV-DDR2/NV-DDR3 Configuration feature 中的差分信号设置状态被改变后,host应在发送接下来的命令之前,将 CE_n 转为高,以避免任何信号完整性的问题。

        如果执行了RESET(FFh)操作,则差分信号会被disable。同步Reset(FCh)和Reset LUN(FAh)不影响差分信号。

1.5 Warm up周期

        为了支持高速操作,在数据输出和数据输入时引入了warmup周期。Warmup周期仅在N-DDR2、NV-DDR3、NV-LPDDR4 接口中支持。数据输出/输入的 warmup 周期在一个数据输出 burst 开始时提供了 RE_n 以及对应的 DQS 的额外(extra)跳变。这个额外的 RE_n/DQS 跳变期间不会有任何数据传输。 额外周期的数目通过 NV-DDR2/NV-DDR3/ NV-LPDDR4 的配置特征地址(Configuration feature address)来设置,参见 5.31.2。周期数的定义包含一个完整数据输出周期(RE_n 和 DQS的上升沿及下降沿)。对数据输入和数据输出来说,warmup周期都是可选的,如果使用了 warmup 周期,不需要配置为相同值。

        warmup 周期适用于所有命令,包括SDR命令(参见4.4)。当某种数据传输类型使能了 warmup 周期,则 warmup 周期应该在该类型中每个数据突发开始时开始。如果 host 暂停了数据传输,之后有重新恢复了传输,在此期间没有退出并重新进入数据突发,在这种情况下,host 不能再次发送 warmup 周期。退出和重新进入数据突发的操作通过拉高 ALE、 CLE 或 CE_n 来执行(不使用 WE_n 来锁存)。如果暂停数据传输一段时间后又恢复传输时没有重新发送warmup 周期,则 host 要小心避免信号完整性问题。

        warmup 周期在选中 NV-DDR2 或 NV-DDR3 接口后有效,并通过 NV-DDR2/NV-DDR3 的 Configuration feature 来使能。对于NV-DDR2,推荐使用SDR接口来设置NV-DDR2/NV-DDR3 Configuration feature。如果在NV-DDR2或NV-DDR3有效时使能了 warmup 周期,则在 Set Feature 命令完成后, warmup 周期可以用于接下来的所有命令。下图展示了一个数据输出时 warmup 周期的例子,该例中 warmup 周期数为 2。如图所示,数据的第一个 byte在 DQS 的第三个上升沿开始传向host。

1.6 从SDR到NV-LPDDR4的技术发展总结

        为了满足nand flash容量越来越大、接口速率越来越快、传输可靠性要求越来越高,ONFI规范从1.0到5.1逐步引入了一些新技术,这些新技术的引入和DDR SDRAM的接口技术发展路线有点相似,在此将这些新技术一一列举,可能不全,欢迎补充。

1、由异步传输变为同步传输,单边沿采样变为双边沿。

        ONFI 1.0定义的就是异步的SDR接口,使用异步信号WE_n、RE_n控制命令、地址、数据的输入和输出。ONFI 2.0,为了提升采样率,使用了双边沿采样模式,如果仍使用WE_n、RE_n的双边沿进行采样,由于每个数据输出到每个IO延时是不一样的,尤其是读的时候,host发出的RE_n信号不清楚flash各个IO的输出时间,这就导致时序裕量很难满足,于是采用了同步时钟设计,引入了CLK,为了区分数据的传输周期,还引入的DQS,CLK和DQS对齐,读操作时,DQS由flash器件发出,与DQ边沿对齐,host端将DQS delay 1/4周期后进行数据采样,写操作时,DQS由host发出,与DQ中心对齐,flash直接使用此DQS信号进行采样。这个处理方式与SDRAM到DDR的升级是一样的,只是CLK和DQS还不是差分信号。

2、引入差分信号,在NV-DDR2之后,DQS和RE_n为差分信号。

        差分信号由于数据是在时钟的上下沿触发,造成传输周期缩短了一半,因此必须要保证传输周期的稳定以确保数据的正确传输,这就对采样信号的上下沿间距有了精确的控制的要求。一般说来,由于运行环境的变化,DQS的上下沿间距可能发生变化,此时与其反相的DQS#就起到纠正的作用,因为,DQS上升沿快下降沿慢,DQS#则是上升沿慢下降沿快。也就是,与DQS反相的DQS#保证了触发时机的准确性。

3、在NV-DDR2之后引入片on die termination和ZQ校准,能够在高速传输时提升信号完整性。

4、在NV-DDR3之后增加读写训练、VREFQ训练和均衡,进一步提升信号完整性。

5、在NV-LPDDR4增加DBI,降低运行功耗。

6、供电从3.3、1.8到1.2,降低运行功耗。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/9974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最高效“双11”背后:圆通更不一样了

每年的“双11”都是一场看不见硝烟的战争,有人守着直播间抢货,也有人守着电脑追发货。 河南商丘大学城附近的某电商老板陈泽宇就是后者中的一员。每年“双11”他都高度紧张,提前许多天就开始备货,每天既要紧盯前台销量数字&#…

Leetcode 学习记录 数组与字符串

基础不牢,地动山摇。这句话就是描述我现在的阶段,虽然这些天在csdn的练习上进展还比较顺利,但是内心还是没有底的。实话说,csdn的练习题和leetcode上的比起来,还是真的相差很远。可能是不和口味吧。我还是比较喜欢Leet…

厉害了我们的“中国制造”,新能源“智造”强大到你想象不到

“中国制造”是近日的一大“热词”。 “中国制造”的新能源汽车花式“出海”,产销量连续7年位居全球首位;“中国制造”的过冬八件套反向海淘,订单暴增;“中国制造”的高铁首次全产业链“出海”…… 显而易见,当前是中国…

Unity导表工具Luban插件的数据加载原理与优化

文章目录1. 配置Luban并测试2. Luban 数据加载原理3. 根据工程进行懒加载优化3.1 增加公共接口与接口实现方法3.2 外部提供获取数据的方法3.3 对Luban中的导表模板进行修改4. 优化后测试如果初入坑,Luban配置可以参考宝鱼大佬的视频教程 强力配置工具luban使用教程【…

消除卡顿 mac MATLAB2022b m1/m2原生下载安装 教程

目录 1、版本说明 2、下载链接 2.1、百度网盘链接 2.2、官网下载链接 3、安装 1、版本说明 之前苦于安装matlab 2022b的Intel Rosetta转译版本,真的是明显感受到了卡顿,今天终于等到了2022b的原生版本,安装后占用10.09G内存。 ​​​​…

0096 克鲁斯卡尔算法,迪杰斯特拉算法

/* * 克鲁斯卡尔算法 * 1.用来求加权连通图的最小生成树的算法 * 2.思想:按照权值从小到大的顺序,选择n-1条边,并保证这n-1条边不构成回路 * 3.先构造一个只含n个顶点的森林,依权值从小到大从连通网中选择边加入到森林中 * …

web自动化测试-webdriver实现

webdriver实现基本语法1.Select下拉列表1.1下拉列表单选1.2下拉列表多选2.非Select下拉列表3.文件上传1.1input单个文件上传1.2input多个文件上传1.3非input文件上传1.Select下拉列表 1.1下拉列表单选 from selenium import webdriver from selenium.webdriver.support.ui imp…

GPU驱动及CUDA安装流程介绍

安装前准备工作 确认GPU型号和操作系统版本   准备gpu驱动和CUDA软件包   在nvidia官网进行驱动包下载   GPU驱动下载链接    Linux系统均选择 Linux 64-bit、CUDA Toolkit选择最新版本   注意该版本一定要大于等于cuda软件的版本。   选择CUDA及GPU驱动版本&#…

m基于matlab的TDSCDMA系统性能仿真

目录 1.算法概述 2.仿真效果预览 3.核心MATLAB代码预览 4.完整MATLAB程序 1.算法概述 TD-SCDMA的中文含义为时分复用同步码分多址接入,是由中国第一次提出、在无线传输技术(RTT)的基础上完成并已正式成为被ITU接纳的国际移动通信标准。这是中国移动通信界的一次…

解读ESSumm: Extractive Speech Summarization from Untranscribed Meeting

ESSumm: Extractive Speech Summarization from Untranscribed Meeting 从非转录会议中提取语音摘要(非转录:原音频,没有转化为文本或者其他格式) 论文地址 https://arxiv.org/abs/2209.06913 摘要 在本文中,我们为…

JS中的迭代器、可迭代对象、生成器

迭代器 迭代器(iterator),是使用户在容器对象(container,例如链表或数组)上可以遍历访问的对象,使用该接口无需关心容器对象的内部实现细节。 从上面定义上来看,迭代器是帮助我们对…

SpringMVC 源码学习 返回值处理

SpringMVC中对返回值的数据基本分为两类&#xff1a; 1、响应数据 2、响应页面 一、响应数据 响应数据大多数都是将返回值的格式转换为JSON格式然后展示在页面或者保存i起来。 第一步&#xff1a;在SpringBoot中需要引入json场景 <dependency><groupId>org.sprin…

如何设计存储架构

步骤 步骤1&#xff1a;估算性能需求 任务 基于具体的业务场景来估算性能需求&#xff0c;包括存储量、读写性能等 挑战 不知道如何估算担心估算不准 步骤2&#xff1a;选择存储系统 任务 根据技术储备、方案优缺点选择合适的存储系统 挑战 不知道有哪些存储系统知道…

UG NX二次开发(C#)-UI Styler-批量选择点

1、前言 在设计UG NX的对话框界面时,有时需要选择点,在UI Styler编辑器中已经设置好了可以指定点选择按钮,这个点选择对话框是单选,不是多选的,如果想选择多个点,那么可以采用对象选择按钮,本文介绍下选择点的操作。 2、指定点按钮 2.1 设计UI Styler UG NX的UI Sty…

vscode中Emmet语法的使用

每篇博文的浪漫主义 【镰仓旅拍|落日绝景 极致画质|沉浸式旅行 FX3】 https://www.bilibili.com/video/BV1jg411Y7vC/?share_sourcecopy_web&vd_source385ba0043075be7c24c4aeb4aaa73352 镰仓旅拍|落日绝景 极致画质|沉浸式旅行 FX31.1快速生成HTML结构语法 生成标签直接…

想要彻底卸载Mac应用程序,还得要用这些方法才行

Mac电脑如果有太多无用的应用程序&#xff0c;很有可能会拖垮Mac系统的运行速度。因此&#xff0c;卸载电脑中无用的软件是优化Mac系统运行速度的最佳方式之一。Mac删除应用程序特别简单&#xff0c;长点击应用点击x&#xff0c;或是直接将应用拖进废纸篓。但是有一些应用长按没…

Qt——(详细)“项目在Debug构建环境下能运行而在Release构建环境下不能运行”解决方案之一,以及 禁用(黄色)警告

系列文章目录 提示&#xff1a; 文章目录系列文章目录前言环境一、问题准备工作——为了在Release环境下可以进行断点调试分析二、解决1、根据需求&#xff0c;对函数类型进行更改2、根据需求&#xff0c;在函数内添加“return [int]”延伸——“禁用警告”消除 变量 的“黄色感…

现代修谱,如何看待支系单飞的现象?

族谱与支谱、房谱的区别 现代修谱&#xff0c;修的是什么谱&#xff0c;你知道吗&#xff1f;其实现代修谱的种类有很多种&#xff0c;有支谱、房谱、族谱、宗谱、统谱、通谱等等&#xff0c;而这些在生活中都被我们简称为家谱。 不过在现代修谱里&#xff0c;宗谱、统谱、通谱…

极智编程 | 谈谈 C++ 中容器 map 和 unordered_map 的区别

欢迎关注我的公众号 [极智视界]&#xff0c;获取我的更多笔记分享 大家好&#xff0c;我是极智视界&#xff0c;本文来 谈谈 C 中 map 和 unordered_map 的区别。 map 和 unordered_map 都可以看做是一种 key-value 的映射关系&#xff0c;unordered_map 可以理解为 无序版的ma…

C语言 数组

C语言 数组一、一维数组1. 数组的创建方式程序清单1程序清单22. 计算数组的元素的个数3. 数组在内存中的存储方式二、二维数组1. 二维数组的创建方式2. 计算二维数组的行和列3. 二维数组在内存中的存储方式三、数组名的含义总结数组名的应用场景数组名作为函数参数一、一维数组…