前言
随着制造工艺的不断进步,SSD(Solid State Drive)性能和容量不断突破,价格不断降低,迎来了快速的发展,目前已经是商用服务器、高性能存储服务中非常流行的存储介质。作为开发人员,需要了解SSD的基本原理,以便开发时能更好地发挥其优势,规避其劣势。本文章基于末尾所列参考文献整理而来。
SSD简介
SSD诞生于上世纪70年代,最早的SSD使用RAM作为存储介质,但是RAM掉电后数据就会丢失,同时价格也特别贵。后来出现了基于闪存(Flash)的SSD,Flash掉电后数据不会丢失,因此Flash-SSD慢慢取代了RAM-SSD,但是此时HDD已经占据了大部分的市场。到本世纪初,随着制造工艺的不断进步,SDD迎来了长足的发展,同时HDD在工艺和技术上已经很难有突破性的进展,SSD在性能和容量上还在不断突破,相信在不久的将来,SSD在在线存储领域会取代HDD,成为软件定义存储(SDS)的主流设备。
闪存基础
SSD主要由SSD控制器,Flash存储阵列,板上DRAM(可选)以及跟HOST接口(SATA、SAS、PCIe等)组成。
Flash的基本存储单元是浮栅晶体管,同时根据制造工艺分为NOR型和NAND型。NAND容量大,按照Page进行读写,适合进行数据存储,基本上存储使用的SSD的Flash都是NAND。
Flash的工作原理和场效应管类似都是利用电压控制源极和漏极之间的通断来工作的。
写操作是在控制极加正电压,使电子通过绝缘层进入浮栅极。因此写操作无法将电子从浮栅极吸出,所以覆盖写入前必须擦除。
擦除(erase)操作正好相反,是在衬底加正电压,把电子从浮栅极中吸出来。
读操作给控制栅加读取电压,判断漏极-源极之间是否处于导通状态,进而可以判断浮置栅有没有存储电荷,进而判断该存储单元是1还是0。
存储原理
如第二节-闪存基础,SSD内部一般都是使用NAND-Flash作为存储介质,逻辑结构如下图:
SSD中一般有多个NAND-Flash,每个NAND-Flash包含多个Block,每个Block包含多个Page。由于NAND的特性,存取都必须以Page为单位,即每次读写至少是一个Page。通常地,每个Page的大小为4K或者8K。NAND的另一个特性是只能读写单个Page,不能覆盖写某个Page,如果要覆盖写,必须先要清空里面的内容,再写入。由于清空内容的电压较高,必须是以Blo