固态硬盘的局限性

作者 | 2021年4月20日 | 全部, 技术

SSD(固态硬盘)具有速度快、功耗低、耐用和重量轻等优点。 SSD 已与 HDD(硬盘驱动器)一样广泛使用。 HDD 和 SSD 之间的区别在于它们管理数据的方式。 SSD 上的此任务比 HDD 上的更复杂。通过适当的管理,SSD 速度很快,并且在驱动器的整个使用寿命内具有较长的耐用性。

 

NAND(非与门)基本操作

无法单独读取或写入单个 NAND 闪存单元。数据需要使用非常具体的属性进行分组和访问。以下是SSD的读、写、擦除属性:

1. 在第 1 页上对齐的读取只能向操作系统请求 1 个字节,但会在 SSD 中检索整页,从而强制读取超出必要数量的数据。

2. 在页面上写入对齐。将数据写入 SSD 时,写入会按页面大小的增量进行。即使写操作只影响一个字节,也需要将整个页写入闪存。

 

如何向页面写入数据:

 

A。蓝色数据表示数据写入。

b.黄色的新数据添加到块中。蓝色数据也必须更新。因为无法覆盖,所以必须重新写入,原来的数据被标记为无效。

C。每次蓝色数据收到更新时都会重复此过程。

3. 擦除与块大小对齐。页进行读/写操作,但无法擦除单个页。只能一次性擦除整个块。

读取和写入可以发生在页级别,但擦除(删除)只能发生在块级别。用户可以从一个块读取或向一个块写入任意数量的页,但如果用户想要擦除该块的任何部分,则驱动器必须擦除该块。

 

SSD 擦除操作的属性

 

A。所有页面都是空的

b.数据已写入

C。区块已满

d.数据被标记为无效。未标记为删除的有效数据将与新数据合并。新合并的集团“行动”。这里,未标记为无效的“好数据”从蓝色块和绿色块重写为具有可用页面的空块

e.有效数据写入另一个块。块中的所有数据都可以被标记为无效

F。一个块中的所有数据已被清除,可以重复使用

闪存转换层 (FTL)

SSD 使用与 SATA(串行 ATA)接口相同的主机接口。需要一个额外的组件来隐藏 NAND 闪存的内部特性,并仅向主机公开 LBA(逻辑块地址)阵列。该组件是 FTL ,驻留在 SSD 控制器中。 FTL 至关重要,有两个主要目的:逻辑块映射和垃圾收集。

 

逻辑映射

逻辑块映射将主机空间中的 LBA 转换为物理 NAND 闪存空间中的 PBA(物理块地址)。该映射采用表格的形式,为任何 LBA 提供相应的 PBA。该映射表存储在SSD的缓存中,以便更快地访问。它保存在闪存中,以防断电。

 

垃圾收集

SSD 控制器中的垃圾收集过程可确保擦除“无效”页面并将其恢复为“空闲”状态。这为传入的写入命令留出了空间,因为页面不能部分写入。如果需要更新页面中的数据,则将新数据写入空闲页面,并将包含先前数据的页面标记为无效。当块包含无效页时,需要先将其擦除,然后才能重写。

 

概括

SSD 操作受到 NAND Flash 特性的限制:

1、写操作必须以页为单位,不能覆盖页原来的内容。

2. 由于物理限制,擦除数据必须在块级别。

 

加速创新的基础™

zh_CN简体中文