基本SSD操作方法
写放大(WA)是与闪存和固态驱动器相关的属性,因为在重写之前必须删除闪存(我们也称为“编程”)。执行这些操作时,请多次移动(或重写)用户数据和元数据(元数据)。这些多种操作不仅增加了写入的数据量,缩短了SSD的使用寿命,而且还吞噬了闪存的带宽(间接影响随机写入性能)。许多因素都会影响SSD的写放大,让我对其进行详细说明。
早在2008年,英特尔公司和硅系统公司(于2009年被Western Digital收购)首先提出了写放大作用,并在公共手稿中使用了该术语。他们当时的说法是写算法不能低于1,但该说法在2009年被SandForce打破,SandForce说他们的写放大倍数为0. 5。
由于闪存的工作特性,无法像普通机械硬盘一样直接覆盖数据。首次将数据写入SSD时,由于SSD中的所有粒子都处于擦除状态,因此可以直接以页面的最小单位(通常为4K,指的是粒子数据)写入数据,并且SSD上的主控制器控制器使用逻辑和物理映射系统来管理闪存。 (逻辑通常指LBA,而物理则指FTL)。当在写入新数据时需要替换新数据时,SSD主控制器会将新数据写入另一个空白闪存空间(擦除状态),然后更新逻辑LBA地址以指向新的物理FTL地址。旧地址内容变为无效数据,但是如果要再次写入,则需要先擦除无效数据。 (闪存的工作特性,最小的写入单位是一页,最小的擦除单位是块,通常为128〜256页)
然后问题来了,闪存对编程和擦除次数有限制,因此每个编程/擦除被称为1 P / E(编程/擦除周期)周期,每个人都应该知道MLC通常为5000大约10,000次,而SLC大约是100,000次(检查闪存数据)。换句话说,写放大率越低,P / E周期越少,闪存的寿命就越长。
写倍率计算
2008年,英特尔公司和硅系统公司(于2009年被Western Digital收购)首次提出写放大功能,并在公共手稿中使用了该术语。所有SSD都有写放大值。这个值不是固定的,取决于SSD写入的数据是随机的还是连续的?写作多少钱?主人进行了这些操作,依此类推。
用于计算写放大率的公式大致如下:

对于单个操作,最简单的示例,例如我要写入4KB数据,最坏的情况是块中没有干净空间,但可以擦除无效数据,因此主设备读出所有数据,擦除该块,然后写回4KB的新数据。此操作引起的写放大为:我实际上写了4K数据,这导致要写入整个块(512KB)。那是128倍的放大倍率。同时,原来只需要写入4KB的操作就变成了读取(512KB),擦除(512KB)和重写(512KB),这导致了延迟和速度的极大增加。
影响写放大的因素
许多因素会影响SSD写入放大。下面我列出了主要因素及其对写入放大的影响。
1.垃圾回收(GC)垃圾回收---尽管增加了写放大,但是速度有所提高。
此特殊算法用于组织,移动,合并和删除Flash块,以提高效率。
2.预留空间(OP)预留空间过大---减少写入放大,很好。 (预留空间越大,写放大率越低)
一部分空间留在SSD的闪存上,以便进行主控制优化,用户无法操作该空间。

3.打开TRIM后,可以减小写放大。
由操作系统发送到SSD主设备的ATA命令,通知主设备哪些数据无效并且不需要进行垃圾收集。
4.可用容量,减少写放大,很好。 (可用空间越大,写放大率越低)
Trim需要支持用户未使用的空间,否则不会影响写放大。
5.安全擦除可减少写入放大,很好
清除所有用户数据和相关元数据,并将SSD重置为其初始性能。
6.分离静态和动态数据分离静态和动态数据以减少写放大,很好
频繁重写和不频繁重写的组数据。

7.顺序写入以减少写入放大,很好
从理论上讲,连续写入的写入放大率为1,但是某些因素仍然会影响该值。
8.随机写入随机写入会增加写入放大率,不好
随机写入将写入许多不连续的LBA,这将大大提高写入放大率。
9.损耗均衡(WL)损耗均衡直接增加了写入放大,效果不好
一种机制,用于确保闪存的每个块被写入相同的次数。
详细说明
垃圾收集垃圾收集
一旦SSD的所有块都被写入一次,SSD主控制器将初始化那些包含无效数据的块。 (陈旧的数据,这些块中的数据已被更新的数据替换,不再无效,并且没有LBA地址),现在它们正等待删除,以便可以将新数据写入其中,以及如何优化和组织这些数据等待删除无效数据,此算法称为垃圾回收(GC)。我们可以看到此操作具有先决条件,即SSD必须支持Trim技术,否则GC将不会显示其优势(这就是为什么目前仅支持Trim的SSD具有GC功能),而GC的本质区别在于何时他们处理了吗?有效率吗?
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-356235-1.html
都是纸老虎
美国佬所做的一切