multi-stream SSD 介绍

NVMe Multi-stream

1. 原理介绍

1.1. flash 写操作

在介绍 multi-stream 之前,首先简单介绍一下 flash 写操作的特性。

  • SSD 中写操作(write)的单元为 page,page 的大小http://click.aliyun.com/m/1000015782/通常为 2 ~ 64 KB
  • NAND flash 在对 page 写操作之前,必须对 page 执行擦除操作(erase),但是擦除操作的单元为 block,一个 block 通常包含 32 ~ 256 个 page

 

由于擦除操作相对耗时,因而在对某个 page 进行修改操作时,通常将修改的数据直接写入一个新的已经擦除过的 page,而将原来的旧的 page 设置为 invalid 状态,此时该 page 的修改操作就算完成了,之后 SSD FTL (Flash Translation Layer) 会执行垃圾回收(garbage collection)算法,回收处于 invalid 状态的 page。

FTL 需要对 invalid page 执行擦除操作以回收这些 invalid page,而擦除操作的单位为 block,一个 block 中包含多个 page,其中既包含 invalid page,同时也包含 valid page。因而当 FTL 需要回收 block A 中的 invalid page 时,就必须先将 block A 中的 valid page 先拷贝到其他新的 block 例如 block B 中,并将 block A 中的 valid page 设置为 invalid 状态,此时 block A 中的所有 page 均为 invalid 状态,FTL 可以安全地对 block A 执行擦除操作。

 

在以上操作过程中,FTL 需要对回收的 block 中的 valid page 进行额外的拷贝操作,从而使得设备实际执行的IO数量大于用户提交的IO数量,这一特性称为 写放大(Write Amplification)

SSD 使用 WAF (Write Amplification Factor) 参数描述这一特性,该参数的值为

WAF = Amount of writes committed to flash / Amount of writes that arrived from the host

由于 FTL 需要对 valid page 进行额外的拷贝操作,WAF 参数的值通常大于1。(当设备支持 compression 特性时,WAF 参数的值是有可能小于1的。)

原文链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值