速通HDD与SSD基本原理
作为MIS专业的小弱鸡,对硬件组成的了解并不深入,而本人正在学习LSM-T结构的存储引擎,发现有些内容一定是要对硬件有所了解之后才能又更好的认知,比如在阅读了LSM-T的经典开山论文后,有了解到LSM-T结构化随机写为顺序写的特性,可以契合HDD的特点可以极大的加快磁盘写入的速度。而在Wiskey论文中,又提出了对SSD友好的KV分离式存储结构,并通过并行读取最大化发挥SSD的优势。在软件性能上再多的优化都是建立在硬件之上的,而底层硬件的改变可能对整体的性能产生极大的质变,所以,还是很有必要对存储硬件有些基本的学习与认知
因为本人有尖端恐惧症,看电子元器件的针脚等精细尖锐的东西会产生比较强烈的生理不适感,故曾经发誓绝对不会去做硬件相关的东西 XD
本文整理自网络,源地址已丢失
机械硬盘工作原理
机械硬盘的内部结构主要由马达、磁盘、磁头臂、磁头组成。
机械硬盘在工作的时候,磁头会悬浮于磁盘面上方几纳米的距离。磁盘面上有很多的小格子,小格子内有很多的小磁粒。
这些磁盘上的磁粒有一定的极性,当磁粒极性朝下的时候记为0,磁粒极性朝上的时候记为1,这样磁头就可以通过识别磁盘磁粒的极性读取数据了。
而磁头也可以利用其变化的磁场改变磁盘磁粒的极性,这样就做到写入和改写磁盘数据了。
为了能够精准定位数据所在磁盘面上的位置,磁盘本身又被划分了无数的扇区和磁道。
假设:
数据存放在磁盘的第五磁道的第七扇区上:
那磁头就会先摆动到第五磁道上空,然后等待第七扇区转过来当第七扇区转到磁头下面的时候,才可以读取数据。
这就是机械硬盘的工作原理,也正是因为机械硬盘是利用磁性极粒来存储数据的,所以机械硬盘通常又被称作磁盘。
而固态硬盘同机械硬盘的工作原理完全不同,固态硬盘采用纯电子结构。
固态硬盘工作原理
固态硬盘存储数据的基本单元叫浮栅晶体管,基本结构有:存储电子的浮栅层,控制极G、衬底P、源极D与漏极S。
我们将浮栅层中的电子数量高于一定值计为0,低于一定值计为1。
那固态硬盘具体是如何工作的呢?接着往下看。
写入数据
写入数据时,需要在控制极G施加一个高压,这样电子就可以穿过隧穿层,进入浮栅层,因为有绝缘层的存在,电子不能再向前移动了,就被囚禁在了浮栅层。
而当我们把电压撤去,这些电子依然会被囚禁在浮栅层,因为隧穿层本质上也相当于绝缘体,所以电子们只能被关押着,这样一位数据就被存储进去了。
这些电子能被“囚禁”多长时间也就是固态硬盘能够存储数据的年限,一般一块新的固态硬盘能够保存数据的年限为10年。因为随着时间的流逝,不断地有电子“越狱”成功。
等“越狱”的电子多到一定的数量,我们保存的数据就不见了。
读取数据
关于它读取数据的原理也非常简单。
当浮栅层中不存在电子时(存储数据为1),我们给控制级一个低压,由于电压低,电子只能被吸引到靠近隧穿层的位置,却无法穿过隧穿层,因而源极漏极可以导通,形成电流。
如果检测到电流,那么说明它没有储存电子,则读取数据为1。
当浮栅层中存在电子时(存储数据为0),我们还给控制极一个低压,由于浮栅层里面的电子对这些电子有排斥作用,所以电子无法被吸引到靠近隧穿层的位置,源极漏极不会导通,不会形成电流。
如果无法检测到电流,那么说明浮栅层储存一定量电子,则读取数据为0。
无数的浮栅晶体管堆叠在一块就可以存储大量的0和1,它们就类似于图书馆当中的书架一样,存储着无限的0101数据。
相对于机械硬盘这种机械结构,固态硬盘这种纯电子结构在存取速度方面的优势就非常突出。
总结
在机械硬盘在读取数据之前,需要先摆动磁头臂到对应的磁道上方,再等待对应的扇区转过来。
尽管目前的机械硬盘大部分都是7200转/分钟或者5400转/分钟的,看起来已经很快了,但是这两个操作依然会导致大约十几毫秒的延迟。
这种延迟对于人类来讲确实微不足道,但是对于计算机内存和CPU来讲,就确实会产生显著影响。
而固态硬盘全程都是电子交互,电子信号的速度要远超磁头臂和磁盘这种机械结构。
如果你的数据是随机分散在磁盘的各个角落,那机械硬盘需要经过多次的寻道和寻址,多次等待扇区转动到磁头底下,所以机械硬盘在读取分散性文件的时候,性能就显得非常弱,速度很慢,即随机读写性能低下。