发展史
上文中说SSD是以闪存为介质的存储设备,这只能算是现代SSD的特点,而不能算是定义。
HDD是磁存储,SSD是电存储;HDD的特点导致寻址到不同扇区其性能存在明显差异,比如寻址下个扇区和上个扇区;而SSD寻址到任何地方都没有性能的差异;这才是SSD与HDD的最大区别,而不取决于介质。
下图是HDD的 磁头 + 马达 + 磁盘 的机械架构 和 SSD 控制器 + 闪存介质的半导体存储芯片结构。
目前也已经出现更高性能的介质来代替闪存,比如3D Point。
事实上SSD刚出现时使用的介质是RAM,由于RAM掉电数据丢失的特性,注定它不能作为主流的存储设备。
虽然1967年就发明了浮栅晶体管,但直到上世纪90年代,一些厂商才尝试用闪存制造SSD,闪存SSD逐渐代替RAM SSD,成为SSD市场的主流,甚至在存储市场能跟HDD抗衡。
基本工作原理
先看下图,这是OS和SSD之间的系统调用图:
但实际上对于OS来说用HDD还是SSD,基本没有差别,甚至如果使用的是SATA/SAS SSD其和使用HDD,在OS侧是完全相同的;NVMe SSD有稍微区别,区别点就在于底层驱动不同,SATA/SAS接口(不管是SSD,还是HDD),底层驱动用的是SCSI,而NVMe SSD,底层驱动用的是NVMe驱动。
再来看一下SSD,通过图可以看出SSD有三大模块组成:
- 前端接口,包含相关的和主机通信的协议
- 中间的FTL
- 后端和闪存模块通信
前端的接口和通信协议是标准化的,后端和闪存的接口和操作也是标准化的,所以体现不同SSD差异的地方就在FTL的算法。FTL的算法决定了性能、可靠性、功耗等SSD的核心标准。