什么是硬盘
文/原创:卧龙会社群人员Aiven
SSD(solid-state drive)俗称固态硬盘主要由主控芯片(Controller)、DRAM缓存、NAND FLASH三部分组成,主控芯片为SSD的控制核心,DRAM作为数据、指令及映射表的缓存,NAND FLASH是SSD的实际存储介质。原创微信公众号:卧龙会IT技术SSD的工作原理可通过写操作与读操作单独阐述:
l写操作
PC机发送写指令到SSD,SSD主控芯片解析该指令并获取需要写入的逻辑地址及写入数据,然后根据映射表(操作系统逻辑地址与Flash物理地址之间的映射关系)将数据写入NAND FLASH中。
l读操作
PC机发送读指令到SSD,SSD主控芯片解析读指令获取读地址,主控芯片根据映射表从NAND FLASH中读取数据并返回PC机。
为什么SSD顺序读写速度比HDD快?
传统机械硬盘(HDD)的顺序读写速度主要由磁盘的转速和磁盘面密度共同决定。然而过快的转速会缩短电机主轴的寿命、产生更大噪音、消耗更多的电能,因此目前家用HDD最高只有7200RPM,服务器HDD产品可以做到15000RPM。
磁盘面密度是HDD的另一个瓶颈,过高的磁盘面密度会降低数据的稳定性,导致数据出错的概率增加。因此HDD 的顺序读写速率始终无法超越SATA 3.0的极限速率550Mbps。
而SSD的存储介质为NAND FLASH。对于大容量的SSD,主控芯片与NAND FLASH之间通常有多个数据通道,这些通道可并行收发数据。因此目前大部分SATA3.0 SSD的顺序读写速率都已接近SATA极限速率550Mbps。
为什么SSD随机读写速度远远超过HDD?
HDD随机读取某个扇区的数据需要磁头先切换至对应的磁道,然后等待对应的扇区转动到磁头下方。前者为HDD的寻道时间,后者由扇区当前位置和磁盘转速决定,两者均为毫秒级。
而SSD随机读取数据某个区域的数据只需要主控芯片在缓存中查找映射表,没有任何机械操作,时间通常为微秒级。因此SSD随机读写速度会远远超过HDD。
SSD垃圾回收
NAND FLASH的最小读写单元为page,一般为几KB到几KB,多个page组成一个block。SSD的最小写入单元为page,而最小擦除单元是block。
当操作系统删除或改写SSD上某个存储空间的数据时,NAND FLASH上对应的数据会被标记为无效,而不会直接被覆盖为新数据,这些被标记为无效的数据空间必须经过垃圾回收得到释放。
如上图所示,首先写入A,B,C,D这4个page数据到block X,再写入E,F,G并修改A、B、C、D为A’、B’、C’、D’,此时原有A、B、C、D会被标记为无效空间,A’、B’、C’、D’会写入新的空间。
若要释放Block X中的无效空间,则需要将Block X的数据整体拷贝至Block Y并擦除Block X,此过程即为垃圾回收。
SSD预留空间OP
OP即Over provisioning通常SSD内部NAND FLASH实际容量都比用户可见的容量要大,例如240GB的固态硬盘实际容量为256GB,480GB的固态硬盘实际容量为512GB。这些多出来的存储空间主要用来做垃圾回收、存储映射表(mapping table)、替换坏块。
SSD磨损均衡(Wear Leveling)
SSD的磨损均衡包括动态均衡与静态均衡。动态均衡,SSD内部会记录每个FLASH block的擦写次数,每当SSD接收数据需要写入NAND FLASH时,SSD控制器总是挑选那些擦写次数较小的block,
保证所有NAND block的擦写次数平衡,不会有某一个block擦写次数过多而提前损坏。静态均衡与动态均衡类似,唯一的区别为静态均衡还会将SSD内的静态数据(写入SSD后长期无修改)搬移到擦写次数较多的block。
SSD写放大(Write Amplification)
写放大是SSD实际写入NAND FLASH的数据与PC机写入SSD控制器的数据之比,该值通常大于等于1。这主要是由于SSD会在后台执行垃圾回收与磨损均衡操作。写入SSD的数据越小,写放大值越大,反之越小,极限情况为顺序写入(sequential write),此时写放大值接近1。请加V信:shineware666
论SSD寿命
SSD的存储介质NAND FLASH分为SLC、MLC、TLC。SLC NAND的擦写次数通常为100000次,MLC为3000次,TLC通常只有1000次。SSD的寿命主要由NAND FLASH类型决定,SLC SSD寿命最长价格最贵,MLC SSD次之,TLC SSD寿命最短价格最便宜。
SSD的寿命参数可通过查看TBW(Total Bytes Written)参数,数值越大寿命越长。
卧龙会,卧虎藏龙! 电子行业高手汇聚
长按二维码加我微信,拉你入卧龙会微信群