什么是NAND Flash?
什么是NAND Flash?
NAND闪存是一种非易失性存储器技术,它彻底改变了数字时代的数据存储。它是闪存的一种形式,这意味着它可以被电擦除和重新编程。NAND闪存以NAND(NOT-AND)逻辑门命名,该逻辑门用于其基本架构。术语“NAND”源自存储单元以串联连接结构的方式组织,类似于NAND门。该技术广泛用于各种存储设备,例如固态硬盘 (SSD)、USB 闪存驱动器、存储卡和智能手机。

(左图)NAND闪存阵列的示意图。串联连接的器件的垂直string经由由drain select line(DSL)和source select line(SSL)驱动的选择晶体管附接到bitlines 和 sourceline;
(右图)阵列沿着WL方向(a)和串方向(b)的示意性横截面(绿色=硅,红色=浮栅,红色=WL,白色=氧化硅)。(c)显示了具有基本单元(虚线)的阵列布局
NAND Flash主要特点
- 存储单元结构
NAND Flash存储器的基本存储单元是浮栅晶体管。这些晶体管可以存储一位信息(0或1),多个晶体管组合在一起形成存储单元。
- 存取方式
NAND Flash允许随机访问,但通常以页为单位进行读取和写入操作。擦除操作则以块为单位进行。
- 写入和擦除周期
NAND Flash可以经受数万到数十万次的写入和擦除周期,但它的寿命通常比NOR Flash要短。
- 速度
NAND Flash的读写速度通常比NOR Flash快,这使得它更适合用于大量数据的存储。
- 成本
由于结构相对简单,NAND Flash的单位存储成本较低,因此在大容量存储应用中更具成本效益。
- 错误率
NAND Flash比其他类型的存储器更容易出现位错误,因此通常需要错误校正码(ECC)来确保数据的完整性。
- 接口
NAND Flash设备通常通过I/O接口与控制器通信,支持多种接口标准,如ONFI(Open NAND Flash Interface Working Group)和Toggle Mode。
- 应用
由于其高存储密度和成本效益,NAND Flash在消费电子、企业存储解决方案和嵌入式系统中得到了广泛应用。
NAND Flash工作原理
NAND Flash 的存储单元是一种三端器件,与场效应管类似,包含源极、漏极和栅极,栅极与硅衬底之间有二氧化硅绝缘层,用于保护浮置栅极中的电荷不会泄漏,从而使存储单元具有电荷保持能力。其擦除和写入数据基于隧道效应,即电流穿过浮置栅极与硅基层之间的绝缘层,对浮置栅极进行充电(写数据)或放电(擦除数据)。
NAND Flash 通过在存储单元中存储电荷来表示数据。每个存储单元可以存储一个或多个比特的数据。在写入数据时,电子被注入到存储单元中;在读取数据时,通过检测存储单元中的电荷状态来确定存储的数据。擦除数据时,通过施加高电压将存储单元中的电荷释放掉。
NAND Flash基于浮栅晶体管,浮栅晶体管排列成网格状阵列。每个晶体管有两个栅极:一个控制栅极和一个浮动栅极。浮动栅极由氧化层电隔离,使其能够捕获电子。浮栅上电子的存在与否决定了存储单元的二进制状态,代表“0”或“1”。
读取数据
为了从NAND闪存单元读取数据,需要向控制门施加电压。如果浮栅上存在电子,晶体管将不会传导电流,表示“0”状态。如果浮栅为空,晶体管将传导电流,表示“1”状态。
写入和擦除数据
将数据写入NAND闪存单元涉及称为Fowler-Nordheim隧道的过程。对控制栅极施加高压,使电子穿过氧化层并进入浮栅,将cell设置为“0”状态。擦除数据涉及在相反方向上施加高压,从而从浮栅中去除电子,使cell回到“1”状态。
NAND闪存架构
NAND Flash 的数据是以位(bit)的方式保存在存储单元(memory cell)中,多个存储单元以 8 个或 16
个为单位连成位线(bit line),形成字节(byte)或字(word),这就是 NAND 器件的位宽。
这些位线再组成页(page),每页包含一定数量的字节,通常还有一部分额外的空间用于存储纠错码等信息。多个页又组成块(block)。NAND Flash 以页为单位进行读写操作,以块为单位进行擦除操作。
NAND闪存单元组织在一个串联的字符串中,称为NAND字符串。多个NAND串形成一个块,多个块形成一个平面。NAND闪存芯片由一个或多个平面组成。这种分层结构可实现高存储密度和快速读写操作。
NAND闪存根据每个存储单元存储的位数可分为两种主要类型:
- Single-Level Cell(SLC)
每个存储单元存储一位数据,表示“0”或“1”。与 MLC 相比,SLC NAND 闪存提供更快的读写速度、更高的耐用性和更低的功耗。
- Multi-Level Cell(MLC)
每个存储单元使用多个电压电平存储两个或更多位数据。与 SLC 相比,MLC NAND 闪存可实现更高的存储密度和更低的每比特成本,但代价是读取和写入速度较慢,耐久性降低。
NAND Flash发展历程
- 诞生阶段(20 世纪 80 年代):
1987 年,时任日本东芝公司工程师岡本成之提出了 2D NAND 技术,这是 NAND Flash 的起源。当时,东芝虽然占据了市场先机,但战略重心偏向 DRAM 市场,一定程度上忽略了 NAND Flash 的发展潜力。随后,英特尔和三星等公司也迅速加入该领域,推出了自己的 2D NAND 产品。在这一阶段,NAND Flash 主要应用于一些特定的电子设备,如数字电话答录机等。
- 小型闪存卡兴起阶段(20 世纪 90 年代 - 21 世纪初):
随着数码摄影的普及,一系列小型闪存卡应运而生,包括 PCMCIA(PC 卡)、CompactFlash、SmartMedia、MultiMediaCard(MMC)和 SecureDigital(SD)卡等,这些小型闪存卡的存储介质主要是 NAND Flash。这使得 NAND Flash 的应用范围得到了极大的扩展,市场需求也开始快速增长。
- 市场扩张阶段(21 世纪初 - 2010 年代):
随着 NAND Flash 成本的不断降低,其应用范围进一步扩大。从数码相机扩展到了 USB 闪存驱动器,进而取代了软盘和可写 CD 等传统存储设备。同时,音频播放设备从传统的磁带和 CD 播放器转变为 MP3 播放器,也推动了 NAND Flash 的需求增长。在这一时期,NAND Flash 逐渐成为了主流的存储技术之一,市场规模不断扩大。
- 3D NAND 技术发展阶段(2010 年代 - 至今):
技术概念
提出 2007 年,东芝推出 BICS 类型的 3D NAND,标志着 NAND Flash技术从二维平面堆叠向三维立体堆叠的转变。这种技术通过在垂直方向上堆叠存储单元,大大提高了存储密度,为 NAND Flash的进一步发展提供了新的方向。
商业化量产
2013 年,三星推出第一代 V-NAND(三星自称 3D NAND 为 V-NAND)闪存并投入量产,虽然该款堆叠层数仅为
24 层,但在当时却打破了平面技术的瓶颈,并使 3D NAND 从技术概念推向了商业市场。
层数不断增加
从 2014 年开始,各大厂商纷纷推出更高层数的 3D NAND 产品。例如,三星陆续推出了 32 层、48 层、64层、96 层、128 层、176 层等不同层数的 V-NAND;SK 海力士按照 48 层、72 层 / 76 层、96 层、128 层、176 层、238 层的顺序陆续推出闪存新产品;美光也在不断提高其 3D NAND 的层数。
技术持续演进
在 3D NAND 技术发展的过程中,厂商们还在不断改进和优化技术,以提高存储性能、降低成本。例如,长江存储自研出了Xtacking 架构,大幅度提高了存储密度。
相关文章:
什么是NAND Flash?
什么是NAND Flash? NAND闪存是一种非易失性存储器技术,它彻底改变了数字时代的数据存储。它是闪存的一种形式,这意味着它可以被电擦除和重新编程。NAND闪存以NAND(NOT-AND)逻辑门命名,该逻辑门用于其基本架构。术语“…...
Spring Boot 整合 Keycloak
1、概览 本文将带你了解如何设置 Keycloak 服务器,以及如何使用 Spring Security OAuth2.0 将 Spring Boot 应用连接到 Keycloak 服务器。 2、Keycloak 是什么? Keycloak 是针对现代应用和服务的开源身份和访问管理解决方案。 Keycloak 提供了诸如单…...
工程师 - Windows下使用WSL来访问本地的Linux文件系统
Access Linux filesystems in Windows and WSL 2 从 Windows Insiders 预览版构建 20211 开始,WSL 2 将提供一项新功能:wsl --mount。这一新参数允许在 WSL 2 中连接并挂载物理磁盘,从而使您能够访问 Windows 本身不支持的文件系统࿰…...
SQL高可用优化-优化SQL中distinct和Where条件对索引字段进行非空检查语句
最近做一个需求,关于SQL高可用优化,需要优化项目中的SQL,提升查询效率。 SQL高可用优化 一、优化SQL包含distinct场景二、优化SQL中Where条件中索引字段是否为NULL三、代码验证1. NodeMapper2. NodeService3. NodeController4.数据库数据5.项…...
openharmony源码编译
1. win拷贝数据到虚拟机Ubuntu配置 1.打开终端,更新软件库 sudo apt-get update 2.下载安装open-vm-tools,open-vm-tools-desktop sudo apt-get install open-vm-tools open-vm-tools-desktop 3.重启 sudo reboot 2.编译环境配置 1.设置环境脚本…...
H.264编解码工具 - NVIDIA CUDA
一、简介 NVIDIA CUDA编解码是一项采用NVIDIA图形处理器(GPU)来加速视频编码和解码的技术。CUDA(Compute Unified Device Architecture)是一种并行计算平台和编程模型,允许开发者使用GPU来进行通用计算。 优点: 加速编解码速度:CUDA编解码利用GPU的并行处理能力,可以…...
数学建模小练习
题目B 电影《虎胆龙威 3》中,塞谬尔和布鲁斯扮演的主角要拆除西蒙所放的炸弹。西蒙喷泉上面有两个壶,容量分别是5加仑和3加仑,向其中一个壶中加入刚好 4 加仑的水,计时器会停止,否则5分钟后会爆炸。 问题:能够安全拆弹…...
Java爬虫:获取SKU详细信息的艺术
在电子商务的世界里,SKU(Stock Keeping Unit,库存单位)是每个商品的唯一标识符,它包含了商品的详细信息,如尺寸、颜色、价格等。对于商家和开发者来说,获取商品的SKU详细信息对于库存管理、订单…...
心理咨询展示网站建设渠道拓展
心理问题长期以来都受到关注,每个城市里也都有相关服务商家,除了进店外,线上也可以开展咨询服务,对需求者来说需要找到靠谱的品牌,而商家也需要触达到更多客户获取转化。 网站是品牌线上工具,利于商家通过…...
naocs注册中心,配置管理,openfeign在idea中实现模块间的调用,getway的使用
一 naocs注册中心步骤 1 nacos下载安装 解压安装包,直接运行bin目录下的startup.cmd 这里双击运行出现问题的情况下 (版本低的naocs) 在bin目录下 打开cmd 运行以下命令 startup.cmd -m standalone 访问地址: http://localh…...
先进封装技术 Part02---TSV科普
一、引言 随着电子设备向更小型化、更高性能的方向发展,传统的芯片互连技术已经无法满足日益增长的需求。在这样的背景下,TSV(Through-Silicon Via,硅通孔)技术应运而生,成为先进封装技术中的核心之一。 如果我们看大多数主板,可以看到两件事:第一,芯片之间的大多数连…...
【数据挖掘】2023年 Quiz 1-3 整理 带答案
目录 Quiz 1Quiz 2Quiz 3Quiz 1 Problem 1(30%). Consider the training data shown below. Here, A , B A, B A,B, and...
老古董Lisp实用主义入门教程(12):白日梦先生的白日梦
白日梦先生的白日梦 白日梦先生已经跟着大家一起学Lisp长达两个月零五天! 001 粗鲁先生Lisp再出发002 懒惰先生的Lisp开发流程003 颠倒先生的数学表达式004 完美先生的完美Lisp005 好奇先生用Lisp来探索Lisp006 好奇先生在Lisp的花园里挖呀挖呀挖007 挑剔先生给出…...
UE5 Windows热更新解决方案思路(HotPatcher+Tomcat+RuntimeFilesDownloader)
以下个人学习笔记。其中必会存在一些问题,仅作参考。本人版本5.1。 参考视频: UE4热更新:HotPatcher插件使用教程_哔哩哔哩_bilibili 3.检查需要下载的版本_哔哩哔哩_bilibili 参考文章: UE 热更新:Questions &…...
进程管理工具:非daemon进程管理工具supervisor
一、非daemon进程管理工具:supervisor Windows安装supervisor https://pypi.org/project/supervisor-win/4.5.0/#files 一)进程管理supervisor简介 supervisor是一个 Client/Server模式的系统,允许用户在类unix操作系统上监视和控制多个进程&…...
c++模拟真人鼠标轨迹算法
一.鼠标轨迹算法简介 鼠标轨迹底层实现采用 C / C语言,利用其高性能和系统级访问能力,开发出高效的鼠标轨迹模拟算法。通过将算法封装为 DLL(动态链接库),可以方便地在不同的编程环境中调用,实现跨语言的兼…...
android12/13/14版本wms最新面试题:dumpsys window和sf一定会一致么?
背景: 近期学员们学习了马哥wms课程后,去参加相关的大厂的framework面试,有一个学员朋友带回来了一个wms相关的面试题,具体面试题描述如下: 问题1 请问wms的window和SurfaceFlinger的Layer有什么关系? 回…...
Python脚本示例,你可以使用这个脚本来自动化登录网站、选择页面元素和提交表单
devtools 元素页面可以选择元素,copy xpath用于查找 python编程:1、浏览器登录https://58.xxx/ 账号:xxx 密码:FN123456 2、选择“技能训练” 3、选择“云网智能运维员培训相关资料” 4、选择“L1-Linux操作系统与运维题库” 5、依次选择1-50题目&#x…...
安卓13设置动态修改设置显示版本号 版本号增加信息显示 android13增加序列号
总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 设置 =》关于平板电脑 =》版本号 在这里显示了系统的一些信息,但是这里面的信息并不包含序列号之类的信息,我们修改下系统设置,在这里增加上相关的序列号。 2.问题分析…...
从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之三:在目标服务器上恢复数据
从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之三:在目标服务器上恢复数据 目录 从 Oracle 集群到单节点环境(详细记录一次数据迁移过程)之三:在目标服务器上恢复数据一、修改参数文件的内容二、…...
19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
JVM垃圾回收机制全解析
Java虚拟机(JVM)中的垃圾收集器(Garbage Collector,简称GC)是用于自动管理内存的机制。它负责识别和清除不再被程序使用的对象,从而释放内存空间,避免内存泄漏和内存溢出等问题。垃圾收集器在Ja…...
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
《Offer来了:Java面试核心知识点精讲》大纲
文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...
