机械硬盘和固态硬盘的工作原理和区别-文档

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

从以上叙述中,我们已经可以看到,机械硬盘要读出数据,必须要磁头找到对应 的磁道和扇区(对于多碟的机械硬盘首先需要确定柱面),这全部依靠磁头的驱 动马达来驱动(磁头本身是依靠盘片旋转产生的气流来悬浮的)。马达等等机械 装置的反应速度毕竟不快,所以机械硬盘会浪费大量的时间用于寻道操作(每次 寻道大约10ms左右)。尤其是对于零碎的小文件读写来说,由于文件所在扇区不 连续,需要不断地要进行寻道,这样就产生很悲剧的性能。但是对于持续读写来 说,由于不需要进行不断地寻道,所以不存在寻道时间。所以机械硬盘的随机读 写能力很差(不超过0.1MB每秒),但是持续读写能力并不差(而且随着单碟容 量的提升和磁盘阵列的组建,持续读写速度可以比固态硬盘更快)。
从上一段总结出,无论是速度还是稳定性,SLC都是最佳的选择,MLC次之,TLC最差。 但是我们也知道了同样的一个“电容器”,SLC存储的信息只有MLC的1/2,也是TLC 的1/4,所以SLC的成本也是最高,而且无法做成容量很大的芯片。目前SLC的NAND 产品大多数用于企业级的半导体存储器上,民用以MLC和TLC为多。
继续讲NAND。数据在NAND中不能没有组织,否则无论什么设备都不能读出这些数据 究竟是什么。类似于机械硬盘的扇区,固态硬盘也有自己最小的文件存储单位,叫做 Page。目前的NAND颗粒,Page的大小并不一致,但是也只有两种:4KB或者8KB (1KB=1024字节)。Page相当于一组规律化组合的“电容器”。机械硬盘上的文件必 须占用整数个扇区;固态硬盘也是类似,任何文件占用的空间必须是整数个Page。这 个与文件系统无关,属于硬件层面。
3
固态硬盘的原理
这张图是Crucial M4-CT128M4SSD2固态硬盘拆解之后的电路板。对比上面的雷 克沙U盘拆解图,你发现了什么?
没错,结构和那个U盘很像,只不过NAND闪存芯片更多而已。附上这个电路 板的背面照片。重点是那颗DRAM缓存颗粒。除去这个颗粒之外,其他的结 构和U盘完全类似。
机械硬盘和固态硬盘的工作原理
1
首先了解一下机械硬盘的工作原理
机械硬盘结构复杂
ຫໍສະໝຸດ Baidu
结构图
上图是一款机械硬盘结构图。机械硬盘的结构基本都是一样的: 电路板上的主控制器芯片负责与芯片组之间的通信并且控制硬盘内部的运转; 盘片是用磁性材料做成的,固定在硬盘中部的马达上旋转; 磁头则沿着盘片的径向移动。 磁头读取、写入数据时会在盘片上方移动,移动过程也叫硬盘寻道的过程 至于“寻道”,则是和盘片的结构有关。
到这里你们或许要问:为什么使用固态硬盘的电脑 普遍比使用机械硬盘的电脑反应 快呢?
这是因为,系统分区在日常中进行的读写操作绝大部分都是随机文 件读写,这正是机械硬盘的软肋所在,因为机械硬盘在这种情况下花 费在寻道这件事上的时间非常多,其他硬件不得不停下来等待。如果 你使用机械硬盘作为非系统盘,那么性能和固态硬盘的差别不大—— 比如一部电影放在SSD和HDD上去播放,这个没什么区别。
借用一张图来说明NAND的组织结构(图中的这个NAND的Block由256个Page组成,所 以一个Block是1024KB):
NAND有个特性:你要读取NAND中的信息,那么速度会很快;但是如果你要给NAND写入 信息,尤其是NAND原有的信息需要覆盖的时候,速度会非常非常慢。但是无论是读还是 写,操作系统本身甚至于电脑本身都是无法控制NAND芯片的。操作NAND芯片需要借助于 主控制器芯片。主控芯片也是影响SSD性能的最重要因素之一。
THANKS!
NAND FLASH的数据储存原理
根据NAND的物理结构,NAND是通过绝缘层存储数据的。当你要写入数据,需要 施加电压并形成一个电场,这样电子就可以通过绝缘体进入到存储单元,此时完 成写入数据。如果要删除存储单元(数据),则要再次施加电压让电子穿过绝缘层, 从而离开存储单元。 所以,NAND闪存在重新写入新数据之前必须要删除原来数据。 闪存的存储单元为三端器件,与场效应管有相同的名称:源极、漏极和栅极。栅 极与硅衬底之间有二氧化硅绝缘层,用来保护浮置栅极中的电荷不会泄漏。采用 这种结构,使得存储单元具有了电荷保持能力,就像是装进瓶子里的水,当你倒 入水后,水位就一直保持在那里,直到你再次倒入或倒出,所以闪存具有记忆能 力。
Page上面的一层组织是Block。128个或者256个Page组成一个Block。拿CrucialM4CT128M4SSD2来说,它的NAND颗粒的一个Page是4KB,128个Page组成一个Block (一组固定的规律性组合的Page),所以一个Block是512KB。上一段已经说过, NAND的最小写入单位是Page,任何文件都必须占用整数个Page。这里的Block也有 类似作用:任何的擦除(“电容器”放电)都必须是整数个Block。也就是说你要 擦除NAND里面存储的信息,每次最少擦除一个Block,也可以擦除任意整数(当然 不能是负数)个Block;但是你想擦除单独某个Page,那么对不起,办不到。一定 数量(2的幂次方)的Block构成更高一级的结构Plane,然后一般是两个Plane组成 一个Die,这个就是我们看到的一个芯片了。
1、NAND颗粒 NAND颗粒之间的关系,类似于RAID 0。那么固态硬盘可以看做是“由U盘组成的 RAID 0”。
NAND是半导体存储颗粒的一种(还有其他的种类,比如NOR(NOR的特点是芯 片内执行,应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中) 但是NOR不用在这些东西上)。至于这个颗粒的物理结构是如何,这个暂时不 用深究。我们需要关心的是NAND如何存储和读取数据。
2、主控芯片 任何存储设备都有主控制器芯片的,否则主板南桥芯片(或者intel现在使用的单 芯片组)无法直接与存储层进行通信。从开篇讲的HHD的结构,到后来讲到的U盘 、SSD,主控芯片都是最最重要的部件之一。 主控制器芯片大多数都是一个ARM处理器(手机上的就是ARM处理器)
主控负责与芯片组之间的通信,接受ATA指令与数据,并负责将数据写入NAND或 者从NAND读出。之前谈到NAND颗粒之间的关系类似于RAID 0,就是说这里主控 读入数据会分散到各个NAND颗粒上去,多个颗粒共同读写,这样的话速度自然 就快了。
但是RAID 0对于机械硬盘随机读写并没有什么明显作用。所以要凭借组建RAID 0来 提高系统盘的性能,很困难。但是RAID 0的原理却也是应用在我们之后要讲到的SSD 上的。
2
不得不说的U盘
为什么要说U盘?因为U盘和固态硬盘是类似的结构。
这张图是雷克沙16G的U盘拆解图。其实U盘的最重要部件就两个:主控 制器芯片,还有NAND闪存颗粒。主控制器芯片负责与芯片组进行通信, 并且负责操作NAND颗粒;而NAND颗粒本身就是一个存储器件。你可以 将其理解成为很多电容器组合成的装置。
盘片结构
盘片上划分为一圈一圈的同心圆环,每个圆环即一个磁道。早期的机械硬盘从圆心出 发向四周发散出角间距相等的一系列直线(当然实际上没有直线存在),直线与同心 圆线围成的最小区域就是一个扇区(如上图)。这样的划分,在硬盘的容量不大的年 代还是简单易行,但是随着硬盘技术的进步,磁道的划分越来越密集,必然导致外圈 的扇区物理长度远远大于内圈的扇区,造成浪费。所以现在的硬盘都不用圆心发散的 直线来划分扇区了,而是从外圈磁道开始取一定长度作为一个扇区,然后从外向里一 个一个编号下去。这个编号就是扇区的地址,我们要确定文件在哪里全靠这个地址。 扇区都有固定的大小,一般是512字节,现在的支持先进格式化的硬盘都采用4096字节 作为一个扇区了。
简单地说,NAND可以视作是由很多很多个电容器组成的集成电路。NAND分为SLC (Single Level Cell)、MLC(Multi-Level Cell)、TLC(Trinary-Level Cell)等等(目前只 有这三种)。从名字就可以看出区别:SLC是“单层”,MLC是“双层”,TLC是“三 层”。事实上可以这样理解:SLC是指分别将电容器的充电状态(有电荷)和放电状态 (无电荷)视为0和1;MLC则是电荷全满、电荷2/3、电荷1/3、无电荷这四种状态,定 义成00、01、10、11;TLC则是又增加了几个中间值,有000至111这八种定义。那么 SLC的一个Cell(一个“电容器”)只能存储1bit,MLC是2bit,TLC则是3bit。同时也很 自然地可以明白,SLC可以很清楚地判断一个cell里面到底是0还是1;但是MLC就不太容 易判断了,因为不同量的电荷表示不同的数据,电荷稍有流失就会导致出错;TLC出错 的几率更大。所以从稳定性而言,SLC最佳,MLC次之,TLC最差。另外这些Cell都是有 “惰性”的,连续充电放电若干次之后就无法保存电荷了,造成数据出错。从这个方 面而言,SLC也是最耐充放电的,MLC次之,TLC最差。所以SLC使用寿命最长,MLC次 之,TLC最差。就充放电速度而言,SLC最简单,速度也最快;结构越复杂速度也越慢, 所以MLC次之,TLC最慢。
磁盘阵列:RAID 0
提高HDD性能的方法之一是组建磁盘阵列。磁盘阵列有多种类型,而且有些阵列是 为了保证数据的安全,作为自动备份而组建的,这一类我们暂时不去谈。通常用于 提高性能的磁盘阵列是RAID 0.比如,使用4块硬盘组建RAID 0之后,当有数据从芯片 组传输给硬盘,这个数据会被自动划分成4部分,每个硬盘各自存储一部分,这样的 话理想状态下RAID 0下写入速度翻倍;读取也是类似的原理,每个硬盘各自拿出各 自的数据,理想状态下读取速度也是翻倍的。
相关文档
最新文档