数据管理方法、存储器存储装置及存储器控制电路单元转让专利

申请号 : CN201310661603.1

文献号 : CN104699413B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶志刚

申请人 : 群联电子股份有限公司

摘要 :

本发明提供一种数据管理方法、存储器存储装置及存储器控制电路单元。此方法包括:配置非易失性随机存取存储器与易失性随机存取存储器;将第一数据存储于非易失性随机存取存储器,其中第一数据包括来自主机系统的写入数据;将从可复写式非易失性存储器模块中读取的第二数据存储于易失性随机存取存储器;当存储器存储装置断电后重新上电时,将存储于非易失性随机存取存储器的第一数据写入至可复写式非易失性存储器模块中。

权利要求 :

1.一种数据管理方法,适用于一存储器控制电路单元,其特征在于,该存储器控制电路单元用以控制一可复写式非易失性存储器模块,该数据管理方法包括:一存储器存储装置配置有一非易失性随机存取存储器与一易失性随机存取存储器;

在配置该非易失性随机存取存储器与该易失性随机存取存储器后,将一第一数据存储于该非易失性随机存取存储器,其中该第一数据包括来自一主机系统的一写入数据;

在配置该非易失性随机存取存储器与该易失性随机存取存储器后,将从该可复写式非易失性存储器模块中读取的一第二数据存储于该易失性随机存取存储器;以及当该存储器存储装置断电后重新上电时,将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

2.根据权利要求1所述的数据管理方法,其特征在于,该第一数据还包括至少一逻辑地址与来自该主机系统的一写入指令,该至少一逻辑地址映射至该可复写式非易失性存储器模块的至少一实体抹除单元,并且将该第一数据存储于该非易失性随机存取存储器的步骤包括:接收来自该主机系统的该写入指令与对应于该写入指令的该写入数据,并根据该写入指令获得该至少一逻辑地址;

将该写入指令、对应于该写入指令的该写入数据及该至少一逻辑地址存储于该非易失性随机存取存储器;以及经由该非易失性随机存取存储器将该写入数据写入至该可复写式非易失性存储器模块的该至少一实体抹除单元。

3.根据权利要求2所述的数据管理方法,其特征在于,该至少一实体抹除单元包括多个下实体程序化单元与对应于该些下实体程序化单元的多个上实体程序化单元,并且该数据管理方法还包括:当该写入数据的至少一部分被存储于该些下实体程序化单元中的一第一下实体程序化单元,并且对应于该第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,持续维护存储于该非易失性随机存取存储器中的该写入指令、该写入数据及该至少一逻辑地址。

4.根据权利要求1所述的数据管理方法,其特征在于,当该存储器存储装置断电后重新上电时,将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中的步骤包括:判断是否发生对应于该写入数据的一写入阶段错误,其中该写入阶段错误导致该第一数据的至少一部分或全部没有被写入至该可复写式非易失性存储器模块;以及若发生该写入阶段错误,将该第一数据的该至少一部分或全部写入至该可复写式非易失性存储器模块中。

5.根据权利要求4所述的数据管理方法,其特征在于,判断是否发生对应于该写入数据的该写入阶段错误的步骤包括:判断存储于该非易失性随机存取存储器中的该写入数据与该可复写式非易失性存储器模块中的一特定数据是否相异;以及若存储于该非易失性随机存取存储器中的该写入数据与该可复写式非易失性存储器模块中的该特定数据相异,判定发生对应于该写入数据的该写入阶段错误。

6.根据权利要求1所述的数据管理方法,其特征在于,该第一数据还包括对应于该写入数据的接收状态的一接收状态标记,并且当该存储器存储装置断电后重新上电时,将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中的步骤包括:判断是否发生对应于该写入数据的一接收阶段错误,其中该接收阶段错误导致该第一数据的至少一部分或全部没有被存储于该非易失性随机存取存储器;以及若发生该接收阶段错误,根据该接收状态标记,决定是否重新自该主机系统接收该第一数据的该至少一部分或全部。

7.根据权利要求1所述的数据管理方法,其特征在于,当该存储器存储装置断电后重新上电时,将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中的步骤包括:根据一断电状态标记判断该断电是否为一异常断电,其中该断电状态标记存储于该可复写式非易失性存储器模块及/或该非易失性随机存取存储器;以及当该断电为该异常断电时,将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

8.根据权利要求1所述的数据管理方法,其特征在于,该第二数据包括一逻辑地址-实体抹除单元映射表,并且该逻辑地址-实体抹除单元映射表记载多个逻辑地址与该可复写式非易失性存储器模块的多个实体抹除单元的一映射关系。

9.根据权利要求1所述的数据管理方法,其特征在于,将从该可复写式非易失性存储器模块中读取的该第二数据存储于该易失性随机存取存储器的步骤包括:对该可复写式非易失性存储器模块执行一垃圾回收程序,以自该可复写式非易失性存储器模块的多个实体抹除单元获得一回收数据;以及将该回收数据存储于该易失性随机存取存储器。

10.一种存储器存储装置,其特征在于,包括:

一连接器,用以电性连接至一主机系统;

一可复写式非易失性存储器模块;

一非易失性随机存取存储器;

一易失性随机存取存储器;以及

一存储器控制电路单元,电性连接至该连接器、该非易失性随机存取存储器、该易失性随机存取存储器与该可复写式非易失性存储器模块,在配置该非易失性随机存取存储器与该易失性随机存取存储器后,该存储器控制电路单元用以将一第一数据存储于该非易失性随机存取存储器,其中该第一数据包括来自该主机系统的一写入数据,在配置该非易失性随机存取存储器与该易失性随机存取存储器后,该存储器控制电路单元还用以从该可复写式非易失性存储器模块中读取的一第二数据存储于该易失性随机存取存储器,当该存储器存储装置断电后重新上电时,该存储器控制电路单元还用以将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

11.根据权利要求10所述的存储器存储装置,其特征在于,该第一数据还包括至少一逻辑地址与来自该主机系统的一写入指令,并且该至少一逻辑地址映射至该可复写式非易失性存储器模块的至少一实体抹除单元,并且该存储器控制电路单元用以将该第一数据存储于该非易失性随机存取存储器的步骤包括:该存储器控制电路单元还用以接收来自该主机系统的该写入指令与对应于该写入指令的该写入数据,并根据该写入指令获得该至少一逻辑地址,该存储器控制电路单元还用以将该写入指令、对应于该写入指令的该写入数据及该至少一逻辑地址存储于该非易失性随机存取存储器,该存储器控制电路单元还用以经由该非易失性随机存取存储器将该写入数据写入至该可复写式非易失性存储器模块的该至少一实体抹除单元。

12.根据权利要求11所述的存储器存储装置,其特征在于,该至少一实体抹除单元包括多个下实体程序化单元与对应于该些下实体程序化单元的多个上实体程序化单元,当该写入数据的至少一部分被存储于该些下实体程序化单元中的一第一下实体程序化单元,并且对应于该第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,该存储器控制电路单元还用以持续维护存储于该非易失性随机存取存储器中的该写入指令、该写入数据及该至少一逻辑地址。

13.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以判断是否发生对应于该写入数据的一写入阶段错误,其中该写入阶段错误导致该第一数据的至少一部分或全部没有被写入至该可复写式非易失性存储器模块,若发生该写入阶段错误,该存储器控制电路单元还用以将该第一数据的该至少一部分或全部写入至该可复写式非易失性存储器模块中。

14.根据权利要求13所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以判断存储于该非易失性随机存取存储器中的该写入数据与该可复写式非易失性存储器模块中的一特定数据是否相异,若存储于该非易失性随机存取存储器中的该写入数据与该可复写式非易失性存储器模块中的该特定数据相异,该存储器控制电路单元判定发生对应于该写入数据的该写入阶段错误。

15.根据权利要求10所述的存储器存储装置,其特征在于,该第一数据还包括对应于该写入数据的一接收状态的一接收状态标记,该存储器控制电路单元还用以判断是否发生对应于该写入数据的一接收阶段错误,其中该接收阶段错误导致该第一数据的至少一部分或全部没有被存储于该非易失性随机存取存储器,若发生该接收阶段错误,该存储器控制电路单元还用以根据该接收状态标记,决定是否重新自该主机系统接收该第一数据的该至少一部分或全部。

16.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以根据一断电状态标记判断该断电是否为一异常断电,其中该断电状态标记存储于该可复写式非易失性存储器模块及/或该非易失性随机存取存储器,当该断电为该异常断电时,该存储器控制电路单元还用以将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

17.根据权利要求10所述的存储器存储装置,其特征在于,该第二数据包括一逻辑地址-实体抹除单元映射表,并且该逻辑地址-实体抹除单元映射表记载多个逻辑地址与该可复写式非易失性存储器模块的多个实体抹除单元的一映射关系。

18.根据权利要求10所述的存储器存储装置,其特征在于,该存储器控制电路单元还用以对该可复写式非易失性存储器模块执行一垃圾回收程序,以自该可复写式非易失性存储器模块的多个实体抹除单元获得一回收数据,该存储器控制电路单元还用以将该回收数据存储于该易失性随机存取存储器。

19.根据权利要求10所述的存储器存储装置,其特征在于,该易失性随机存取存储器的容量为该非易失性随机存取存储器的容量的至少二倍。

20.一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,其特征在于,该存储器控制电路单元包括:一主机接口,用以电性连接至一主机系统;

一存储器接口,用以电性连接至该可复写式非易失性存储器模块;

一非易失性随机存取存储器;

一易失性随机存取存储器;以及

一存储器管理电路,电性连接至该主机接口、该存储器接口、该非易失性随机存取存储器与该易失性随机存取存储器,在配置该非易失性随机存取存储器与该易失性随机存取存储器后,该存储器管理电路用以将一第一数据存储于该非易失性随机存取存储器,其中该第一数据包括来自该主机系统的一写入数据,在配置该非易失性随机存取存储器与该易失性随机存取存储器后,该存储器管理电路还用以从该可复写式非易失性存储器模块中读取的一第二数据存储于该易失性随机存取存储器,当一存储器存储装置断电后重新上电时,该存储器管理电路还用以将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

21.根据权利要求20所述的存储器控制电路单元,其特征在于,该第一数据还包括至少一逻辑地址与来自该主机系统的一写入指令,并且该至少一逻辑地址映射至该可复写式非易失性存储器模块的至少一实体抹除单元,并且该存储器管理电路用以将该第一数据存储于该非易失性随机存取存储器的步骤包括:该存储器管理电路还用以接收来自该主机系统的该写入指令与对应于该写入指令的该写入数据,并根据该写入指令获得该至少一逻辑地址,该存储器管理电路还用以将该写入指令、对应于该写入指令的该写入数据及该至少一逻辑地址存储于该非易失性随机存取存储器,该存储器管理电路还用以经由该非易失性随机存取存储器将该写入数据写入至该可复写式非易失性存储器模块的该至少一实体抹除单元。

22.根据权利要求21所述的存储器控制电路单元,其特征在于,该至少一实体抹除单元包括多个下实体程序化单元与对应于该些下实体程序化单元的多个上实体程序化单元,当该写入数据的至少一部分被存储于该些下实体程序化单元中的一第一下实体程序化单元,并且对应于该第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,该存储器管理电路还用以持续维护存储于该非易失性随机存取存储器中的该写入指令、该写入数据及该至少一逻辑地址。

23.根据权利要求20所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以判断是否发生对应于该写入数据的一写入阶段错误,其中该写入阶段错误导致该第一数据的至少一部分或全部没有被写入至该可复写式非易失性存储器模块,若发生该写入阶段错误,该存储器管理电路还用以将该第一数据的该至少一部分或全部写入至该可复写式非易失性存储器模块中。

24.根据权利要求20所述的存储器控制电路单元,其特征在于,该第一数据还包括对应于该写入数据的一接收状态的一接收状态标记,该存储器管理电路还用以判断是否发生对应于该写入数据的一接收阶段错误,其中该接收阶段错误导致该第一数据的至少一部分或全部没有被存储于该非易失性随机存取存储器,若发生该接收阶段错误,该存储器管理电路还用以根据该接收状态标记,决定是否重新自该主机系统接收该第一数据的该至少一部分或全部。

25.根据权利要求20所述的存储器控制电路单元,其特征在于,该存储器管理电路还用以根据一断电状态标记判断该断电是否为一异常断电,其中该断电状态标记存储于该可复写式非易失性存储器模块及/或该非易失性随机存取存储器,当该断电为该异常断电时,该存储器管理电路还用以将该第一数据从该非易失性随机存取存储器写入至该可复写式非易失性存储器模块中。

说明书 :

数据管理方法、存储器存储装置及存储器控制电路单元

技术领域

[0001] 本发明是有关于一种管理存储于非易失性随机存取存储器与易失性随机存取存储器中的数据管理方法、存储器存储装置及存储器控制电路单元。

背景技术

[0002] 数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。一般来说,非易失性存储器模块会搭配易失性随机存取存储器使用。例如,当主机系统欲将一数据写入至非易失性存储器模块时,此数据会先被存储于此易失性随机存取存储器,然后再将此数据写入至非易失性存储器模块。经由适当的数据管理机制,这种非易失性存储器模块搭配易失性随机存取存储器的组合可有效提高整体的数据存取速度与操作弹性。
[0003] 然而,在将存储于易失性随机存取存储器中的数据写入至非易失性存储器模块的过程中,若突然发生断电或电压供应不稳等供电问题时,存储在易失性随机存取存储器的数据可能会遗失,从而导致数据无法完整地被写入至非易失性存储器模块。因此,部分单位或个人可能会选择额外安装不断电系统(Uninterruptible Power Supply,简称:UPS)或超级电容(Supercapacitor),以在突然发生供电问题时,还能有短暂的时间完成部分数据的转移或备份,例如,将所有存储于易失性随机存取存储器中的数据备份至非易失性存储器模块,从而减少损失。但是,维护不断电系统的成本很高,且所能维持供电的时间也很短暂,在使用上还是不甚方便。

发明内容

[0004] 本发明提供一种数据管理方法、存储器存储装置及存储器控制电路单元,可有效回复存储器存储装置中因供电问题造成的数据写入错误。
[0005] 本发明提供一种数据管理方法,适用于一存储器控制电路单元,存储器控制电路单元用以控制可复写式非易失性存储器模块,此数据管理方法包括:配置非易失性随机存取存储器与易失性随机存取存储器;将第一数据存储于非易失性随机存取存储器,其中第一数据包括来自主机系统的写入数据;将从可复写式非易失性存储器模块中读取的第二数据存储于易失性随机存取存储器;当存储器存储装置断电后重新上电时,将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0006] 在本发明的一实施例中,所述第一数据还包括逻辑地址与来自主机系统的写入指令,逻辑地址映射至可复写式非易失性存储器模块的实体抹除单元,并且将第一数据存储于非易失性随机存取存储器的步骤包括:接收来自主机系统的写入指令与对应于写入指令的写入数据,并根据写入指令获得逻辑地址;将写入指令、对应于写入指令的写入数据及逻辑地址存储于非易失性随机存取存储器;经由非易失性随机存取存储器将写入数据写入至可复写式非易失性存储器模块的实体抹除单元。
[0007] 在本发明的一实施例中,所述实体抹除单元包括多个下实体程序化单元与对应于这些下实体程序化单元的多个上实体程序化单元,并且此数据管理方法还包括:当写入数据的至少一部分被存储于这些下实体程序化单元中的一第一下实体程序化单元,并且对应于一第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,持续维护存储于非易失性随机存取存储器中的写入指令、写入数据及逻辑地址。
[0008] 在本发明的一实施例中,所述当存储器存储装置断电后重新上电时,将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中的步骤包括:判断是否发生对应于写入数据的写入阶段错误,其中写入阶段错误导致第一数据的至少一部分或全部没有被写入至可复写式非易失性存储器模块;若发生写入阶段错误,将第一数据的至少一部分或全部写入至可复写式非易失性存储器模块。
[0009] 在本发明的一实施例中,所述判断是否发生对应于写入数据的写入阶段错误的步骤包括:判断存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据是否相异;若存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据相异,判定发生对应于写入数据的写入阶段错误。
[0010] 在本发明的一实施例中,所述第一数据还包括对应于写入数据的接收状态的接收状态标记,并且当存储器存储装置断电后重新上电时,将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中的步骤包括:判断是否发生对应于写入数据的接收阶段错误,其中接收阶段错误导致第一数据的至少一部分或全部没有被存储于非易失性随机存取存储器;若发生接收阶段错误,根据接收状态标记,决定是否重新自主机系统接收第一数据的至少一部分或全部。
[0011] 在本发明的一实施例中,所述当存储器存储装置断电后重新上电时,将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中的步骤包括:根据断电状态标记判断此断电是否为异常断电,其中断电状态标记存储于可复写式非易失性存储器模块及/或非易失性随机存取存储器;当断电为异常断电时,将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0012] 在本发明的一实施例中,所述第二数据包括逻辑地址-实体抹除单元映射表,并且逻辑地址-实体抹除单元映射表记载多个逻辑地址与可复写式非易失性存储器模块的多个实体抹除单元的映射关系。
[0013] 在本发明的一实施例中,所述将从可复写式非易失性存储器模块中读取的第二数据存储于易失性随机存取存储器的步骤包括:对可复写式非易失性存储器模块执行垃圾回收程序,以自可复写式非易失性存储器模块的多个实体抹除单元获得回收数据;将回收数据存储于易失性随机存取存储器。
[0014] 在本发明的一实施例中,所述易失性随机存取存储器的容量为非易失性随机存取存储器的容量的至少二倍。
[0015] 本发明另提供一种存储器存储装置,此存储器存储装置包括连接器、可复写式非易失性存储器模块、存储器控制电路单元、非易失性随机存取存储器及易失性随机存取存储器。连接器用以电性连接至主机系统。存储器控制电路单元电性连接至连接器、非易失性随机存取存储器、易失性随机存取存储器与可复写式非易失性存储器模块。存储器控制电路单元用以将第一数据存储于非易失性随机存取存储器,其中第一数据包括来自主机系统的写入数据。存储器控制电路单元还用以将从可复写式非易失性存储器模块中读取的第二数据存储于易失性随机存取存储器。当存储器存储装置断电后重新上电时,存储器控制电路单元还用以将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0016] 在本发明的一实施例中,所述第一数据还包括逻辑地址与来自主机系统的写入指令,并且逻辑地址映射至可复写式非易失性存储器模块的实体抹除单元,并且存储器控制电路单元用以将第一数据存储于非易失性随机存取存储器的步骤包括:存储器控制电路单元还用以接收来自主机系统的写入指令与对应于写入指令的写入数据,并根据写入指令获得逻辑地址。存储器控制电路单元还用以将写入指令、对应于写入指令的写入数据及逻辑地址存储于非易失性随机存取存储器。存储器控制电路单元还用以经由非易失性随机存取存储器将写入数据写入至可复写式非易失性存储器模块的实体抹除单元。
[0017] 在本发明的一实施例中,所述实体抹除单元包括多个下实体程序化单元与对应于这些下实体程序化单元的多个上实体程序化单元。当写入数据的至少一部分被存储于这些下实体程序化单元中的一第一下实体程序化单元,并且对应于第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,存储器控制电路单元还用以持续维护存储于非易失性随机存取存储器中的写入指令、写入数据及逻辑地址。
[0018] 在本发明的一实施例中,所述存储器控制电路单元还用以判断是否发生对应于写入数据的写入阶段错误,其中写入阶段错误导致第一数据的至少一部分或全部没有被写入至可复写式非易失性存储器模块。若发生写入阶段错误,存储器控制电路单元还用以将第一数据的至少一部分或全部写入至可复写式非易失性存储器模块。
[0019] 在本发明的一实施例中,所述存储器控制电路单元还用以判断存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据是否相异。若存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据相异,存储器控制电路单元判定发生对应于写入数据的写入阶段错误。
[0020] 在本发明的一实施例中,所述第一数据还包括对应于写入数据的接收状态的接收状态标记。存储器控制电路单元还用以判断是否发生对应于写入数据的接收阶段错误,其中接收阶段错误导致第一数据的至少一部分或全部没有被存储于非易失性随机存取存储器。若发生接收阶段错误,存储器控制电路单元还用以根据接收状态标记,决定是否重新自主机系统接收第一数据的至少一部分或全部。
[0021] 在本发明的一实施例中,所述存储器控制电路单元还用以根据断电状态标记判断此断电是否为异常断电,其中断电状态标记存储于可复写式非易失性存储器模块及/或非易失性随机存取存储器。当断电为异常断电时,存储器控制电路单元还用以将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0022] 在本发明的一实施例中,所述存储器控制电路单元还用以对可复写式非易失性存储器模块执行垃圾回收程序,以自可复写式非易失性存储器模块的多个实体抹除单元获得回收数据。存储器控制电路单元还用以将回收数据存储于易失性随机存取存储器。
[0023] 此外,本发明还提供一种存储器控制电路单元,此存储器控制电路单元用于控制一可复写式非易失性存储器模块,此存储器控制电路单元包括主机接口、存储器接口、非易失性随机存取存储器、易失性随机存取存储器及存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口、存储器接口、非易失性随机存取存储器及易失性随机存取存储器。存储器管理电路用以将第一数据存储于非易失性随机存取存储器,其中第一数据包括来自主机系统的写入数据。存储器管理电路还用以将从可复写式非易失性存储器模块中读取的第二数据存储于易失性随机存取存储器。当存储器存储装置断电后重新上电时,存储器管理电路还用以将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0024] 在本发明的一实施例中,所述第一数据还包括逻辑地址与来自主机系统的写入指令,并且逻辑地址映射至可复写式非易失性存储器模块的实体抹除单元,并且存储器管理电路用以将第一数据存储于非易失性随机存取存储器的步骤包括:存储器管理电路还用以接收来自主机系统的写入指令与对应于写入指令的写入数据,并根据写入指令获得逻辑地址。存储器管理电路还用以将写入指令、对应于写入指令的写入数据及逻辑地址存储于非易失性随机存取存储器。存储器管理电路还用以经由非易失性随机存取存储器将写入数据写入至可复写式非易失性存储器模块的实体抹除单元。
[0025] 在本发明的一实施例中,所述实体抹除单元包括多个下实体程序化单元与对应于这些下实体程序化单元的多个上实体程序化单元。当写入数据的至少一部分被存储于这些下实体程序化单元中的一第一下实体程序化单元,并且对应于第一下实体程序化单元的一第一上实体程序化单元尚未被写入数据时,存储器管理电路还用以持续维护存储于非易失性随机存取存储器中的写入指令、写入数据及逻辑地址。
[0026] 在本发明的一实施例中,所述存储器管理电路还用以判断是否发生对应于写入数据的写入阶段错误,其中写入阶段错误导致第一数据的至少一部分或全部没有被写入至可复写式非易失性存储器模块。若发生写入阶段错误,存储器管理电路还用以将第一数据的至少一部分或全部写入至可复写式非易失性存储器模块。
[0027] 在本发明的一实施例中,所述存储器管理电路还用以判断存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据是否相异。若存储于非易失性随机存取存储器中的写入数据与可复写式非易失性存储器模块中的特定数据相异,存储器管理电路判定发生对应于写入数据的写入阶段错误。
[0028] 在本发明的一实施例中,所述第一数据还包括对应于写入数据的接收状态的接收状态标记。存储器管理电路还用以判断是否发生对应于写入数据的接收阶段错误,其中接收阶段错误导致第一数据的至少一部分或全部没有被存储于非易失性随机存取存储器。若发生接收阶段错误,存储器管理电路还用以根据接收状态标记,决定是否重新自主机系统接收第一数据的至少一部分或全部。
[0029] 在本发明的一实施例中,所述存储器管理电路还用以根据断电状态标记判断断电是否为异常断电,其中断电状态标记存储于可复写式非易失性存储器模块及/或非易失性随机存取存储器。当断电为异常断电时,存储器管理电路还用以自非易失性随机存取存储器读取第一数据,以将第一数据从非易失性随机存取存储器写入至可复写式非易失性存储器模块中。
[0030] 在本发明的一实施例中,所述存储器管理电路还用以对可复写式非易失性存储器模块执行垃圾回收程序,以自可复写式非易失性存储器模块的多个实体抹除单元获得回收数据。存储器管理电路还用以将回收数据存储于易失性随机存取存储器。
[0031] 基于上述,本发明提供的数据管理方法、存储器存储装置及存储器控制电路单元,仅将重要性较高的第一数据存储于非易失性随机存取存储器,而将重要性较低的第二数据存储于易失性随机存取存储器。当发生突然断电或电压供应不稳等供电问题时,存储在非易失性随机存取存储器中的第一数据可供回复之用。
[0032] 为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所示附图作详细说明如下。

附图说明

[0033] 图1是根据本发明的一实施例所示出的主机系统与存储器存储装置的示意图;
[0034] 图2是根据本发明的一实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;
[0035] 图3是根据本发明的另一实施例所示出的主机系统与存储器存储装置的示意图;
[0036] 图4是示出图1所示的存储器存储装置的概要示意图;
[0037] 图5是根据本发明的一实施例所示出的存储器控制电路单元的概要示意图;
[0038] 图6与图7是根据本发明的一实施例所示出的管理实体抹除单元的示意图;
[0039] 图8是根据一实施例示出实体抹除单元的示意图;
[0040] 图9是根据本发明的一实施例所示出的数据管理方法的流程图。
[0041] 附图标记说明:
[0042] 1000:主机系统;
[0043] 1100:电脑;
[0044] 1102:微处理器;
[0045] 1104:随机存取存储器;
[0046] 1106:输入/输出装置;
[0047] 1108:系统串行总线;
[0048] 1110:数据传输接口;
[0049] 1202:鼠标;
[0050] 1204:键盘;
[0051] 1206:显示器;
[0052] 1208:打印机;
[0053] 1212:随身盘;
[0054] 1214:存储卡;
[0055] 1216:固态硬盘;
[0056] 1310:数码相机;
[0057] 1312:SD卡;
[0058] 1314:MMC卡;
[0059] 1316:存储棒;
[0060] 1318:CF卡;
[0061] 1320:嵌入式存储装置;
[0062] 100:存储器存储装置;
[0063] 102:连接接口单元;
[0064] 104:存储器控制电路单元;
[0065] 106:可复写式非易失性存储器模块;
[0066] 202:存储器管理电路;
[0067] 204:主机接口;
[0068] 206:存储器接口;
[0069] 208:非易失性随机存取存储器;
[0070] 209:易失性随机存取存储器;
[0071] 210:电源管理电路;
[0072] 212:错误检查与校正电路;
[0073] 410(0)~410(N):实体抹除单元;
[0074] 502:数据区;
[0075] 504:闲置区;
[0076] 506:系统区;
[0077] 508:取代区;
[0078] LBA(0)~LBA(D):逻辑单元;
[0079] 810A、811A、812A、813A:下实体程序化单元;
[0080] 810B、811B、812B、813B:上实体程序化单元;
[0081] S902、S904、S906、S908:数据管理方法各步骤。

具体实施方式

[0082] 一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
[0083] 图1是根据本发明的一实施例所示出的主机系统与存储器存储装置示意图。
[0084] 请参照图1,主机系统1000一般包括电脑1100与输入/输出(input/output,简称:I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,简称:RAM)1104、系统串行总线1108与数据传输接口1110。输入/输出装置1106包括如图2的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图2所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
[0085] 在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图2所示的随身盘1212、存储卡1214或固态硬盘(Solid State Drive,简称:SSD)1216等的可复写式非易失性存储器存储装置。
[0086] 一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图3所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
[0087] 图4是示出图1所示的存储器存储装置的概要示意图。
[0088] 请参照图4,存储器存储装置100包括连接接口单元102、存储器控制电路单元104与可复写式非易失性存储器模块106。
[0089] 在本实施例中,连接接口单元102是串行高级技术附件(Serial  Advanced Technology Attachment,简称:SATA)标准。然而,必须了解的是,本发明不限于此,连接接口单元102也可以是符合并行高级技术附件(Parallel  Advanced  Technology Attachment,简称:PATA)标准、电气和电子工程师学会(Institute of Electrical and Electronic Engineers,简称:IEEE)1394标准、高速外设互联接口(Peripheral Component Interconnect Express,简称PCI Express)标准、通用串行总线(Universal Serial Bus,简称:USB)标准、超高速一代(Ultra High Speed-I,简称:UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、安全数码(Secure Digital,简称:SD)接口标准、存储棒(Memory Stick,MS)接口标准、多媒体存储卡(Multi Media Card,简称:MMC)接口标准、小型快闪(Compact Flash,简称:CF)接口标准、电子集成驱动器接口(Integrated Device Electronics,简称:IDE)标准或其他适合的标准。在本实施例中,连接接口单元可与存储器控制电路单元封装在一个芯片中,或布设于一包含存储器控制电路单元的芯片外。
[0090] 存储器控制电路单元104用以执行以硬件形式或固件形式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与抹除等运作。
[0091] 可复写式非易失性存储器模块106是电性连接至存储器控制电路单元104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体抹除单元410(0)~410(N)。例如,实体抹除单元410(0)~410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有复数个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。在本实施例中,每一实体抹除单元是由64个实体程序化单元组成。然而,在本发明的其他实施例中,每一实体抹除单元是由128、256个实体程序化单元或其他任意个实体程序化单元所组成。
[0092] 更详细来说,实体抹除单元为抹除的最小单位。也即,每一实体抹除单元含有最小数目之一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,在一实施例中,实体抹除单元为实体区块,并且实体程序化单元为实体页面或实体扇区,但本发明不以此为限。
[0093] 在本实施例中,可复写式非易失性存储器模块106为多层存储单元(Multi Level Cell,简称:MLC)NAND型快闪存储器模块(即,一个存储胞中可存储2个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单层存储单元(Single Level Cell,简称:SLC)NAND型快闪存储器模块(即,一个存储单元中可存储1个比特数据的快闪存储器模块)、复数层存储胞(Trinary Level Cell,简称:TLC)NAND型快闪存储器模块(即,一个存储胞中可存储3个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。
[0094] 图5是根据本发明的一实施例所示出的存储器控制电路单元的概要示意图。
[0095] 请参照图5,存储器控制电路单元104包括存储器管理电路202、主机接口204、存储器接口206、非易失性随机存取存储器208及易失性随机存取存储器209。
[0096] 存储器管理电路202用以控制存储器控制电路单元104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
[0097] 在本实施例中,存储器管理电路202的控制指令是以固件形式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
[0098] 在本发明另一实施例中,存储器管理电路202的控制指令也可以程序码形式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元104被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。
[0099] 此外,在本发明另一实施例中,存储器管理电路202的控制指令也可以一硬件形式来实作。例如,存储器管理电路202包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,存储胞管理电路用以管理可复写式非易失性存储器模块106的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取电路用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块106下达抹除指令以将数据从可复写式非易失性存储器模块106中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。以下对于存储器管理电路202的说明可直接或间接套用至存储器控制电路单元104。
[0100] 主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口
204来传送至存储器管理电路202。在本实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是相容于PATA标准、IEEE1394标准、PCI Express标准、USB标准、UHS-I接口标准、UHS-II接口标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
[0101] 存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
[0102] 非易失性随机存取存储器208是电性连接至存储器管理电路202,并且用以暂存来自于主机系统1000的数据。在一实施例中,非易失性随机存取存储器208也可以暂存来自于可复写式非易失性存储器模块106的数据。非易失性随机存取存储器208例如是磁阻式随机存取存储器(Magnetoresistive Random Access Memory,简称:MRAM)等不会因断电或电压供应不稳而遗失已存储得数据的随机存取存储器。
[0103] 易失性随机存取存储器209是电性连接至存储器管理电路202,并且可用以暂存来自可复写式非易失性存储器模块106的数据。易失性随机存取存储器209包括动态随机存取存储器(Dynamic Random Access Memory,简称:DRAM)与静态随机存取存储器(Static Random Access Memory,简称:SRAM)等会因断电或电压供应不稳而遗失已存储的数据的随机存取存储器。此外,非易失性随机存取存储器208的性能(例如,数据存取速度)普遍高于易失性随机存取存储器209的性能。反映于成本上,非易失性随机存取存储器208的成本(例如,售价及/或制造成本)普遍也高于易失性随机存取存储器209的成本。在本实施例中,易失性随机存取存储器209的容量为非易失性随机存取存储器208的容量的至少两倍(例如,两倍至十倍)或其他倍数。
[0104] 非易失性随机存取存储器208与易失性随机存取存储器209是由存储器管理电路202进行配置。在本实施例中,非易失性随机存取存储器208与易失性随机存取存储器209是以芯片组或系统芯片(System on Chip,简称:SoC)的方式实作在存储器控制电路单元104内。然而,非易失性随机存取存储器208及/或易失性随机存取存储器209也可以是被独立于存储器控制电路单元104之外并且电性连接至存储器控制电路单元104,本发明不对其限制。
[0105] 在本实施例中,非易失性随机存取存储器208与易失性随机存取存储器209是经由同一个双倍数据率(Double Data Rate,简称:DDR)接口或者类似的存储器连接接口电性连接至存储器管理电路202。或者,在一实施例中,非易失性随机存取存储器208与易失性随机存取存储器209则是经由各别的存储器连接接口电性连接至存储器管理电路202。
[0106] 在一实施例中,存储器控制电路单元104还包括电源管理电路210与错误检查与校正电路212。
[0107] 电源管理电路210是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
[0108] 错误检查与校正电路212是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路212会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,简称:ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路212会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
[0109] 图6与图7是根据本发明的一实施例所示出的管理实体抹除单元的示意图。
[0110] 请参照图6,存储器管理电路202会将实体抹除单元410(0)~410(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
[0111] 逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统1000的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。
[0112] 逻辑上属于系统区506的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。
[0113] 逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路202会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。
[0114] 特别是,数据区502、闲置区504、系统区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的运作中,实体抹除单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。
[0115] 请参照图7,存储器管理电路202会配置逻辑地址LBA(0)~LBA(D)以利于以上述轮替方式在存储数据的实体抹除单元中进行数据存取。例如,当存储器存储装置100被文件系统(例如,FAT32)格式化时,逻辑地址LBA(0)~LBA(D)分别地映射至数据区502的实体抹除单元410(0)~410(F-1)。例如,存储器管理电路202会建立逻辑地址-实体抹除单元映射表(logical address-physical erasing unit mapping table),以记录逻辑地址与实体抹除单元之间的映射关系。在此实施例中,每一个逻辑地址LBA(0)~LBA(D)的大小是相同于每一个实体抹除单元410(0)~410(F-1)的大小,并且逻辑地址也可被称为逻辑区块地址(logical block address,简称:LBA)。此外,在本发明的另一实施例中,逻辑地址LBA(0)~LBA(D)也可以是一个实体程序化单元的大小或是其他大小,本发明并不在此限。
[0116] 存储器管理电路202会将不可回复数据(以下称第一数据)存储于非易失性随机存取存储器208,并且将可回复数据(以下称第二数据)存储于易失性随机存取存储器209。在本实施例中,第一数据包括来自主机系统1000的写入指令、对应于此写入指令的写入数据等使用者数据(user data)及根据此写入指令而获得的逻辑地址等对应于使用者数据的系统数据(system data);第二数据包括从可复写式非易失性存储器模块106中读取出来的数据与可复写式非易失性存储器模块106的管理表格,例如,逻辑地址-实体抹除单元映射表。
[0117] 具体而言,对于第一数据与第二数据的分类是以数据可否从可复写式非易失性存储器模块106中重新获得作为判断依据。例如,在发生突然的断电或者电压供应不稳等供电问题之后,若数据可从可复写式非易失性存储器模块106中重新获得,则此数据为第二数据。反之,在发生突然的断电或者电压供应不稳等供电问题之后,若数据不可从可复写式非易失性存储器模块106中重新获得,则此数据为第一数据。此外,在一实施例中,也可另外将任何不容易自可复写式非易失性存储器模块106中重新获得的数据或较重要的数据作为第一数据而存储在非易失性随机存取存储器208中。
[0118] 举例来说,当存储器管理电路202接收来自主机系统1000的写入指令与对应于此写入指令的写入数据时,假设存储器管理电路202根据此写入指令获得逻辑地址LBA(0),并且逻辑地址LBA(0)映射至可复写式非易失性存储器模块106中的实体抹除单元410(0)。存储器管理电路202会将此写入指令、对应于此写入指令的写入数据及逻辑地址LBA(0)存储于作为缓冲(buffer)的非易失性随机存取存储器208,并且经由非易失性随机存取存储器208将此写入数据写入至实体抹除单元410(0)。
[0119] 在一些情况下,当存储器存储装置100断电后重新上电时,存储器管理电路202会自非易失性随机存取存储器208读取写入不完全的写入数据,以将此写入数据中没有被完整写入的部分或者全部重新写入至可复写式非易失性存储器模块106。
[0120] 举例来说,当存储器存储装置100断电后重新上电时,存储器管理电路202会判断是否发生对应于此写入数据的一写入阶段错误。此写入阶段错误例如是写入数据被从非易失性随机存取存储器208写入至可复写式非易失性存储器模块106的过程中,因突然的断电或电压供应不稳等供电问题所造成的数据写入不完全等错误。
[0121] 例如,存储器管理电路202可以判断存储于非易失性随机存取存储器208中的写入数据与可复写式非易失性存储器模块106中的特定数据是否相异。若存储于非易失性随机存取存储器208中的写入数据与可复写式非易失性存储器模块106中的特定数据相异,表示可能是此写入阶段错误导致此写入数据的至少一部分没有被写入至可复写式非易失性存储器模块106中,因此,存储器管理电路202判定发生对应于此写入数据的写入阶段错误。
[0122] 若存储器管理电路202判定发生此写入阶段错误,存储器管理电路202会从非易失性随机存取存储器208中将此写入阶段错误有关的第一数据(例如,写入指令、写入数据及对应的逻辑地址)中没有被完整写入的部分或者全部重新写入至可复写式非易失性存储器模块106。也就是说,由于存储在非易失性随机存取存储器208中的第一数据不会因断电等供电问题而遗失,因此即使先前对于可复写式非易失性存储器模块106的数据写入程序在执行过程中发生错误(例如,意外的中止),相关的数据写入程序还是可以在存储器存储装置100断电后重新上电时完成。
[0123] 此外,执行上述写入阶段错误得判断的时机点还可以是每一次存储器存储装置100被启动、开机、恢复平稳供电或者是任何存储器管理电路202认为需要检查数据写入状态时。
[0124] 在一实施例中,会被存储在非易失性随机存取存储器208的第一数据还包括接收状态标记。此接收状态标记对应于来自主机系统1000的写入数据的数据接收状态。通过查询此数据接收状态,存储器管理电路202可得知来自主机系统1000的写入数据是否已被完全接收至非易失性随机存取存储器208中及/或此写入数据的接收程度。当存储器存储装置100断电后重新上电时,存储器管理电路202会通过此接收状态标记来判断是否发生对应于一写入数据的接收阶段错误。此接收阶段错误导致此写入数据的至少一部分没有被存储于非易失性随机存取存储器208。也就是说,此接收阶段错误例如是在存储器存储装置100接收来自主机系统1000的写入数据,并将此写入数据存储于非易失性随机存取存储器208的过程中,因存储器存储装置100突然的断电或电压供应不稳等供电问题所造成的数据存储不完全(例如,写入数据还没有完全地从主机系统1000传送至非易失性随机存取存储器208就意外的结束)等错误。
[0125] 若存储器管理电路202判断发生此接收阶段错误,存储器管理电路202会根据对应于此写入数据的接收状态标记,决定是否重新自主机系统1000接收完整的此写入数据或者仅接收此写入数据中尚未存储至非易失性随机存取存储器208的至少一部分。或者,在一实施例中,存储器管理电路202则是会丢弃此写入数据中已存储于非易失性随机存取存储器208中但没有完整存储的部分,并且可例如是重新自主机系统1000接收完整的此写入数据。
类似地,执行上述接收阶段错误的判断的时机点还可以是每一次存储器存储装置100被启动、开机、恢复平稳供电或者是任何存储器管理电路202认为需要检查数据接收状态时。
[0126] 在一实施例中,存储器管理电路202还会根据一断电状态标记判断存储器存储装置100前一次的断电是否为异常断电。此异常断电例如是突然的断电或电压供应不稳而导致存储器存储装置100不正常关机。此断电状态标记例如是在存储器存储装置100每一次断电或关机时由存储器管理电路202产生,或者是仅在存储器存储装置100发生异常断电时由存储器管理电路202产生。此外,此断电状态标记可以是存储于可复写式非易失性存储器模块106及/或非易失性随机存取存储器208。
[0127] 当存储器管理电路202判定存储器存储装置100前一次的断电为异常断电时,存储器管理电路202可以自非易失性随机存取存储器208读取第一数据,以将先前可能没有完整写入至可复写式非易失性存储器模块106的写入数据写入至可复写式非易失性存储器模块106中。此外,当存储器管理电路202判定存储器存储装置100前一次的断电为异常断电时,存储器管理电路202可以进一步判断是否发生上述写入阶段错误,并在发生上述写入阶段错误时,根据非易失性随机存取存储器208中的第一数据将此写入阶段错误所对应的写入数据重新写入至可复写式非易失性存储器模块106中。此外,当存储器管理电路202判定存储器存储装置100前一次的断电为异常断电时,存储器管理电路202也可以进一步判断是否发生上述接收阶段错误,并在发生上述接收阶段错误时,重新自主机系统1000接收对应于此接收阶段错误的写入数据等等。
[0128] 此外,在一实施例中,会被存储于易失性随机存取存储器209中的第二数据还包括存储器管理电路202对可复写式非易失性存储器模块106执行一垃圾回收程序所获得的回收数据。例如,在一些特定的时间点(例如,闲置区504中可用的实体抹除单元小于一特定数量时),存储器管理电路202会对可复写式非易失性存储器模块106执行一垃圾回收程序,以自可复写式非易失性存储器模块106中需要进行垃圾回收的多个实体抹除单元获得一回收数据,并且将此回收数据存储于易失性随机存取存储器209。也就是说,假设此垃圾回收程序涉及实体抹除单元410(0)~410(F-1),则存储器管理电路202会将已写入至实体抹除单元410(0)~410(F-1)中的数据作为此回收数据并将此回收数据存储于易失性随机存取存储器209,而不是存储于非易失性随机存取存储器208。藉此,即使发生突然的断电或电压供应不稳等供电问题而导致存储于易失性随机存取存储器209中的回收数据遗失,遗失的回收数据还是可以轻易地从可复写式非易失性存储器模块106中重新获得,而不需要使用成本较高的非易失性随机存取存储器208来存储此回收数据。
[0129] 此外,关于存储于非易失性随机存取存储器208的数据的管理,在本实施例中,只要来自主机系统1000的写入数据已被写入至可复写式非易失性存储器模块106中,则此写入数据就可以被移除或覆盖。但是,在一实施例中,若可复写式非易失性存储器模块106为多层存储单元NAND型快闪存储器模块时,即使来自主机系统1000的写入数据已被写入至可复写式非易失性存储器模块106中,此写入数据也不一定可以被移除或覆盖。
[0130] 一般来说,多层存储单元NAND型快闪存储器模块中的一个存储单元中可存储2个比特。更具体来说,同一个字符线(word line)上的多个存储单元会组成一个上实体程序化单元与一个下实体程序化单元,并且每一个存储单元中的两个比特分别属于不同的实体程序化单元。也就是说,每一个实体抹除单元包括的多个实体程序化单元会被分为多个下实体程序化单元与多个上实体程序化单元。在此称一个下实体程序化单元与同一个字符线上的上实体程序化单元是彼此对应,以下不再赘述。一般来说,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,并且一个下实体程序化单元必须先被程序化以后所对应的上实体程序化单元才能被程序化。类似地,可复写式非易失性存储器模块106也可以是复数层存储单元NAND型快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块,而具有类似特性。
[0131] 图8是根据一实施例示出实体抹除单元的示意图。
[0132] 请参照图8,在此实施例中,实体抹除单元410(0)至少包括下实体程序化单元810A~813A与上实体程序化单元810B~813B。下实体程序化单元810A是对应于上实体程序化单元810B,下实体程序化单元811A是对应于上实体程序化单元811B,以此类推。在此实施例中,存储器管理电路202是依照一个程序化顺序交错地将数据写入下实体程序化单元与上实体程序化单元。例如,图8中每一个实体程序化单元中的数字便是表示此程序化顺序。例如,下实体程序化单元810A与811A会先被程序化,接着上实体程序化单元810B、下实体程序化单元812A、上实体程序化单元811B、下实体程序化单元813A与上实体程序化单元812B会依序被程序化,以此类推。然而,存储器管理电路202也可以依照其他的程序化顺序来写入数据。例如,数据可以是依序地被写入至下实体程序化单元810A、上实体程序化单元810B、下实体程序化单元811A、上实体程序化单元811B与下实体程序化单元812A,或者是依照下实体程序化单元810A、811A、812A、813A、上实体程序化单元810B、811B、812B的顺序来程序化等,本发明并不在此限。
[0133] 在此实施例中,在来自主机系统1000的写入数据被写入至可复写式非易失性存储器模块106之后,存储器管理电路202还会判断可复写式非易失性存储器模块106中用来存储此写入数据的各个下实体程序化单元所对应上实体程序化单元是否皆已被使用,例如,同样已被写入此写入数据或其他数据。若是,则存储器管理电路202可以将存储在非易失性随机存取存储器208中的此写入数据设定为可移除及/或可覆盖,以在后续接收其他来自主机系统1000的写入数据时可将存储于非易失性随机存取存储器208中的此写入数据移除或覆盖,增加可用空间。反之,若可复写式非易失性存储器模块106中用来存储此写入数据的某一个或一个以上的下实体程序化单元所对应上实体程序化单元尚未被使用,例如,没有被写入此写入数据或其他数据,则存储器管理电路202会持续维护存储于非易失性随机存取存储器208中的此写入指令、对应于此写入指令的写入数据及逻辑地址。举例来说,若此写入数据的至少一部分被存储于下实体程序化单元810A、811A、812A、813A、上实体程序化单元810B、811B及812B,并且上实体程序化单元813B没有被写入任何数据,则存储器管理电路202会持续维护存储于非易失性随机存取存储器208中的此写入指令、对应于此写入指令的写入数据及逻辑地址。例如,存储器管理电路202可以将存储在非易失性随机存取存储器208中的此写入数据设定为不可移除及/或不可覆盖。
[0134] 藉此,即使稍后将数据写入至上实体程序化单元813B的行为或其他的程序化问题对下实体程序化单元813A造成影响,导致下实体程序化单元813A的数据存储状态改变,存储在非易失性随机存取存储器208中的此写入数据也可以随时被用来对下实体程序化单元813A执行检查与回复。
[0135] 图9是根据本发明的一实施例所示出的数据管理方法的流程图。
[0136] 请参照图9,在步骤S902中,由存储器控制电路单元104(或存储器管理电路202)配置非易失性随机存取存储器208与易失性随机存取存储器209。
[0137] 在步骤S904中,由存储器控制电路单元104(或存储器管理电路202)将第一数据存储于非易失性随机存取存储器208,其中第一数据包括来自主机系统1000的写入数据。
[0138] 在步骤S906中,由存储器控制电路单元104(或存储器管理电路202)将从可复写式非易失性存储器模块106中读取的第二数据存储于易失性随机存取存储器209。
[0139] 在步骤S908中,当存储器存储装置断电后重新上电时,由存储器控制电路单元104(或存储器管理电路202)将第一数据从非易失性随机存取存储器208写入至可复写式非易失性存储器模块106中。
[0140] 值得注意的是,本发明不限制步骤S904与步骤S906的执行顺序,并且图9中各步骤可以实作为多个程序码或是电路,本发明并不在此限。此外,图9的方法可以搭配以上实施例使用,也可以单独使用,本发明并不在此限。
[0141] 综上所述,本发明仅将较重要且难以重新从可复写式非易失性存储器模块中获得的数据(例如,来自主机系统的写入指令、对应于写入指令的写入数据本身与逻辑地址)存储于非易失性随机存取存储器,而将其余需要较多存储空间且可重新从可复写式非易失性存储器模块中获得的数据(例如,逻辑地址-实体抹除单元映射表与垃圾回收程序的回收数据等)存储于易失性随机存取存储器,而可有效降低对于非易失性随机存取存储器的容量需求并同时兼顾数据存取效能。当发生突然的断电或电压供应不稳等供电问题时,尽管存储在易失性随机存取存储器中的数据可能会遗失,存储在非易失性随机存取存储器中的数据仍可在存储器存储装置重新上电时使用,以完成先前未完成的数据存储及/或写入程序,或者重新执行数据存储及/或写入程序。此外,易失性随机存取存储器中遗失的数据则可重新自可复写式非易失性存储器模块中读取。
[0142] 也就是说,本发明将成本相对较高的非易失性随机存取存储器与成本相对较低的易失性随机存取存储器搭配使用,降低对于非易失性随机存取存储器的容量需求与存储器存储装置整体的制造成本。此外,本发明更有效改善长久以来因突然断电或电压供应不稳等供电问题而在存储器存储装置中造成无法回复的数据写入错误的困扰。
[0143] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。