目前,常见的企业级SSD硬件组成包括SSD控制器、DRAM、TLC颗粒和电容。在系统下电之前,主机会通过命令通知SSD,比如SATA中的Idle Immediately,SSD收到该命令后,主要会做以下事情:
把DRAM中缓存的映射表和用户数据刷入闪存。
把SSD其他信息(例如当前写的是哪个闪存块,以及写到该闪存块的哪个位置,哪些闪存块已经写过,哪些闪存块是无效的)写入闪存。
SSD处理完以上事情后,主机才会真正停止对SSD供电。重新上电后,SSD只需把掉电前保存的相关信息(比如映射数据,闪存块信息等)重新加载,又能接着掉电前的状态继续工作。然而,异常掉电将会导致上述数据的丢失,比如缓存在DRAM中的数据来不及写到闪存。其中,映射表数据很重要,对一个逻辑地址,如果SSD查找不到对应的物理地址,它就无法从闪存上读取数据返回给主机。如果闪存中保持的映射表不是最新的,旧的物理地址对应着老的数据,SSD就会错误地把老数据返回给主机,将导致严重问题。
企业级SSD一般带有电容,SSD一旦检测到掉电,就让电容放电,然后把DRAM上的数据刷到闪存上。然而考虑到电容容量和SSD外形尺寸限制,随着SSD容量的增长,不能100%保证把所有数据刷入闪存,将限制SSD容量的进一步提升。
企业级SSD存在的异常掉电导致数据丢失等问题
于 2024-07-24 07:08:09 首次发布