对SSD知识的学习汇总


感谢HOMOLAB的精彩文章,让我对SSD有了更为科学的认识

PART I 固态硬盘(SSD)基础

1.1 发展历史与演进

  • NAND Flash

    • 原理:1145141919810个浮栅晶体管平铺堆叠(发配到模电区)。把晶体管在不同挡位的电压(浮栅晶体管捕获存储的电子数量差异导致电压不同)当作信息。

    • 比特数与存储密度
    单元 数据量(二进制位数)
    SLC 1
    MLC 2
    TLC 3
    QLC 4
    • 性能与耐用性

    • 从SLC➡MLC➡TLC➡QLC:

      • 存储数据难度上升:主控在写入数据时,需要精确地控制浮栅中电子的数量;

      • 读取数据的难度上升:主控在读取数据时,也必须非常精确地判断当前电压属于哪个区间,否则可能导致误读;

      • 耐久性降低:存储信息越多,对电压精度要求越高。擦写次数越多,浮栅的磨损就越大,电压状态就越不稳定
    • 原因:如QLC,将16种不同的电压状态挤在一个小小的浮栅晶体管里,就好比在一条狭窄的公路上行驶16辆车。每辆车之间的安全距离会变得非常小。

1.2 SSD 的基本构成

  • NAND Flash 存储芯片:浮栅晶体管堆叠,有着比较玄学的寿命说

    • Block(擦除的最小单位) ➡ Page(读写最小单位)➡ Cell
  • 主控(Controller):硬盘里管理数据的大脑,在如今SSD产品损坏的案例里一般是由于主控物理暴毙或者固件暴毙导致的

  • DRAM 缓存(不是都有)

    • 无缓(DRAMless SSD)

    • 有缓(DRAM SSD):存储FTL表,便于寻址

PART II SSD工作原理

2.1 读写与擦除

REW(Read-Erase-Write)

固态的擦除是以block为单位、读写以page为单位,nand的物理特性决定了他不能覆盖写入。因此如果我们要对一个已有数据的page进行写入,那么必须先要把这个page所在的block中的数据读出,block清空后再把所有数据写进去。

2.2 核心技术与机制

PART III SSD性能参数与协议

3.1 关键性能指标

  • IOPS(Input/Output Operations Per Second):如英文名,硬盘每秒钟能够处理的输入/输出操作次数。

  • 传统指标:随机和顺序是HDD时代传承下来的概念,在SSD中或许不再适用,但仍然被广泛使用。

    • 顺序读写(Sequential Read/Write): 顺序读写是指数据在存储介质上连续存储和读取的方式,通常用于大文件传输或连续数据流的处理。参数通过用大文件进行读写测试来获得。

    • 随机读写(Random Read/Write):随机读写是指数据在存储介质上分散存储和读取的方式,通常用于小文件或随机访问的数据。一般使用大量小文件进行读写测试。

    • 相关论述文章《随机 稳态 缓外 无知以及谎言,不存在的随机写入》总结:
    1. SSD数据存储在NAND的多个页(Page)中,页是SSD的最小读写单位;

    2. SSD读取数据时,一般需要根据FTL(Flash Translation Layer)将逻辑地址转换为物理地址;

    3. FTL表的查询需要时间,如果一个文件分布在临近的物理空间上,那么对其进行读写的操作就不需要多次查询FTL表从而节省开销;

    4. FTL表的映射是非线性的,物理上连续的存储单元未必在逻辑上是连续的

    5. 对于一个大块的连续文件写入而言,看起来是顺序写入,但数据不会集中在某一个NAND的某一个DIE的某一个plane的某一个block,而是分布在不同NAND上的不同block中;
    6. 因此,顺序读写和随机读写的概念对于SSD并不完全适用,SSD的性能更多地取决于其内部结构和数据管理方式;因此,顺序读写和随机读写的概念对于SSD并不完全适用,SSD的性能更多地取决于其内部结构和数据管理方式;
  • 缓外速度(Sustained Write Speed):在SLC Cache技术应用后产生的概念

    • 定义:缓外速度是指在SSD的SLC Cache被填满后,数据写入到TLC或QLC NAND Flash时的速度。通常情况下,SLC Cache可以提供更高的写入速度,而缓外速度则较低。

    • 备注:缓外速度不等同于SSD的实际写入速度,在如今常常导致用户对SSD性能的误解。实际上,连续大容量写入分多个阶段(关键词:SLC Cache释放、REW、Writeback惩罚、TLC/QLC直写、GC回收),而这受到厂家设计策略的影响,部分用户观察到的缓外速度没有太大的意义
  • WAF(Write Amplification Factor)

    • 定义:写放大因子,表示实际写入的数据量与原始数据量的比率。

    • 产生原因:SSD是以页为单位进行读写,但由于NAND Flash的特性,无法直接覆盖写入,因此需要先擦除整个块(Block),然后再写入新的数据。这种操作会导致实际写入的数据量大于原始数据量,从而产生写放大现象。

    • WAF与脏盘度(Dirty Page):WAF与脏盘度密切相关,较高的脏盘度意味着更多的数据需要被擦除和重写,从而增加了写放大现象。

3.2 消费级常见接口与协议

  • SATA(Serial ATA)

    • 传输速率:SATA III的最大传输速率为6 Gbps(约750 MB/s)。

    • 特点:SATA接口是传统的硬盘接口,主要用于连接机械硬盘和早期的SSD。

    • 目前SATA接口的SSD产品性价比较低
  • NVMe(Non-Volatile Memory Express)

    • 传输速率:NVMe接口的传输速率远高于SATA接口,理论上可以达到32 Gbps(约4 GB/s)甚至更高。

    • 特点:NVMe接口专为SSD设计,能够充分发挥NAND Flash的高速性能,具有更低的延迟和更高的并发处理能力。
  • UFS(Universal Flash Storage)

    • 传输速率:UFS 3.0的最大传输速率为23.2 Gbps(约2.9 GB/s)。

    • 特点:UFS接口主要用于移动设备,如智能手机和平板电脑,具有更低的功耗和更高的性能。
  • CFexpress(CompactFlash Express)

    • 传输速率:CFexpress 1.0的最大传输速率为1 GB/s,CFexpress 2.0可以达到2 GB/s。

    • 特点:CFexpress接口主要用于专业相机和摄像机,支持PCIe和NVMe协议,具有高性能和低延迟。
  • SD Express(Secure Digital Express)

    • 传输速率:SD Express的最大传输速率为985 MB/s。

    • 特点:SD Express是SD卡的最新标准,支持PCIe和NVMe协议,主要用于移动设备和相机。

PART IV 主控与固件深度解析

4.1 SSD主控的功能与作用

SSD主控是固态硬盘的核心组件,负责管理数据的读写、擦除和存储。它的主要功能包括:

  • 数据管理:主控负责将数据从主机传输到NAND Flash,并在需要时将数据从NAND Flash传输回主机。
  • 地址映射:主控使用FTL(Flash Translation Layer)将逻辑地址转换为物理地址,以便正确地读写数据。
  • 垃圾回收:主控定期执行垃圾回收操作,以释放被删除或过时数据占用的空间,从而提高SSD的性能和寿命。
  • 性能优化:主控通过各种技术(如SLC Cache、OP等)来优化SSD的性能和耐用性。
  • 固件更新:主控可以通过固件更新来修复错误、改进性能或添加新功能。

4.2 固件的优化策略

4.2.1 SLC Cache

  • 产生原因:SLC Cache是为了提高SSD的写入性能而设计的。由于SLC(单层单元)具有更高的写入速度和耐用性,SSD制造商通常会将一部分TLC或QLC NAND Flash配置为SLC Cache(主控只需要区分两种电压状态),以便在写入数据时先使用SLC Cache进行高速写入。

  • 种类:

    • 全盘SLC Cache:将整个SSD的部分空间配置为SLC Cache,通常在SSD的容量较大时使用。比较考验主控的算法设计能力。

    • 分区SLC Cache:将SSD的部分空间划分为SLC Cache,通常在SSD的容量较小或中等时使用。

    • 动态SLC Cache:根据实际写入需求动态分配SLC Cache的大小,通常在SSD的空闲空间较多时,SLC Cache会较大。比较考验主控的算法设计能力。比较出色的产品:Solidigm P41 Plus(QLC)
  • 写入流程(与主控、算法与固件有关,此处仅仅阐释常见的SLC Cache写入流程):

    1. FOB阶段:主控将数据写入SLC Cache,SLC Cache的写入速度通常较快,因为SLC只需要区分两种电压状态(0和1)。

    2. Transition过渡态:当剩余空间处于一定低线时,SSD内部将并未完整写入的page进行整理、触发GC回收机制将标记删除的数据从Nand上物理的删除掉。由于还有部分未写入的page可以利用,因此R-E-W惩罚为中等,并发效率受到一定程度的限制。

      • R-E-W惩罚:在这一阶段,由于GC回收和数据整理的需求,SSD的写入性能可能会受到影响,导致写入延迟增加。
      • GC回收:当所有的空间都不可用或者可用度很低,SSD不得不实时性的进行垃圾的释放(GC回收):读取垃圾文件所在块上的其他有效数据➡擦除整个块➡把这些数据整理并腾挪到其他地方。
    3. Steady稳态:GC回收、R-E-W进入了一个动态均衡的状态,因而性能维持在一条线上。主控和NAND成为当前的主要瓶颈(对于主控来说,它在这一高负载的情况下需要频繁的进行GC回收的处理、写入与读取数据的命令分配、磨损平衡的计算、数据纠错等操作)

4.2.2 地址映射表(FTL)

  • 定义:FTL(Flash Translation Layer)是SSD中的一种关键技术,负责将逻辑地址映射到物理地址,以便正确地读写数据。

  • 优化策略:为了提高FTL的性能,SSD制造商通常会采用多种优化策略,如:

    • 使用DRAM缓存:在SSD中增加DRAM缓存,以提高映射表的查询速度。

    • 采用分层映射:将映射表分为多个层次,以减少查找时间。类比内存中的多级页表。

    • 进行预读和预写:根据访问模式预测数据的读写需求,提前加载或写入数据。

4.2.3 OP(Over-Provisioning)

  • 定义:OP(Over-Provisioning)是指在SSD中预留一部分额外的空间,以提高性能和延长寿命。

  • 原理:通过增加闲置空间,OP可以减少写放大现象,提高垃圾回收效率,从而提升SSD的整体性能和耐用性。

  • 注意事项:
    • OP的大小需要根据实际使用场景进行合理配置,过大或过小都会影响SSD的性能。
    • OP的使用需要与其他优化策略结合,以达到最佳效果。

4.3 Writeback惩罚的原理与影响

  • 定义:Writeback惩罚是指在SSD中,由于数据写入策略和垃圾回收机制的影响,导致写入性能下降的现象。

  • 原因:当SSD的SLC Cache被填满后,数据需要写入到TLC或QLC NAND Flash中,这个过程通常会比SLC写入慢得多。此外,在进行垃圾回收时,SSD需要读取、擦除和重写数据,这也会导致写入性能下降。

  • 影响:Writeback惩罚会导致SSD在高负载情况下出现明显的性能下降,影响用户的使用体验。

4.4 SSD维护

4.4.1 S.M.A.R.T.表

  • 功能:S.M.A.R.T.可以实时监测SSD的各项指标,如温度、写入/读取错误率、剩余寿命等,并在出现异常时发出警告。

  • 关键指标:

    • 03:可用备用空间,代表SSD中已使用Over-Provisioning的大小。

    • 0E:介质与数据完整性错误计数,只要大于0则表示存在潜在的介质损坏风险。

4.4.2 TRIM

  • 定义:TRIM是一种命令,允许操作系统通知SSD哪些数据块不再使用,从而帮助SSD进行垃圾回收。

  • 方法:大多数现代操作系统(如Windows、Linux和macOS)都支持TRIM命令,用户无需手动操作。

声明:AweiP Cache|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 对SSD知识的学习汇总


且愿饮冰而热血不凉