咨询热线:4006-759388  
分部: 杭州 | 上海 | 武汉 | 深圳 | 北京 | 沈阳
华军科技数据恢复华军科技数据恢复
数据恢复
成功案例
 数据恢复
 当前位置: 首页 > 数据恢复 > 正文

 联系我们

 4006-759388

SSD固态硬盘技术及原理分析

 浏览量:次  来源:华军科技数据恢复  发布日期:2021-04-18 17:46:48

正确认识SSD


SSD固态硬盘

间单介绍 SSD 先进技术以及SSD的原理,SSD是设计来取代『传统硬盘』。其构造完全是『积体电路』结构,无任何机件,所以和『硬盘』无关。市面简称『固态硬盘』不是很正确。传统硬盘内有『碟片』是旋转碟片来读写数据,但 SSD 都是『积体电路』无碟片。读写原理完全不同。SSD 在 2020年的规格是採用先进的 3D NAND Flash Memory+PCIe 介面,读写极速是传统硬盘的 4倍,同时,SSD 也有『加密功能SSD』

SSD与传统硬盘比较,混合式硬盘是什么?

目前市面的数据储存设备(Data Storage)以储存的材质区分为『磁性介质表面储存设备』代表性产品是传统式硬盘,另一是『积体电路的储存设备』代表性产品是 RAM, ROM, SSD Flash Memory….。


虽然目前硬盘还佔优势,但因其『物理极限』已无法克服『怕碰撞,易磨损,耗电...』的问题,也无法再开发更『轻,薄,短,小』的硬盘。科学家因此开始开发以『积体电路的储存设备』取代硬盘。


而目前最符合『轻薄短小』的储存设备是 SSD,而SSD 最重要的元件就是『NAND 非挥发性记忆体(Non-volatile Memory Device)』。虽然 NAND 的技术虽然还有『成本高,容量较低,数据储存年限...问题』但还是已渐渐取代硬盘。

 
SSD 传统硬盘
NAND 积体电路 精密金属机件
轻薄短小、省电、温度低 体积大、重量重、较耗电、温度较高
读写快速 读写速度相对较慢
NAND 写入时会有耗损 理论上磁片读写无耗损
耐摔耐碰撞 怕碰撞
晶片烧毁后,无法数据恢复 硬盘故障时,数据恢复机会较高

SSD的设计是用来取代传统式硬盘,SSD特性是轻便,读写快速,省电.....非常适合『可携式』使用。为了改善传统硬盘因机件太精密,万一碰撞即发生硬盘故障,导致数据无法读取,必须数据恢复。

下图是『传统机件式硬盘』和『SSD』内部结构,可明显看出差异。

  •  传统式硬盘内部都是精密机件,怕碰撞。
  • SSD 内部都是积体电路元件,较不怕碰撞。


目前的趋势,Notebook 一律都已改用SSD,符合耐碰撞特性,因为读写速度比传统硬盘快速,连一般 PC 都建议改用 SSD 当开机用磁碟,不必因每次开机时需读取数量庞大的作业系统档案而等待的时间,实务上使用者很容易感受速度的差异,几乎提升 4倍以上。


但提醒重要一点,因 SSD 是用 NAND 快闪记忆体,目前受限于『数据写入时都对 NAND flash memory 会造成耗损而降低使用寿命』建议不适用于读写频繁的 Server, RAID, NAS。但相信 SSD 厂商一定设法提升技术克服,不久后即会出现『稳定』『可靠』RAID 专用 SSD。


建议目前 RAID, NAS, Server 建议还是安装 SAS 传统硬盘,应该是较『保险安全』方式。


混合式硬盘

『混合式硬盘』就是『传统硬盘+SSD』结合成单一硬盘。有 SSD 读写快速的优点,又有传统硬盘的高容量可使用。等于是 1台当 2台用,规格是只有一个 SATA 介面。SSD 磁碟可安装作业系统当开机用磁碟,传统硬盘则当储存数据用。


SSD规格&介面:SATA、M.2 SATA、M.2 PCIe、NVMe

SSD 目前 2020 年规格种类共有3种,Interface 共2种:

1. 和传统硬盘外观相同的 SSD 2.5”,也是用 SATA Interface 可以轻易取代传统硬盘。

2. 规格尺寸 - m2_2280,也是用 SATA 介面。

3. 规格尺寸 - m2_2280 介面 - PCIe G3 1x4 / NVMe。


上述照片得知 SSD 规格分 3种,但介面( Interface)分2种 SATA & PCIe/NVMe。

SATA 是传统硬盘用,无法发挥 NAND 极速特性,属旧型 Interface。

PCIe/NVMe 是专为 SSD 内的 NAND 开发的新协定,可以发挥 NAND 的极速。


多年前 SSD 设计时的用意是为了取代传统硬盘,为了改善传统式硬盘『怕碰撞,怕摔』的问题,只先将内部精密机件改用成『积体电路 NAND Flash Memory』当储存数据元件,但当时 SATA 是传统硬盘的传输介面 Interface 的标准。


为了可以让市场轻易接受而改用 SSD,所以才继续延用SATA。但却因此阻碍了 NAND Flash Memory 读写快速的特性。多年后 SSD 厂商才开始推广专为 NAND 平行运算 (Internal Parallelism) 功能开发出的传输协定 『NVMe』,而且是可以採用现有的 PCIe 介面,其极速表现比 SATA 高 4倍。


SATA SSD

这是最早出现市面的 SSD,当时是为了取代畅销的传统硬盘而设计,外型就是和一般 2.5”传统硬盘完全相同,也是採用 SATA 介面,安装和传统硬盘相同,毫无困难,可以轻易取代。

目前市面规格 SATA 6.0Gb/s, 读取时间 560 MB/s ,写入时间 510 MB/s。


M.2 PCIe (PCI Express) / NVMe

这是搭配目前最高速的 PCIe 介面,NVMe 也是较新 SSD规格,如是旧款主机板可能不支援,但近期新款主机板都已有支援,据说近年的 Notebook 都搭配 PCIe / NVMe 的 SSD。

目前市面规格 3D NAND,读取时间 3,400 MB/s,写入时间 3,000 MB/s。


M.2 SATA

这是比 PCIe / NVMe 更早期介面,适用较旧款主机板,

目前市面规格 M.2 SATA,读取时间 560MB/s, 写入时间 510MB/s。

据说一般客户选购 SSD 时,较重视读写速度,下列为一简单比较表。

 
2020年规格 M.2 PCIe / NVMe M.2 SATA SATA
Sequential Read 3,400 MB/s 560 MB/s 560 MB/s
Sequential Write 3,000 MB/s 510 MB/s 510 MB/s
 
NVMe(NVM Express)先进规格,读写速度快

上述图片比较说明,应该已很清楚看出,M.2 PCIe+NVMe 是 SSD 读写速度最快的规格。


谈 SSD 的技术就不得不谈 NVMe 原理,但笔者对 NVMe 技术知道的有限,目前只能简单介绍基本概念,无法深入说明内部核心『平行运算Internal Parallelism for SSD』原理,请见谅。


NVMe 开发的契机是因为:

1. 目前的 CPU 是具有平行运算。

(Parallel computin 可同时执行高达 64,000 个指令,注:CPU 技术更先进,运算能力也提升)

2. NAND 内部也已具备『平行架构』运算能力。

3. 现已有极高速的传输界面『 PCIe』。


如可结合,CPU 的『平行运算』+PCIe 高速传输介面+NAND 的『平行运算』,这种组合即可达到『极速』,但只缺 NAND 和 PCIe 的『高速通讯技术』。


所以厂商才为此而开发出 『NVMe』其名称是『非挥发性记忆体控制介面规格 Non-Volatile Memory Host Controller Interface Specification』通讯协定。此新协定终于定义出可以 100% 发挥 NAND 『平行运算』的高速能力,再利用现有的 PCIe 介面的高速特性,即可发挥 NAND 高达 3,400 MB/s 读写速度。这已比传统 SATA 硬盘快4倍速度。

 
PCle 高速传输介面

PCIe 採用四通道连接,让数据传输比 SATA 快4倍,且省电。使用 PCle +NVMe SSD,是目前追求极速唯一选择。

另外有一优点,NVMe SSD+PCIe 组合,因有省电特性,NoteBook 电池耗损减低,电池寿命才得已增长。

 
SSD 先进的3D NAND&写入读取数据原理

先简单介绍 SSD 重要元件 Controller, NAND 的功能用途。

SSD controller NAND


Controller:就是负责当外部有档案要写入时,就是先由 Controller 已内建『File System』将档案分数段 Blocks『平均写入』每一颗 NAND Flash Memory 储存。当 Windows 下指令要读取档案时,也是由此 Controller 负责至各 NAND 将该档案所有的 Blocks 取出,依序传输给 Windows。且保证顺序,数量正确无误,档案才完整可正常使用。

Controller 当然还有其它功能,但都是与读写数据有关。后面会一一介绍。


NAND Flash Memory:是先进的 3D NAND 就是负责储存档案数据的 Storage。但因属于半导体高科技,笔者才疏学浅,所知有限不敢卖弄,请包涵。 

注:此处所指 Controller File System 是该 Controller 厂商自行开发专用,是指此颗 Controller 这层的逻辑控制。其主要是负责『读写』功能,是将 Windows NTFS、Mac HFS、AFS、Linux EXT3、EXT4、XFS…...作业系统不同格式的档案,转换成可写入至『积体电路 NAND』内的档案格式。且各厂牌有不同格式。 


接下来说明内部最重要的元件『 NAND 』。NAND 是『非挥发性记忆体』 (Non-volatile Memory Device) 也是 Flash memory 一种。因属于『积体电路』的设计,其内部结构是先进的『3D立体』的多层逻辑电路佈线,是『垂直+平行 Layout』和传统硬盘圆形磁片读写方式完全不同。当初设计的用意就是为了取代『硬盘』,所以 NAND 的储存单位也是512 Byte/Unit。


NAND 的最小储存单位是 512byte / Unit,这种设计就是为了取代传统硬盘制定的标准协定 512byte / Sector,如此即可 100% 相容。


3D积体电路基本上是一层一层的 Layer,每一层可佈线成数量庞大的 512byte/unit,类似『网格状』的逻辑电路而且共有 2面,再一层一层堆迭,如此堆迭即可构成『立体的逻辑电路架构』,以达到垂直平行读写功能。


NAND 的储存单位也採用『逻辑虚拟』设计,且不同厂牌、型号....数值不同。但制定的基本标准如下:

1. Unit 是 NAND 最基本储存单位,Size=512 byte。

2. Page 是网格上的每一列(行),在 NAND 上称为『Page』。通常数量都是 32、64、128、256、512.../unit,Size 32、64、128...KB,基本上每一层有多少数量的列就相同数量的 Page,但各厂牌设计也有不同。一个page上所有的 unit共用一字元线(Word line)所以 NAND 读写一定是一个 Page 一个 Page同时进行。  

3. Block 是 32,64,128,256,512….Page 组成的『区块』且是『3D立体』,想像成阵列 Array或巨型的『魔术方块』较易理解。

NAND储存单位

NAND 读取与写入原理有点复杂,

NAND 『读取,写入』是一个 Page 一个Page 进行。但写入前必须先将要写入该 page 的整个 Block 擦除乾淨(Block erasure) 才可写入。擦除原理就是将 Block 内所有的 bit 变为『1』状态=Free 。擦除作业只能以「Block」进行,无法以较小的 page。


所以程序是, 先清除一个大的 Block 空间 → 数据才写入一个小的 page 内。

例如:为了写入小量的 16KB 数据(page) 需先将一个大量的 512KB(block) 所有 bit 都写成”1”(Full “11111111”) 变成 Free ,才可写入 16KB 数据。

 

这就是 SSD 因常『抹除』,写入比读出耗时,也导致 NAND 寿命减原因。

如果一直在同一个 Block 写入与清除数据,这些Block 的寿命会消耗很快,为了儘量减少Erasure的次数,有效率的Block 管理技术就非常重要。

当晶片渐渐磨损,Erasure与读写速度会变非常慢,而且需要更多次数 Retry。

NAND Flash还有一项限制就是区块内的数据只能序列性的写入,无法像传统硬盘随机读写(Randon read/write)。这属于 file system 技术,先不在此讨论。


如何管理已损坏区块(Bad Blocks):

1:出厂时的 Bad Blocks,这是製造生产时已存在的 Bad Blocks。

2:使用时累积的 Bad Blocks,发生在无数次的写入/擦除,造成一些 NAND单元的『电荷电压 Electric charge /Coulomb』被永久性的改变了,因此而无法使用。

SSD 有管理Bad blocks 机制,Controller 用 bad Blocks map 纪录每一 Bad block。传统硬盘也有相同机制(Bad Sectors Map)。


SSD的Trim(修剪)& 耗损平均 (Wear Leveling)

SSD有一的致命缺点,就是 NAND 物理问题,写入次数是有限制,太频繁的写入(含抹除 Full”11111111”)是会破坏其『电荷电压 Electric charge /Coulomb』,影响使用寿命。


目前 2020年 SSD 厂商宣称已用2 方法,解决此问题:

1:目前 NAND 容量已大大提高,Block 数量庞大,其每一 Block 被写入次数变减少,如此即可延长使用寿命。

2:  NAND 目前先进科技,写入次数已可达 5万次以上。


所以此处文章用意只在说明 NAND 先天性的『写入次数有限制』的技术问题。使用者不必太担心 SSD 使用寿命问题。


SSD NAND 有一先天上的问题,就是每当要写入数据时不论数据量是多小,就算只是 16KB /Page,也要先抹除一整个容量较大的 512KB / Block。等抹除完成(Full”11111111”) 才可将16KB 数据写入。


例如:有一Block 内现已存在 4 pages 的数据,现在Delete 3pages 后只剩1 page。为了日后要让新数据写入时使用这 Block,现在须先将这 1 page 迁移另一 Block,再清除这 Block (Full”111111111”)供写入新数据用。 


所以为了写入一支档案,等于那一些 Blocks 会被做了2次『写入』动作,每一次写入就多一次耗损。

1: 先将一整个 Block 先抹除(Full”11111111”)这动作也是『写入』。

2: 再正式写入新数据。

了解上述问题后,接下来说明SSD的耗损平均 (Wear Leveling) & Trim(修剪) 原理。


Wear Leveling(耗损平均 )是什么?

SSD NAND 常会被做『写入』动作,且 Blocks 数量庞大,那就要设法让每一 Block 被写入次数是平均的,避免某些 Blocks 时常被写入而耗损较严重,其它不常被写入的 Blocks 却耗损较轻微。


简单形容类似避免『路面』到处坑坑疤疤,最好是每一路段都平均使用,勿集中常使用某一路段,造成这一路段耗损严重,其它不常使用路段却耗损轻微。


最好是一整层路面平均耗损,使用一阵子后又是一整层平均耗损,如此即可保持路面永远是平整,无坑坑疤疤现象,直到路面已薄到无法再耗损才报废。

 
Trim(修剪) 的功能是什么?

先以传统硬盘来说明,在 Windows, Mac, Linux 下使用传统硬盘,当删除档案时,该档案在硬盘磁片上只是先被标示成『已删除』,该档案在磁片上所佔用的 Blocks 都还存在原数据,并未被清除(未被 Full “00000000”),只是当档案管理系统 File manage 读到此『标示已删除』时会略过不读,如此才有机会随时『还原档案』。


注:各位应该有注意到,Windows,Mac, Linux.. 下 Copy 写入一支 1GB File 约需几十秒才可完成,但 Delete File 却是瞬间完成,足证这『瞬间』只是做了『标示已删除』的动作,绝不足将 1GB 数据100% 清空(未被 Full “00000000”)。 


但当有新档案要写入时,只要是磁片后面还有未使用区块(Unused Blocks),一律先写入这些未使用的区块,不会先去写入『已删除』区块,就是避免覆盖已删除档案,提供随时『还原档案』的机会。


但如磁片已被写满,无任何未使用区块可用时,新档案就只能写入那些标示『已删除』的区块,只要一被写入新数据,原旧有数据即已被覆盖,绝不可能『还原』。


这『磁性纪录』原理类似,录音带某段如被再录製新歌曲,其原旧歌曲即被覆盖,绝不可能『还原』。


SSD 也有类似此机制,一些『已删除』档案所佔用的 Blocks 也只是被标示『已删除』,原档案数据还存在,并无被 Full”11111111”,也是有机会『还原』。


当有档案要写入时,也是去找未使用区块写入。


但 NAND 有一致命缺点,如某些区块 Blocks 常被频繁的读+写+抹除 (Full “11111111”)其『电荷电压』会加速减弱,导致这些区块无法再使用,变成 Bad Blocks,如此整个 NAND 就会到处散佈这些 Bad Blocks,将导致 SSD


读写异常。为了避免发生此状况,就设计了『Trim』这机制来改善。


Trim 的主要功能是,趁 SSD 閒置时,先去启动『主动垃圾收集机制』直接清除那些标示『已删除』的 Blocks,供随时写入新数据 Pages。


事先清除的优点是,不必等到真正有新数据要写入时,才去『搬移残馀 Pages』→『Full “11111111”』→『写入新数据Pages』。


Trim 是SSD专用功能,某些作业系统版本,非设定自动启用,可能需要至 /设定/ Trim 手动启用。


『主动垃圾收集机制』的功能也是趁 SSD 閒置时,主动去收集一些『属于同一支档案的所有Pages』集中存放,减少『断离现象』听起来有点像『数据重整』。


Trim 与主动垃圾收集机制同时运作即可延长 SSD 的使用寿命,并提升 SSD读写效率。是非常聪明的机制,目前新规格 SSD NAND 都有提供此项机制。 以前常听说 『SSD 不要写满,一定要预留约 20% 空间供暂存用,否则读写速度会变慢』。


目前新款 SSD已内建此机制,使用者不必再为此操心。


SSD因读写时需要迁移残遗的 Pages,所以需预留一些暂存空间,目前 SSD 设计是已内建『暂存空间』,Windows, MacOS, Linux….. 下是无法识别,使用者也看不到,当然更无法去使用这些空间,这是一种『保护』机制。

 
如何让 SSD 更快速更聪明?

1. 随时更新原厂韧体(Update Firmware)。

2. 安装原厂的 SSD 自我监控,分析和报告技术(S.M.A.R.T)监控系统。



相关推荐: