[NAND Flash 5.2] SLC、MLC、TLC、QLC、PLC NAND_闪存颗粒类型

2024-01-06 23:28

本文主要是介绍[NAND Flash 5.2] SLC、MLC、TLC、QLC、PLC NAND_闪存颗粒类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

依公知及经验整理,原创保护,禁止转载。

专栏 《深入理解NAND Flash》

<<<< 返回总目录 <<<<

前言

在这里插入图片描述
闪存最小物理单位是 Cell, 一个Cell 是一个晶体管。

闪存是通过晶体管储存电子来表示信息的。在晶体管上加入了浮动栅贮存电子。数据是01取决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1.

根据闪存颗粒区分,存储器有 SLC、MLC、TLC、QLC、PLC 五种类型。目前主流的是 TLC 颗粒固态, QLC 也已经上市了, 目前还只有固态硬盘里有QLC

1 SLC颗粒

英文全称(Single-Level Cell——SLC)即单层式储存

SLC 一个 cell存储1bit的数据,其速度快,价格贵,寿命长。擦写寿命约为10万次。SLC 颗粒固态现在已停产。目前只有一些工业控制类的闪存产品会用到SLC NAND,但容量都比较小, 像2GB~4GB。对于原始的SLC闪存而言,一个存储单元需保留一比特数据,非01,判断起来非常简单。SLC闪存速度快、寿命长,但容量小、每GB容量成本过高,不适合家用电脑的固态硬盘。

在这里插入图片描述

左图没有电流,表示program状态,表示数值0

右图有电流,表示erase状态,表示数值1

不同状态下,是因为Floating Gate里的电子数目不同,导致导通电压不同,从而表示数据。具体原理参考前一讲:闪存的物理结构_NAND_Flash工作原理。

2 MLC 颗粒

英文全称(Multi-Level Cell——MLC)即多层式储存

MLC一个cell存储 2 个bit的数据,单个cell存储的容量扩大了100%。

其速度一般、价格一般、寿命一般。擦写寿命约为5000-10000次。MLC颗粒固态目前快要淡出市场。

MLC闪存可以在每个存储单元中可表示00011011四种状态,浮栅层中的电荷数等级需要更加精细化。

把上文中的字母和数字用`包起来,中文不变。

在这里插入图片描述
上面四张图分别表示 4 种状态。

后面 TLC、QLC、PLC 同理。
在这里插入图片描述
由上图可以看到,MLCSLC 虽然使用相同的电压值,但是电压之间的阀值被分成了 4

到了TLC闪存(3比特/单元),状态数量达到 8 种,而 QLC 闪存( 4 比特/单元)的状态数量高达 16 种。

3 TLC颗粒

英文全称(Trinary-Level Cell——TLC)即三层式储存
在这里插入图片描述
图. TLCQLCPLC 表示的状态

TLC 一个 cell 存储 3 个bit的数据,单个 cell 存储的容量扩大了 50%

其速度慢、价格便宜、寿命短。擦写寿命约为 500-3000 次。TLC 颗粒固态是现在SSD 产品的主流。

TLC闪存可以在每个存储单元中可表示 000、001、010、011、100、101、110、111 八种状态。

4 QLC颗粒

英文全称(Quadruple-Level Cell——QLC)四层存储单元

在这里插入图片描述
QLC 一个 cell 存储 4 bit 的数据,相比上一代容量增加 33%P/E寿命也更短,理论擦写次数仅 1000 次。目前市场上已经量产。像长江存储的致钛系列就有 QLC 固态,三星的 870 QVO.

QLC 闪存可以在每个存储单元中存储 4 比特数据,即 0000000100100011010001010110011110001001101010111100110111101111 十六种状态。

QLC 更适合作为大容量存储介质。 随着主流消费类 SSD 容量迈入 512GB 及以上,QLC SSD 未来将更迅速地替代机械硬盘市场。

与传统 HDD 相比,QLC SSD 更具性能优势。在企业级领域, QLC SSD 将为服务器带来更低的读延迟,使其更适用读取密集型应用,比如大数据、机器学习。在消费级领域,QLC 将率先在大容量U盘,闪存卡和 SSD 中普及。

QLC 也给主控带来了很大的挑战

1. 对芯片纠错能力要求更高

2. 更高并行度

3. 支持更高的闪存接口速度

扩展:QLC 闪存给SSD主控带来了很大的难题?

5 PLC 颗粒

英文全称(Penta-Level Cell NNAD——PLC), 五层存储单元
在这里插入图片描述
PLC 一个 cell 存储 5 bit 的数控, 相比上一代容量增加 25%。全球首款PLC SSD 已研发成功面世。

PLC 闪存可以在每个存储单元中可表示 0000000001000100001100100001010011000111010000100101010010110110001101011100111110000100011001010011101001010110110101111100011001110101101111100111011111011111 三十二种状态。

PLC(第五代) 是 Intel 出售 NAND 部门给 海力士 之前研发出来的,实际上是相当超前的, 毕竟 QLC (第四代) 还没有成为主流。 现在主流的还是 TLC (第三代)。

其他大厂还没有推进 PLC, 可能是还不看好吧。

Solidigm 是独树一帜,别人都觉得你 QLC 还没稳住呢, 就去捣鼓 PLC 了。而 Solidigm 就是这么我行我素,颇有的像:

他人笑我太痴颠, 我笑他人看不穿

PLC 带来了什么变化?

  • PLC 容量提升

  • PLC 延时增长

  • PLC 寿命下降

  • PLC 误码率 RBER 提高

PLC NAND 发展阻碍?

虽然 PLC 充满了浪漫的梦想,但现实是 PLC SSD 要想量产,难上青天。目前都没有一个清晰的量产时间表。

不是说单个存储元存的 bit 数越多越好吗, 这么好的研究成果为啥不能发展起来呢?

其实不然, 千鸟在林不如一鸟在手。再好的东西, 要有相应的技术来实现量产才行。不然就只能束之高阁。

3D XPoint 内存 就是因为成本居高不小,被束之高阁。 赢得了性能,跑输了市场。

新的 PLC NAND 闪存, 需要有闪存控制器来支援。

目前业内尚未有控制器公司对外宣称可以支持 PLC NAND。市场上当前主流的SSD控制器主要都是基于 ARM Cortex-R8 Core,提供 4K LDPC ECC 纠错能力。可预见的是 QLCRBER 会显著升高,需要主控有更高的纠错能力,需要更强大的 ARM 处理器支持实时高速运算,目前还没有量产。

所以,PLC SSD 的未来还充满悬念? 是雪藏襁褓还是石破天惊,静待时光的答案吧?

扩展: PLC NAND 虽来但远

总结

增加Cell比特数为哪般?
NAND FLASHSLC -> MLC -> TLC -> QLC-> PLC,每个单元存储的比特数增加,这样晶圆的存储密度会成倍提高,但对应的整卡可写入/擦除次数(P/E Cycle)也降低(意味着寿命也越短),读写性能会越差。最重要的单位GB的成本会更低,芯片的成本是和面积直接相关的。面积越小,一个晶圆切出的Die(片)数目就更多,单Die的成本就降下来了。

各大原厂孜孜不倦地提高每个单元的比特数,目的就是为了减少成本,成本才是王道!
参考

在这里插入图片描述

这篇关于[NAND Flash 5.2] SLC、MLC、TLC、QLC、PLC NAND_闪存颗粒类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/577973

相关文章

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

【编程底层思考】垃圾收集机制,GC算法,垃圾收集器类型概述

Java的垃圾收集(Garbage Collection,GC)机制是Java语言的一大特色,它负责自动管理内存的回收,释放不再使用的对象所占用的内存。以下是对Java垃圾收集机制的详细介绍: 一、垃圾收集机制概述: 对象存活判断:垃圾收集器定期检查堆内存中的对象,判断哪些对象是“垃圾”,即不再被任何引用链直接或间接引用的对象。内存回收:将判断为垃圾的对象占用的内存进行回收,以便重新使用。

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom 查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

什么是 Flash Attention

Flash Attention 是 由 Tri Dao 和 Dan Fu 等人在2022年的论文 FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness 中 提出的, 论文可以从 https://arxiv.org/abs/2205.14135 页面下载,点击 View PDF 就可以下载。 下面我

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

Mysql BLOB类型介绍

BLOB类型的字段用于存储二进制数据 在MySQL中,BLOB类型,包括:TinyBlob、Blob、MediumBlob、LongBlob,这几个类型之间的唯一区别是在存储的大小不同。 TinyBlob 最大 255 Blob 最大 65K MediumBlob 最大 16M LongBlob 最大 4G

STM32内部闪存FLASH(内部ROM)、IAP

1 FLASH简介  1 利用程序存储器的剩余空间来保存掉电不丢失的用户数据 2 通过在程序中编程(IAP)实现程序的自我更新 (OTA) 3在线编程(ICP把整个程序都更新掉) 1 系统的Bootloader写死了,只能用串口下载到指定的位置,启动方式也不方便需要配置BOOT引脚触发启动  4 IAP(自己写的Bootloader,实现程序升级) 1 比如蓝牙转串口,

Oracle type (自定义类型的使用)

oracle - type   type定义: oracle中自定义数据类型 oracle中有基本的数据类型,如number,varchar2,date,numeric,float....但有时候我们需要特殊的格式, 如将name定义为(firstname,lastname)的形式,我们想把这个作为一个表的一列看待,这时候就要我们自己定义一个数据类型 格式 :create or repla

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u