SSD ( Solid State Drive),即固态硬盘,是一种以半导体闪存( NAND Flash)作为介质的存储设备。和传统机械硬盘(Hard Disk Drive,HDD)不同,SSD以半导体存储数据,用纯电子电路实现,没有任何机械设备,这就决定了它在性能、功耗、可靠性等方面和HDD有很大不同。
深入浅出SSD 学习笔记整理——Johnathan Sung
第一章:介绍了SDD的优势与相关接口参数;
第二章:主要介绍了全闪存的结构(二维,三维)与时序,错误干扰之类的;
第三章:储存介质:闪存
第四章:FTL(SSD核心技术)
FTL是Flash Translation Layer (闪存转换层)的缩写,
简介:
完成主机(或者用户,Host)逻辑地址空间到闪存( Flash)物理地址空间的翻译(Translation),或者说映射(Mapping)。SSD每把一笔用户逻辑数据写人闪存地址空间,便记录下该逻辑地址到物理地址的映射关系。当主机想读取该数据时,SSD便会根据这个映射,从闪存读取这笔数据然后返回给用户。
基本功能:
完成逻辑地址空间到物理地址空间的映射。
闪存的特性:
(1) 闪存块(Block)不能覆盖写,需要维护一张逻辑地址到物理地址的映射表,FTL需要做垃圾回 收,即使GC ( Garbage Collection, 垃圾回收)
(2) 闪存块有一定寿命,FTL需要做Wear Leveling,让数据写入均摊到每个闪存块上,即让每个块磨损都差不多,从而保证SSD具有最大的数据写入量。
(3) 闪存块读的次数有限,次数过多会有读干扰(具体见第三章),FTL需要处理读干扰问题,当某个闪存块读的次数将要达到一定阈值时,FTL需要把这些数据从该闪存块上搬走,从而避免数据出错。
(4) 数据的保存问题,必须上电,FTL才有效,好的FTL,就需要有处理数据保持问题的能力。
(5) 坏块问题,FTL管理坏块。
(6) 对MLC或TLC来说,存在Lower Page corruption 的问题。即掉电异常问题。好的FTL,应该有机制避免这个问题。
(7) MLC或TLC的读写速度都不如SLC,但它们都可以配成SLC模式来使用。好的FTL,会利用该特性去改善SSD的性能和可靠性。
映射管理:
分类:
(1)块映射:块映射有好的连续大尺寸的读写性能,但小尺寸数据的写性能是非常糟糕的。
(2)页映射:闪存页远比闪存块多,因此需要更多的空间来存储映射表。但它的性能更好,尤其体现在随机写上面。为追求性能,SSD一般都采用页映射。
(3)混合映射:块内采用页映射的方式。