Nand Flash基础知识

2023-11-18

1、Nand Flash组织架构

在这里插入图片描述

  • Device(Package)就是封装好的nand flash单元,包含了一个或者多个target。
  • 一个target包含了一个或者多个LUN,一个target的一个或者多个LUN共享一组数据信号。
  • 每个target都由一个ce引脚(片选)控制,也就是说一个target上的几个LUN共享一个ce信号。

在这里插入图片描述
在这里插入图片描述

LUN(Die):

  • LUN是执行命令的最小单元,不同的LUN可以执行不同的命令序列
  • LUN包含一个或多个plane(通常有1 2 4 8)

Plane:

  • 一个plane包含一个或多个块(通常几百上千个)
  • 每个plane有独立的page register 和 cache register(优化闪存访问速度)

Block:

  • 块是最小的擦除单位
  • LUN中块的数量是没有限制的
  • 块包含很多个页,数量必须为32的倍数

Page:

  • 页是最小的读写单元
  • 页包含很多个字节(大小通常为2的幂不包括spare区域)

Spare:

  • 存储ECC值、坏块标记等。大小2K—> 64byte 4K —>128K 8K—>256

2、存储器原理

闪存的基本存储单元Cell,为非易失性存储器。(在源极(Source)和漏极(Drain)之间电流单向传导的半导体上形成存储电子的浮栅,浮栅上下被绝缘层包围,存储在里面的电子不会因为掉电而消失,所以闪存是非易失性存储器。)
在这里插入图片描述

Cell是闪存的最小工作单位,执行数据存储的任务。闪存根据每个单元内可存储的数据量分成SLC(1bit/Cell)、MLC(2bit/Cell)、TLC(3bit/Cell)和QLC(4bit/Cell),成本依次降低,容量依次增大,耐用度也依次降低

2.1、写/擦除原理

在这里插入图片描述

写操作是在控制极加正电压,使电子通过绝缘层进入浮栅极。擦除操作正好相反,是在衬
底加正电压,把电子从浮栅极中吸出来

2.2、块组织架构

在这里插入图片描述

一个闪存芯片有若干个DIE(或者叫LUN),每个DIE有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page,每个Page对应着一个Wordline,Wordline由成千上万个存储单元构成

2.3、读/写/擦除

2.3.1、擦除

在这里插入图片描述

擦除前,浮栅上有可能有电子,Pwell加20V电压,经过足够时间后,由于量子隧道效应,电子从浮栅到沟道里面,完成一个Block的擦除 。

2.3.2、写

在这里插入图片描述

要写的单元Wordline为高电压,Bitline=0V;由于量子隧道效应,电子从沟道到浮栅,成为“0”。不写的单元Bitline为2V,在沟道里的效应阻碍了量子隧道效应发生

2.3.3、读

在这里插入图片描述

不读的Wordline=5V,管子保持导通;要读的单元Wordline=0V,-VT 的管子导通,Bitline端的传感器能够检测到,所以读到“1”,而经过写的+VT的管子不导通,传感器读为“0”。

3、读/写/擦除

大体流程如下:
在这里插入图片描述

Nand Flash LUN功能框图:
在这里插入图片描述

其中有地址寄存器、状态寄存器、命令寄存器等,后面依次介绍。

3.1、寻址

寻址方式:

  • 行地址:页内偏移
  • 列地址:在ONFI协议中,高位到低位依次表示:LUN地址、块地址、页地址
    在这里插入图片描述

注意:
1、当需要同时发出列地址和行地址时,列地址总是在一个或多个8位地址周期中首先发出。
2、在擦除的时候,列地址不需要发送。

在这里插入图片描述
在这里插入图片描述

访问数据都是要先通过地址进行定位,在上图中可以看到有12根列地址线(A0-A11)和17根行地址线(A12-A28),总共29根地址线。数据线是8位,一次只能发送8bit,所以地址需要多个周期发送,上图显示的是5cycle发送

3.2、擦除

擦除以块为单位,不需要列地址。
在这里插入图片描述

时序图如下:
在这里插入图片描述

3.3、读

在这里插入图片描述

时序图如下:
在这里插入图片描述

3.4、写

在这里插入图片描述
时序图如下:
在这里插入图片描述

3.5、状态寄存器

在这里插入图片描述

当SR[6]为0时,其他所有位无效(WP_n除外),主机需要忽略其状态。

  • FALL(0): 返回最近一条命令的结果。1 失败 0 成功。
  • FALLC(1): 返回上一条命令的结果。1 失败 0 成功。
  • VSP(2 3 4):厂商自定义。
  • ARDY(5):1,没有正在执行的Flash array操作。 0 ,最后一条命令的上一条命令还未执行完成。
  • RDY(6):1,表示最后一条命令执行完成并处于ready状态。0,最后一条命令还未完成,SR[5]也无效。
  • WP_n(7):1,没有开启写保护。 0 开启写保护。

4、数据接口

在这里插入图片描述

  • NV-DDR:双边沿采样,并采用源同步时钟来精确所存数据、命令、地址信号。
  • NV-DDR2:引入了差分信号和On-Die Termination (ODT)技术来提升信号质量。
  • NV-DDR3:NV-DDR3引入了多项校准技术,包括ZQ Calibration、Duty Cycle Correction (DCC)和读/写DQ校准。
  • NV-LP-DDR4:和NV-DDR3速率相同,优势在于采用LTT技术后可大幅度降低读操作功耗

各个接口的信号线:
在这里插入图片描述

  • R/B_n:Ready/Busy。闪存正在进行内部读的时候,Busy_n有效,当操作完成且数据准备好之后,Ready有效,用户可以来读了
  • CLK:时钟。时钟信号由用户产生,在时钟信号的上升沿和下降沿都有数据被触发,实现DDR,意味着100MHz的时钟频率数据传输速率是200MT/s
  • W/R_n:Write/Read_n。写的时候高电平,读的时候低电平
  • DQS:Data Strobe。DQS用来区分出每个数据传输周期,便于接收方准确接收数据。读数据时,DQS由闪存产生,DQS上下沿和数据对齐。写数据时,DQS由用户产生,DQS中间对应数据的中间稳定区域。所以,DQS可以看成数据的同步信号
  • DQ[7:0]:数据总线
  • WE_n:Write Enable,写使能,这个信号是用户发给闪存的,有效时意味着用户发过来的写数据可以采样了
  • RE_n:读使能。这个信号是用户发给闪存的,每发一个读使能,闪存就在数据总线上准备好数据,等用户采样
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nand Flash基础知识 的相关文章

  • mac ox ssd 开启 trim

    使用clover 补丁开启
  • MobileNet_ssd原理

    之前实习用过太多次mobilenet ssd xff0c 但是一直只是用 xff0c 没有去了解它的原理 今日参考了一位大神的博客 xff0c 写得很详细 xff0c 也很容易懂 xff0c 这里做一个自己的整理 xff0c 供自己理解 x
  • ssd.pytorch源码分析(三)— 非极大值抑制NMS

    NMS源码 SSD论文链接 NMS介绍 吴恩达对于NMS xff08 非极大值抑制 xff09 的介绍 xff1a 说白了 xff0c NMS的作用就是去掉目标检测任务重复的检测框 例如 xff0c 一个目标有多个选择框 xff0c 现在要
  • SSD深度解析:MLC颗粒和TLC颗粒到底有多大差别?

    计算机技术发展到今天 xff0c CPU和内存性能早已不是性能瓶颈 xff0c 但是硬盘依然是电脑常见瓶颈 xff01 固态硬盘的出现极大的改善机械硬盘的存储效率 xff0c 但是因为固态硬盘还处于行业发展初期 xff0c 所以成本很高 x
  • NVIDIA Jetson AGX Xavier主机刷机与SSD安装

    任务逻辑 当有个新的AGX主机到手上后 xff0c 主机是启动的是eMMC xff0c 大约30G存储 这个安装了系统后到后面随便弄一下就不够存储了 xff0c 所以我是想要在主机上安装一个SSD xff0c 然后将系统直接放到SSD上 x
  • jetson nx ssd镜像克隆

    1 打开disk查看要克隆的ssd名称 2卸载ssd 制作镜像 sudo umount dev sdb1 sudo s sudo dd if 61 dev sdb1 conv 61 sync noerror bs 61 64k gzip c
  • SSD的随机读能力 和一个高访问量的读写服务系统

    昨天晚上写了个代码 xff0c 测试了下目前我这个1000块钱的SSD的随机读能力 主机配置 i5 4核 两物理核 8G内存 linux 内核版本 2 6 18 128 el5 一个50G的文件 gt gt 8G内存 防止全缓存至内存中 p
  • 手残,双硬盘(SSD+HDD)双系统(Win10+ubuntu)用easyBCD删除win10引导项怎么办?戳这里

    问题描述 博主处女座 电脑双硬盘 固态 机械 因为学习需要 装了双系统 Win10 Ubuntu 这个也是费了不少功夫才成功 不知道怎么装的可以看我这个http blog csdn net x1825048925 article detai
  • 深入理解anchor

    在博客SSD原理解读 从入门到精通中提到了anchor作用 通过anchor设置每一层实际响应的区域 使得某一层对特定大小的目标响应 很多人肯定有这么一个疑问 那anchor到底可以设置到多大呢 本文尝试对anchor的大小进行了一系列的探
  • 修改注册表解决Win10 SSD卡顿

    转自 http www pconline com cn win10 739 7395324 html 11月12日 微软发布了Win10的首个大版本更新TH2 Threshold 2 小编也在第一时间下载并安装了它 然而奇怪的是 自从装上这
  • 【SSD-Caffe】安装使用教程

    1 下载镜像 参考我的另一篇博客 docker使用教程 我下载的是 docker pull bvlc caffe gpu 这个镜像 2 安装ssd caffe 下载之后这并不是ssd caffe 的环境 是较为原始版本的环境 所以还需要安装
  • 数造更高容量 存储“大”有可为——带你全面了解磁记录技术

    磁记录是利用磁的性质进行信息的记录的方式 在存储和使用的时候通过特殊的方法进行信息的输入和读出 从而达到存储信息和读出信息的目的 当今世界正处于数据大爆炸的时期 据IDC预测 截至2025年 全球数据增量将从2020年的64ZB增加到近18
  • SSD算法详解 及其 keras实现 (下)

    在上一篇的博客讲述了SSD的原理 这一篇主要是讲解keras的实现 keras代码的github地址为 点击打开链接 model 的框架实现 ssd py 先给出了改变后的VGG16的实现 def SSD300 input shape nu
  • 高性能、高适配,SSD 孪生兄弟出场即 C 位

    内容导读 PyTorch 1 9 同步更新了一些库 包括 TorchVision 中新增的 SSD 和 SSDlite 模型 与 SSD 相比 SSDlite 更适用于移动端 APP 开发 SSD 全称 Single Shot MultiB
  • SSD接口种类

    转自微信公众号 存储随笔 随着SSD价格的不断下降以及SSD性能的不断提升 越来越多的朋友开始考虑给自己的电脑升级SSD固态硬盘 但是市面上现在SSD的根据不同的大小与尺寸 有多种多样的接口的SSD 本篇文章就当下主流的一些SSD接口进行简
  • 硬核虚拟化技术 SR-IOV的原理及探索

    2007年9月 PCI SIG官方发布了 Single Root I O Virtualization and Sharing Specification Revision 1 0 规范 定义了多个System Images如何共享PCI接
  • Nand Flash的同步、异步、ONFI、Toggle

    1 SDR和DDR SDR Single Data Rate 写读数据使用上升沿或下降沿来触发 因为只用上升沿或下降沿 对信号准确性要求较低 DDR Double Data Rate 写数据时通过MCU来控制DQS信号跳变沿来触发 即上升沿
  • 2.2 SSD之地址映射

    LBA Logical Block Address 表示用户操作 读写 数据的位置 PBA Physics Block Address 表示数据在硬盘的真实位置 在HDD时代 数据可以覆盖写 LBA和PBA直接对应不会更改 但是SSD时代
  • SSD-Pytorch训练自己的VOC数据集&遇到的问题及解决办法

    SSD 训练 data init py data config py data voc0712 py layers modules multibox loss py ssd py train py 预训练文件vgg16 reducedfc
  • [元带你学NVMe协议] ZNS SSD 性能测试:解决传统SSD问题的高性能存储栈设计

    声明 主页 元存储的博客 CSDN博客 依公开知识及经验整理 如有误请留言 个人辛苦整理 付费内容 禁止转载 全文 3000 字 内容摘要 1 性能测试 1 1 环境搭建 1 2 原始设备的性能

随机推荐

  • 对 React Hook的闭包陷阱的理解,有哪些解决方案?

    hooks中 奇怪 其实符合逻辑 的 闭包陷阱 的场景 同时 在许多 react hooks 的文章里 也能看到 useRef 的身影 那么为什么使用 useRef 又能摆脱 这个 闭包陷阱 搞清楚这些问题 将能较大的提升对 react h
  • vue 全局组件注册_如何注册vue3全局组件

    vue 全局组件注册 With the new versions of Vue3 out now it s useful to start learning how the new updates will change the way w
  • unity playerprefs android,Unity持久化存储之PlayerPrefs的使用

    一 PlayerPrefs类支持3中数据类型的保存和读取 浮点型 整形 和字符串型 分别对应的函数为 php SetInt 保存整型数据 GetInt 读取整形数据 SetFloat 保存浮点型数据 GetFlost 读取浮点型数据 Set
  • pygame之五子棋的实现

    先上代码 调用pygame库 import pygame import sys 调用常用关键字常量 from pygame locals import QUIT KEYDOWN import numpy as np 初始化pygame py
  • laravel-vue后端返回数据的字符串中(<br/> \n)换行无效

    laravel 做后端 vue做前端 后端返回数据的字符串中含有 br 或 n r n 等换行符 在前端页面无法正常渲染出换行效果 尝试用str replace方法无效 最终找到解决办法 解决办法 给包含换行符的字符串元素增加css whi
  • 【STM32学习】——串口通信协议&STM32-USART外设&数据帧/输入数据策略/波特率发生器&串口发送/接受实操

    文章目录 前言 一 串口通信 1 通信接口 2 串口通信 1 串口简介 2 串口硬件电路 3 串口软件部分 二 STM32的USART外设 1 USART简介 2 图示详解 三 细节问题 1 数据帧 2 输入数据策略 1 起始位侦测 2 数
  • iOS开发,tableView中cell的重用详解

    注意 原创版权 转载必须标明出处作者 翻版必究 iOS中tableView是一个大的模块组件 它的重要性每个iOSCoder都是了解的 但是tableView中却有个重大的坑 就是cell的重用 每个刚接触iOS开发的人都深受其海 那么经过
  • AD18出现Unknown Pin报错解决

    问题描述 检查错误 检查原理图对应元件的封装是否存在 检查原理图与封装PCB引脚数量是否对应 检查原理图与封装的管脚是否统一 找到原因 原理图的管脚命名与PCB封装管脚命名不一致 问题解决 修改原理图管脚名称 修改PCB Library的管
  • luajit struct

    This page is intended to give you an overview of the features of the FFI library by presenting a few use cases and guide
  • 使用Stable Diffusion图像修复来生成自己的目标检测数据集

    点击上方 AI公园 关注公众号 选择加 星标 或 置顶 作者 R dig par Gabriel Guerin 编译 ronghuaiyang 导读 有些情况下 收集各种场景下的数据很困难 本文给出了一种方法 深度学习模型需要大量的数据才能
  • MOS管做二极管使用

    注 个人学习记录 目录 原理分析 电路仿真 NMOS电路连接方法 NMOS仿真I V特性曲线 PMOS电路连接方法 PMOS二极管接法的I V特性曲线 原理分析 如下图所示 左边为NMOS 右边为PMOS 由MOS管的结构可以看出 其衬底B
  • 图解laravel的生命周期

    先来张图大致理解下laravel的生命周期 下面对应相应的代码 解释上图 文件路径 laravel public index php laravel的启动时间 define LARAVEL START microtime true 加载项目
  • 2024王道408数据结构 P92 T3

    2024王道408数据结构 P92 T3 思考过程 这题比较复杂做的我好 累 首先我们还是先看懂题目 让我们用一个栈来实现递归函数的非递归计算 我们先剖析一下这个表达式 式子展开变成图上这样 那既然让我们用非递归来计算 那我们顺理成章就想到
  • [Qt]控件

    文章摘于 爱编程的大丙 文章目录 1 按钮类型控件 1 1 按钮基类 QAbstractButton 1 1 1 标题和图标 1 1 2 按钮的 Check 属性 1 1 3 信号 1 1 4 槽函数 1 2 QPushButton 1 2
  • 蓝桥杯单片机14届省赛解析(个人)

    下面记录一下自己这届省赛比赛时的思路 不太会写作文 比较口语化 而且一些看法仅仅是我个人观点 赛后我还没有看过任何讲解或例程 可能会有很多理解不对的地方希望大家能够指出一起交流 一 硬件框图 往届省赛基本上都是考两个外设 这次一看硬件框图就
  • vue 集成高德地图

    准备工作 高德地图官网 https lbs amap com 高德地图JS API 2 0 教程 https lbs amap com api jsapi v2 summary 高德地图JS API 2 0 参考手册 https lbs a
  • python中sqlite3对数据库的增删改查

    1 python API的介绍 1 connection 数据库连接对象 连接对象 建立python客户端与数据库的网络连接 创建方法 sqlite3 connect 参数 2 cursor 游标对象 2 增删改查的流程 select语句
  • C++代码审查工具Cppcheck和TscanCode

    cppcheck简介 cppcheck 是一个静态代码检查工具 支持c c 代码 作为编译器的一种补充检查 cppcheck对源代码执行严格的逻辑检查 助力开发与测试工程师从代码层面挖掘问题 聚焦于包括逻辑错误 可疑的代码 运算错误 空指针
  • stm32通过spi连接esp8266的hspi 开发

    stm32通过spi连接esp8266的hspi 开发 刚刚做了stm32通过spi连接esp8266的开发 目前已经解决了遇到的大多数问题 基本可以交付使用了 写一篇文章留作记录 也可以给以后做这个的朋友做为参考 esp8266模块本身发
  • Nand Flash基础知识

    1 Nand Flash组织架构 Device Package 就是封装好的nand flash单元 包含了一个或者多个target 一个target包含了一个或者多个LUN 一个target的一个或者多个LUN共享一组数据信号 每个tar