[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

相关文章

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

python中的显式声明类型参数使用方式

《python中的显式声明类型参数使用方式》文章探讨了Python3.10+版本中类型注解的使用,指出FastAPI官方示例强调显式声明参数类型,通过|操作符替代Union/Optional,可提升代... 目录背景python函数显式声明的类型汇总基本类型集合类型Optional and Union(py

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

C#之枚举类型与随机数详解

《C#之枚举类型与随机数详解》文章讲解了枚举类型的定义与使用方法,包括在main外部声明枚举,用于表示游戏状态和周几状态,枚举值默认从0开始递增,也可手动设置初始值以生成随机数... 目录枚举类型1.定义枚举类型(main外)2.使用生成随机数总结枚举类型1.定义枚举类型(main外)enum 类型名字

Python lambda函数(匿名函数)、参数类型与递归全解析

《Pythonlambda函数(匿名函数)、参数类型与递归全解析》本文详解Python中lambda匿名函数、灵活参数类型和递归函数三大进阶特性,分别介绍其定义、应用场景及注意事项,助力编写简洁高效... 目录一、lambda 匿名函数:简洁的单行函数1. lambda 的定义与基本用法2. lambda

C语言自定义类型之联合和枚举解读

《C语言自定义类型之联合和枚举解读》联合体共享内存,大小由最大成员决定,遵循对齐规则;枚举类型列举可能值,提升可读性和类型安全性,两者在C语言中用于优化内存和程序效率... 目录一、联合体1.1 联合体类型的声明1.2 联合体的特点1.2.1 特点11.2.2 特点21.2.3 特点31.3 联合体的大小1

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Java获取当前时间String类型和Date类型方式

《Java获取当前时间String类型和Date类型方式》:本文主要介绍Java获取当前时间String类型和Date类型方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录Java获取当前时间String和Date类型String类型和Date类型输出结果总结Java获取

SpringBoot改造MCP服务器的详细说明(StreamableHTTP 类型)

《SpringBoot改造MCP服务器的详细说明(StreamableHTTP类型)》本文介绍了SpringBoot如何实现MCPStreamableHTTP服务器,并且使用CherryStudio... 目录SpringBoot改造MCP服务器(StreamableHTTP)1 项目说明2 使用说明2.1