固态硬盘和机械硬盘的区别

机械硬盘

机械硬盘即是传统普通硬盘,硬盘的物理结构一般由磁头与盘片、电动机、主控芯片与排线等部件组成。

所有的数据都是存储在盘片中的,盘面物理上讲就是一个铝合金或者玻璃盘子,上面涂一层磁性材料,然后上面覆盖一层润滑保护涂层。

磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。信息通过离磁性表面很近的磁头,由电磁流来改变极性方式被电磁流写到磁盘上,信息可以通过相反的方式读取。硬盘作为精密设备,尘埃是其大敌,所以进入硬盘的空气必须过滤。

来看下机械硬盘内部的结构

磁头是不是直接和盘片接触的呢

答案是否定的,为避免磁头和盘片的磨损,在工作状态时,磁头悬浮在高速转动的盘片上方,间隙只有0.1~0.3um,而不是盘片直接接触,在电源关闭之后,磁头会自动回到在盘片上着陆区,此处盘片并不存储数据,是盘片的起始位置。

磁盘中有几个盘片

盘片可以有一个也可以有多个,现在机械硬盘内部通常会叠多个盘片提升数据容量,因为盘片的正反面都可以进行读写,所以对应的磁头也是多磁头的。

再来看下机械硬盘中几个比较重要的概念

磁道

当磁盘旋转时,磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道(Track)。资料存储手段从LMR进展到PMR这中又有CMR、SMR等技术。

磁盘会被划分成一个又一个的圈,每一圈就是一个磁道。

扇区

磁盘上的每个磁道被等分为若干个弧段,这些弧段便是硬盘的扇区(Sector)。硬盘的第一个扇区,叫做引导扇区。

读取和写入数据的时候,磁盘会以扇区为单位进行读取和写入数据,即使电脑只需要某个扇区内的几个字节的文件,也必须一次把这几个字节的数据所在的扇区中的全部512字节的数据全部读入内存,然后再进行筛选所需数据。

为什么要进行扇区的划分呢?

是逻辑化数据的需要,能更好的管理硬盘空间。在计算机磁盘存储中,扇区是磁盘或光盘上磁道的细分,硬盘的最小存储单元。固态硬盘的CHS寻址方式和LBA寻址方式,都需要借助于扇区才能找到实际的存储地址。

早期的硬盘每磁道扇区数相同,由于每磁道扇区数相同,外圈磁道半径大,里圈磁道半径小,外圈和里圈扇区面积自然会不一样。这样就是造成了外圈的密度比内圈小,会浪费大量的存储空间。

如今的硬盘都使用ZBR(Zoned Bit Recording,区位记录)技术,盘片表面由里向外划分为数个区域,不同区域的磁道扇区数目不同,同一区域内各磁道扇区数相同,盘片外圈区域磁道长扇区数目较多,内圈区域磁道短扇区数目较少,大体实现了等密度,从而获得了更多的存储空间。

外侧的扇区数量比较多,那就意味着外侧数据的读取,能够有更高的读写速度了。

柱面

在有多个盘片构成的盘组中,由不同盘片的面,但处于同一半径圆的多个磁道组成的一个圆柱面(Cylinder)。

因为磁头都是绑定在一起移动的,所以才会有柱面的结构,机械硬盘的读取数据都是按照柱面来进行的。

机械硬盘的工作原理

机械硬盘在工作的时候,磁头会悬浮于磁盘面上方几纳米的距离。磁盘面上有很多的小格子,小格子内有很多的小磁粒。

这些磁盘上的磁粒有一定的极性,当磁粒极性朝下的时候记为0,磁粒极性朝上的时候记为1,这样磁头就可以通过识别磁盘磁粒的极性读取数据了。

而磁头也可以利用其变化的磁场改变磁盘磁粒的极性,这样就做到写入和改写磁盘数据了。

固态硬盘的寻址方式

我们知道固态硬盘中划分了,磁道和扇区已经柱面,那么一个当一个数据被写入到盘面中,下次的读取如何定位到盘片中具体的位置呢?

为了在硬盘中写入或读取数据,磁盘的每一个存储单元(扇区)都必须是一个固定的地址。对于机械硬盘而言,有两种地址编号方式,对应两种寻址方式:

1、CHS寻址方式;

2、LBA寻址方式。

CHS寻址方式

之前的固态硬盘,硬盘盘片的每一条磁道都具有相同的扇区数。由此产生了所谓的CSH 3D参数 (Disk Geometry)。即磁头数(Heads),柱面数(Cylinders),扇区数(Sectors),以及相应CHS寻址方式。

CHS寻址方式是过去采用的一种方式,也就是用柱面(Cylinder)/磁头(Head)/扇区(Sector)三个参数来定位一个唯一的扇区地址。

需要存储每个区域的三个参数(这称为3D参数),使用时再分别读取三个参数,然后在送到磁盘控制器去执行。

随着硬盘技术的进步,硬盘容量越来越大,CHS模式无法管理超过8064 MB的硬盘,因此工程师们发明了更加简便的LBA寻址方式。

LBA寻址方式

LBA寻址方式是一种线性寻址模式,这种模式下,不需要考虑磁盘的物理结构,直接将磁盘上的所有扇区依次从“0”开始进行编号,直到磁盘的最大扇区数减1。

它把硬盘所有的物理扇区的C/H/S编号通过一定的规则转变为一线性的编号,系统效率得到大大提高,避免了 烦琐的磁头/柱面/扇区的寻址方式。在访问硬盘时,由硬盘控制器再这种逻辑地址转换为实际硬盘的物理地址。

栗如:数据存放在磁盘的第五磁道的第七扇区上:

那磁头就会先摆动到第五磁道上空,然后等待第七扇区转过来。当第七扇区转到磁头下面的时候,才可以读取数据。

SMR叠瓦式真的比PMR优秀吗

磁头分为写磁头和读磁头,写磁头因为其自身体积限制没办法做到和读取磁头一样大,所以写入数据磁头会比读取磁头大很多。

使用PMR技术,除了磁道和磁道之间的空格,同时写磁头比读磁头宽,加上读写磁头的宽度差值,造成了磁盘中有很多空间被浪费了。

所以引入了SMR叠瓦式磁盘技术

通过磁道的叠加,使得磁盘中可以容纳更多的磁道了,从而提高了存储面密度,进而降低了磁盘单位存储容量的成本。

但是使用SMR叠瓦式磁盘技术的磁盘没有使用PMR技术的磁盘性能好,为什么呢?这里来分析下。

叠瓦式通过磁道的叠加增加了磁道的密度,读磁头因为小是不影响的,但是因为写磁头比较宽,在写入数据的时候会出现下面两种情况:

1、第一次写入数据的时候,会写入相同的数据到叠加的两条磁道中,后面的磁道需要写入的时候,就需要把自己磁道中的内容擦除,然后写入;

2、修改数据,如果需要修改中间磁道中的数据,会影响到后一条磁道的数据,只有先将后一条磁道数据取出来暂时放入缓存中,等数据修改完成,再将缓存的信息重新写入磁道中。

所以这样看下来,叠瓦式硬盘相比垂直式硬盘性能差不少。

叠瓦式硬盘主要的表现是数据写入性能,尤其是频繁擦写硬盘的数据,或者碎片化文件写入时候,会出现速度慢,还有可能出现突发性的掉速,严重的突发性掉速就会造成系统死机或者游戏卡死的问题。此外,叠瓦式硬盘由于改变了磁道的分布方式,因为叠瓦式擦除+覆写数据的操作需要磁头写入两次数据,需要先擦掉然后再写入,这样一来无疑是增加了硬盘的负载,让硬盘在工作的时候噪音变大,其寿命也会受到一定影响。

所以大家之后选硬盘的时候,需要注意这一点,选PMR技术的机械硬盘性能肯定是更好的。

固态硬盘

固态硬盘(Solid State Drive),简称SSD(固盘),是用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片、DRAM芯片)以及缓存单元组成。区别于机械硬盘由磁盘、磁头等机械部件构成,整个固态硬盘结构无机械装置,全部是由电子芯片及电路板组成。

一般固态硬盘由三大块主控芯片、闪存颗粒、缓存单元构成。

主控芯片

类似电脑中 cpu 一样,该模块也是固态硬盘的核心器件。作用主要有下面几个:

1、负责协调整个SSD的程序运作、数据调度包括平衡闪存颗粒的平均损耗等,直接决定了一块固态硬盘的性能高低;

2、当数据由接口传输至SSD时,要经由主控芯片中转至闪存颗粒进行存储;

3、主控芯片的一个重要功能就是在需要的时候通过启动固件算法,执行错误校正码、坏块管理、垃圾回收算法等等重要任务。

闪存颗粒

闪存颗粒负责数据的存储,在固态硬盘里面,闪存颗粒则替代了机械磁盘成为了存储单元。

一般使用非易失性存储器作为闪存颗粒(在断电情况下仍能保持所存储的数据信息),在固态硬盘中,NAND闪存因其具有非易失性存储的特性,即断电后仍能保存数据,被大范围运用。

根据NAND闪存中电子单元密度的差异,可以分为SLC(单层次存储单元)、MLC(双层存储单元),TLC(三层存储单元)以及QLC(四层式存储),这四种存储单元在寿命以及造价上有着明显的区别。

SLC(单层式存储)为单层电子结构,写入数据时电压变化区间小,寿命长,读写次数在10万次以上;造价高,多用于企业级高端产品;

MLC(多层式存储)使用高低电压构建的双层电子结构,寿命长,价格中等,多用于民用高端产品,读写次数在5 000次左右,相比SLC写入速度和次数减少了,控制芯片采取磨损均衡算法以满足长时间使用的要求;

TLC(三层式存储)是MLC闪存延伸存储密度最高(达3 bit/cell),容量是MLC的1.5倍,造价成本低,使命寿命也低,读写次数在1 000~2 000次左右。TLC是当下主流厂商首选闪存颗粒。

QLC(四层式存储)存储密度最高(达4 bit/cell),容量是MLC的2倍,造价成本最低,使命寿命也是最低,读写次数仅为100-300次左右。目前绝大部分定位低端的固态硬盘都采用的这个颗粒类型。

缓存单元

缓存芯片主要是进行常用文件的随机性读写,以及碎片文件的快速读写。

由于固态硬盘内部的磨损机制,就导致固态硬盘在读写小文件和常用文件时,会不断进行数据的整块的写入缓存,然而导出到闪存颗粒,这个过程需要大量缓存维系。特别是在进行大数量级的碎片文件的读写进程,高缓存的作用更是明显。

这也解释了为什么没有缓存芯片的固态硬盘在用了一段时间后,开始掉速。

固态硬盘的工作原理

Nand Flash表示的是 Flash 颗粒,SSD 控制器通过若干个主控通道并行操作这些 Flash 颗粒,就像 raid0 一样,这样可以提高数据写入的并行性及效率。每一个 Flash 颗粒又进一步细分为多个 block (块),每一个 block 又包含多个 page,在 SSD 内部,SSD 控制器和 Flash 之间的最小访问单元粒度是 page。一般一个 page 的大小为4 k,一个 block 包括16个 page。在写入数据的时候,像 raid0 的工作机制一样,同时并行地将数据写入到每个 Flash 颗粒的 block 中可用的 page 上,当一个 block 写满之后会接着写下一个 block。

闪存最基础的结构:浮栅晶体管

固态硬盘存储数据的基本单元叫浮栅晶体管,基本结构有:存储电子的浮栅层,控制极G、衬底P、源极D与漏极S

我们将浮栅层中的电子数量高于一定值计为0,低于一定值计为1。

写入数据

写入数据时,需要在控制极G施加一个高压,这样电子就可以穿过隧穿层,进入浮栅层,因为有绝缘层的存在,电子不能再向前移动了,就被囚禁在了浮栅层。

这样,当我们写完数据撤去电压,电子就被囚禁在了浮栅层,因为隧穿层本质上也相当于绝缘体,所以电子就被保存在了浮栅层,这样我们的数据就被写入进去了。

但是这些电子,还是会存在越狱的情况,如果里面所有的电子都越狱了,也就意味着我们保存的数据丢失了。作为固态硬盘的存储单元的NAND flash不通电时间长了会导致数据丢失。

读取数据

如果浮栅层中没有数据,我们给控制级一个低压,由于电压低,电子只能被吸引到靠近隧穿层的位置,却无法穿过隧穿层,因而源极漏极可以导通,形成电流。

如果检测到电流,就说明里面没有电子,本次读取数据记为1。

当浮栅层中存在电子时(存储数据为0),我们还给控制极一个低压,由于浮栅层里面的电子对这些电子有排斥作用,所以电子无法被吸引到靠近隧穿层的位置,源极漏极不会导通,不会形成电流。

如果无法检测到电流,那么说明浮栅层储存一定量电子,则读取数据为0。

这样通过浮栅层是否有电子,我们就能读出两种数据。大量的浮栅晶体管堆叠在一块就可以存储大量的0和1,这样就可以满足我们的存储和读取的要求了。

机械硬盘对比固态硬盘

机械硬盘优点:价格低、容量大、数据可恢复;

机械硬盘缺点:噪音大、发热高、读取数度慢、易损坏。

固态硬盘优点:噪音小、发热低、功耗小、读取速度快、抗震强;

固态硬盘缺点:价格高、容量低、数据无法恢复,使用存储单元为NAND flash的固态硬盘,不通电时间长了会导致数据丢失。

所以使用机械硬盘来长时间保存数据是个比较不错的选择,首先价格便宜,同时不存在固态硬盘中长时间不通电数据丢失的情况。

参考

【数字存储完全指南 02:机械硬盘的原理与参数详解】https://sspai.com/post/68712

【硬盘】https://zh.m.wikipedia.org/wiki/硬盘

【机械硬盘】https://www.bilibili.com/read/cv9729607

【磁盘I/O那些事】https://tech.meituan.com/2017/05/19/about-desk-io.html

【固态硬盘原理大揭秘】https://zhuanlan.zhihu.com/p/106150566

【SSD硬盘的数据恢复方法研究】http://www.xml-data.org/QLGYDXXB/html/099cff3b-270b-434a-954a-56cceb2b7c2c.htm

【固态硬盘究竟快在哪?】https://www.51cto.com/article/702527.html

【磁盘寻址方式--CHS和LBA寻址方式】https://blog.csdn.net/jinking01/article/details/105192830

【机械硬盘 叠瓦式(SMR)和垂直式(PMR)的区别】http://www.hchdd.net/index.php/content/138

【USB 闪存盘、固态硬盘和闪存卡中的 SLC、MLC、TLC 和 3D NAND 之间的区别】https://www.kingston.com/cn/blog/pc-performance/difference-between-slc-mlc-tlc-3d-nand

【固态硬盘和机械硬盘的区别】https://boilingfrog.github.io/2022/06/26/固态硬盘对比机械硬盘原理分析/

机械硬盘和ssd固态硬盘的原理对比分析的更多相关文章

  1. 6款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具

    一.检测工具名称汇总 HDTune ATTO Disk Benchmark CrystalDiskMark AS SSD Benchmark Parkdale CrystalDiskInfo 二.各项 ...

  2. 机械硬盘与SSD固态硬盘性能的深度

    从7200转硬盘升级到10000转的迅猛龙,那叫量变.从10000转的迅猛龙升级到SSD,这个叫质变.2者的差距是有些地方相当大,而有些却很接近,主要是难比较. 经常听到有人说:我买2个黑盘组RAID ...

  3. 5款实用的硬盘、SSD固态硬盘、U盘、储存卡磁盘性能测试工具绿色版

    http://www.iplaysoft.com/disk-benchmark-tools.html/comment-page-1#comment-149425

  4. SSD固态硬盘使用注意事项

    SSD固态硬盘的结构和运行方式不同于传统硬盘,在购买以后强烈建议进行一些设置以达到最优的运行效能,延长SSD的使用寿命.以下第一部分是一些可以在网上找到的关于SSD硬盘相关的注意事项,已经介绍很多,这 ...

  5. 【转】如何使用分区助手完美迁移系统到SSD固态硬盘?

    自从SSD固态硬盘出世以来,一直都被持续关注着,SSD的性能优势让无数用户起了将操作系统迁移到SSD的心思,直接后果就是让无数机械硬盘为止黯然退场,很多软件都可以做到系统迁移,然而,被完美迁移的系统却 ...

  6. 笔记本光驱位置装SSD固态硬盘(亲自试验)

    我的笔记本买的早了,2010年的联想Z460,速度有点慢,本来想换台电脑,想想还是算了,没有太大必要.固态硬盘便宜了,于是在原来的光驱位置装了一个256G的SSD固态硬盘,现在的性能能达到刚买来时的1 ...

  7. 基于SSD固态硬盘的数据库性能优化

    基于SSD固态硬盘的数据库性能优化 2010-11-08 00:0051cto佚名   关键字:固态硬盘 数据库管理 SSD 企业软件热点文章 Java内存结构与模型结构分析 Oracle触发器的语法 ...

  8. SSD固态硬盘的GC与Trim

    操作系统:其实并没有删除数据: 事实上,它只是在硬盘前的索引区里标记这块文件占用的区域为无效的, 所以等该区域被擦除后,下次数据将要再次写入的时候,可以写入这块被标记的区域. 这也就是为啥那 些所谓的 ...

  9. [转帖]ssd固态硬盘的Trim命令是什么?

    ssd固态硬盘的Trim命令是什么?  收藏 分享 邀请 许多用户朋友在购买SSD的时候都会特别强调Trim,不过Trim是什么?做什么用的?   什么是Trim?   Trim指令也叫disable ...

随机推荐

  1. Java和JavaScript(函数)参数传递是按值传递还是按引用传递?

    结论:Java和JavaScript的所有(函数)参数传递都是按值传递! 1.什么是函数参数的传递是按引用传递? 什么是引用?这个概念多见于C++中,在C++中,引用解释为变量的别名. 1 #incl ...

  2. Linux内核--链表结构(二)

    Linux内核链表定义了一系列用于链表遍历的宏,本章详细描述. 一.container_of和offsetof 首先介绍两个很好用的宏container_of和offsetof.offsetof宏用于 ...

  3. 2021.12.21 eleveni的刷题记录

    2021.12.21 eleveni的刷题记录 0. 有意思的题 P6701 [POI1997] Genotype https://www.luogu.com.cn/problem/P6701 状压优 ...

  4. petite-vue源码剖析-逐行解读@vue-reactivity之effect

    当我们通过effect将副函数向响应上下文注册后,副作用函数内访问响应式对象时即会自动收集依赖,并在相应的响应式属性发生变化后,自动触发副作用函数的执行. // ./effect.ts export ...

  5. .NET宝藏API之:OutputFormatter,格式化输出对象

    相信大家在项目中都用过统一响应参数模板. 先声明一个响应模板类: public class ResponseDto { public int code { get; set; } public str ...

  6. python跑机器学习时报错:Process finished with exit code -1073740791 (0xC0000409)

    emmm...第二次遇到这个错误了,好好的好好的卷积神经网络突然就跑不起了.就弹出一堆信息也不报那行代码错了... 记录一下: 两次解决方法相同,删h5py包 Process finished wit ...

  7. 【FAQ】接入HMS Core地图服务过程中常见问题总结

    HMS Core地图服务(Map Kit)给开发者提供一套地图开发调用的SDK,助力全球开发者实现个性化地图呈现与交互,方便轻松地在应用中集成地图相关的功能,全方位提升用户体验. 在日常工作中,我们会 ...

  8. 【mq】从零开始实现 mq-04-启动检测与实现优化

    前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...

  9. 做SaaS的程序员们,是时候关注企业架构了

    SaaS赛道是一个超大赛道,足够容纳上万家服务商,不太可能有哪个服务商能满足所有场景,大部分SaaS服务商在某个垂直领域,提供差异化的产品和服务.SaaS产品大部分都是面向B端客户,少部分面向C端客户 ...

  10. SpringBoot从0到0.7——第二天

    SpringBoot从0到0.7--第二天 今天来搭建一个登陆界面进行跳转,不带有数据库,看似就很简单的一个界面,却让我学习了好长时间去了解学习他的原理,能看懂的话还是尽量去看源码. 首先创建一个项目 ...