一种基于高速非易失性存储器的固态硬盘掉电保护方法技术

技术编号:24012992 阅读:41 留言:0更新日期:2020-05-02 02:23
一种基于高速非易失性存储器的固态硬盘掉电保护方法,属于计算机存储技术领域,其特征在于:包括SSD主控芯片、闪存芯片、高速非易失性存储芯片;系统正常上电运行产生的运行数据存储于高速非易失性存储芯片;采用高速非易失性存储器作为SSD的写缓存,系统发生异常掉电时,高速非易失性存储器会对主机数据提供保护,使其不会因掉电而丢失。系统重新上电后,查找异常掉电前未处理完毕的写命令,将其对应的主机数据重新写入闪存芯片,以保证主机数据的安全性和一致性;同时,本发明专利技术提供的掉电保护方案可以在极少或无掉电保护电容的情况下实现对主机数据的保护,相较于传统使用电容对易失性写缓存进行掉电保护的方法,本发明专利技术更具可靠性。

A method of power-off protection for SSDs based on high-speed nonvolatile memory

【技术实现步骤摘要】
一种基于高速非易失性存储器的固态硬盘掉电保护方法
本专利技术属于计算机存储
,尤其涉及一种基于高速非易失性存储器的固态硬盘掉电保护方法。
技术介绍
固态硬盘(SolidStateDrive,SSD)相较于机械硬盘(HardDiskDrive,HDD),其性能、功耗、可靠性等都有很大的优势,因此无论在企业级还是消费级市场,SSD正逐渐取代HDD,成为主流存储设备。SSD的主要存储介质为闪存,如NANDFlash,但一般会配有一定大小的写缓存以提高写性能,目前SSD写缓存多使用动态随机存储器(DynamicRandomAccessMemory,DRAM),DRAM属于易失性存储器,无法对其中的数据提供掉电保护。因此若系统遭遇异常掉电,那么SSD向主机回应“已完成”的写命令对应的还在DRAM中主机数据就会丢失。目前,该问题的解决方案通常是在SSD中增加用于掉电保护的电池或电容,使得DRAM能够在系统异常掉电后再继续工作一段时间,将其中剩余的主机数据写入闪存芯片。然而,随着SSD性能的提升,DRAM容量也逐渐增大,因此所需电池或电容的容量也进一步增加,这将直接导致该方案成本高昂,其可靠性又难以保证。高速非易失性存储器,如磁随机存储器(MagneticRandomAccessMemory,MRAM),其特点为保存在其中的数据掉电后不会丢失,所以高速非易失性存储器能够在极少或无掉电保护电容的情况下实现对数据的保护。此外,高速非易失性存储器还具有与RAM同一级别的读写速度,可以进行快速访问。专
技术实现思路
本专利技术旨在解决上述问题,提供一种利用高速非易失性存储器解决SSD异常掉电数据保护的固态硬盘掉电保护方法。本专利技术所述基于高速非易失性存储器的固态硬盘掉电保护方法,包括SSD主控芯片;一组用于存储数据的闪存芯片;一组用于掉电保护和写缓存功能的高速非易失性存储芯片;所述闪存芯片、高速非易失性存储芯片均与SSD主控芯片相电连接;系统正常上电运行产生的运行数据存储于高速非易失性存储芯片;所述运行数据包括:主机向SSD主控芯片发送的写命令;写命令分解的数据列表及其对应的主机数据;数据列表的每个表项包括其对应主机数据在写缓存中的位置信息;写命令的处理和完成状态;用于标识SSD的写缓存是否已从主机端获取到该条写命令对应的全部主机数据;如果是,则该状态标识为“已完成”,SSD会向主机回复完成信息,对主机而言,该条写命令已完成,但SSD还需要将这些写缓存中的主机数据写入至闪存芯片。需要说明的是,上述运行数据的存储结构包括但不限于列表、循环列表、数组、链表。系统在异常掉电后重新上电启动流程包括:首先,SSD主控芯片在高速非易失性存储芯片中逐条读取主机发生异常掉电之前下发的写命令,并查找每条写命令对应的处理和完成状态;接着,对处理和完成状态标识为“已完成”的写命令,从高速非易失性存储芯片中读取该条命令对应的命令分解的数据列表,然后对数据列表中每个表项对应的写缓存中的主机数据执行重新写入闪存芯片的操作,并同步更新相应的系统表项数据;对处理和完成状态标识为“未完成”的写命令,则直接将其忽略;最后,当高速非易失性存储芯片中的所有写命令都已被读取,并按上述流程处理完毕后,将已更新的系统表项数据写入闪存芯片,上电启动流程结束。进一步,本专利技术所述基于高速非易失性存储器的固态硬盘掉电保护方法,所述运行数据还包括:数据列表中每个表项的完成状态;用于标识某个表项对应的写缓存中的主机数据是否已成功写入至闪存芯片,如果是,则该状态标识为“已完成”;需要说明的是,上述运行数据的存储结构包括但不限于列表、循环列表、数组、链表。系统在异常掉电后重新上电启动流程包括:首先,SSD主控芯片在高速非易失性存储芯片中逐条读取主机发生异常掉电之前下发的写命令,并查找每条写命令对应的处理和完成状态;接着,对处理和完成状态标识为“已完成”的写命令,从高速非易失性存储芯片中读取该命令对应的命令分解的数据列表,但不直接将所有表项对应的写缓存中的主机数据全部写入闪存芯片,而是进一步读取数据列表中每个表项的完成状态:对完成状态标识为“未完成”的表项,对其对应写缓存中的主机数据执行重新写入闪存芯片的操作,并同步更新相应的系统表项数据;对完成状态标识为“已完成”的表项,则不做处理;对处理和完成状态标识为“未完成”的写命令,则直接将其忽略;最后,当高速非易失性存储芯片中的所有写命令都已被读取,并按上述流程处理完毕,将已更新的系统表项数据写入闪存芯片,上电启动流程结束。本专利技术所述基于高速非易失性存储器的固态硬盘掉电保护方法,采用高速非易失性存储器作为SSD的写缓存,系统发生异常掉电时,高速非易失性存储器会对主机数据提供保护,使其不会因掉电而丢失。系统重新上电后,查找异常掉电前未处理完毕的写命令,将其对应的主机数据重新写入闪存芯片,以保证主机数据的安全性和一致性;同时,本专利技术提供的掉电保护方案可以在极少或无掉电保护电容的情况下实现对主机数据的保护,相较于传统使用电容对易失性写缓存进行掉电保护的方法,本专利技术更具可靠性。附图说明图1为本专利技术所述基于高速非易失性存储器的固态硬盘架构示意图;图2为本专利技术实施例一所述命令处理时产生的运行数据的存储流程图;图3为本专利技术实施例一所述系统异常掉电后重新上电的启动流程图;图4为本专利技术实施例二所述命令处理时产生的运行数据的存储流程图;图5为本专利技术实施例二所述系统异常掉电后重新上电的启动流程图。具体实施方式下面通过附图及实施例对本专利技术所述基于高速非易失性存储器的固态硬盘掉电保护方法进行详细说明。实施例一本专利技术所述基于高速非易失性存储器的固态硬盘掉电保护方法,如图1所示,包括SSD主控芯片;一组用于存储数据的闪存芯片;一组用于掉电保护和写缓存功能的高速非易失性存储芯片;所述闪存芯片、高速非易失性存储芯片均与SSD主控芯片相电连接;系统正常上电工作时,如图2所示,运行中产生的运行数据存储于高速非易失性存储芯片,首先是主机向SSD发送的写命令;然后是写命令分解的数据列表及其对应的主机数据;最后是写命令的处理和完成状态。运行数据具体包括:(1)主机向SSD主控芯片发送的写命令;(2)写命令分解的数据列表及其对应的主机数据;数据列表的每个表项包括其对应主机数据在写缓存中的位置信息;(3)写命令的处理和完成状态;用于标识SSD的写缓存是否已从主机端获取到该条写命令对应的全部主机数据;如果是,则该状态标识为“已完成”,SSD会向主机回复完成信息,对主机而言,该条写命令已完成,但SSD还需要将这些写缓存中的主机数据写入至闪存芯片。由于上述运行数据被高速非易失性存储器保护,因此不会因为掉电而丢失。如图3所示,系统在异常掉电后重新上电启动流程包括如下步骤:首先,SSD主控芯片在高速非易失性存本文档来自技高网
...

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

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

【专利技术属性】
技术研发人员:王业旺王剑立胡水华卢全全杨波
申请(专利权)人:尧云科技西安有限公司
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1