一、MLC闪存原理简单介绍 NAND闪存工作原理
SLC闪存的每个单元(Cell)存储1比特数据,MLC闪存的每个单元存储2比特数据,以此类推。 NAND闪存通过电压区分存储的数据
(图源:2)
帽子线表示当前编码的电压范围 可以看出,对于SLC闪存,每个单元的电压可以不必十分精细。 而对于MLC,TLC等,每个单元存储的比特数越多,需要的电压越精细,将单元调整到目标电压的时间越长。
MLC写入原理 以MLC闪存为例,为MLC 闪存编入数据(Program)需要两步
第一步,低位(LSB),需要把闪存调整到一个中间状态,由于不需要精确电压,速度较快。 第二部,高位(MSB),需要精确调整电压,速度较慢。
模拟SLC 由NAND原理可知,如果闪存的每个单元只储存1位数据,就可以当作SLC闪存使用。这里有多种不同的实现方式,比如: 1. Fast Page Mode:完成MLC闪存写入的第一步,不做第二步,所有MLC闪存都支持。 2. pSLC Mode:当作SLC闪存来输入电压,需要特定的闪存指令支持。
SLC,MLC,TLC性能对比
MLC,TLC在读取速度,写入速度,擦除速度上都要比SLC慢。
二、SLC Cache简单介绍 由NAND原理可知,MLC、TLC、QLC闪存可以在减少容量的情况下当作SLC闪存使用,
以TLC闪存为例,SLC Cache技术把可用空间分成两部分,SLC区域,TLC区域。 用作SLC的区域,存储相同内容,需要占用3倍于TLC的空间。 主控将会决定SLC区域的大小、当前数据存入的区域、区域之间的迁移,不同主控会有不同的策略。 目前的固态硬盘一般采用动态策略,根据已用空间,当前写入数据长度决定,只有刚写入的数据及可能频繁更新的数据存储在SLC区域(小尺寸的数据通常被认为是可能频繁更新的),其他数据将会迁移至TLC区域。 主控在SLC Cache上的策略及算法将会很明显的影响磁盘的性能,同时: 1. 硬盘可用空间越少,模拟成SLC的区域越少。 2. 已迁移至TLC区域的数据,读取时只有TLC的性能。 3. 很多测速软件生成的测试文件位于SLC区域,TLC区域性能没有体现。
参考资料: 2. NAND Flash memory, Samsung Electronics, co., Ltd https://user.eng.umd.edu/~blj/CS-590.26/nand-presentation-2010.pdf 3. Reinforcement Learning-Based SLC Cache Technique for Enhancing SSD Write Performance, Sangjin Yoo https://www.usenix.org/conference/hotstorage20/presentation/yoo
|