磁盘详解——电脑数据如何存储在磁盘

很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在,但也有很多人不知道硬盘是怎样储存这些数据的。本着「知其然,也要知其所以然」的精神,这里给大家讲讲其中的原理。

首先我们要明白的是,计算机中只有0和1,那么我们存入硬盘的数据,实际上也就是一堆0和1,换句话说,我们如果有办法记录0和1就可以记录数据了,比如我们有2个灯泡,一个不亮一个亮就可以表示01,即数字1,两个都亮11,即表示数字2,越大的数可以用越多的灯泡来表示。

硬盘分为机械硬盘和固态硬盘,由于结构的不同它们储存数据的原理也不同。先来看机械硬盘,其最重要的结构是两面涂有磁性材料的磁盘,在工作时会以每分钟7200转的速度旋转。

磁盘的作用就是记录数据,在盘片上有序的排列了很多的小颗粒材料,它们都是磁性物质,可以被永久磁化和改变磁极,这两个磁极就分别表示了计算机二进制中的0和1。

写入数据时,距离盘面3纳米的磁头会利用电磁铁,改变磁盘上磁性材料的极性来记录数据,两种极性分别对应0或1。而读取数据时,旁边的读取器可以识别磁性材料的不同极性,再还原成0或1。

由于磁盘是转动后读写数据的,所以,当初设计就是在类似磁盘同心圆上面切出一个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的磁头去存取。

这个小区块就是磁盘的最小物理储存单位,称之为扇区 (sector),大小一般是512字节,而同一个扇区组合成的圆就是所谓的磁道(track)。

这里不得不说到字节知识。

位:"位 (bit)"是电子计算机中最小的数据单位。

每一位的状态只能是0或1。 字节:8个二进制位构成1个"字节 (Byte)",它是存储空间的基本计量单位

字节:在多数的计算机系统中,一个字节是一个8位长的数据单位,大多数的计算机用一个字节表示一个字符、数字或其他字符。 一个字节也可以表示一系列二进制位。

位(bit)字节(Byte)(这两个不能搞错)

1B=8b

1KB=1024B

1M=1024KB

1G=1024M

1TB=1024G

因此,磁头要想读取某个文件,必须在电机驱动下,先找到对应的磁道,再等磁盘转到对应扇区才行,一般会有十几毫秒的延迟,这就让机械硬盘在读取分散于磁盘各处的数据时,速度将大幅降低。

相较于机械硬盘里面的复杂结构,固态硬盘就要简单许多。它主要是靠FLASH芯片来作为储存数据的介质,由主控芯片来承担数据的中转,并调配数据储存在闪存芯片上面。

闪存的基本存储单元是浮栅晶体管,其中的浮栅被二氧化硅包裹,和上下绝缘,在断电时也能够保存电子,当电子数量高于一个中间值就表示0,低于中间值就表示1。

晶体管每次写入数据前都要先擦除,在P极上加一个电压,浮栅中原有的电子会因为量子隧穿效应通过绝缘层被吸出来,让浮栅中的电子数量低于中间值,还原成1;如果要写入0,就在控制极加一个电压,让电子穿过绝缘层再注回浮栅,使电子数量高于中间值,表示0。

但在读取时,闪存无法直接得知浮栅中有多少电子。因为往控制极加一定大小的电压,会导通这两个N极。控制极上的电压越大,N极间的电流也越大。然而,存储0的浮栅,相比存储1的浮栅,有更多的电子,会抵消控制极上的电压,所以控制极需要更大的电压才能导通两个N极。

因此,当不知道浮栅中有多少电子时,就可以往控制极加一个中间值电压,如果两个N极导通,就能反推出浮栅中的电子较少,识别为1;如果没有导通,就说明浮栅中的电子较多,识别为0。

传统的单阶存储单元SLC ,电子数量只有两种状态,只能保存一比特的数据。而多阶存储单元MLC、TLC和QLC ,它们的电子数量有4~16种状态,一个单元可保存2~4比特。

多阶存储单元大大降低了固态硬盘单位容量的成本,但也影响了硬盘寿命和性能。这是因为晶体管擦写数据时,二氧化硅绝缘层会困住一部分电子,这些电子的累积会逐渐抵消控制极上的电压,使得控制极为了导通两个N极所需的电压越来越大,当这个偏移超过中间值,那么读取时也就无法分辨0和1。

而多阶存储单元由于不同状态之间分得非常细,也就更容易受这种偏移的影响,所以从SLC到QLC,它们总的擦写次数呈几何级数递减。

总结来说,机械硬盘是磁头通过磁盘旋转来读写数据的,所以磁盘读写数据的速度跟磁盘的旋转速度有很大的关系,磁盘转得越快磁头就能更快的访问到更多区域,速度自然就越快了。但也正是转速比较快,所以抗震抗摔以及抗尘能力比较差,试想每分钟几千转的磁盘震了一下或者撞上了灰尘,磁头即使只是发生了一点点小小的偏移,也会带来不可逆转的损坏。

而固态硬盘由于没有了机械结构,完全不用担心这些的问题。但是固态硬盘也有一个硬伤就是:它是靠在存储单元里面存放电子的方式来存储数据。而电子大家知道是一个非常非常小的东西,这样如果同一个位置存放电子再擦除,如此反复长久以来就会出现不稳定的情况,比如电子会写不上。尤其是将要到来的QLC储存芯片,每个存储单元里面放了4个电子,由于电子之间也会互相影响,导致寿命大大减少。

相关推荐
我要洋人死8 分钟前
导航栏及下拉菜单的实现
前端·css·css3
科技探秘人20 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人20 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR26 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香27 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q24985969330 分钟前
前端预览word、excel、ppt
前端·word·excel
小华同学ai36 分钟前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书
Gavin_91544 分钟前
【JavaScript】模块化开发
前端·javascript·vue.js
懒大王爱吃狼2 小时前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
逐·風6 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#