news 2026/6/13 7:09:56

3D NAND Flash手册阅读指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
3D NAND Flash手册阅读指南

首先是擦除操作(erase),擦除的基本单位是block
对于SLC模式,single-plane擦除命令帧格式为“A2h 60h 3addrs D0h 70h SR[2]” ,在具体执行过程中,发送70h询问命令执行状态,会返回80h,表示忙但未成功,主控会一直发送70h命令,直到返回成功执行结果

对于SLC模式,multi-plane擦除命令帧格式为“A2h 60h 3addrs 60h 3addrs D0h 70h SR[2]” ,plane地址不可以相同,对于sandisk这款芯片,最多可以同时擦除四个不同plane的block
其中plane的地址位在五位字节addr的第四个字节的第4位和第5位,第四个字节的6,7,8以及第五个字节是block位

对于TLC模式,因为erase operation的基本单位是block,在这个层面上,TLC和SLC没有什么大的区别,擦除操作命令和SLC相同、

擦除操作可以suspend和resume,例如当执行复位命令时,想要复位被中断的擦除操作,可以通过27h命令,后面再接60h 3addrs D0h

然后是读操作,读的基本单位是page

关于读操作,主控芯片只发送了地址,由存储器芯片来控制对外输出多少数据,一般为由指定的列地址开始输出数据,直到遇到该页的物理末尾,停止输出——也就是说,
读操作中,芯片不关心主控要读多少数据,它只会从指定列地址开始,一鼓作气输出到该页的物理末尾。主控必须提前知道页大小,并在读够字节后主动停止读取时钟

首先是Single-Plane SLC Page Read,命令帧格式为A2h 00h 5addrs 30h tRS 05h 5addrs E0h Dout

然后是Multi-Plane
SLC Page Read,命令帧格式(以2plane为例)为A2h 00h 5addrs 32h A2h 00h 5addrs 30h 05h 5addrs E0h Dout 05h 5addrs E0h Dout

在05h前,还有78h的出现,
命令发送:发送命令字节 78h
地址输入:发送 3 个地址周期
读取状态:完成地址发送后,设备即输出状态字节,其位定义与 70h 命令相同

接着是TLC Page Read,首先还是single-plane,因为TLC模式下的,同一个WL和String处有三个逻辑页,所以在读取时需要指定是三个逻辑页中的哪一个
使用01h/02h/03h来指定,对应命令帧格式为 01h 00h 5addrs 30h 05h 5addrs E0h Dout,这里01h虽然是代表地址,但却是以命令的形式被芯片读取的

TLC模式下的multi-plane读取,需要指定两个plane,所以00h也需要出现两次01h 00h 5addrs 32h 01h 00h 5addrs 30h 05h 5addrs E0h Dout 05h 5addrs E0h Dout

当你在 NAND Flash 读取操作中,
时钟输出数据超过了一个页的末尾
时,会发生以下情况:
直接后果:返回不确定的值
芯片的行为是
未定义的(Undefined)
,具体表现取决于厂商实现、芯片型号甚至温度电压条件。可能的情况包括:
可能的结果
说明
返回垃圾数据
输出随机的、无意义的数据(最常见)
返回全 0 或全 1
某些芯片会输出固定值
总线高阻态
芯片停止驱动数据总线,总线浮空
循环输出页数据
极少数芯片会从页开头重新开始输出
协议混乱
可能导致后续命令无法被正确识别
关键点
:你
无法依赖
任何特定的行为。即使在某颗芯片上测试出某种结果,换一颗相同型号的芯片也可能不同。
最后是编程操作Program,
基本单位是page
首先还是SLC模式下的single-plane操作,A2h前缀只需要在首个80h命令前即可
A2h 80h 5addrs Din 10h tPROGS 70h SR[2],这里Din在10h前,是因为数据要先写入页寄存器,发10h再触发数据从页寄存器写入存储阵列操作

接着是SLC模式下的multi-plane操作,多个不同平面写入使用11h做中间状态
A2h 80h 5addrs Din 11h tDCBSYW1 80h 5addrs Din 10h
tDCBSYW1
是一个技术参数,全称是
Data Cache Busy Time in Write Cache (following
11h
)
,中文可以理解为“写缓存模式下,
11h
命令之后的
数据缓存忙时间


它指的是在执行
多平面编程

缓存编程
操作时,闪存芯片内部的一段短暂、但必须由主机等待的
准备时间

其中,11h的作用是触发数据从缓存寄存器到数据寄存器,数据从主控芯片到存储器芯片的流程
主机 (Host)


┌─────────────────────────────────────────────────────────────┐
│ I/O 总线 (数据从主机进入芯片) │
└─────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────────────────────────┐
│ 1. 缓存寄存器 (Cache Register) │
│ - 面向主机,是数据的“第一站” │
│ - 可以被主机直接写入 │
│ - 容量 = 一个页的大小 │
└─────────────────────────────────────────────────────────────┘

│ (由 11h 或类似命令触发)

┌─────────────────────────────────────────────────────────────┐
│ 2. 数据寄存器 (Data Register) │
│ - 面向存储阵列,是烧录前的“最后锁存站” │
│ - 与闪存阵列直接相连 │
│ - 容量 = 一个页的大小 │
└─────────────────────────────────────────────────────────────┘

│ (由 10h/15h 触发,耗时 tPROG)

┌─────────────────────────────────────────────────────────────┐
│ 3. 闪存阵列 (NAND Array) │
│ - 实际的存储单元(浮栅晶体管) │
│ - 以 Word Line / Page 为单位组织 │
└─────────────────────────────────────────────────────────────┘

接着是TLC模式下的Single-Plane Program操作,需要前缀来指定逻辑页,
在 TLC NAND 的物理层操作中,一旦对一个 Word Line(WL)发起了编程,就必须
按顺序完整地写完它的 3 个逻辑页(Lower → Middle → Upper)
,否则该 WL 上的所有数据都
无法保证可靠性
,甚至根本无法正确读取

命令格式为01h 80h 5addrs Din 1Ah 02h 80h 5addrs Din 1Ah 03h 80h 5addrs Din 10h

接着是TLC模式下的Multi-Plane Program操作
01h 80h 5addrs Din 11h 01h 80h 5addrs(another plane) Din 1Ah
02h 80h 5addrs Din 11h 02h 80h 5addrs
(another plane)
Din 1Ah
03h 80h 5addrs Din 11h 03h 80h 5addrs
(another plane)
Din 10h

三个基本操作的命令格式以及对应timing diagrams差不多就是如此,还有涉及缓存的部分内容

其中SLC模式下 single-plane random cache read

最后是一些学习记录(由deepseek老兄帮忙总结)
一、两个核心寄存器(硬件基础)
每个 Plane 内部有两个独立寄存器:
寄存器
连接对象
作用
缓存寄存器 (Cache Register)
主机 I/O 总线
接收主机数据 / 向主机输出数据
页寄存器 (Page Register)
存储阵列
与阵列之间进行数据搬运(烧录/读取)
关键特性
:两个寄存器可以
并行工作
。一个在和主机通信,另一个可以在后台操作阵列。
二、缓存读 (Cache Read)
核心目的
:隐藏
tR
(页读取时间)的延迟。
命令
名称
作用
00h
+ 地址 +
30h
标准页读
首次启动,数据:阵列 → 页寄存器 → 缓存寄存器
31h
缓存读确认
触发下一页从阵列预取到页寄存器,同时将当前页从页寄存器搬到缓存寄存器供主机读取
3Fh
缓存读最后
结束缓存读序列,不触发预取
00h
+ 地址 +
31h
随机缓存读
跳转到任意指定页,然后继续流水线
05h
+ 列地址 +
E0h
修改列地址
在缓存寄存器内移动读指针(不搬数据,只动指针)
流水线原理

主机从
缓存寄存器
读当前页的同时
芯片在后台将下一页从
阵列
加载到
页寄存器
下一次
31h
时,页寄存器 → 缓存寄存器(翻页),同时开始预取再下一页
状态检查

SR[6]
= 缓存就绪(当前页可读)
SR[5]
= 阵列就绪(后台预取完成)
三、缓存写 (Cache Program)
核心目的
:隐藏
tPROG
(页编程时间)的延迟。
命令
名称
作用
80h
+ 地址 + 数据 +
15h
缓存编程确认
数据 → 缓存寄存器 → 页寄存器,启动后台烧录,
不等完成
就释放总线
80h
+ 地址 + 数据 +
10h
最终编程确认
最后一页,必须等待烧录完成才能继续
流水线原理

主机将下一页数据写入
缓存寄存器
的同时
芯片在后台将
页寄存器
中的上一页烧录到阵列
芯片内部自动排队:下一页自动等待页寄存器空闲
状态检查

SR[6]
= 缓存就绪(可接收下一页数据)
SR[5]
= 阵列就绪(后台烧录完成)——
最后一页必须等此位
四、多平面操作中的缓存
操作
并行的是什么
串行的是什么
多平面读
多个平面
同时
将数据从阵列加载到各自的页寄存器(节省
tR

主机通过
06h-E0h

串行
切换平面,从各平面的缓存寄存器读取数据
多平面写
多个平面
同时
将页寄存器中的数据烧录到阵列(节省
tPROG

主机
串行
将数据写入各平面的缓存寄存器
关键命令

32h
:多平面操作前缀(告诉芯片接下来有多个平面的地址)
30h
:触发多平面并行读取
06h-E0h
:选择要读取哪个平面的缓存寄存器
11h
:多平面编程中的中间确认(切换平面)
五、你澄清的关键理解
你曾经的疑问
正确的理解
05h
是把数据从哪搬到哪?
05h

不搬运数据
,只是移动缓存寄存器内部的
读指针
00h

05h
地址相同,为什么功能不同?
00h
设置
行地址+列地址
(选页+选页内偏移);
05h
只设置
列地址
(只移动页内指针)
多平面读中两次
E0h
不是串行吗?
数据从阵列→页寄存器是
并行
的(省
tR
);从页寄存器→主机是
串行
的(共享总线)
怎么知道第一轮数据烧录完成?
不需要知道
。芯片硬件自动排队,你只需按顺序发命令,最后等
SR[5]
1Ah
是什么?
TLC 编程中的
中间确认
命令,用于切换逻辑页(Lower→Middle→Upper)
六、快速命令参考卡
你想做的事
命令序列
顺序缓存读
00h
+地址+
30h
→ 等
tR

31h
→ 读数据 → 重复
31h
… →
3Fh
随机缓存读
00h
+地址A+
30h
→ 读A →
00h
+地址M+
31h
→ 读M → 后续可用
31h
顺序
同一页内跳读
05h
+新列地址+
E0h
→ 等
tWHR2
→ 读数据
缓存写(流水线)
80h
+地址A+数据+
15h

80h
+地址B+数据+
15h
→ … → 最后用
10h
多平面读
00h
+
32h
+地址0 →
00h
+
32h
+地址1 →
30h
→ 等
tR

06h
+
E0h
选平面 → 读数据
多平面写
80h
+地址0+数据+
11h

80h
+地址1+数据+
11h

10h
七、核心思想一句话
缓存操作的灵魂是“流水线”:让慢速的阵列操作(
tR
/
tPROG
)与快速的总线传输重叠进行。芯片内部的两个寄存器(缓存寄存器 + 页寄存器)是硬件基础,
15h
/
31h
/
11h
等命令是软件控制手段。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 7:05:53

球对称流形上的Sobolev嵌入定理与应用

1. 项目概述在微分几何与泛函分析的交叉领域,Sobolev嵌入定理是研究函数空间连续性关系的核心工具。特别地,当研究背景限定在具有对称性的黎曼流形上时,径向函数的特殊性质使得Sobolev空间理论展现出独特的简化形式。本文聚焦于球对称黎曼流形…

作者头像 李华
网站建设 2026/6/13 7:02:50

Python 高手编程系列八十六:首先要能工作

一个很常见的错误是,在编写代码时就尝试优化代码。这是没有意义的,因为真正的 瓶颈往往位于你从未想到过的地方。 应用程序通常由非常复杂的交互组成,并且,在真正使用它之前,我们不可能全面的 了解应用程序的功能。 当…

作者头像 李华
网站建设 2026/6/13 7:02:31

FPGA实战(05):基于Block Memory Generator的循环数据发生器设计

1 前言 在FPGA数字系统设计中,我们常常需要一个能够自动循环输出的数据源,例如DDS波形发生器、测试激励产生器或固定模式的查表模块。本文介绍一种非常精简的纯硬件实现方案:利用Xilinx Block Memory Generator IP 配合一个自由运行的地址计数…

作者头像 李华
网站建设 2026/6/13 7:02:22

GPT-4参数量真相:1.8万亿不是模型大小,而是训练地址空间

1. 这句话到底在说什么?先别急着转发,我们来拆开看看“GPT-4 Has 1.8 Trillion Parameters. It Uses 2% of Them Per Token.”——这句话过去两年在技术社区、自媒体和AI科普帖里反复刷屏,常被当作“大模型黑科技”的标志性论断:万…

作者头像 李华
网站建设 2026/6/13 7:01:56

遥感图像能源水利设施检测数据集VOC+YOLO格式2250张8类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):2250标注数量(xml文件个数):2250标注数量(txt文件个数):2250标注类别…

作者头像 李华