NAND Flash
目录
在目前的固态硬盘,现在最常用的是NAND闪存介质,这是一种非易失存储介质。
NAND闪存介质的基本存储单元(Cell)是一种浮栅晶体管,我们对该晶体管的写操作即为使电子进入浮栅极,而擦除操作正好相反,把电子从浮栅极中吸出来。通过电子数量的多少,我们能够控制精细该存储单元中的电压值,从而使用该值对信息进行编码。
基于该原理,我们可以了解到NAND闪存介质存在的以下特点:
- 不能覆写,必须先擦除才能写。 前面已经提到了,NAND闪存介质中的Cell只有写操作和擦除操作,而擦除操作意味着将之前写入的信息全部清空,如果要实现修改操作,需要先擦除再写新值。(这样的修改操作性能会很差,所以实际上的SSD并不会这样实现修改)
- 寿命有限,一块闪存芯片仅能写入有限次就会报废。这个也是NAND闪存介质的特性。
- 可能比特翻转/长时间不通电数据可能丢失。
NAND闪存介质的分类
我们可以通过Cell中的电压值对信息进行编码,为了进一步提升其中存储的信息密度,如今的Cell已经从仅编码一个bit的SLC发展到现在能编码4个bit的QLC了。
提升信息的编码密度带来的代价就是,为了实现更加精细的电压调控,NAND闪存介质的写入性能和寿命将会受到影响。
(图源《深入浅出SSD》P16)
可以看到,存储密度最小的SLC,无论是性能还是寿命,都要比MLC、TLC要更好。这也是分层存储体系的体现。空间、性能永远无法兼顾。
参考资料
- 《深入浅出SSD》第三章
- wiki
提到本笔记的相关内容
Solid-State Drive
固态硬盘(Solid-State Drive,SSD)是一种使用集成电路设计制作的存储设备。SSD中没有可活动的机械部件,这是SSD与HDD在概念上的重要区别。固态硬盘中一般使用闪存(特别是[[NAND Flash]])作为一种非易失存储介质,其具有非常好的随机读写能力,但同时也由于闪存本身具有的特性带来一些问题。因此基于闪存的存储设备还需要在其上增加一层[[Flash Tranlation Layer]]来更加充分利用闪存的性能以及在读写闪存过程中实现磨损均衡、数据纠错、坏块管理等。
Flash Tranlation Layer
FTL是[[Solid-State Drive|SSD]]中的核心,其负责将主机访问SSD的逻辑地址转换成SSD上真实的闪存物理地址,是[[NAND Flash]]与上层应用之间的一个中间层。上层应用通过LBA(Logical Block Address,逻辑块地址)读写SSD,SSD将LBA翻译成实际的物理地址从而对闪存进行读写,并通过修改映射关系与移动数据实现磨损均衡、坏块管理、数据保持、垃圾回收等功能。