1.一种基于高速非易失性存储器的固态硬盘掉电保护方法,其特征在于:包括ssd主控芯片;一组用于存储数据的闪存芯片;一组用于掉电保护和写缓存功能的高速非易失性存储芯片;所述闪存芯片、高速非易失性存储芯片均与ssd主控芯片相电连接;
系统正常上电运行产生的运行数据存储于高速非易失性存储芯片;所述运行数据包括:
主机向ssd主控芯片发送的写命令;
写命令分解的数据列表及其对应的主机数据;
写命令的处理和完成状态;
系统在异常掉电后重新上电启动流程包括:
首先,ssd主控芯片在高速非易失性存储芯片中逐条读取主机发生异常掉电之前下发的写命令,并查找每条写命令对应的处理和完成状态;
接着,对处理和完成状态标识为“已完成”的写命令,从高速非易失性存储芯片中读取该条命令对应的命令分解的数据列表,然后对数据列表中每个表项对应的写缓存中的主机数据执行重新写入闪存芯片的操作,并同步更新相应的系统表项数据;对处理和完成状态标识为“未完成”的写命令,则直接将其忽略;
最后,当高速非易失性存储芯片中的所有写命令都已被读取,并按上述流程处理完毕,将更新的系统表项数据写入闪存芯片,上电启动流程结束。
2.根据权利要求1所述基于高速非易失性存储器的固态硬盘掉电保护方法,其特征在于:
所述运行数据还包括:数据列表中每个表项的完成状态;
系统在异常掉电后重新上电启动流程包括:
首先,ssd主控芯片在高速非易失性存储芯片中逐条读取主机发生异常掉电之前下发的写命令,并查找每条写命令对应的处理和完成状态;
接着,对处理和完成状态标识为“已完成”的写命令,从高速非易失性存储芯片中读取该命令对应的命令分解的数据列表,进一步读取数据列表中每个表项的完成状态:对完成状态标识为“未完成”的表项,对其对应写缓存中的主机数据执行重新写入闪存芯片的操作,并同步更新相应的系统表项数据;对完成状态标识为“已完成”的表项,则不做处理;对处理和完成状态标识为“未完成”的写命令,则直接将其忽略;
最后,当高速非易失性存储芯片中的所有写命令都已被读取,并按上述流程处理完毕,将更新的系统表项数据写入闪存芯片,上电启动流程结束。