为了让不常接触电脑的知友们对 SSD 有更多的了解。所以整理了一篇SSD的科普贴来给说明目前来说电脑要装配固态硬盘的重要性 (ヾノ・ω・`)
先首先介绍一下什么是SSD,他的原理是什么?为什么速度快?寿命和可靠性相比于原先的机械硬盘有什么长处?
【 什么是 SSD? 】
SSD 的英文全名是 Solid State Drive(固态硬盘)。在我们认真看什么是 SSD 以前,先提一下U盘或者SD卡 -- SSD 可以假想成一个 体积很大、功能精致而多样 的U盘。
跟U盘一样,固态硬盘里头并没有移动的零件,所有的资讯都存在固态硬盘里头的颗粒。相反地,传统的机械硬盘(在厂商的型录常会看到 HDD,Hard Disk Drive)使用机械手臂移动读写头,在硬盘里的磁盘上移动到正确的位置再进行资讯的存取。这是造成固态硬盘可以比传统的机械硬盘快速的主因。
典型的固态硬盘使用一种称为 NAND-based 的快闪记忆体作为储存单元。这是种非挥发性形式的记忆装置。你可能会想问「非挥发性」这诡异的名字是什么?直白的说,就是断电时,资料可以继续保持在这个记忆单元(晶片)上。当然,这对于任何一种长期储存的记忆装置都是必要的特征。
在固态硬盘刚推出来的年代,很常会听到大家说里头储存的资料过了短短的几年后就会消失,这在现在的技术已经不是个大问题——至少,对广泛的消费性市场而言,这答案已经不成立了。现在的资料储存装置都可维持超过 200 年的时间(这数字取决于产品性质,但广义而言,可以看看 JEDEC 的 JESD47 跟 JEP122 这两个规范)。
由于固态硬盘里头没有机械设计,它仰赖嵌入式控制器(它的「脑子」)进行资讯的读写。这个控制器是决定固态硬盘传输速率的主要因素。所有关于那些0 与1 的资讯要存在固态硬盘的哪里、要怎么拿出来、要怎么把资料快取、要怎么清掉垃圾、资料的加密等种种这个控制器所做出的决策,都会影响到使用者体验。
写到这边,希望各位对固态硬盘已经建立起一点点概念。那么下个问题可能会冒出来:这个后起之辈凭什么轻易地把市场上称霸的机械硬盘替换掉?
尽管固态硬盘使用了与传统硬盘截然不同的存储技术,它的外型可以包装的跟传统硬盘相似,使用的传输介面也是标准的SATA,在空间寸土寸金的手持设备上,甚至可以使用mini-SATA(mSATA) 来塞入装置里头的mini-PCI Express 卡槽里。 In-place replacement 的特性是它能轻易席卷市场的主因(之一)。
【 T1:你知道 SSD 快在哪里吗? 】
我不太赞同「建立在燃烧它的寿命」这种说法,毕竟固态硬碟与传统硬碟是截然不同的技术,何来燃烧与否的差异呢?拿传统硬碟为例,我们也不太会说6.4k、7.2k、10k RPM 的差异也是以转速在燃烧生命吧:p 这是使用不同的伺服主轴马达(spindle motor),针对的客群也不同(一般消费者、伺服器用户)。
不过位于 SSD 上的系统与软件才能享受到它的飞速我倒是蛮赞同的。毕竟作业系统放在传统硬盘上,固态硬盘只是插在电脑里头不使用,会有本质的差别(´・ω・`)
【 T2:你知道如何优化 SSD 吗? 】
SSD 早期的确是有不少bug要使用者去注意,但作业系统大老们(Windows、OS X、Linux kernel)也不是吃素的啊!它们对固态硬盘的优化在数个月内就蛮完善的了,一般使用情况不需要去操心这部分。至于 AHCI、4k 对齐、Windows Prefetch、SuperFetch、TRIM,我们留到后面再聊吧,这都是大学问 (・∀・)
【 T3:你能承受 SSD 的故障风险吗? 】
相信没有人能承受硬盘故障,里面的资料要移来移去或什至不见都是蛋疼的事情。但 HDD 在寿终正寝以前,会有一段很像慢性疾病发作的感觉,SSD 也是一样!
固态硬盘在受到电压不稳的情况下,的确可能坏掉或造成现存的资料损毁。但撇开那个不提的话,怎么知道自己的固态硬盘究竟多健康呢?
机械硬盘如果坏道可能会有「喀、喀、喀喀、喀叽、喀⋯⋯」的噪音,但固态硬盘就没有这么显而易见的事情了。固态硬盘有点坏掉的时候,里头会有「bad blocks」,跟机械硬盘的「bad sectors」的概念很像,在读取资料的时候因为该区域有些损毁,所以会需要非常长的时间才能拿到资料(或是完全拿不了),当系统放弃尝试存取资料的时候,就会报错了。
平常有在接触电脑的朋友可能会听过 S.M.A.R.T.,这部分我们留到后面再来聊吧。
【 T4:你打算买一颗移动硬盘来储存资料吗? 】
老实说,我不觉得移动硬盘跟固态硬盼的讨论是同个主轴。如果要谈备份的话,「复制一份资料到移动硬盘上」本来就不是「能有效保障资料的备份方式」毕竟移动硬盘也是会坏,会丢失,还不如一个会泄露隐私的百度云可靠呢(手动滑稽,针对最近PD的事件)。
【 T5:你想用最少的钱买一台刚好符合需求的笔记本电脑吗? 】
我个人比较赞同要选符合自己需求的机器,毕竟现在的机器更新速度太快了,选到太廉价或太昂贵的价位都不是件好事。有闲钱有限的情况下,可以优先投注心思在内存条上面的确是个不错的策略。
如果电脑觉得缓慢,先对症下药了解程式运行的瓶颈,再来决定究竟怎么改善电脑的环境,这概念很重要啊(大推)!
至于虚拟内存这件事情,简单说的话:你不能关闭虚拟内存(virtual memory)的功能,但你可以停用使用分页档(page file),但做后者并没有太大的意义,而前者在当代的作业系统设计里头是必然存在的事情。
【 Q1:什么是 AHCI? 】
AHCI 全名是 Advance Host Controller Interface。 AHCI 是个让软件可以跟使用Serial ATA(SATA)的设备沟通的硬体设计,这些Serial ATA 的设备拥有Parallel ATA(PATA)所没有的一些功能,像是热插拔还有NCQ(Native Command Queuing) 。
这边我们只探讨对储存设备还有效能的影响。 AHCI 开启的话可以允许设备的热插拔,但这件事情通常只有SAS HDD 跟一些特殊设计的企业级硬盘的控制器还有主机板的控制器有实际支援(毕竟协定允许这件事情,不代表晶片厂也要把这功能设计进去)。至于 NCQ 在多工的环境下会有所助益。
NCQ 会把资料的读写区块的操作顺序,交由硬盘里头的控制器去决定,进而加速读写资料的速率。尽管固态硬盘没有读写头移动的问题,NCQ 可以帮忙固态硬盘决定哪些对资料的操作可以同时进行。
AHCI 从 Windows Vista、Linux kernel 2.6.19 开始就直接支持了,通常都不太需要使用者特别的关心这个设定。
【 Q2:什么是 4k 对齐? 】
在看那个 4k 以前,先来讲讲什么是「对齐」。这边的对齐指的是硬盘上面的 block structure。我们所处理的档案、影片、照片等看起来是连续的,但在硬盘里头是一格一格的存着(blocks)。如果今天资料存进去硬盘的时候,能对齐那些blocks,那么我们在读取的时候可能可以少几个读取的动作,例如:从一次读就能把一个block 的资料拉出来,但没对齐就需要拆成两次才能把一个block 的资料拉出来。
很久很久以前,硬盘都使用 512-byte 的对齐方式(这要开始聊 DOS 那个年代,FAT 的设计了,有兴趣的话我们可以日后再聊)。不过当代的固态硬盘一个 block 可能是 128KB、在磁碟阵列(RAID)上可能是 64KB 左右。而跑着 Advanced Format 的硬碟则可能是 4KB(好吧,就是是 4KB)。
【 Q3:什么是 Windows Prefetch? 】
顾名思义就是预先喂食。
在 Windows XP 的时候引入了 prefetch 的概念。会将关于应用程序的相关资讯留在系统里头,让之后使用者呼叫它们时,执行的速率可以高一些。本质上prefetch 只是一组演算法,会辅助计算发生cache miss 的机会(亦即作业系统需要资料的时候,这些资料不在记忆体内,需要从硬盘里面捞出来),进而预先将这些资料存一份起来。
这些预先计算的过程,导致开机时间会变长一些,但随着应用程序执行次数越来越多,还没计算过的事情会越来越少,这时候效能的增进才会开始有感觉的提升。
【 Q4:什么是 SuperFetch? 】
SuperFetch 当初推出时,想要解决两个问题:让开机时间变短、让应用程式载入更有效率。不过 SuperFetch 会同时将使用者的使用习惯纳入考量。
当 Windows 启动的时候,同样的档案会在不同的时间被存取,因此 SuperFetch 会将这些资料的使用区块、使用的时间都记录下来存在一个 trace file 里头。因此下次开机的时候,这个资讯会被用来辅助开机的流程,让这些资料能够更有效率的被拿出来。这些资讯放在 /WINDOWS/Prefetch/Layout.ini 里头。
上个段落提到了开机的 SuperFetch,至于应用程序的 SuperFetch 跟 Q3 蛮像的,只是多了对使用者习惯的预期。
所以在 Windows 上 Prefetch 跟 SuperFetch 究竟续不需要关掉呢?如果固态硬盘够快的话是可以关掉,但毕竟这些 prefetcher 的操作模式甚至跟固态硬盘的操作模式蛮符合的:小档案的频繁读取,所以这「不太有差异」。
【 Q5:什么是 TRIM? 】
其实是 trim 指令,在 ATA 指令集里头是 TRIM,在 SCSI 指令集里头则是 UNMAP。这个指令允许作业系统告诉固态硬盘哪些 block 的资料不会再被使用可以让固态硬盘的控制器抹除掉。
这个指令在固态硬盘登场以后被介绍进来指令集里头,因为固态硬盘的低阶操作跟机械硬盘不太一样,让作业系统去决定资料抹除等细节,可能没办法达到固态硬盘最佳的状态跟使用方式。 TRIM 允许固态硬碟自己去预先处理 GC(Garbage Collection)还有其它需要写入的操作。
【 Q6:什么是 S.M.A.R.T.? 】
S.M.A.R.T. 的全名是「Self-Monitoring, Analysis and Reporting Technology」。顾名思义,拿来监控固态硬盘跟机械硬盘健康度的东西。当 S.M.A.R.T. 觉得硬碟有可能准备要损毁的时候,它可以让作业系统提前跳出通知,给使用者缓冲的时间备份谮几的重要资料,并更换这个快坏掉的硬盘。当然,这个机制只适用在可预期的损坏,比如说机械性损毁或是逐步减速的存取速度。对于无法预期的损坏,像是闪电造成的突波等就完全没辙了。
怎么在硬盘的控制器里头实作这个监控机制有点难在这个小段落里头讲完⋯⋯ 其实有点长度⋯⋯ 回头整理一下 SSD各个方面 包括选购 这次就是 【黑科技科普贴】只讲干货
因此 解释这么多 时代进步 SSD的可靠性 应该比 HDD 靠谱很多【排除个别很垃圾的固态】那个出保修翻车 甚至没保修 都不是稀奇事了 最可怕还有用SD卡做固态
评论 (0)