更可靠、更强悍,NVMe 1.4规范深度解读( 七 )

相比之下,读取恢复级别判定技术可以允许驱动器保存16个不同级别的错误的处理策略,只需要驱动器拥有2种不同的工作模式即可。这个功能将在每个NVM集的级别上进行配置。

接下来的技术是为了主动避免不可恢复的读取错误。NVMe 1.4加入了验证和获取LBA状态(Get LBA status)两个命令。其中验证命令比较简单,这个命令除了将数据返回给主机系统之外,它还可以执行正常读取所需要的一切操作。如果读取命令返回错误,那么验证命令也将返回;如果读取命令成功完成,那么验证命令也会成功完成。这个命令的优势在于,其可以在不受主机接口带宽瓶颈的影响下,对存储的数据进行底层清理成为可能。一些SSD将通过移动或者重写降级的数据来响应可修复的ECC错误,验证命令也可以完成相同的行为。

总的来说,验证命令将减少对文件系统级别校验和清除/验证的需求。另外,在验证命令执行的过程中,每个执行位置都会加入一个位标记,这个标记将指示SSD是应该恢复快速失败还是应该努力恢复数据,位标记的功能和读取恢复级别判定功能有很相似。

获取LBA状态命令允许驱动器向主机提供一个区块列表。在这个区块列表中,它包含的内容是那些尝试读取或者验证命令后可能导致不可恢复的读取错误的块。SSD可能已经在自动后台扫描中检测到了ECC错误,或者在更严重的情况下,这个功能可以报告有哪些LBA受到了整个NAND通道的故障影响,从而可以避开这些区域。获取LBA状态命令还可以用于要求在返回可能不可恢复的区块列表之前,就预先扫描选定的数据范围。

推荐阅读