【无标题】

SSD使用NAND闪存存储数据,无移动部件,提供更快的读写速度和更低的延迟。与HDD相比,SSD的写入操作涉及编程/擦除周期,导致随时间推移性能下降。TRIM命令和垃圾收集过程帮助优化性能和寿命。磨损均衡确保NAND块的使用寿命均匀,而接口如SATA和NVMe影响SSD的传输速度。未来的技术如Optane在延迟和耐用性方面提出挑战,但目前仍面临市场普及难题。
摘要由CSDN通过智能技术生成

SSD 是如何工作的

在这里插入图片描述在 ExtremeTech,我们经常讨论不同类型的 NAND 结构之间的区别——垂直 NAND与平面,或多级单元 (MLC) 与 三级单元 (TLC) 和四级单元(QLC)。现在,让我们谈谈更基本的相关问题:SSD 首先是如何工作的,以及它们与英特尔的非易失性存储技术 Optane等新技术相比如何?在一开始的时候…要了解SSD与旋转磁盘有何不同以及为何不同,我们需要稍微谈谈硬盘驱动器。硬盘驱动器将数据存储在称为盘片的一系列旋转磁盘上。维基百科
图片由Surachit 提供,维基百科
此图显示了旧的 PATA 式驱动器,但执行器和盘片在概念上仍然相同。

上面的致动器臂将读写头定位在驱动器的正确区域上以读取或写入信息。由于驱动器磁头必须在磁盘的某个区域上对齐才能读取或写入数据,并且磁盘不断旋转,因此在访问数据之前存在延迟。驱动器可能需要从多个位置读取才能启动程序或加载文件,这意味着它可能必须等待盘片多次旋转到正确的位置才能完成命令。如果驱动器处于睡眠状态或处于低功耗状态,则磁盘可能需要几秒钟才能达到全功率并开始运行。

从一开始,很明显硬盘驱动器不可能与 CPU 的运行速度相匹配。HDD 的延迟以毫秒为单位,而典型 CPU 的延迟为纳秒。一毫秒是 1,000,000 纳秒,硬盘驱动器通常需要 10-15 毫秒才能找到驱动器上的数据并开始读取它。硬盘行业引入了更小的盘片、磁盘内存缓存和更快的主轴速度来抵消这一趋势,但机械驱动器只能旋转这么快。Western Digital 的 10,000 RPM VelociRaptor 系列是有史以来为消费市场打造的最快的驱动器系列,而一些企业级驱动器的转速高达 15,000 RPM。问题是,即使是具有最大缓存和最小盘片的最快旋转驱动器,就您的 CPU 而言仍然非常缓慢。

SSD 有何不同

“如果我问人们他们想要什么,他们会说更快的马。” - 亨利·福特

固态驱动器之所以这样称呼,是因为它们不依赖于移动部件或旋转磁盘。相反,数据被保存到一个 NAND 闪存池中。NAND 本身由所谓的浮栅晶体管组成。与 DRAM 中使用的晶体管设计(每秒必须刷新多次)不同,NAND 闪存设计为即使在未通电时也能保持其充电状态。这使得 NAND 成为一种非易失性存储器。相比之下,DRAM 是易失的——如果不快速刷新,它会丢失数据。[[[[[[[[[在这里插入图片描述图片来自Wikipedia 上的 Cyferz ,知识共享署名-相同方式共享 3.0。

上图显示了一个简单的闪存单元设计。电子存储在浮动栅极中,然后读取为带电“0”或不带电“1”。是的,在 NAND 闪存中,0 表示数据存储在一个单元中——这与我们通常认为的 0 或 1 正好相反。NAND 闪存以网格形式组织。整个网格布局称为块,而构成网格的各个行称为页面。常见的页面大小为 2K、4K、8K 或 16K,每个块有 128 到 256 个页面。因此,块大小通常在 256KB 和 4MB 之间变化。

该系统的一个优势应该立即显而易见。由于 SSD 没有移动部件,因此它们可以以远高于典型 HDD 的速度运行。下图显示了典型存储介质的访问延迟(以微秒为单位)。SSD-延迟图片来自CodeCapsule

NAND 的速度远不及主存储器,但它比硬盘驱动器快多个数量级。虽然 NAND 闪存的写入延迟比读取延迟要慢得多,但它们仍然超过了传统的旋转介质。

上图中有两点需要注意。首先,请注意在 NAND 的每个单元中添加更多位如何对存储器的性能产生重大影响。与读取相比,写入的情况更糟——典型的三级单元 (TLC) 延迟与读取的单级单元 (SLC) NAND 相比要差 4 倍,但写入的延迟要差 6 倍。擦除延迟也受到显着影响。这种影响也不成比例——TLC NAND 的速度几乎是 MLC NAND 的两倍,尽管它只保存了 50% 的数据(每个单元三位,而不是两位)。对于 QLC 驱动器也是如此,它在同一单元内以不同的电压电平存储更多位。在这里插入图片描述TLC NAND 比 MLC 或 SLC 慢的原因与数据如何进出 NAND 单元有关。对于 SLC NAND,控制器只需要知道该位是 0 还是 1。对于 MLC NAND,单元可能有四个值 - 00、01、10 或 11。对于 TLC NAND,单元可以有八个值,而 QLC 有 16 个。从单元中读取正确的值需要内存控制器使用精确的电压来确定是否对任何特定单元充电。

读取、写入和擦除

SSD的功能限制之一是虽然它们可以非常快速地将数据读写到空驱动器,但覆盖数据的速度要慢得多。这是因为虽然 SSD 在页面级别读取数据(即从 NAND 存储网格中的各个行)并且可以在页面级别进行写入,但假设周围的单元是空的,它们只能在块级别擦除数据。这是因为擦除 NAND 闪存的操作需要很高的电压。虽然理论上您可以在页面级别擦除 NAND,但所需的电压量会对正在重写的单元周围的各个单元造成压力。在块级别擦除数据有助于缓解此问题。

SSD更新现有页面的唯一方法是将整个块的内容复制到内存中,擦除块,然后写入旧块的内容+更新的页面。如果驱动器已满且没有可用的空页,SSD 必须首先扫描标记为删除但尚未删除的块,擦除它们,然后将数据写入现在已擦除的页。这就是为什么 SSD 会随着老化而变慢的原因——大部分为空的驱动器中充满了可以立即写入的块,而大部分为空的驱动器更有可能被迫完成整个编程/擦除序列。

如果您使用过 SSD,您可能听说过一种叫做“垃圾收集”的东西。垃圾收集是一个后台进程,它允许驱动器通过在后台执行某些任务来减轻编程/擦除周期的性能影响。下图逐步完成垃圾收集过程。垃圾收集图片由维基百科提供

请注意,在此示例中,驱动器利用了这样一个事实,即通过为前四个块 (A’-D’) 写入新值,它可以非常快速地写入空页面。它还编写了两个新块,E 和 H。块 AD 现在被标记为过时,这意味着它们包含驱动器标记为过期的信息。在空闲期间,SSD会将新页面移动到新块,擦除旧块,并将其标记为空闲空间。这意味着下次 SSD 需要执行写入时,它可以直接写入现在空的 Block X,而不是执行编程/擦除周期。

我要讨论的下一个概念是TRIM。当您从 Windows 中删除典型硬盘驱动器上的文件时,不会立即删除该文件。相反,操作系统会告诉硬盘驱动器它可以在下次需要执行写入时覆盖存储数据的磁盘物理区域。这就是为什么可以取消删除文件的原因(以及为什么在 Windows 中删除文件通常不会清除很多物理磁盘空间,直到您清空回收站)。使用传统的 HDD,操作系统不需要关注数据写入的位置或块或页面的相对状态。使用 SSD,这很重要。

TRIM 命令允许操作系统告诉 SSD 在下次执行块擦除时可以跳过重写某些数据。这会降低驱动器写入的数据总量并延长 SSD 的使用寿命。读取和写入都会损坏 NAND 闪存,但写入造成的损害远大于读取。幸运的是,在现代 NAND 闪存中,块级寿命尚未被证明是一个问题。更多关于SSD 寿命的数据,技术报告提供,可以在这里找到。

我们要讨论的最后两个概念是磨损均衡和写入放大。由于 SSD 将数据写入页面但以块为单位擦除数据,因此写入驱动器的数据量始终大于实际更新量。例如,如果您对 4KB 文件进行更改,则必须更新和重写 4K 文件所在的整个块。根据每个块的页数和页的大小,您最终可能会写入 4MB 的数据来更新一个 4KB 的文件。垃圾收集减少了写入放大的影响,TRIM 命令也是如此。保持驱动器的大部分空闲和/或制造商过度配置也可以减少写入放大的影响。

磨损均衡是指确保某些 NAND 块不会比其他块更频繁地写入和擦除的做法。虽然磨损均衡通过平等地写入 NAND 来增加驱动器的预期寿命和耐用性,但它实际上可以增加写入放大。为了在磁盘上均匀分布写入,有时需要对块进行编程和擦除,即使它们的内容实际上并没有改变。良好的磨损均衡算法旨在平衡这些影响。

SSD 控制器

现在应该很明显,SSD 需要比硬盘驱动器更复杂的控制机制。这并不是要贬低磁性介质——我实际上认为 HDD 应该得到比他们更多的尊重。在以 5,400 至 10,000 RPM 旋转的盘片上方纳米级平衡多个读写头所涉及的机械挑战不容小觑。硬盘驱动器完成了这一挑战,同时开创了记录到磁性介质的新方法,并最终以每 GB 3-5 美分的价格出售硬盘,这一事实简直令人难以置信。固态硬盘控制器

典型的SSD控制器
然而,SSD*控制器本身就属于一类。*他们通常有一个 DDR3 或 DDR4 内存池来帮助管理 NAND 本身。许多驱动器还包含用作缓冲区的单级单元缓存,通过将快速 NAND 专用于读/写周期来提高驱动器性能。由于 SSD 中的 NAND 闪存通常通过一系列并行内存通道连接到控制器,因此您可以将驱动器控制器视为执行一些与高端存储阵列相同的负载平衡工作 - SSD 不会在内部部署 RAID,但磨损均衡、垃圾收集和 SLC 缓存管理在大铁世界中都有相似之处。

一些驱动器还使用数据压缩算法来减少写入总数并提高驱动器的使用寿命。SSD 控制器负责纠错,随着时间的推移,控制单位错误的算法变得越来越复杂。

不幸的是,我们无法详细介绍 SSD 控制器,因为公司锁定了他们的各种秘密调味料。NAND 闪存的大部分性能是由底层控制器决定的,公司不愿意对他们的工作方式过于关注,以免让竞争对手获得优势。

接口

最初,SSD 使用 SATA 端口,就像硬盘驱动器一样。近年来,我们看到了向 M.2 驱动器的转变——非常薄的驱动器,几英寸长,直接插入主板(或者,在少数情况下,插入 PCIe 转接卡上的安装支架。三星970 EVO Plus 驱动如下图所示。在这里插入图片描述

NVMe 驱动器提供比传统 SATA 驱动器更高的性能,因为它们支持更快的接口。就实际读/写速度而言,通过 SATA 连接的传统 SSD 最高可达约 550MB/s。M.2 驱动器能够显着提高性能。PCIe 5.0 驱动器预计能够在 12GB/s – 13GB/s 范围内进行读写。这与双通道 DDR2-800 系统的 DRAM 带宽相差不远。

前方的路

与硬盘相比,NAND 闪存提供了巨大的改进,但它并非没有自身的缺点和挑战。驱动器容量和每 GB 价格预计将分别继续上升和下降,但 SSD 几乎不可能以每 GB 价格赶上硬盘。缩小工艺节点对 NAND 闪存来说是一项重大挑战——虽然大多数硬件随着节点缩小而改进,但 NAND 变得更加脆弱。20nm NAND 的数据保留时间和写入性能本质上低于 40nm NAND,即使数据密度和总容量大大提高。到目前为止,我们已经在市场上看到了多达 128 层的驱动器,而且在这一点上更高似乎仍然是合理的。总体而言,向 3D NAND 的转变有助于提高密度,而无需缩小工艺节点或依赖平面缩放。

到目前为止,SSD 制造商通过提供更快的数据标准、更多的带宽和每个控制器的更多通道,以及我们前面提到的 SLC 缓存的使用,提供了更好的性能。尽管如此,从长远来看,假设 NAND 将被其他东西取代。

其他东西会是什么样子仍有待商榷。磁性 RAM相变存储器都已成为候选者,尽管这两种技术仍处于早期阶段,必须克服重大挑战才能真正竞争作为 NAND 的替代品。消费者是否会注意到差异是一个悬而未决的问题。如果您已从 HDD 升级到 SSD,然后又升级到更快的 SSD,您可能会意识到 HDD 和 SSD 之间的差距远大于 SSD 与 SSD 之间的差距,即使是从相对适中的驱动器升级时也是如此. 将访问时间从毫秒提高到微秒非常重要,但是将它们从微秒提高到纳秒可能会低于人类在大多数情况下的实际感知能力。

企业市场中的 Optane 裁员

从 2017 年到 2021 年初,英特尔在消费市场上提供其 Optane 内存作为 NAND 闪存的替代品。2021 年初,该公司宣布将不再在消费领域销售 Optane 驱动器, H20 混合驱动器除外。H20 将 QLC NAND 与 Optane 缓存相结合,以提高整体性能,同时降低驱动器成本。虽然 H20 是一款有趣且独特的产品,但它无法提供与 Optane SSD 相同的高端性能。

Optane 将继续在企业服务器领域上市。虽然它的范围有限,但它仍然是 NAND 最接近挑战者的东西。Optane SSD 不使用 NAND——它们是使用非易失性存储器构建的,据信其实现方式类似于相变 RAM——但它们提供与当前 NAND 闪存驱动器相似的顺序性能,尽管在低驱动器队列中具有更好的性能。驱动器延迟也大约是 NAND 闪存的一半(10 微秒,而 20 微秒)和更高的耐用性(每天 30 次完整驱动器写入,而高端英特尔 SSD 每天 10 次完整驱动器写入)。
傲腾1英特尔傲腾性能目标
Optane 提供多种驱动器格式,可直接替代 DRAM。英特尔的一些高端 Xeon CPU 支持多 TB Optane 部署,并支持 DRAM 和 Optane 的混合,从而为服务器提供比单独 DRAM 更多的 RAM,但代价是更高的访问延迟。

Optane 在消费领域难以突破的一个原因是 NAND 价格在 2019 年大幅下跌,并一直保持到 2020 年的低位,这使得英特尔难以有效竞争。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值