【FLASH存储器系列十】Nand Flash芯片使用指导之一

news2025/8/7 16:39:12

目录

1.1 芯片简介

1.2 功能框图

1.3 存储结构

1.4 信号定义

1.5 双平面(plane)操作

1.6 Die间交错操作

1.7 错误管理


      

        今天以MT29F8G08AJADAWP芯片为例,说明nand flash的操作方法。

1.1 芯片简介

        这是一款镁光的容量8Gb,总线位宽8位的SLC NAND Flash,兼容ONFI 1.0标准。芯片内包含两个die,每个die为4Gb,每个die有两个plane,每个plane为2Gb,每个plane有2048个block,每个block为128K,每个block有64个page,每个page为2K,以上容量不包含每页用来存储坏块信息和ECC信息的spare area。

1.2 功能框图

1、I/O control:数据、命令、地址的输入输出口;

2、Status Register:片内的状态寄存器;

3、Command Register:命令锁存寄存器;

4、Address Register:地址由地址寄存器锁存并发送到行解码器以选择行地址,或发送到列解码器以选择列地址;

5、Control Logic:解码总线状态,判断当前属于地址输入、命令输入、或是数据输入输出周期;

6、存储阵列:两个plane,上图仅为芯片其中一个die;

7、Row decode:行地址解码;

8、column decode:列地址解码;

9、Data register:数据寄存器;

10、Cache register:缓存寄存器;

11、ECC:进行数据校验。

        注意:数据寄存器和缓存寄存器可以单独操作,在缓存操作命令下,如页缓存读、页缓存编程,可以提升数据吞吐量。这个和CPU的cahe原理是一样的。

1.3 存储结构

        Die、plane、Block、page前文已经说明,大家对照下图可以清晰地明白,不再赘述。这里说明一下每个plane上的数据寄存器和缓存寄存器,普通的页编程、页读取不需要经过数据寄存器,外部结构通过缓存寄存器直接和存储阵列交互。但是外部接口速率和存储阵列的读写速率相对较慢,以编程操作为例,如果要等外部数据全部输入进缓存寄存器,再由缓存寄存器往存储阵列里写,耗时较长,这时增加一个数据寄存器,在外部数据全部输入进缓存寄存器后,将数据拷贝到数据寄存器,然后在数据寄存器往存储阵列写数据期间,外部接口可以开启下一页数据往缓存寄存器里写,如此反复,则可以提升数据吞吐量。

1.4 信号定义

        信号定义如下表,其中CE#和R/B#分别有两个引脚,分别对应两个die:

1.5 双平面(plane)操作

        每个NAND闪存逻辑单元(LUN)被划分为多个物理平面。每个平面包含独立于其他平面的高速缓存寄存器和数据寄存器。这些平面通过低位的块地址位寻址。如存储结构图中的Note所示。

        双平面操作通过在多个平面上执行并发的读取、编程或擦除操作,更好地利用了这些物理平面上的NAND闪存阵列,显著提高了系统性能。两个平面之间的操作必须是相同类型的;例如,不能在一个平面上执行PROGRAM操作而在另一平面上执行ERASE操作。

        当发出双平面编程或擦除操作时,使用READ STATUS(70h)命令并检查先前的操作是否失败。如果READ STATUS(70h)命令指示发生错误(FAIL=1和/或FAILC=1),则使用READ STAUTS ENHANCED(78h)命令确定哪个平面操作失败。

1.6 Die间交错操作

        在有多个die的芯片中,可以通过die间交错操作提升性能。交错操作是在一个die繁忙(RDY=0)时向空闲die(RDY=1)发出的操作。但在RESET(FFh)、读标识(90h、ECh、EDh)和特性配置(EEh、EFh)操作之后,直到目标上所有die的ARDY=1之前,禁止多die交错操作。

        在交错操作期间,有两种方法可以确定操作是否完成。R/B#信号指示对应die何时完成其操作。当任何die忙时,R/B#保持为低。当R/B#变高时,对应die处于空闲状态,操作完成。或者,也可以通过READ STATUS ENHANCED(78h)命令单独报告每个die的状态。

        如果裸片(LUN)正在执行高速缓存操作,如页高速缓存编程(80h-15h),则当状态寄存器位6为1时(RDY=1),裸片(LUN)能够接受另一高速缓存操作的数据。所有操作(包括高速缓存操作)在状态寄存器位5为1时(ARDY=1)在裸片上完成。

1.7 错误管理

        通常Nand Flash出厂时就有可能存在缺陷,同时这种缺陷会影响块擦除,这样的缺陷被称为坏块。所以这时就需要坏块管理和纠错算法来保证数据的完整性。

        每个block的第一个(规范规定可以是第一个也可以是最后一个)page中有64字节的spare area,可用来标记坏块。如果一个块是有缺陷的,并且使用 8-bit 数据访问方式,则制造商应该通过设置有缺陷的块的第一个(或者最后一个)page 中,缺陷区域(这个缺陷区域规范中没有明确是什么地址)的第一个Byte 为00h,来标记有缺陷的块。如果一个块是有缺陷的并且使用16-bit数据访问方式,则通过设置缺陷块的第一个(或最后一个)page 中,缺陷区域的第一个word 为 0000h,来标记有缺陷的块。

        主机软件在对nand flash进行编程或擦除前,应先到每个block的第一个page First spare area location进行检查,判断哪些block是坏块,然后生成一张坏块表。

        为了保证数据的完整性,建议做如下操作:

        1、在编程和擦除操作后检查状态;

        2、在典型场景下,使用最小ECC要求;

        3、使用坏块管理机制和磨损均衡算法;

Description

Requirement

Minimum number of valid blocks (NVB) per LUN

4016(出厂时好块不能低于4016)

Total available blocks per LUN

4096

First spare area location

x8: byte 2048
x16: word 1024

Bad-block mark

x8: 00h
x16: 0000h

Minimum required ECC

4-bit ECC per 528 bytes

Minimum ECC with internal ECC enabled

4-bit ECC per 516 bytes (user data) + 8 bytes (parity data)

Minimum required ECC for block 0 if PROGRAM/ERASE cycles are less than 1000

1-bit ECC per 528 bytes

        芯片的大致功能介绍到这里,下一讲分享部分重要的操作指令,敬请期待!

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

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

相关文章

功能上新 | Magic Data Annotator智能出行舱内舱外全场景标注

随着人工智能、互联网、大数据、5G等新技术应用和汽车产业变革的蓬勃兴起,智能汽车已成为汽车产业发展的重要战略方向。目前,智能驾驶已经成为目前车企营销的核心竞争力。在人车协作过程中,智能汽车最重要的功能就是车舱内外视觉功能&#xf…

Redis入门

目录 NoSQL概述 什么是NoSQL? 为什么要用NoSQL? NoSQL 的特点 NoSQL的四大分类 Redis入门 概述 基础知识 五大数据类型 Redis——Key String(字符串) List(列表) Set(集合) Hash(哈希) Zset(有序集合) 三种特殊数据类型 Geospatial 地理…

冯诺依曼体系结构、操作系统的认识

目录前言1️⃣ 冯诺依曼体系结构1.1 基本概念1.2 存储器的作用1.3 CPU的指令集1.4 实例2️⃣ 操作系统2.1 概念2.2 如何理解“管理”2.2.1 管理的本质2.2.2 管理的方法2.3 系统调用总结前言 💭本文是对计算机底层学习的初步认识的知识铺垫,初步了解冯诺依…

高等数值计算方法学习笔记第4章第二部分【数值积分(数值微分)】

高等数值计算方法学习笔记第4章第二部分【数值积分(数值微分)】四、龙贝格求积公式(第三次课)1.梯形法的递推化 (变步长求积法)2.龙贝格算法五、高斯求积公式1.一般理论(1定义1例题)2.构造高斯求积公式方法(二&#xf…

0098 蓝桥杯真题01

import java.util.Calendar; /* * 世纪末的星期 * 曾有邪教称1999年12月31日是世界末日。当然该谣言已经不攻自破。还有人称今后的某个世纪末的12月31日,如果是星期一则会… * 有趣的是,任何一个世纪末的年份的12月31日都不可能是星期一!! 于是&…

php socket说明 stream流说明

socket说明 我们都知道通过IP,端口等可以实现两台机器之间的数据互通,但具体要怎么操作,系统给我们提供了socket接口,通过调用socket函数就可以实现互通。php的socket扩展和C本身的非常相似,如果找不到php相关的资料&…

[附源码]SSM计算机毕业设计中小学微课学习系统JAVA

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【C++】日期类的实现

​🌠 作者:阿亮joy. 🎆专栏:《吃透西嘎嘎》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉前言&…

MySQL8.0优化 - 事务的隔离级别

文章目录学习资料事务的隔离级别脏读、不可重复读、幻读脏读(Dirty Read)不可重复读(Non-Repeatable Read)幻读(Phantom)SQL中的四种隔离级别读未提交(READ UNCOMMITTED)读已提交&am…

北京化工大学数据结构2022/11/17作业 题解

(7条消息) 食用前须知(阅读并同意后在食用其他部分)_lxrrrrrrrr的博客-CSDN博客 看完进来哈 目录 问题 A: 邻接矩阵存储的图,节点的出度和入度计算(附加代码模式) 问题 B: 算法7-12:有向无环图的拓扑排序 问题 C: 有向图是否存…

剪枝算法:通过网络瘦身学习高效卷积网络

摘要 原文链接:https://arxiv.org/abs/1708.06519 深度卷积神经网络(CNNs)在现实世界中的应用很大程度上受到其高计算成本的阻碍。在本文中,我们提出了一种新的cnn学习方案,以同时减小模型的尺寸;2)减少运行时内存占用;3)在不影响精度的前…

[附源码]java毕业设计企业职工福利发放管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

WPF TreeView数据回填

这一期简单的说一下这个TreeView的数据回填, 上图是查询类型数据 上图是服务端的数据传递, 从数据库对应的查询出的数据传到服务端然后再传到客户端 上图就是在客户端后台启用刷新中的代码, DefaultView 获取自定义的视图 ItemsSource 获取…

如何在两个相关泛型类之间创建类似子类型的关系

本文正在参加「金石计划 . 瓜分6万现金大奖」 哈喽大家好,我是阿Q! 事情是这个样子的...... 对话中的截图如下: 看了阿Q的解释,你是否也和“马小跳”一样存在疑问呢?请往👇看 我们都知道在java中&#x…

领英高效开发客户方法(建议收藏)

领英高效开发客户 有效使用linkedIn领英,充分利用其人脉来为我们外贸人开发客户服务,我们也能获得外贸业-务更多更好机遇,扩大自己的外贸人脉圈。 在这里和大家分享一下,如何利用好领英linkedIn,轻松免-费地开发国外客…

深度学习入门(四十二)计算机视觉——目标检测和边界框

深度学习入门(四十二)计算机视觉——目标检测和边界框前言计算机视觉——目标检测和边界框课件图片分类和目标检测边缘框目标检测数据集总结教材1 边界框2 小结前言 核心内容来自博客链接1博客连接2希望大家多多支持作者 本文记录用,防止遗忘…

m基于MATLAB数字调制解调仿真,包括ASK,FSK,DPSK及MDPSK,对比误码率

目录 1.算法概述 2.仿真效果预览 3.MATLAB部分代码预览 4.完整MATLAB程序 1.算法概述 振幅键控(也称幅移键控),记做ASK,或称其为开关键控(通断键控),记做OOK 。二进制数字振幅键控通常记做2ASK。 对于振…

Spring Cloud(十一):Spring Cloud Security Oauth2

OAuth2 登录历程 basic 用户名:密码session cookietokenjwt 登录流程分析: https://www.processon.com/view/link/60a32e7a079129157118740f 微信开发平台文档: https://developers.weixin.qq.com/doc/oplatform/Mobile_App/WeChat_Logi…

(2)paddle---简单线性回归和波士顿房价预测

1、参考地址 (1)blibli网站地址 251-03_PaddlePaddle求解线性模型_dec_哔哩哔哩_bilibili (2)波士顿数据集介绍参考了 机器学习:波士顿房价数据集_mjiansun的博客-CSDN博客 2、简单线性回归 (1)测试一…

上海亚商投顾:沪指失守3100点 教育板块逆势大涨

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪大小指数今日走势分化,沪指震荡调整,尾盘再度失守3100点,创业板指盘中涨超1%&am…