操作系统固态硬盘基本介绍

SSD

SSD硬盘不像机械硬盘IO时依赖两个耗时的机械轴行为:磁盘旋转,以及磁道寻道,SSD硬盘的访问延迟要比机械硬盘要低的多,在随机IO下的表现尤其明显。

SSD的组成结构

机械硬盘和ssd虽然都同为硬盘,但底层实现技术却完全不一样,机械硬盘使用的是磁性材料记忆,而SSD用的是类似u盘的闪存技术。实现技术的不同,必然在硬盘内部结构上他们就有天壤之别。不像机械硬盘里的圆形碟片,SSD是由一些电路和黑色的存储颗粒构成。SSD硬盘是基于NAND Flash存储技术的,属于非易失性存储设备,也即掉电了数据不会丢。

SSD中包含Die,Plane,Block以及Page几个概念,其中:每个Die有若干个Plane,每个Plane有若干个Block,每个Block有若干个Page。Page是磁盘进行读写的最小单位,一般为2KB/4KB/8KB/16KB等。

SSD中的扇区

与机械硬盘一样,在SSD中虽然每一个物理Page的大小为2K到16K不等,但是为了兼容性,也必须使用逻辑扇区。SSD控制器在逻辑上会把整个磁盘再重新划分成一个个的“扇区”,采用和新机械硬盘一样的LBA方式来进行编址(整个磁盘的扇区从0到某个最大值方式排列,并连成一条线)。当需要读取某几个”扇区”上数据的时候,SSD控制器通过访问这个LBA MapTable,再来找到要实际访问的物理Page。SSD最小的读写单位就是Page,没办法对扇区来进行读写的。

SSD的闪存单元

SSD是由一个个的Page组成。而在每一个Page里,又包含了许许多多的闪存单元。现代的闪存单元有多种类型,目前主流的主要分为SLC、MLC和TLC。在SLC里,一个单元的电压只分成高低两种状态,所以只能表示1bit数据。到了MLC,硬是把一个单元里的电压按照高低分成了四种状态,所以可以表示2bit。到了TLC,直接一个单元应拆分成8个电压高低不同的状态,为了表示3bit。由于TLC在数据读写需要八种不同电压状态,而施加不同的电压状态、 就需要更精确,也就需要更长的时间才能得以实现。另外由于电压状态多,出错的可能性也会更大。

以上三种闪存单元对比:从性能和稳定性角度来看,SLC最好。从容量角度看,TLC最大。这就是为什么日常看到的工业级的SSD要比笔记本SSD要贵很多,其中一个很重要的原因就是工业级的盘往往采用的闪存单元是SLC或MLC,而我们家用的笔记本一般都是TCL,因为便宜。

小问题

假设某SSD的Page大小是4KB,一个文件是16KB。那么该文件是存在一个黑色的存储颗粒里,还是多个颗粒里?

假设只写在一个颗粒里,那么对该文件进行读取的时候,就只能用到一条Flash通道,这样速度就会比较慢。如果存在相邻的4个颗粒里,每个写入4KB。这样多个Flash通道的带宽会充分发挥出来,传输速度也更快。所以,实际中是分散在多个。