固态硬盘原理(固态硬盘原理图)

日期: 浏览:9
固态硬盘是如何工作的

我们经常讨论不同类型的NAND结构之间的区别:垂直NAND与平面,或者多级单元(MLC)与三级单元(TLC)和四级单元(QLC)。现在,让我们来谈一谈更基本的相关问题。首先,固态硬盘是如何工作的,它们与英特尔的非易失性存储技术(Optane)等新技术相比如何?

为了理解固态硬盘与旋转磁盘的不同之处和原因,我们需要谈一谈硬盘的情况。硬盘在一系列被称为盘片的旋转磁片上存储数据。

上面的推杆将读写头定位在硬盘的正确区域上,以读取或写入信息。

由于驱动器磁头必须在磁盘的某一区域上对准才能读或写数据,而且磁盘不断旋转,因此在访问数据之前会有一个延迟。硬盘可能需要从多个位置读取,以启动一个程序或加载一个文件,这意味着它可能不得不等待盘片多次旋转到适当的位置,才能完成命令。如果硬盘处于睡眠状态或低功率状态,可能需要多花几秒钟时间让磁盘旋转到全功率并开始运行。

固态硬盘是如何工作的

机械硬盘存储原理:磁头臂是可以旋转的,磁头可借助磁头臂沿盘片的半径方向运动。

很明显从一开始,硬盘不可能与CPU的运行速度相提并论。硬盘的延迟是以毫秒为单位的,而典型的CPU是以纳秒为单位的。一毫秒等于1,000,000纳秒,而硬盘通常需要10-15毫秒的时间来找到硬盘上的数据并开始读取。硬盘行业引入了更小的盘片、磁盘内存缓存和更快的主轴速度来对抗这种趋势,但机械硬盘只能转这么快。西部数据的10,000 RPM VelociRaptor系列是有史以来为消费市场制造的最快的一套硬盘,而一些企业级硬盘的旋转速度达到了15,000 RPM。问题是,即使是拥有最大缓存和最小盘片的最快旋转驱动器,就你的CPU而言,硬盘的速度仍然慢得令人愤怒。

固态硬盘如何与众不同

固态硬盘之所以被称为固态硬盘,是因为它们不依赖于移动部件或旋转的磁盘。相反,数据被保存在一个NAND闪存池中。NAND本身是由所谓的浮动门晶体管组成的。与DRAM中使用的晶体管设计不同,NAND闪存必须每秒多次刷新,它的设计是即使在不通电的情况下也能保持其充电状态。这使得NAND成为一种非易失性存储器。相比之下,DRAM是易失性的,如果不迅速刷新,它就会丢失数据。

003

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

这个系统的一个优势应该是显而易见的。由于固态硬盘没有移动部件,它们的运行速度远远高于典型的硬盘。下图显示了典型存储介质的访问延迟,单位为微秒。

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,单元可以有8个值,而QLC有16个。从单元中读出适当的值需要存储器控制器使用精确的电压来确定任何特定的单元是否被充电。

固态硬盘是如何工作的

读取、写入和擦除

固态硬盘的功能限制之一是,虽然它们可以非常快速地在一个空的驱动器上读写数据,但覆盖数据的速度要慢得多。这是因为虽然固态硬盘在页级(指从NAND内存网格中的个别行)读取数据,并且可以在页级写入,假设周围的单元是空的,但它们只能在块级擦除数据。这是因为擦除NAND闪存的行为需要高额的电压。虽然理论上你可以在页级擦除NAND,但所需的电压量会对被重新写入的单元周围的单个单元造成压力。在块级上擦除数据有助于缓解这个问题。

固态硬盘更新现有页面的唯一方法是将整个块的内容复制到内存中,擦除该块,然后写入旧块的内容和更新的页面。如果硬盘已经满了,没有空页可用,那么固态硬盘必须首先扫描那些被标记为要删除但还没有被删除的块,擦除它们,然后将数据写入现在被删除的页面。这就是为什么固态硬盘会随着年龄的增长而变得越来越慢:一个大部分为空的硬盘充满了可以立即写入的区块,一个大部分为满的硬盘则更有可能被强制完成整个程序/擦除顺序。

如果你使用过SSD,你很可能听说过一种叫做 "垃圾收集 "的术语。垃圾收集是一个后台过程,它允许硬盘通过在后台执行某些任务来减轻程序/擦除周期的性能影响。下面的图片是垃圾收集过程的步骤。

注意在这个例子中,硬盘已经利用了它可以通过为前四个区块(A'-D')写入新值来快速写入空页的事实。A-D块现在被标记为陈旧,意味着它们包含的信息被硬盘标记为过期。在空闲期间,固态硬盘将把新的页面移到一个新的区块上,擦除旧的区块,并把它标记为空闲空间。这意味着下次SSD需要执行写操作时,它可以直接写到现在的空块X上,而不是执行编程/擦除循环。

我想讨论的下一个概念是TRIM。当你在典型的硬盘上从Windows中删除一个文件时,该文件并没有被立即删除。相反,操作系统告诉硬盘,它可以在下一次需要执行写入时覆盖存储该数据的磁盘物理区域。这就是为什么有可能撤销文件(以及为什么在Windows中删除文件通常不会清除很多物理磁盘空间,直到你清空回收站)。对于传统的HDD,操作系统不需要注意数据被写入的位置,或者块或页的相对状态是什么。对于SSD来说,这一点很重要。

固态硬盘是如何工作的

TRIM命令允许操作系统告诉固态硬盘,它可以在下次执行块擦除时跳过重写某些数据。这降低了硬盘写入的数据总量,增加了SSD的寿命。读取和写入都会损害NAND闪存,但写入的损害远远大于读取。幸运的是,在现代NAND闪存中,区块级的寿命并没有被证明是一个问题。

我们要讨论的最后两个概念是磨损均衡和写入放大。由于固态硬盘将数据写入页面,但以块为单位擦除数据,被写入硬盘的数据量总是大于实际更新的数据量。例如,如果你对一个4KB的文件进行修改,那么4K文件所在的整个块必须被更新和重写。根据每个块的页数和页的大小,你可能最终要写4MB的数据来更新一个4KB的文件。垃圾收集可以减少写入放大的影响,TRIM命令也是如此。保持硬盘的很大一部分空闲和/或制造商的超额配置也可以减少写放大的影响。

磨损平衡指的是确保某些NAND块不比其他块更频繁地被写入和擦除的做法。虽然损耗均衡通过对NAND的平均写入增加了硬盘的预期寿命和耐用性,但它实际上会增加写入放大作用。为了在整个磁盘上均匀地分配写入量,有时需要对块进行编程和擦除,即使它们的内容实际上没有改变。一个好的磨损均衡算法会寻求平衡这些影响。

固态硬盘控制器

固态硬盘是如何工作的

现在应该很明显,SSD需要比硬盘更复杂的控制机制。这并不是要贬低磁介质。实际上计算机专家认为硬盘应该得到更多的尊重。在5400到10000转/分的盘片上平衡多个读写头,所涉及的机械挑战是不容小觑的。事实上,HDD在完成这一挑战的同时,还开创了新的磁介质记录方法,并最终以每千兆字节3-5美分的价格出售硬盘,这简直令人难以置信。

然而,固态硬盘的控制器则是自成一派的。它们通常有一个DDR3或DDR4内存池来帮助管理NAND本身。许多硬盘还加入了单级单元缓存,作为缓冲区,通过将快速NAND专用于读/写周期来提高硬盘性能。由于固态硬盘中的NAND闪存通常是通过一系列并行的内存通道连接到控制器,你可以认为硬盘控制器执行一些与高端存储阵列相同的负载平衡工作。固态硬盘不在内部部署RAID,但磨损均衡、垃圾收集和SLC缓存管理在铁磁介质的世界里都有相似之处。

一些硬盘还使用数据压缩算法,以减少总的写入次数,提高硬盘的使用寿命。固态硬盘控制器负责纠错,随着时间的推移,控制单比特错误的算法已经变得越来越复杂。

不幸的是,我们不能对SSD控制器进行太多细节的研究,因为各公司都锁定了他们的各种秘密算法。NAND闪存的大部分性能是由底层控制器决定的,而公司并不愿意过多地透露他们是如何做到的,以免给竞争对手带来优势。

接口

起初,SSD使用SATA接口,就像硬盘一样。近年来,我们看到了向M.2硬盘的转变:非常薄的硬盘,几英寸长,直接插入主板(或者,在少数情况下,插入PCIe立管卡的安装支架)。下图是一个三星970 EVO Plus硬盘。

固态硬盘是如何工作的

NVMe驱动器比传统的SATA驱动器提供更高的性能,因为它们支持更快的接口。通过SATA连接的传统固态硬盘的实际读写速度最高为~550MB/s。M.2驱动器能够大幅提高性能。PCIe 5.0硬盘的读写速度预计在12GB/s-13GB/s之间。这与双通道DDR2-800系统的DRAM带宽相差无几。

前进之路

NAND闪存为硬盘提供了巨大的改进,但它并非没有自己的缺点和挑战。驱动器的容量和每千兆字节的价格预计将分别继续上升和下降,但固态硬盘在每千兆字节的价格上赶上硬盘的可能性很小。缩小的工艺节点对NAND闪存来说是一个重大挑战--虽然大多数硬件随着节点的缩小而改善,但NAND却变得更加脆弱。20纳米NAND的数据保留时间和写入性能本质上低于40纳米NAND,即使数据密度和总容量有很大的提高。到目前为止,我们已经看到市场上有多达128层的驱动器,在这一点上,更高的层数似乎仍然是合理的。总的来说,向3D NAND的转变有助于提高密度,而不需要缩减工艺节点或依赖平面扩展。

到目前为止,固态硬盘制造商已经通过提供更快的数据标准、更多的带宽和每个控制器更多的通道并加上我们前面提到的使用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固态硬盘的那种高端性能。

固态硬盘是如何工作的

Optane将继续在企业服务器领域保持市场地位。虽然它的影响力有限,但它仍然是NAND最接近的挑战者。Optane固态硬盘不使用NAND,因为它们使用非易失性内存,据信其实现方式与相变RAM类似。但它们提供的顺序性能与目前的NAND闪存驱动器类似,尽管在低驱动队列中性能更好。驱动器延迟也大约是NAND闪存的一半:10微秒,而不是20微秒,而且耐用性也高得多:每天30次完整的驱动器写入,而高端英特尔SSD每天只有10次完整的驱动器写入。

Optane有多种驱动形式,可以直接替代DRAM。英特尔的一些高端至强CPU支持多TB的Optane部署,并支持DRAM和Optane的混合,为服务器提供的内存比单纯的DRAM要多得多,但代价是访问延迟更高。

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

推荐阅读
区块链 票据 区块链票据是什么
区块链 区块大小?区块链区块大小
区块链 基础厂商(区块链基础技术)
区块链 货物全周期,区块链 货物全周期运作
区块链 平台 功能 区块链 平台 功能分析
区块链 黄金交易所?区块链 黄金交易所排名
区块链 人民银行(区块链人民银行)
区块链 税务(区块链 税务局)
固态硬盘原理(固态硬盘原理图)文档下载: PDF DOC TXT