X-NAND是否是未来的突破口?

简介: NAND目前根据bit/cell数量分为:SLC、MLC、TLC、QLC、PLC等。随着bit数量增加,虽然容量得到了大幅的提升,成本也有所下降,但是读写性能却下降的更快。特别在QLC到PLC的转换,读写性能下降幅度远超成本下降趋势,也就是说,PLC的成本还没达到预期的优势。

X-NAND是什么?

NAND目前根据bit/cell数量分为:SLC、MLC、TLC、QLC、PLC等。随着bit数量增加,虽然容量得到了大幅的提升,成本也有所下降,但是读写性能却下降的更快。特别在QLC到PLC的转换,读写性能下降幅度远超成本下降趋势,也就是说,PLC的成本还没达到预期的优势。

在应对QLC性能下降带来的影响,通常的做法是给QLC配备SLC Cache,来掩盖QLC性能大幅下降的事实。在正常的workload下,QLC配备的SLC Cache足以保证QLC的性能不会很差,基本维持在SLC的读写性能。但是,在超大压力顺序写场景下,SLC Cache的数据还没来得及搬到QLC时,已经被打满了,这个时候性能就会出现断崖式下降,只有SLC性能的12%。

那么,如何增加写性能呢?常规做法是在NAND array Bit Line方向增加plane的并发度,多个page一起写。另外,也可以通过减少Bit line的长度来降低RC延迟,这样可以提升读的性能。

但是,增加多个plane,相应的也要增加page buffer,这部分也会增加相应的成本,在传统的page buffer架构中,每个page buffer连接一条bit line完成NAND的读写操作,读写性能也受限于page buffer的数量。如果要想要达到16 plane的并发读写,die size将会增加3倍。很显然,这种方式不可持续,无法成为有效的解决方案。


为了解决这个问题,一家成立于2012年的美国Neo半导体公司,在2018年研发了X-NAND架构,提升TLC/QLC的性能。在2020的美国闪存峰会FMS上做了第一代的X-NAND展示。


那么,Neo公司的X-NAND架构是怎么样的?如何解决这个传统架构中受限page buffer的读写性能问题?他们的做法是反向操作,把page buffer的大小从16KB缩小到1KB,整个16 bit line共享一个16KB page buffer,在不增加die size的情况下,实现16倍并发的性能。

跟传统的架构相比,X-NAND架构优势非常大:

  • 由于Bit line长度缩减到1/16,Bit line的RC延迟也相应减少到原来的1/16,读写功耗也下降到原来的1/16
  • 由于实现16-plane的并发能力,读写性能也增加到原来的16倍

在X-NAND架构加持下,SLC-MLC-TLC-QLC-PLC性能都得到大幅的提升,随机读写性能提升3倍以上,顺序提升12-54倍。

特别是在X-NAND QLC的读写延迟可以跟传统SLC NAND处于同一水平。X-NAND TLC NAND甚至比传统SLC的性能更加优异。这实在不可思议!

以上数据是X-NAND在Y方向plane16的数据,不同的Y方向plane数量对性能的提升影响如下:

  • 不同数量的plane对顺序读写的性能影响很明显,随着plane数量的增加,性能提升也越高
  • 不同数量的plane对随机读写的性能影响不明显,随着plane数量的增加,性能提升基本不变


X-NAND架构这么优异,到底是做了哪些核心的创新呢?我们来一一探讨:

创新点1: Multi-BL Write

这个思路就是如前文的介绍,16 BL共享一个16KB page buffer,数据先写入16个1KB page buffer,再分发到各个BL。核心点就是提升并发度。

创新点2: Multi-Plane QLC Program

这个模块,有两种设计思路:一个是4 data-plane,另外一个是 1 data-plane。分别的运行机理如下:

4 data-plane:每个Group由5个plane组成,在Plane1开始program写的时候,数据D0-D3存放在Plane2-5。在program-verfiy的时候,数据从plane1读出来于Plane2-5存储的数据做作对比。带宽的提升效果是16planes/5planes-group=3倍以上。

1 data-plane:每个Group由3个plane组成,在Plane1开始program写的时候,数据D0-D3存放在Plane3。在program-verfiy的时候,数据从plane1读出来后存放在plane2再与存储在plane3的原始数据作对比。带宽的提升效果是16planes/3planes-group=5倍以上。

针对以上两种data-plane的方式,均是采用5个Group的方式。数据依次加载到这5个Group,在并发完成program写操作。

创新点3: Program Suspend Read

当在program过程中,有读需求,允许把program操作先暂停suspend,优先完成写入数据的读取操作。比如,需要把plane3的数据读取到plane2,数据传输采用page buffer的data lines只有1us,如果在用IO bus则需要16 us。

创新点4: Multi-BL Read

16个bit line一起打开,通过shield devices增加电流,16个bit line并发完成电流的Sensing,最终完成读的操作。

创新点5: Single Latch QLC Read

在传统的QLC NAND读取过程,需要分4次读取,根据cell的on状态(erased)或者off状态(programmed)获得每一次的1或者0,根据4次读取的结果0或1,通过XOR异或门电路运算得到最终的数据结果。

在传统的读取方式下,X-NAND架构读取过程是把plane2-5的数据读取出来,转换成1bit的数据。最终读取带宽提升是16planes/5=3倍以上。

然而在Single Latch QLC Read功能下,只需要一个bit line存储数据,依次记录更新4次的存储读取结果。

  • VR0读取过程是,把off状态(prgrammed)的cell设置成0,处于on状态(erased)的cell保持不变
  • VR1读取过程是,把off状态(prgrammed)的cell设置成1,处于on状态(erased)的cell保持不变
  • VR2读取过程是,把off状态(prgrammed)的cell设置成0,处于on状态(erased)的cell保持不变
  • VR3读取过程是,把off状态(prgrammed)的cell设置成1,处于on状态(erased)的cell保持不变

VR3获取的数据就是最后结果,不需要传统NAND架构中的XOR运算。

在基于Single Latch QLC Read的读取方式下,X-NAND架构读取过程是把plane1数据读取出来存放在plane2,完成数据读取。最终读取带宽提升是16planes/2=8倍。

创新点6: SLC/QLC Parallel Program

X-NAND采用了3-Bank的设计,每个Bank由8个planes组成。在Bank1进行SLC program写入数据是,Bank2则执行SLC page的数据到QLC page数据的搬迁,Bank3负责对SLC搬迁后无效数据的擦除。

这样的设计,QLC数据的写入过程获得的是SLC的速率,SLC pages也永远不会出现被写满的状态,持续享受到SLC的速率。


X-NAND架构出了性能提升优势,在稳定性方面也有自己的特点:

  • 传统的NAND架构,每BL的cell的program写操作,都会其他cell带来写干扰,写干扰严重的话也会影响数据错误。
  • X-NAND架构因为采用的是16-bit line并发写入,也就消除了单个BL program写入对其他BL的写干扰影响。


根据以上的数据和原理分享,X-NAND整体的优势,集QLC/SLC所长成就自己,也就是获得QLC的容量优势同时拥有SLC速率。

自从Neo公司在2020 FMS峰会展示第一代X-NAND,他们在今年的FMS峰会又再次展示了X-NAND第二代技术。

  • 第一代X-NAND主要采用的4-plane的SLC/TLC并发写,数据先在plane1-3写入SLC pages,然后在plane4把SLC pages的数据写到TLC pages.
  • 第一代X-NAND主要采用的2-plane的SLC/TLC并发写,数据先在plane1写入SLC pages,然后在plane2把SLC pages的数据写到TLC pages. 这样的效果是写性能在第一代X-NAND基础上实现翻倍。


X-NAND前景如何?

既然X-NAND这么强悍,那么X-NAND前景是不是一片光明?目前还不好说。

X-NAND的确有很大的潜力,特别在QLC NAND容量上升后的性能不断下降情况下,如果X-NAND架构可以弥补QLC的性能劣势,肯定加速QLC的普及。X-NAND架构目前所有的数据均是在提升读写性能,针对对性能场景需求较大的消费级市场,可能有一席之地。

但是,X-NAND架构目前在QLC的可靠性方面并没有明显的提升。而寿命可靠性也是QLC最大的劣势,目前只能在以读为主的应用场景发挥QLC的容量成本优势,并不能完成全应用场景的普及和应用。如果X-NAND架构在后续的技术迭代过程中,对QLC的可靠性和稳定性再有进一步的提升和优化,X-NAND将会是未来市场的耀眼明星。

Neo公司已经发布了第二代X-NAND, 支持目前市面上所有的NAND类型SLC/MLC/TLC/QLC/PLC,但市场上仍未有NAND厂商要采用X-NAND架构的消息,也许各大NAND厂商也在研发适合自身的类似技术创新。技术改变世界,让我们拭目以待!

相关文章
|
前端开发
若依框架---如何使用多数据源?前端table中如何显示图片?
若依框架---如何使用多数据源?前端table中如何显示图片?
1016 2
|
网络性能优化
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
【AXI】解读AXI协议的额外信号(QOS信号,REGION信号,与USER信号)
|
11月前
|
人工智能 自然语言处理 JavaScript
用 CodeBuddy 搭建Vue框架 像呼吸一样简单
本文介绍如何借助 CodeBuddy 快速创建 Vue 项目。CodeBuddy 是一款支持自然语言编程的工具,能根据用户需求自动生成代码,降低开发门槛。文章详细说明了通过 CodeBuddy 创建 Vue 项目的步骤,包括解决项目创建失败的问题、自动补全代码功能以及启动开发服务器的方法。无论开发者经验如何,CodeBuddy 都能显著提升效率,让开发更专注创意实现。
|
9月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
3580 0
|
9月前
|
安全 Unix Java
linux中kill -9和kill -15区别
在 Linux/Unix 系统中,`kill -9` 和 `kill -15` 是终止进程的常用命令,核心区别在于发送的信号类型不同,导致进程终止行为截然不同。`kill -15`(SIGTERM)允许进程进行清理操作后优雅退出,适用于正常关闭;而 `kill -9`(SIGKILL)则强制终止进程,不给予任何清理机会,仅在进程无响应时使用。本文从信号类型、行为、工作原理及使用建议等方面进行详细对比,帮助你更安全、有效地管理进程。
1285 0
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
1207 32
|
Web App开发 前端开发 JavaScript
网页浏览和编辑DWG快速入门的方法(WEB CAD SDK)
MxDraw云图在线CAD解决方案,包括MxDraw、MxCAD开发包、图纸转换程序和后端服务。支持多种平台和CPU架构,推荐使用最新版Chrome或Edge浏览器。提供AutoCAD各版本dwg格式支持,具备三维和二维编辑功能。提供入门开发指南和功能丰富的示例。用户可下载开发包进行功能演示,包括在线预览和编辑CAD图纸。
2203 107
网页浏览和编辑DWG快速入门的方法(WEB CAD SDK)
|
存储 运维 Linux
如何在 Linux 系统中使用 envsubst 命令替换环境变量?
`envsubst` 是 Linux 系统中用于替换文本中环境变量值的实用工具。本文分三部分介绍其工作原理、使用方法及实际应用,包括配置文件替换、脚本执行中环境变量替换和动态生成文件等场景,帮助用户高效利用 `envsubst` 进行开发和运维工作。
858 4
|
传感器 数据可视化 JavaScript
状态机(State Machines):理解、设计和应用有限状态机
状态机(State Machines)是一种强大的计算模型和设计工具,用于建模和控制有限状态的系统和行为。无论是在软件开发、自动化控制、游戏设计还是其他领域,状态机都发挥着关键作用。本博客将深入探讨状态机的概念、工作原理以及如何在不同应用中设计和应用它们。
10661 78
|
运维 监控 数据处理
Flink的正则表达式--CEP规则引擎
Flink的正则表达式--CEP规则引擎