1.原理
如图所示,机械硬盘存储数据是通过盘面的磁性物质来记录二进制的0和1的,而固态硬盘存储数据是基于闪存技术(FLASH Memory),属于电可擦除ROM,即EEPROM
2.固态硬盘的组成
(1)闪存翻译层
(2)存储介质
存储介质由多个闪存芯片组成,
系统通过I/O总线,向SSD发送要读/写的逻辑块号,即逻辑地址,这一逻辑地址经过闪存翻译层翻译后,会映射到对应的物理地址,所以闪存翻译层可以将逻辑地址转换为物理地址,由于固态硬盘的读写以页为单位,所以每一个逻辑块,对应闪存芯片的一个页
固态硬盘包括多个闪存芯片,这些闪存芯片都能存储数据,每个闪存芯片由多个数据块组成,每个块的大小16KB~512KB,而每一个块又能进一步拆分为页,每页大小512B~4KB,系统对固态硬盘的读写是以页为单位的,而对机械硬盘的读写是以块/扇区为单位的
3.固态硬盘的读写性能
① 从固态硬盘的组成可知,对固态硬盘的读写是以页为单位的,相当于磁盘的"扇区"
② 固态硬盘是以块(block)为单位“擦除"的,擦干净的块,其中的每页都可以写一次(也就是当某页已经有数据,那么就不能写入数据了,只能将页所在的块擦干净,再往其中写入数据),读无限次
③ 读快,写慢。要写的页如果有数据,则不能写入,需要将块内其他页全部复制到一个新的(擦除过的)块中,再写入新的页
若内存芯片1中的块1的第一个页想要写入数据,那么就要把块1全部擦除,这样会导致其他页数据丢失
系统会将其他页的数据,移动到另一个块中
再将新数据写到移动后的块中
但是闪存翻译层会将逻辑块号翻译为物理地址,也就是逻辑块号和物理地址是有一一映射关系的,但是经过写入数据后,数据的物理位置发生改变,为了让映射关系正确,在数据移动后,闪存翻译层会对逻辑块号重新映射到正确的物理位置,原来的映射关系废弃
所以,固态硬盘闪存芯片组中的物理位置可能改变,只是闪存翻译层会将映射关系修改正确
④ 支持随机访问,系统给定一个逻辑地址,闪存翻译层可通过电路迅速定位到对应的物理地址
4.固态硬盘与机械硬盘比较
① SSD读写速度快,随机访问性能高,用电路控制访问位置;机械硬盘通过移动磁臂旋转磁盘控制访问位置,有寻道时间和旋转延迟
② SSD 安静无噪音、耐摔抗震、能耗低、造价更贵
③ SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,而机械硬盘的扇区不会因为写的次数太多而坏掉
5.磨损均衡技术
由于SSD的一个"块"被擦除次数过多(重复写同一个块)可能会坏掉,所以引入了磨损均衡技术,将"擦除"平均分布在各个块中,以提升使用寿命
(1)动态磨损均衡
写入数据时,优先选择累计擦除次数少的新闪存块,因为系统无论选择什么位置,闪存翻译层都能将逻辑块号与物理地址进行正确映射
(2)静态磨损均衡
SSD监测并自动进行数据分配、迁移,让老旧的闪存块承担以读为主的储存任务,让较新的闪存块承担更多的写任务
例,某固态硬盘采用磨损均衡技术,大小为2^40B=1TB,闪存块的擦写寿命只有2^10=1K次。某男子平均每天会对该固态硬盘写2^37B=128GB数据。在最理想的情况下,这个固态硬盘可以用多久?
SSD采用磨损均衡技术,最理想情况下,SSD中每个块被擦除的次数都是完全均衡的。
1TB/128GB=8
因此,平均每8天,每个闪存块需要擦除一次。每个闪存块可以被擦除1K次,因此,经过8K天,约23年后,该固态硬盘被男子玩坏