Answers:
NAND闪存芯片具有一些内置机制,可检测写和擦除操作中的故障,并在发生故障时向控制器发出警报。在这种情况下,控制器可以重试,也可以将该块视为坏块并将其映射到其损耗均衡算法之外。NAND设备中的每个页面在主数据区域旁还具有一个备用区域,该区域用于元数据,例如ECC和其他形式的故障检测和容错。控制器可以使用备用区域决定自己的容错方案。 汉明码是一种常见的方案,尽管有几种,包括简单的奇偶校验位和里德-所罗门码。如果在读取操作中事情不符合要求,那么控制器可以自由地随意做。理想情况下,它还会将这些块映射到损耗均衡算法之外,并且您会逐渐失去容量,直到“太多”的块发生故障为止,“太多”取决于控制器中的算法和硬件结构大小。许多第一手控制器设计只是向操作系统声明一个错误。
请注意,这不是特定于MLC的问题。尽管MLC单元可能更容易出现读取错误,但是由于错误的余地一定较小,因此SLC单元的失效机制基本相同,并且可由控制器以相同的方式处理。
就像硬盘一样,这取决于操作系统中的实现。控制器只需报告写操作(实际上是擦除操作)失败,就由操作系统内核中的devide驱动程序决定要做什么。从目前为止我所看到的,Microsoft和Linux实现只是将错误代码返回给调用的应用程序-从而产生I / O错误。
简而言之:您只是在某个时候得到一个“损坏”的设备。
SSD使用一种称为“损耗平衡”的方法,该驱动器会保留有关扇区使用情况的统计信息,并且在某个时刻或检测到问题时,会将扇区转移到备用扇区,就像常规硬盘驱动器那样。