固态硬盘基础知识.docx
- 文档编号:24510028
- 上传时间:2023-05-28
- 格式:DOCX
- 页数:16
- 大小:332.79KB
固态硬盘基础知识.docx
《固态硬盘基础知识.docx》由会员分享,可在线阅读,更多相关《固态硬盘基础知识.docx(16页珍藏版)》请在冰豆网上搜索。
固态硬盘基础知识
-----------------------------------------------------------------------------------------------
1楼:
固态硬盘基本原理
2楼:
固态硬盘正常使用指南
3楼:
固态硬盘选购的品牌参考
不想看原理的童鞋请往下走。
鸡蛋板砖随意。
-----------------------------------------------------------------------------------------------
机械硬盘的工作原理
要理解固态硬盘(SolidStateDrive)的基本原理,首先得研究一下普通机械硬盘。
借用网上的一张图片:
上图是一款双碟的机械硬盘。
任何机械硬盘的结构都是一样的:
电路板上的主控制器芯片负责与芯片组之间的通信并且控制硬盘内部的运转;盘片是用磁性材料做成的,固定在硬盘中部的马达上旋转(这里就有了转速的区别:
5400rpm指的是每分钟盘片旋转5400转,7200rpm则是每分钟7200转);磁头(图中那个近似于三角形的部件)则沿着盘片的径向移动。
磁头的移动过程就是硬盘寻道的过程(这句话不太严谨,但是除了断电归位等情况之外绝大部分情况下都是)。
至于“寻道”,则是和盘片的结构有关。
盘片上划分为一圈一圈的同心圆环,每个圆环即一个磁道。
早期的机械硬盘从圆心出发向四周发散出角间距相等的一系列直线(当然实际上没有直线存在),直线与同心圆线围成的最小区域就是一个扇区(如上图)。
这样的划分,在硬盘的容量不大的年代还是简单易行,但是随着硬盘技术的进步,磁道的划分越来越密集,必然导致外圈的扇区物理长度远远大于内圈的扇区,造成浪费。
所以现在的硬盘都不用圆心发散的直线来划分扇区了,而是从外圈磁道开始取一定长度作为一个扇区,然后从外向里一个一个编号下去。
这个编号就是扇区的地址,我们要确定文件在哪里全靠这个地址。
扇区都有固定的大小,一般是512字节,现在的支持先进格式化的硬盘都采用4096字节作为一个扇区了。
至于扇区地址、LBA等等问题,与SSD的原理关系不大,所以不再叙述。
但是从以上叙述中,我们已经可以看到,机械硬盘要读出数据,必须要磁头找到对应的磁道和扇区(对于多碟的机械硬盘首先需要确定柱面),这全部依靠磁头的驱动马达来驱动(磁头本身是依靠盘片旋转产生的气流来悬浮的)。
马达等等机械装置的反应速度毕竟不快,所以机械硬盘会浪费大量的时间用于寻道操作(每次寻道大约10ms左右)。
尤其是对于零碎的小文件读写来说,由于文件所在扇区不连续,需要不断地要进行寻道,这样就产生很悲剧的性能。
但是对于持续读写来说,由于不需要进行不断地寻道,所以不存在寻道时间。
所以机械硬盘的随机读写能力很差(不超过每秒),但是持续读写能力并不差(而且随着单碟容量的提升和磁盘阵列的组建,持续读写速度可以比固态硬盘更快)。
看到这里你或许要问:
为什么使用固态硬盘的电脑普遍比使用机械硬盘的电脑反应快呢?
这是因为,系统分区在日常中进行的读写操作绝大部分都是随机文件读写,这正是机械硬盘的软肋所在,因为机械硬盘在这种情况下花费在寻道这件事上的时间非常多,其他硬件不得不停下来等待。
如果你使用机械硬盘作为非系统盘,那么性能和固态硬盘的差别不大——比如一部电影放在SSD和HDD上去播放,这个没什么区别。
提高HDD性能的方法之一是组建磁盘阵列。
磁盘阵列有多种类型,而且有些阵列是为了保证数据的安全,作为自动备份而组建的,这一类我们不去谈。
通常用于提高性能的磁盘阵列是RAID0.比如,使用两块硬盘组建RAID0之后,当有数据从芯片组传输给硬盘,这个数据会被自动划分成两部分,每个硬盘各自存储一部分,这样的话理想状态下RAID0下写入速度翻倍;读取也是类似的原理,每个硬盘各自拿出各自的数据,理想状态下读取速度也是翻倍的。
但是RAID0对于随机读写并没有什么明显作用。
所以要凭借组建RAID0来提高系统盘的性能,很困难。
但是RAID0的原理却也是应用在我们之后要讲到的SSD上的。
不得不说的U盘
为什么要说U盘?
因为U盘和固态硬盘是类似的结构。
这张图是雷克沙16G的U盘拆解图。
其实U盘的最重要部件就两个:
主控制器芯片,还有NAND闪存颗粒。
主控制器芯片负责与芯片组进行通信,并且负责操作NAND颗粒;而NAND颗粒本身就是一个存储器件。
你可以将其理解成为很多电容器组合成的装置。
固态硬盘的原理
这张图是CrucialM4-CT128M4SSD2固态硬盘拆解之后的电路板。
对比上面的雷克沙U盘拆解图,你发现了什么?
没错,结构和那个U盘很像,只不过NAND闪存芯片更多而已。
附上这个电路板的背面照片。
重点是那颗DRAM缓存颗粒。
除去这个颗粒之外,其他的结构和U盘完全类似。
1、NAND颗粒
NAND颗粒之间的关系,类似于RAID0。
那么固态硬盘可以看做是“由U盘组成的RAID0”。
NAND是半导体存储颗粒的一种(还有其他的种类,比如NOR。
但是NOR不用在这些东西上)。
至于这个颗粒的物理结构是如何,这个没有必要深究。
我们需要关心的是NAND如何存储和读取数据。
首先得知道NAND是怎么制造的。
制造NAND和制造CPU等等处理器类似,都是使用高纯度硅,切割成晶圆之后使用光刻机和化学溶剂将设计好的电路蚀刻上去,然后用金属材料“镶嵌”制作而成的。
这样做出来的是一个布满NAND芯片的晶圆。
将晶圆切开,然后对切割后的芯片精心挑选测试,封装后就可以出厂了。
整个工艺虽然和制造CPU类似,但是电路等等方面还是简单不少的。
简单地说,NAND可以视作是由很多很多个电容器组成的集成电路。
NAND分为SLC(SingleLevelCell)、MLC(Multi-LevelCell)、TLC(Trinary-LevelCell)等等(目前只有这三种)。
从名字就可以看出区别:
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最慢。
要了解更多关于SLC、MLC、TLC的知识,可以参阅一文。
总之从上一段可以看出,无论是速度还是稳定性,SLC都是最佳的选择,MLC次之,TLC最差。
但是我们也知道了同样的一个“电容器”,SLC存储的信息只有MLC的1/2,也是TLC的1/4,所以SLC的成本也是最高,而且无法做成容量很大的芯片。
目前SLC的NAND产品大多数用于企业级的半导体存储器上,民用以MLC和TLC为多。
之后我们还会分析MLC用于SSD也并不是不好;但是目前而言TLC用于SSD,那么稳定性是绝对不够的。
继续讲NAND。
数据在NAND中不能没有组织,否则无论什么设备都不能读出这些数据究竟是什么。
类似于机械硬盘的扇区,固态硬盘也有自己最小的文件存储单位,叫做Page。
目前的NAND颗粒,Page的大小并不一致,但是也只有两种:
4KB或者8KB(1KB=1024字节)。
Page相当于一组规律化组合的“电容器”。
机械硬盘上的文件必须占用整数个扇区;固态硬盘也是类似,任何文件占用的空间必须是整数个Page。
这个与文件系统无关,属于硬件层面。
Page上面的一层组织是Block。
128个或者256个Page组成一个Block。
拿CrucialM4-CT128M4SSD2来说,它的NAND颗粒的一个Page是4KB,128个Page组成一个Block(一组固定的规律性组合的Page),所以一个Block是512KB。
上一段已经说过,NAND的最小写入单位是Page,任何文件都必须占用整数个Page。
这里的Block也有类似作用:
任何的擦除(“电容器”放电)都必须是整数个Block。
也就是说你要擦除NAND里面存储的信息,每次最少擦除一个Block,也可以擦除任意整数(当然不能是负数)个Block;但是你想擦除单独某个Page,那么对不起,办不到。
一定数量(2的幂次方)的Block构成更高一级的结构Plane,然后一般是两个Plane组成一个Die,这个就是我们看到的一个芯片了。
借用neeyuese大大的一张图来说明NAND的组织结构(图中的这个NAND的Block由256个Page组成,所以一个Block是1024KB):
NAND有个特性:
你要读取NAND中的信息,那么速度会很快;但是如果你要给NAND写入信息,尤其是NAND原有的信息需要覆盖的时候,速度会非常非常慢。
但是无论是读还是写,操作系统本身甚至于电脑本身都是无法控制NAND芯片的。
操作NAND芯片需要借助于主控制器芯片。
主控芯片也是影响SSD性能的最重要因素之一。
2、主控芯片
任何存储设备都有主控制器芯片的,否则主板南桥芯片(或者intel现在使用的单芯片组)无法直接与存储层进行通信。
从开篇讲的HHD的结构,到后来讲到的U盘、SSD,主控芯片都是最最重要的部件之一。
目前固态硬盘上普遍使用的主控制器主要有SandForce、Marvell、Samsung、intel、JMicron等等几家。
SandForce和Marvell都是很常见的主控,使用这两个主控的SSD比较多,品牌也多;Samsung则是三星自己做的,只用在自己家的SSD上;intel的主控也是和三星主控类似的情况,不过从520系列SSD开始intel自己已经不做主控了,产品全部使用SandForce的主控;JMicron的主控则是臭名昭著,因为天朝很多山寨厂家做的山寨渣SSD大都是JMicron的主控,性能出奇地烂,稳定性也极差,虽然新版有发布但是也没什么起色——建议是看到JMicron有多远躲多远。
另外还有一些主控,但是民用SSD上不是很常见,这里就不谈了。
主控制器芯片大多数都是一个ARM处理器(手机上的就是ARM处理器)。
SandForce和Marvell的主控一般都是(其实最常见的也只有一个型号,新版主控莫纳还没发布,但是也是一样的结构)双核心ARM处理器,Samsung830系列SSD上的主控则是三个核心的。
主控负责与芯片组之间的通信,接受ATA指令与数据,并负责将数据写入NAND或者从NAND读出。
之前谈到NAND颗粒之间的关系类似于RAID0,就是说这里主控读入数据会分散到各个NAND颗粒上去,多个颗粒共同读写,这样的话速度自然就快了。
至于具体量化的细节,估计没有几个人愿意看,这里也就不谈,知道主控对多个NAND颗粒同时写入或者读取就足够。
----------------------------------------------------------------------------------------------------------
原理部分枯燥无味。
。
以后有时间继续补,现在开始更新下面的应用部分。
固态硬盘正常使用指南
从原理部分我们可以知道,固态硬盘相比于普通机械硬盘的优势,在于其极小的“寻道时间”(当然对于SSD而言没有磁道,但是这个响应时间还是有的,姑且也可以叫做“寻道时间”)和天生比HDD结构快很多的随机写入速度。
但是很多人买SSD都是冲着“读写500MB/s”这样的字眼去的,其实这些数据都有水分,并且这些都指的是持续读写速度。
对于SSD而言,持续读写速度只要不慢得离谱就可以了,并不占重要地位(任何一款SSD测试软件的评价标准中持续读写所占的权重都不高)。
对于SSD而言,最最重要的是随机读写能力。
但是SSD有个天生的问题是其性能会随着NAND被污染(写入了数据就是“被污染”)程度的加重而迅速退化。
为了保证SSD性能的稳定,日常使用中应该注意一些方面:
1、确保SSD运行在AHCI模式下,并且操作系统使用或者更新版本
先从操作系统说起。
SSD的兴起毕竟不是很长时间,微软从Windows系统才开始对SSD提供完美的支持。
这其中最重要的支持是Trim指令。
Trim是ATA指令的一种,由微软提出,并在Windows操作系统(Windows7以及WindowsServer2008R2)中首次实现。
Trim需要操作作系统支持,所以不要想着你在XP下用什么软件也能实现Trim,很遗憾告诉你除了或者更新的(即Windows8)等等之外都是不可以的。
这个指令的作用是标记已删除的文件,并且通知SSD主控制器这些文件已经无用,这样主控就可以在空闲时间提前擦除这些文件对应的Block块。
之前说过SSD的擦除速度很慢,所以这样提前擦除的操作可以维持SSD性能到一个良好的状态。
打个比喻:
没有Trim的情况下就好像等着用盘子的时候才开始洗盘子,速度自然非常非常慢;有了Trim的情况下主控会在空闲的时候先把可能要用到的盘子洗掉,这样等到用盘子的时候就不需要等待了。
Trim指令只能在AHCI模式下通过特殊版本的AHCI控制器驱动才可以传输。
并不是说系统支持Trim主控也支持Trim就能用,驱动也必须要支持。
目前最新的intelRapidStorageTechnology和AMDSATA驱动都完美支持Trim指令;微软自己的驱动也可以但是性能不佳。
另外AHCI模式下开启NCQ(原生命令队列)之后对于随机读写性能的提升是成倍数的,效果非常明显。
2、务必“4K对齐”
“4K对齐”现在已经被说烂了,可惜的是没几个说的是对的。
要详细解释这个问题,需要从XP系统对于机械硬盘的使用讲起。
这里也不用说这么多。
总之4K对齐之后对于SSD的性能和寿命都大有好处。
对齐的方法很简单:
使用Windows7原版安装镜像在安装系统的时候删掉原来存在于SSD上的分区,然后新建分区即可完美对齐。
或者将SSD作为从盘挂到Win系统下,用系统自带的磁盘管理程序删除未对齐分区然后新建分区即可。
3、当心掉电问题
SSD的寿命会随着写入数据的增多而损耗。
写入数据量越多,寿命损害越大。
当写入量到达一定程度的时候,“电容器”将不能有效保存其中的电荷,造成数据丢失。
在前面原理部分已经解释过这个原因,这里就不再叙述。
但是正常使用的情况下,想要把SSD的寿命通过写入数据来损耗至尽,是一件希望不大的事情。
不过饶是如此,SSD死亡的概率也是比机械硬盘大很多的。
原因主要是因为意外断电,即“掉电”。
掉电主要发生在突然停电或者死机蓝屏的时候。
掉电之后一般情况下不会出什么麻烦,但是也有一些情况,轻则丢失整个FTL表(可以理解为数据与存储位置之间的映射关系表和模拟机械硬盘状态的模拟层),重则丢失主控制器固件。
总之这两种情况下,自己维修是没有任何作用的,只能送回厂修理。
4、避免“碎片整理”
碎片整理操作对于固态硬盘而言百害而无一利。
简洁一点来说,适当的“碎片”反而有利于SSD的快速响应(考虑RAID0的原理,文件平均分散在各个部分上的时候整体速度最快)。
最最重要的原因是碎片整理操作会对固态硬盘造成大量的数据写入,白白损耗SSD的寿命。
Windows7在检测到SSD之后会自动在计划任务的磁盘整理中去除SSD。
注意不要自己手动开启即可。
5、关闭SuperFetch服务
这一项有人提出反对意见。
不过实际上当你的SSD速度很快的时候,打开SuperFetch已经毫无意义了,开启这个服务反而会造成不小的SSD写入。
至于其他更深的原因,就不清楚,总之是微软和intel联合建议的操作。
事实上当你的SSD速度足够快的时候,readyboost功能也是自动被禁用的。
系统会提示“磁盘速度太快,使用readyboost毫无益处”。
方法是在“计算机管理”中禁用SuperFetch服务,并且设定注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\MemoryManagement\PrefetchParameters位置下EnableBootTrance、EnablePrefetcher、EnableSuperfetch三项的值为零。
6、及时更新固态硬盘固件
固态硬盘会不断有新的固件发布。
新的固件会带来性能以及稳定性的提升,总之更新没什么坏处。
要想维持SSD的高性能,不断更新固件是必不可少的。
新的固件可以去驱动之家搜寻(最好去固态硬盘制造商的网站上去寻找)。
7、纠正自己的心态
见到的各种帖子几乎都在说“换了SSD之后开机速度会多块多块”,事实SSD完全不是为了没什么实际意义的开机速度而生的。
SSD确实会使开机快那么一点,但是不会太明显,甚至有人出现过开机更慢的情况。
不要总认为你换了SSD之后开机就应该5秒之内,多一秒都不正常。
SSD真实的意义在于保持系统的快速响应。
因为SSD的随机读写速度很快,所以启动装在SSD中的任何程序,都可以快速响应。
除此之外,和HDD在使用上并无区别。
尽量少跑测试。
任何测试SSD性能的软件都会对SSD造成不小的数据写入量。
而且,请注意删除也是一种写入,而且删除操作造成整个Block的擦除,带来的损害比单纯的写入更大。
8、不要过分“优化”
世界上本来没什么“Optimize”。
如果你是为了让计算机更符合自己的使用习惯,那么改改功能做些“Customize”也是不错的,但是请适度。
9、笔记本注意睡眠和休眠
很多SSD在笔记本上使用时,睡眠和休眠都会当做意外电源中断处理,也就是掉电。
如果你确定你的笔记本和SSD有这样的情况(建议定期查看SSD的SMART),请不要使用睡眠和休眠功能,等待SSD厂商发布新版固件解决。
固态硬盘选购参考
这一部分先从主控开始谈。
现在市场上最常见的SSD,其主控也就是SandForce, Marvell, Samsung, JMicron,intel这几个。
山寨厂商的最爱:
JMicron
至于JMicron主控的产品,我之前已经说过,唯一的建议是“能躲多远就躲多远”。
其他的,不解释。
最有发展潜力的主控:
SandForce
SandForce主控的产品没有DRAM缓存,所以掉电时丢数据的风险也比其他主控小一些——但是直接丢固件死亡的概率还是蛮大的。
目前来说SandForce主控最开放,产品也最多,而且往往看起来性能都比其他主控的产品好得多。
但是这个主控的性能是最虚的一个:
SandForce的主控有个独一无二的功能——压缩。
它可以将数据压缩后存放进NAND颗粒(但是SSD返回的可用空间不会因为压缩而增大)。
之前已经说过,NAND颗粒的写入速度很慢,尤其是民用的MLC,写入是相当慢的。
譬如有个50MB的数据,SandForce主控把它压缩成5MB,然后花了秒存储了这5MB,它会报告写入速度是500MB/s(原始数据50MB除以花费时间秒)而不是实际速度50MB/s(实际写入大小5MB除以花费时间秒)。
所以你不要看那些SandForce主控的SSD广告上那些华丽的500MB/s读写速度,那些数据都是测最容易压缩的0fill这样的文件来的,一般情况下的文件根本没有那个读写速度。
对于不可压缩的数据,SandForce主控的写入速度并不快。
比如SandForce主控搭配8个8GBNAND同步颗粒(颗粒越多写入速度越快。
联系RAID0原理就能明白。
所以SSD一般都是容量越大写入速度越快),存储音乐或者mkv之类的视频,持续写入速度可能只有不到40MB/s。
日常应用中的数据不是都好压缩也不是都不好压缩,所以算下来8个NAND颗粒搭配SandForce主控,日常平均90MB/s的持续写入速度还是有的,持续读取也可以平均440MB/s。
不过这个主控有个很奇葩的特点:
如果你写入的数据很多,导致NAND寿命消耗殆尽,主控会自动限制你的写入速度,保证你在保修期(一般是3年)之内绝对写不坏。
有时候这个速度限制很无语(会限制到2MB每秒)。
使用SandForce主控的产品很多。
这个之后写各个品牌评价的时候会详细叙述。
总之虽然SandForce现在不是很完美,但是独特的压缩算法是很有发展潜力的——尤其是intel和Micron都投入了SandForce的阵营。
目前的性能巅峰:
Marvell
Marvell主控(具体型号就不写了,反正旧版的就一个型号,新版莫纳还没出)的产品你一定不会陌生:
固态硬盘性能的标杆CrucialM4(即“美光M4”)。
M4在相当长的一段时期内都是性能之王,拥有其他SSD无法匹敌的速度。
现在也有性能同样出色的PlextorM3系列(浦科特),也同样是Marvell的主控。
当然M4是性能的标杆并不仅仅是因为主控给力,它的NAND颗粒也是非常非常好的成色。
这个后文再表。
Marvell主控的特点是速度稳定,即使NAND被重度污染也可以保证性能不悲剧。
但是有个小瑕疵是有些机器上兼容性不佳,譬如ThinkPad(别号“M4杀手”)安装Marvell主控的固态硬盘有不少悲剧的,服务器主板上的兼容性也不是很好。
这个主控比较依赖好品质的NAND颗粒,你配一个渣颗粒上去就没性能了。
所以用这个主控的厂家不是很多,但是产品都不错。
半路的黑马:
Samsung
实际上三星一直是世界上最大的SSD生产商,但是主控一直没什么特色。
不过最近三星830系列上的新版三星主控表现不俗。
除了多队列随机写入性能比起Marvell主控的几款略有不足之外,其他的方面表现都非常好。
三星的主控只在三星自家的SSD上面用,这样的SSD整个盘全是三星自己的东西,稳定性很不错。
其他:
Intel自己的主控已经不做了,全面转投SandForce。
Intel自己的主控各方面都比较平庸,但是兼容性出奇地好,没听说过什么不兼容的情况。
笔记本上用intel的产品向来比较省心一些,哪怕是ThinkPad.
关于NAND颗粒:
看过了上面这些对于主控的介绍,想必大家已经对SSD的选择有一定了解了。
但是SSD的性能还与NAND颗粒有关。
半导体存储颗粒其实都类似,制造商就那么几个:
内存颗粒的制造商只有三星、海
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 固态 硬盘 基础知识