存储器管理方法、存储器控制器与存储器存储装置转让专利

申请号 : CN201210128508.0

文献号 : CN103377143B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 詹清文

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

摘要 :

本发明提供一种存储器管理方法、存储器控制器与存储器存储装置。其中该存储器管理方法用于一种具有多个实体单元集合的可复写式非易失性存储器模组模块。这些实体单元集合会至少被划分出数据区与第二区。多个逻辑单元集合地址会由档案系统来管理且被配置及映射至数据区的实体单元集合。此方法包括:当程序化第二区的第三实体单元集合时若发生程序化错误,则执行一个程序。此程序包括:从数据区取得映射至第二逻辑单元集合地址的第二实体单元集合;以及将第二逻辑单元集合地址映射至第三实体单元集合。藉此,本方法会延长可复写式非易失性存储器模块的使用寿命。

权利要求 :

1.一种存储器管理方法,其特征在于,用于一可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个实体单元集合,其中该些实体单元集合至少被划分出一数据区与一第二区,多个逻辑单元集合地址会被配置且映射至该数据区的该些实体单元集合,该些逻辑单元集合地址是由一档案系统来管理,该存储器管理方法包括:接收一写入指令,该写入指令指示将一数据写入至该些逻辑单元集合地址中的一第一逻辑单元集合地址,其中该第一逻辑单元集合地址映射至该数据区的一第一实体单元集合;

将该数据程序化至该第二区的一第三实体单元集合;

判断该数据程序化至该第三实体单元集合时是否发生一程序化错误;以及若发生该程序化错误,执行一第一程序,其中该第一程序包括:从该数据区取得一第二实体单元集合,其中该第二实体单元集合是映射至该些逻辑单元集合地址的一第二逻辑单元集合地址;以及将该第二逻辑单元集合地址映射至该第三实体单元集合。

2.根据权利要求1所述的存储器管理方法,其中该第一程序还包括:

根据该写入指令将该数据写入至该第二实体单元集合;

将该第一逻辑单元集合地址重新映射至该第二实体单元集合;以及

将该第一实体单元集合关联至该第二区,并将该第二实体单元集合关联至该数据区。

3.根据权利要求1所述的存储器管理方法,其中该第一程序还包括:

将该第一实体单元集合的一有效数据复制到该第二实体单元集合。

4.根据权利要求1所述的存储器管理方法,其中当该些逻辑单元集合地址被配置时,该第二区的该些实体单元集合并不会映射至该些逻辑单元集合地址,而该数据区的各该些实体单元集合会被映射至该些逻辑单元集合地址的其中之一。

5.根据权利要求1所述的存储器管理方法,其中该第一程序还包括:

在该档案系统中建立一无效档案,并设定该无效档案是通过该第二逻辑单元集合地址来存取;以及设定该无效档案为不可存取。

6.根据权利要求5所述的存储器管理方法,其中该档案系统包括一档案配置表区、一根目录区以及一档案区,该档案配置表区具有多个丛集项栏位,每一该些丛集项栏位记录有一丛集项,该根目录区具有多个目录项栏位,并且该档案区具有多个丛集,每一该些丛集是对应至该些丛集项栏位的其中之一,其中从该数据区取得该第二实体单元集合的步骤还包括:从该些丛集项栏位中,取得闲置的多个第二丛集项栏位,其中该些第二丛集项栏位所对应的多个丛集是属于该第二逻辑单元集合地址;

将该些第二丛集项栏位分配给该无效档案,并根据该无效档案修改该些第二丛集项栏位所纪录的该些丛集项;以及产生该无效档案的一档案描述区块,其中该无效档案的该档案描述区块纪录有该无效档案所存储在的一起始丛集。

7.根据权利要求6所述的存储器管理方法,其中在该档案系统中建立该无效档案的步骤还包括:将该无效档案的该档案描述区块纪录在该些目录项栏位的其中之一。

8.根据权利要求6所述的存储器管理方法,其中在该档案系统中建立该无效档案的步骤还包括:建立一无效档案目录,并将该无效档案目录存储在该档案区的该些丛集中;

建立该无效档案目录的一档案描述区块,并将该无效档案目录的该档案描述区块记录在该些目录项栏位的其中之一;以及将该无效档案的该档案描述区块纪录在该无效档案目录当中。

9.根据权利要求6所述的存储器管理方法,其中从该些丛集项栏位中,取得闲置的该些第二丛集项栏位的步骤还包括:当该些丛集项栏位中不存在闲置的该些第二丛集项栏位时,对该可复写式非易失性存储器模块执行一锁卡程序,其中该锁卡程序是用以禁止对该可复写式非易失性存储器模块执行一写入操作。

10.根据权利要求1所述的存储器管理方法,其中该第一程序还包括:

判断该第二区是否还存在可写入的一第四实体单元集合。

11.一种存储器存储装置,包括:

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

一可复写式非易失性存储器模块,包括多个实体单元集合,其中该些实体单元集合至少被划分出一数据区与一第二区,多个逻辑单元集合地址会被配置且映射至该数据区的该些实体单元集合,该些逻辑单元集合地址是由一档案系统来管理;以及一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,其中,该存储器控制器从该主机系统接收一写入指令,该写入指令指示将一数据写入至该些逻辑单元集合地址中的一第一逻辑单元集合地址,其中该第一逻辑单元集合地址映射至该数据区的一第一实体单元集合,其中,该存储器控制器将该数据程序化至该第二区的一第三实体单元集合,其中,该存储器控制器判断该数据程序化至该第三实体单元集合时是否发生一程序化错误,其中,若发生该程序化错误,该存储器控制器从该数据区取得一第二实体单元集合,其中该第二实体单元集合是映射至该些逻辑单元集合地址的一第二逻辑单元集合地址,该存储器控制器还会将该第二逻辑单元集合地址映射至该第三实体单元集合。

12.根据权利要求11所述的存储器存储装置,其中该存储器控制器更用以根据该写入指令将该数据写入至该第二实体单元集合,将该第一逻辑单元集合地址重新映射至该第二实体单元集合,将该第一实体单元集合关联至该第二区,并将该第二实体单元集合关联至该数据区。

13.根据权利要求11所述的存储器存储装置,其中该存储器控制器还用以将该第一实体单元集合的一有效数据复制到该第二实体单元集合。

14.根据权利要求11所述的存储器存储装置,其中当该些逻辑单元集合地址被配置时,该第二区的该些实体单元集合并不会映射至该些逻辑单元集合地址,而该数据区的各该些实体单元集合会被映射至该些逻辑单元集合地址的其中之一。

15.根据权利要求11所述的存储器存储装置,其中该存储器控制器 还用以在该档案系统中建立一无效档案,设定该无效档案是通过该第二逻辑单元集合地址来存取,并设定该无效档案为不可存取。

16.根据权利要求15所述的存储器存储装置,其中该档案系统包括一档案配置表区、一根目录区以及一档案区,该档案配置表区具有多个丛集项栏位,每一该些丛集项栏位记录有一丛集项,该根目录区具有多个目录项栏位,并且该档案区具有多个丛集,每一该些丛集是对应至该些丛集项栏位的其中之一,该存储器控制器从该些丛集项栏位中,取得闲置的多个第二丛集项栏位,其中该些第二丛集项栏位所对应的多个丛集是属于该第二逻辑单元集合地址,其中,该存储器控制器将该些第二丛集项栏位分配给该无效档案,并根据该无效档案修改该些第二丛集项栏位所纪录的该些丛集项,该存储器控制器产生该无效档案的一档案描述区块,其中该无效档案的该档案描述区块纪录有该无效档案所存储在的一起始丛集。

17.根据权利要求16所述的存储器存储装置,其中,该存储器控制器将该无效档案的该档案描述区块纪录在该些目录项栏位的其中之一。

18.根据权利要求16所述的存储器存储装置,其中,该存储器控制器建立一无效档案目录,并将该无效档案目录存储在该档案区的该些丛集中,其中,该存储器控制器建立该无效档案目录的一档案描述区块,并将该无效档案目录的该档案描述区块记录在该些目录项栏位的其中之一,其中,该存储器控制器将该无效档案的该档案描述区块纪录在该无效档案目录当中。

19.根据权利要求16所述的存储器存储装置,其中当该些丛集项栏位中不存在闲置的该些第二丛集项栏位时,该存储器控制器对该可复写式非易失性存储器模块执行一锁卡程序,其中该锁卡程序是用以禁止对该可复写式非易失性存储器模块执行一写入操作。

20.根据权利要求11所述的存储器存储装置,其中该存储器控制器更用以判断该第二区是否还存在可写入的一第四实体单元集合。

21.一种存储器控制器,包括:

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

一存储器接口,用以电性连接至一可复写式非易失性存储器模块,该可复写式非易失性存储器模块包括多个实体单元集合,其中该些实体单元集合至少被划分出一数据区与一第二区,多个逻辑单元集合地址会被配置且映射至该数据区的该些实体单元集合,该些逻辑单元集合地址是由一档案系统来管理;以及一存储器管理电路,电性连接至该主机接口与该可复写式非易失性存储器模块,其中,该存储器管理电路从该主机系统接收一写入指令,该写入指令指示将一数据写入至该些逻辑单元集合地址中的一第一逻辑单元集合地址,其中该第一逻辑单元集合地址映射至该数据区的一第一实体单元集合,其中,该存储器管理电路将该数据程序化至该第二区的一第三实体单元集合,其中,该存储器管理电路判断该数据程序化至该第三实体单元集合时是否发生一程序化错误,其中,若发生该程序化错误,该存储器管理电路从该数据区取得一第二实体单元集合,其中该第二实体单元集合是映射至该些逻辑单元集合地址的一第二逻辑单元集合地址,该存储器管理电路还会将该第二逻辑单元集合地址映射至该第三实体单元集合。

22.根据权利要求21所述的存储器控制器,其中该存储器管理电路还用以根据该写入指令将该数据写入至该第二实体单元集合,将该第一逻辑单元集合地址重新映射至该第二实体单元集合,将该第一实体单元集合关联至该第二区,并将该第二实体单元集合关联至该数据区。

23.根据权利要求21所述的存储器控制器,其中该存储器管理电路还用以将该第一实体单元集合的一有效数据复制到该第二实体单元集合。

24.根据权利要求21所述的存储器控制器,其中当该些逻辑单元集合地址被配置时,该第二区的该些实体单元集合并不会映射至该些逻辑单元集合地址,而该数据区的各该些实体单元集合会被映射至该些逻辑单元集合地址的其中之一。

说明书 :

存储器管理方法、存储器控制器与存储器存储装置

技术领域

[0001] 本发明是有关于一种存储器管理方法、存储器控制器与记忆体储存装置,且特别是有关于一种用于可复写式非易失性存储器模块的存储器管理方法、存储器控制器与存储器存储装置。

背景技术

[0002] 数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快速存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内装于上述所举例的各种可携式多媒体装置中。
[0003] 一般来说,可复写式非易失性存储器模块会包括多个实体区块,其中部分的实体区块会提供给一个主机系统来存取。当提供给主机系统的实体区块损坏时,会从一个取代区中提取实体区块来替换损坏的实体区块。当取代区中不存在可用的实体区块时,便表示可复写式非易失性存储器模块的使用寿命已经结束。然而,此时可复写式非易失性存储器模块中可能还包括一些闲置的实体区块可利用,若结束可复写式非易失性存储器模块的使用寿命会造成存储器空间的浪费。因此,如何在取代区已不存在可用实体区块的情况下延长可复写式非易失性存储器模块的使用寿命,为此领域所关心的议题。

发明内容

[0004] 本发明的实施例提供一种存储器管理方法、存储器存储装置与存储器控制器,可以增加可复写式非易失性存储器模块的使用寿命。
[0005] 本发明一实施例中,提出一种存储器管理方法,用于一可复写式非易失性存储器模块。此可复写式非易失性存储器模块包括多个实体单元集合,其中这些实体单元集合会被至少划分出一个数据区与一个第二区。多个逻辑单元集合地址会被配置且映射至这些数据区的实体单元集合,而这些逻辑单元集合地址是由一个档案系统来管理。此存储器管理方法包括:接收一个写入指令,此写入指令是指示将一数据写入至上述逻辑单元集合地址中的第一逻辑单元集合地址,其中第一逻辑单元集合地址映射至数据区的第一实体单元集合;将数据程序化至第二区的第三实体单元集合;判断数据程序化至第三实体单元集合时是否发生一程序化错误;以及若发生程序化错误,执行一个第一程序。上述的第一程序包括:从数据区取得第二实体单元集合,此第二实体单元集合是映射至上述逻辑单元集合地址中的第二逻辑单元集合地址;以及将第二逻辑单元集合地址映射至第三实体单元集合。
[0006] 在一实施例中,上述的第一程序还包括:根据上述的写入指令将数据写入至第二实体单元集合;将第一逻辑单元集合地址重新映射至第二实体单元集合;以及将第一实体单元集合关联至第二区,并将第二实体单元集合关联至数据区。
[0007] 在一实施例中,上述的第一程序还包括:将第一实体单元集合中的有效数据复制到第二实体单元集合。
[0008] 在一实施例中,当上述的逻辑单元集合地址被配置时,第二区的实体单元集合并不会映射(non-mappable)至上述的逻辑单元集合地址,而数据区的每一个实体单元集合则会被映射至上述逻辑单元集合地址的其中之
[0009] 在一实施例中,上述的第一程序更包括:在档案系统中建立一个无效档案,并设定此无效档案是通过第二逻辑单元集合地址来存取;以及设定上述的无效档案为不可存取。
[0010] 在一实施例中,上述的档案系统包括档案配置表区、根目录区以及档案区。档案配置表区具有多个丛集项(cluster entry)栏位,每一个丛集项栏位记录有一丛集项。根目录区具有多个目录项(directory entry)栏位。档案区具有多个丛集,而每一个丛集是对应至丛集项栏位的其中之一。上述从数据区取得第二实体单元集合的步骤还包括:从上述多个丛集项栏位中,取得闲置的多个第二丛集项栏位,其中第二丛集项栏位所对应的多个丛集是属于上述的第二逻辑单元集合地址;将第二丛集项栏位分配给上述的无效档案,并根据无效档案修改第二丛集项栏位所纪录的丛集项;以及,产生无效档案的档案描述区块,其中无效档案的档案描述区块纪录有无效档案所存储在的一起始丛集。
[0011] 在一实施例中,上述在档案系统中建立无效档案的步骤还包括:将无效档案的档案描述区块纪录在目录项栏位的其中之一。
[0012] 在一实施例中,上述在档案系统中建立无效档案的步骤还包括:建立一无效档案目录,并将无效档案目录存储在档案区的丛集中;建立无效档案目录的档案描述区块,并将无效档案目录的档案描述区块记录在目录项栏位的其中之一;以及,将无效档案的档案描述区块纪录在无效档案目录当中。
[0013] 在一实施例中,上述从丛集项栏位中,取得闲置的第二丛集项栏位的步骤还包括:当上述的丛集项栏位中不存在闲置的第二丛集项栏位时,对可复写式非易失性存储器模块执行一锁卡程序。此锁卡程序是用以禁止对可复写式非易失性存储器模块执行一写入操作。
[0014] 在一实施例中,上述的第一程序更包括:判断第二区是否还存在可写入的第四实体单元集合。
[0015] 以另外一个角度来说,本发明一实施例提出一种存储器存储装置,包括连接器、可复写式非易失性存储器模块以及存储器控制器。其中,连接器是用以电性连接至一主机系统。可复写式非易失性存储器模块包括多个实体单元集合,这些实体单元集合至少会被划分出一个数据区与一个第二区。多个逻辑单元集合地址会被配置且映射至数据区的实体单元集合,这些逻辑单元集合地址是由一个档案系统来管理。存储器控制器是电性连接至连接器与可复写式非易失性存储器模块。其中,存储器控制器会从主机系统接收一个写入指令。此写入指令是指示将一个数据写入至逻辑单元集合地址中的第一逻辑单元集合地址。而此第一逻辑单元集合地址是映射至数据区的第一实体单元集合。存储器控制器也会将上述的数据程序化至第二区的第三实体单元集合。存储器控制器会判断数据程序化至第三实体单元集合时是否发生程序化错误。若发生程序化错误,存储器控制器会从数据区取得第二实体单元集合,此第二实体单元集合是映射至逻辑单元集合地址的第二逻辑单元集合地址。存储器控制器还会将第二逻辑单元集合地址映射至第三实体单元集合。
[0016] 在一实施例中,上述的存储器控制器更用以根据上述的写入指令将数据写入至第二实体单元集合。存储器控制器还会将第一逻辑单元集合地址重新映射至第二实体单元集合,将第一实体单元集合关联至第二区,并将第二实体单元集合关联至数据区。
[0017] 在一实施例中,上述的存储器控制器更用以将第一实体单元集合的一有效数据复制到第二实体单元集合。
[0018] 在一实施例中,当上述的逻辑单元集合地址被配置时,第二区的实体单元集合并不会映射(non-mappable)至上述的逻辑单元集合地址,而数据区的每一个实体单元集合则会被映射至上述逻辑单元集合地址的其中之
[0019] 在一实施例中,上述的存储器控制器还会在档案系统中建立一个无效档案,设定此无效档案是通过第二逻辑单元集合地址来存取,并设定无效档案为不可存取。
[0020] 在一实施例中,上述的档案系统包括档案配置表区、根目录区以及档案区。档案配置表区具有多个丛集项(cluster entry)栏位,每一个丛集项栏位记录有一丛集项。根目录区具有多个目录项(directory entry)栏位。档案区则具有多个丛集,且每一个丛集是对应至上述丛集项栏位的其中之一。其中,存储器控制器会从丛集项栏位中取得闲置的多个第二丛集项栏位,其中第二丛集项栏位所对应的多个丛集是属于第二逻辑单元集合地址。存储器控制器也会将第二丛集项栏位分配给无效档案,并根据无效档案修改第二丛集项栏位所纪录的丛集项。存储器控制器还会产生无效档案的档案描述区块,此无效档案的档案描述区块纪录有无效档案所存储在的一起始丛集。
[0021] 在一实施例中,上述的存储器控制器会将无效档案的档案描述区块纪录在目录项栏位的其中之一。
[0022] 在一实施例中,上述的存储器控制器会建立一无效档案目录,并将无效档案目录存储在档案区的丛集中。存储器控制器也会建立无效档案目录的档案描述区块,并将无效档案目录的档案描述区块记录在上述目录项栏位的其中之一。存储器控制器还会将无效档案的档案描述区块纪录在此无效档案目录当中。
[0023] 在一实施例中,当丛集项栏位中不存在闲置的第二丛集项栏位时,上述的存储器控制器会对可复写式非易失性存储器模块执行一锁卡程序。此锁卡程序是用以禁止对可复写式非易失性存储器模块执行写入操作。
[0024] 在一实施例中,上述的存储器控制器更用以判断第二区是否还存在可写入的第四实体单元集合。
[0025] 以另外一个角度来说,本发明一实施例提出一种存储器控制器,包括主机接口、存储器接口以及存储器管理电路。其中,主机接口是用以电性连接至一主机系统。存储器接口是用以电性连接至一个具有多个实体单元集合的可复写式非易失性存储器模块,这些实体单元集合至少会被划分出一个数据区与一个第二区。其中多个逻辑单元集合地址会被配置且映射至数据区的实体单元集合,这些逻辑单元集合地址是由一个档案系统来管理。存储器管理电路是电性连接至主机接口与存储器接口。其中,存储器管理电路会从主机系统接收一个写入指令。此写入指令是指示将一个数据写入至逻辑单元集合地址中的第一逻辑单元集合地址。而此第一逻辑单元集合地址是映射至数据区的第一实体单元集合。存储器管理电路也会将数据程序化至第二区的第三实体单元集合。存储器管理电路会判断将数据程序化至第三实体单元集合时是否发生程序化错误。若发生程序化错误,存储器管理电路会从数据区取得第二实体单元集合,此第二实体单元集合是映射至逻辑单元集合地址的第二逻辑单元集合地址。存储器管理电路还会将第二逻辑单元集合地址映射至第三实体单元集合。
[0026] 在一实施例中,上述的存储器管理电路还用以根据上述的写入指令将数据写入至第二实体单元集合。存储器管理电路还会将第一逻辑单元集合地址重新映射至第二实体单元集合,将第一实体单元集合关联至第二区,并将第二实体单元集合关联至数据区。
[0027] 在一实施例中,上述的存储器管理电路更用以将第一实体单元集合的一有效数据复制到第二实体单元集合。
[0028] 在一实施例中,当上述的逻辑单元集合地址被配置时,第二区的实体单元集合并不会映射(non-mappable)至上述的逻辑单元集合地址,而数据区的每一个实体单元集合则会被映射至上述逻辑单元集合地址的其中之一。
[0029] 基于上述,本发明实施例所提出的存储器管理方法,存储器存储装置与存储器控制器,可以用数据区的实体单元集合来取代发生程序化错误的实体单元集合,因此增加可复写式非易失性存储器模块的使用寿命。
[0030] 为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

[0031] 图1A是根据一实施例所绘示的主机系统与存储器存储装置图;
[0032] 图1B是根据一实施例所绘示的电脑、输入/输出装置与存储器存储装置的示意图;
[0033] 图1C是根据一实施例所绘示的主机系统与存储器存储装置的示意图;
[0034] 图2是图1A所示的存储器存储装置的概要方块图;
[0035] 图3是根据一实施例所绘示的存储器控制器的概要方块图;
[0036] 图4与图5是根据一实施例所绘示的管理可复写式非易失性存储器模块的示意图;
[0037] 图6是根据一实施例说明档案系统的示意图;
[0038] 图7是根据一实施例说明档案配置表区、根目录区与档案区的示意图;
[0039] 图8是根据一实施例说明建立无效档案的示意图;
[0040] 图9是根据一实施例说明将无效档案的档案描述区块记录在目录项栏位的示意图;
[0041] 图10是根据另一实施例说明建立无效档案目录的示意图;
[0042] 图11是根据一实施例说明存储器管理方法的流程图。
[0043] 附图标记说明:
[0044] 1000:主机系统;
[0045] 1100:电脑;
[0046] 1102:微处理器;
[0047] 1104:随机存取存储器;
[0048] 1105:作业系统;
[0049] 1106:输入/输出装置;
[0050] 1107:应用程序;
[0051] 1108:系统汇流排;
[0052] 1110:数据传输接口;
[0053] 1202:鼠标;
[0054] 1204:键盘;
[0055] 1206:显示器;
[0056] 1208:打印机;
[0057] 1212:U盘;
[0058] 1214:记忆卡;
[0059] 1216:固态硬盘;
[0060] 1310:数码相机;
[0061] 1312:SD卡;
[0062] 1314:MMC卡;
[0063] 1316:记忆棒;
[0064] 1318:CF卡;
[0065] 1320:嵌入式存储装置;
[0066] 100:存储器存储装置;
[0067] 102:连接器;
[0068] 104:存储器控制器;
[0069] 106:可复写式非易失性存储器模块;
[0070] 304(0)~304(R):实体区块;
[0071] 202:存储器管理电路;
[0072] 204:主机接口;
[0073] 206:存储器接口;
[0074] 252:缓冲存储器;
[0075] 254:电源管理电路;
[0076] 256:错误检查与校正电路;
[0077] 402:数据区;
[0078] 404:闲置区;
[0079] 406:系统区;
[0080] 408:取代区;
[0081] LBA(0)~LBA(D):逻辑区块地址;
[0082] 600:分割区;
[0083] 620:主引导磁区;
[0084] 640:档案配置表区;
[0085] 660:根目录区;
[0086] 680:档案区;
[0087] 682(0)~682(E):丛集;
[0088] 662(0)~662(G):目录项栏位;
[0089] 702:档案;
[0090] 704、904、908:档案描述区块;
[0091] 706:数据;
[0092] 720(0)~720(F):丛集项栏位;
[0093] 740:档案配置表;
[0094] 902:无效档案;
[0095] 906:无效档案目录;
[0096] S1102、S1104、S1106、S1108、S1110、S1112、S1114、S1116、S1118、S1122、S1124:存储器管理方法的步骤。

具体实施方式

[0097] 一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
[0098] 图1A是根据一实施例所绘示的主机系统与存储器存储装置图。图1B是根据一实施例所绘示的电脑、输入/输出装置与存储器存储装置的示意图。
[0099] 请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(random access memory,RAM)1104、系统汇流排1108与数据传输接口1110。微处理器1102会执行被载入至随机存取存储器1104中的作业系统1105与应用程序1107,以使主机系统1000根据使用者的操作而提供对应的功能。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机
1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
[0100] 在本发明实施例中,存储器存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。根据微处理器1102、随机存取存储器1104与输入/输出装置1106的操作可将数据写入至存储器存储装置100或从存储器存储装置100中读取数据。例如,存储器存储装置100可以是如图1B所示的U盘1212、记忆卡1214或固态硬盘(Solid State Drive,SSD)1216等的可复写式非易失性存储器存储装置。
[0101] 图1C是根据一实施例所绘示的主机系统与存储器存储装置的示意图。
[0102] 一般而言,主机系统1000为可实质地与存储器存储装置100配合以存储数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可复写式非易失性存储器存储装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
[0103] 图2是绘示图1A所示的存储器存储装置的概要方块图。
[0104] 请参照图2,存储器存储装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
[0105] 在本实施例中,连接器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)标准、安全数字(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、小型快速(Compact Flash,CF)接口标准、整合式驱动电子接口(Integrated Device Electronics,IDE)标准或其他适合的标准。
[0106] 存储器控制器104用以执行以硬件形式或固件形式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与删除等操作。
[0107] 可复写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以存储主机系统1000所写入的数据。可复写式非易失性存储器模块106具有实体区块304(0)~304(R)。例如,实体区块304(0)~304(R)可属于同一个存储器管芯(die)或者属于不同的存储器管芯。每一实体区块分别具有复数个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地删除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面具有8个实体扇区(sector)。也就是说,在每一实体扇区为512位字节(byte)的例子中,每一实体页面的容量为4千位字节(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
[0108] 更详细来说,实体区块为删除的最小单位。亦即,每一实体区块含有最小数目之一并被删除的记忆细胞。实体页面为程序化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元字节区与冗余字节区。数据字节区用以存储使用者的数据,而冗余字节区用以存储系统的数据(例如,错误检查与校正码)。
[0109] 在本实施例中,可复写式非易失性存储器模块106为多阶记忆细胞(Multi Level Cell,MLC)NAND快速存储器模块,即一个记忆细胞中可存储至少2个字节数据。然而,本发明不限于此,可复写式非易失性存储器模块106亦可是单阶记忆细胞(Single Level Cell,SLC)NAND快速存储器模块、复数阶记忆细胞(Trinary Level Cell,TLC)NAND型快速存储器模块、其他快速存储器模块或其他具有相同特性的存储器模块。
[0110] 图3是根据一实施例所绘示的存储器控制器的概要方块图。
[0111] 请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
[0112] 存储器管理电路202用以控制存储器控制器104的整体操作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器存储装置100操作时,此些控制指令会被执行以进行数据的写入、读取与删除等操作。
[0113] 在本实施例中,存储器管理电路202的控制指令是以固件形式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置100操作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与删除等操作。
[0114] 在本发明另一实施例中,存储器管理电路202的控制指令亦可以程序码形式存储于可复写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将存储于可复写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与删除等操作。
[0115] 此外,在本发明另一实施例中,存储器管理电路202的控制指令亦可以一硬件形式来实作。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器删除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器删除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可复写式非易失性存储器模块106的实体区块;存储器写入单元用以对可复写式非易失性存储器模块106下达写入指令以将数据写入至可复写式非易失性存储器模块106中;存储器读取单元用以对可复写式非易失性存储器模块106下达读取指令以从可复写式非易失性存储器模块106中读取数据;存储器删除单元用以对可复写式非易失性存储器模块106下达删除指令以将数据从可复写式非易失性存储器模块106中删除;而数据处理单元用以处理欲写入至可复写式非易失性存储器模块106的数据以及从可复写式非易失性存储器模块106中读取的数据。
[0116] 主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口
204来传送至存储器管理电路202。在本实施例中,主机接口204是相容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
[0117] 存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
[0118] 在本发明一实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254与错误检查与校正电路256。
[0119] 缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
[0120] 电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
[0121] 错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
[0122] 图4与图5是根据一实施例所绘示的管理可复写式非易失性存储器模块的示意图。
[0123] 必须了解的是,在此描述可复写式非易失性存储器模块106的实体区块的操作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体区块是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体区块的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体区块进行操作。
[0124] 请参照图4,存储器控制器104可将可复写式非易失性存储器模块的实体区块304(0)~304(R)逻辑地分组为多个区域,例如为数据区402、闲置区404、系统区406与取代区408。在本实施例中,闲置区404与取代区408亦被统称为第二区,也就是说第二区包括了闲置区404与取代区408。在另一实施例中,取代区408亦可与闲置区404共用包含无效数据的实体区块。
[0125] 数据区402与闲置区404的实体区块是用以存储来自于主机系统1000的数据。具体来说,数据区402是已存储数据的实体区块,而闲置区404的实体区块是用以替换数据区402的实体区块。因此,闲置区404的实体区块为空或可使用的实体区块,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区404中的实体区块已被执行删除操作,或者当闲置区404中的实体区块被提取用于存储数据之前所提取的实体区块会先被执行删除操作。因此,闲置区404的实体区块为可被使用的实体区块。
[0126] 逻辑上属于系统区406的实体区块是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的实体区块数、每一实体区块的实体页面数等。
[0127] 逻辑上属于取代区408中的实体区块是替代实体区块。例如,可复写式非易失性存储器模块于出厂时会预留4%的实体区块作为更换使用。也就是说,当数据区402、闲置区404与系统区406中的实体区块损毁时,预留于取代区408中的实体区块是用以取代损坏的实体区块(即,坏实体区块(bad block))。因此,倘若取代区408中仍存有正常的实体区块且发生实体区块损毁时,存储器控制器104会从取代区408中提取正常的实体区块来更换损毁的实体区块。倘若取代区408中无正常的实体区块且发生实体区块损毁时,则存储器控制器
104会将整个存储器存储装置100宣告为写入保护(write protect)状态,而无法再写入数据。
[0128] 特别是,数据区402、闲置区404、系统区406与取代区408的实体区块的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的操作中,实体区块关联至数据区402、闲置区404、系统区406与取代区408的分组关系会动态地变动。例如,当闲置区中的实体区块损坏而被取代区的实体区块取代时,则原本取代区的实体区块会被关联至闲置区。
[0129] 请参照图5,如上所述,数据区402与闲置区404的实体区块是以轮替方式来存储主机系统1000所写入的数据。在本实施例中,存储器控制器104会配置逻辑区块地址LBA(0)~LBA(D)以利于在以上述轮替方式在存储数据的实体区块中进行数据存取。例如,当存储器存储装置100被作业系统1105格式化时,逻辑区块地址LBA(0)~LBA(D)分别地映射至数据区402的实体区块304(0)~304(D)。在此,存储器管理电路202会建立逻辑区块地址-实体区块映射表(logical block address-physical block mapping table),以记录逻辑区块地址与实体区块之间的映射关系。而每个逻辑区块地址LBA(0)~LBA(D)还可包括多个逻辑地址,以供主机系统1000来存取。例如,一个逻辑区块地址包含了1百万位字节(megabyte,MB)的存储器空间,而每个逻辑地址则包含4千位字节(kilobyte,KB)的存储器空间,因此一个逻辑区块地址可以包括250个逻辑地址。然而,本发明并不限制逻辑区块地址与逻辑地址所包含的存储器空间的大小。
[0130] 值得注意的是,在本实施例中,实体区块亦被称为实体单元集合,实体页面组亦被称为实体单字节,实体页面亦被称为实体单元。逻辑区块亦被称为逻辑单元集合,逻辑页面组亦被称为逻辑单字节,逻辑页面亦被称为逻辑单元。然而,在其他实施例中,实体单元可以为其他具有可复写与非挥发特性的一或多个电子元件,例如实体扇,本发明并不在此限,而逻辑单元亦为相应实体单元的配置。
[0131] 另一方面,当存储器管理电路202在程序化一个实体区块时,若发生程序化错误或是判断此实体区块已损坏时,会使用第二区(例如,取代区408)的实体区块来替换此发生异常(即,发生程序化错误或是已损坏)的实体区块。特别的是,若第二区中已经没有可用的实体区块,存储器管理电路202会从数据区402取得一个闲置的实体区块来替换发生异常的实体区块。由于数据区402的实体区块是映射至提供给主机系统1000的逻辑区块地址,因此在一实施例中,存储器管理电路202会在一个档案系统中建立一个无效档案,并将此无效档案对应至发生异常的实体区块所映射的逻辑区块地址。例如,存储器管理电路202会将此无效档案设定为不可存取,如此一来,主机系统1000便不能存取这个发生异常的实体区块。藉此,即使第二区已没有可替换的实体区块,可复写式非易失性存储器模块106还是可以正常操作下去,因此可以延长可复写式非易失性存储器模块106的使用寿命。在另一实施例当中,存储器管理电路202也可以不建立无效档案,直接将发生异常的实体区块所映射的逻辑区块地址设定为不可存取,本发明并不限制是否要建立无效档案。
[0132] 图6是根据一实施例说明档案系统的示意图。
[0133] 请参照图6,当主机系统1000的作业系统1105将存储器存储装置100格式化以后,逻辑区块地址LBA(0)~LBA(D)是由一个档案系统(例如,档案配置表(File Allocation Table,FAT)、高效能档案系统(High Performance File System,HPFS)、或新技术档案系统(New Technology File Ststem,NTFS))来管理。例如,在FAT档案系统中,逻辑区块地址LBA(0)~LBA(D)会被划分出一个分割区(partition)600,其中分割区600包括主引导磁区620、档案配置表区640、根目录区660与档案区680。
[0134] 属于主引导磁区620的逻辑地址是用以存储存储器存储装置100的可存储空间的系统信息。
[0135] 属于档案配置表区640的逻辑地址是用以存储档案配置表。档案配置表是用以纪录存储档案的逻辑地址所对应的丛集。例如,档案配置表区中会存储两个档案配置表,其中一个档案配置表为正常存取所使用,而另一个档案配置表为备份档案配置表。
[0136] 属于根目录区660的逻辑地址是用以存储档案描述区块(File Description Block,FDB),其用以记录目前存储于存储器存储装置100中的档案与目录的属性信息。特别是,档案描述区块会记录用以存储此些档案的起始存储地址(即,起始丛集)。
[0137] 属于档案区680的逻辑地址是用以实际地存储档案的内容。
[0138] 具体来说,磁碟存储最小单位为扇区,每一个扇区包含了512位字节(byte)的信息内容。然而,使用扇区当单位来存储时,主机系统1000的效率会很差。一般来说,主机系统1000的作业系统1105不会以一个扇区当作存取档案的单位,而是以丛集为一基本档案单位。每一个丛集是架构在扇区的2次方倍数上。假定连续的8个扇区构成一个丛集,则此丛集的大小就为4096位字节。基此,在作业系统1105在存取数据时会以8个扇区连续读取而提升了相对效率。但,丛集并非越大越好。因为当丛集越大时相对的可能会浪费许多存储空间。
例如,在一个丛集为4KB的情况下,当主机系统1000所存储的档案内容只有1KB时,此档案还是占用掉一个丛集的空间,剩余的3KB的存储空间就浪费掉了。特别是,丛集的总数目会受限于可复写式非易失性存储器模块的容量与档案配置表型态而有所不同。以FAT16来说,根据定义其本身最大的丛集数目必须介于4048个~65526个之间,所以当格式化一张128MB的记忆卡,其每一个丛集至少必须要包含4个扇区,不然会超出65526个丛集(cluster)的限制(127,901,696/512/4=62,452clusters)。所以每一丛集的大小为2KB。类似地,在FAT32中,最大的丛集数目必须介于65526个~4177918个之间。值得一提的是,在FAT16中,根目录区
660的大小是固定的。而在FAT32中,根目录区660会被放在档案区680来一起管理。
[0139] 例如,在本实施例中,分割区(partition)600是符合FAT32规范的分割区。因此,属于根目录区660与档案区680的扇区会被分组为丛集(cluster)682(0)~682(E)。在此假设丛集682(0)是被配置为根目录区660的起始丛集。
[0140] 图7是根据一实施例说明档案配置表区、根目录区与档案区的示意图。
[0141] 请参照图7,档案配置表区640至少包括了档案配置表740,并且档案配置表740具有丛集项栏位720(1)~720(F)。在此,丛集项栏位720(0)与丛集项栏位720(1)会被保留并填入预设值。此外,从丛集项栏位720(2)开始的每一个丛集项栏位都会对应至丛集682(0)~682(E)的其中之一。例如,丛集项栏位720(2)是对应至丛集682(0),丛集项栏位720(3)是对应至丛集682(1),以此类推。对应丛集的丛集项栏位分别地会被填入一个丛集项,以表示丛集的链接关系。
[0142] 在此,丛集项栏位的丛集项是以特殊字元来表示所对应的丛集的状态。例如,在FAT32中,当丛集项栏位被填入“0000000h”时,则表示此丛集为闲置丛集(即,未存储数据)。例如,对应至丛集项栏位720(3)的丛集682(1)为闲置丛集,因此丛集项栏位702(3)里的丛集项便是“0000000h”。此外,当丛集项栏位被填入“FFFFFF8h”-“FFFFFFFh”时,则表示此丛集为所存储档案的最后一个丛集。在此,“FFFFFF8h”-“FFFFFFFh”亦称为档案结束标记(End Of Clusterchain Mark,EOC Mark),例如,丛集项栏位720(2)所记录的便是档案结束标记。
再者,当一个丛集项栏位被填入一个丛集的逻辑地址时,则表示此丛集是接续此丛集项栏位所对应的丛集来存储数据。例如,丛集项栏位720(4)中记录的丛集项为丛集682(3),表示丛集682(3)是接续在对应丛集项栏位720(4)的丛集682(2)之后继续来存储所对应的档案。
因此,根据丛集项栏位720(4)与720(5)中的信息,作业系统1110便能得知某一档案702是依序地被存储在丛集682(2)与682(3)之中。
[0143] 根目录区660包括目录项栏位662(0)~662(G),并且每一个目录项栏位可用来存储一个档案描述区块(file description block,FDB)。而一个档案描述区块是用来纪录一个档案的档名、副档名与起始丛集等信息。例如,目录项栏位662(0)存储了属于档案702的档案描述区块704。档案描述区块704纪录了档案702的档名与副档名分别为”app”与”.exe”,并且纪录了档案702的起始丛集为丛集682(2)。如此一来,根据对档案配置表区640与根目录区660中的信息,作业系统1110可获知在存储器存储装置100中存储有一个档案”app.exe”,此档案的起始丛集是丛集682(2),并且此档案是依序地被存储在丛集682(2)与丛集682(3)中。
[0144] 此外,在此实施例中,根目录区660是存储在丛集682(0)当中。但值得一提的是,在FAT32中,由于根目录区660是与档案区680一起管理。因此,属于根目录区660的丛集是可被动态地扩充以记录更多档案描述区块,而使得存储器存储装置100可存储的档案数量不受限制。例如,若根目录区660是纪录在丛集682(0)与丛集682(1)当中时,则丛集项栏位720(2)的丛集项会是”682(1)”,而丛集项栏位720(3)的丛集项会是”FFFFFFFh”。本发明并不限制根目录区660所存储在的丛集的个数。
[0145] 在本实施例中,一个逻辑区块地址会包括两个丛集。例如,丛集682(0)与682(1)是属于同一个逻辑区块地址,而丛集682(2)与682(3)是属于另一个逻辑区块地址。而主机系统1000会根据图7所示的档案系统来下达存取逻辑区块地址的指令给存储器管理电路202。例如,当主机系统1000会先读取根目录区660与档案配置表740,以得知档案702是存储在丛集682(2)与丛集682(3)中。当主机系统1000要写入数据至档案702时,会取得丛集682(2)与
682(3)所属的逻辑区块地址(在此称为第一逻辑区块地址)。接着,主机系统1000会下达将一数据写入至第一逻辑区块地址的写入指令给存储器管理电路202。然而,在其他实施例中,一个逻辑区块地址也可以包括更多或更少的丛集,本发明并不在此限。
[0146] 图8是根据一实施例说明建立无效档案的示意图。
[0147] 请参照图8,档案702是逻辑上地被存储在丛集682(2)与682(3)当中,而丛集682(2)与682(3)是属于逻辑区块地址LBA(1)(亦称为第一逻辑区块地址),逻辑区块地址LBA(1)是映射至实体区块304(1)(亦称第一实体区块)。也就是说,档案702是实体上地被存储在实体区块304(1)当中,主机系统1000可以通过存取逻辑区块地址LBA(1)来存取档案702。
[0148] 当主机系统1000要根据数据706来更新档案702时,存储器管理电路202会从主机系统1000接收到指示将数据706写入至逻辑区块地址LBA(1)的写入指令。但由于一个实体区块必须要在删除后才能程序化新的数据,因此存储器管理电路202会将数据706程序化至第二区(例如,闲置区404)中的实体区块304(N)(亦称第三实体区块)。并且,在根据所接收的写入指令将数据706写入至实体区块304(N)时,存储器管理电路202会判断是否发生一程序化错误。如果没有发生程序化错误,存储器管理电路202还会将实体区块304(1)中的有效数据复制到实体区块304(N),将逻辑区块地址LBA(1)重新映射至实体区块304(N),并将实体区块304(1)关联至闲置区404。在另一实施例中,数据706是属于一个新档案,实体区块304(1)并没有此新档案的有效数据。因此,在另一实施例中,存储器管理电路仅会将将逻辑区块地址LBA(1)重新映射至实体区块304(N),并将实体区块304(1)关联至闲置区404。
[0149] 相反的,如果在将数据706程序化至实体区块304(N)时发生程序化错误,则存储器管理电路202会从第二区(例如,取代区408)中取得一个可写入的实体区块(亦称第四实体区块)来替换实体区块304(N)。特别的是,如果第二区中不存在可写入的实体区块,存储器管理电路202会从数据区402中找到一个闲置的实体区块来替换实体区块304(N)。具体来说,存储器管理电路202会先从丛集项栏位720(0)~720(F)中找到闲置的丛集项栏位(亦统称为第二丛集项栏位)。例如,存储器管理电路202会找到丛集项为”0000000h”的丛集项栏位720(F-1)与720(F),其中丛集项栏位720(F-1)与720(F)是分别对应至丛集682(E-1)与682(E),而丛集682(E-1)与682(E)是属于逻辑区块地址LBA(D)(亦称第二逻辑区块地址),并且,逻辑区块地址LBA(D)是映射至实体区块304(D)(亦称第二实体区块地址)。换言之,存储器管理电路202会从数据区402中找到没有存储任何档案的实体区块304(D)。
[0150] 在本实施例中,实体区块304(D)是用以替换发生程序化错误的实体区块304(N)。特别的是,在一实施例中,存储器管理电路202会建立一个无效档案,设定此无效档案是通过逻辑区块地址LBA(D)来存取。此外,存储器管理电路202会将逻辑区块地址LBA(D)映射至实体区块304(N)。也就是说,存储器管理电路202所产生的无效档案会被间接的映射至实体区块304(N)。例如,存储器管理电路202会将此无效档案设定为不可存取,使得主机系统
1000不能存取实体区块304(N)。然而,在其他实施例中,此无效档案也可以被设定为可存取,本发明并不在此限。
[0151] 图9是根据一实施例说明将无效档案的档案描述区块记录在目录项栏位的示意图。
[0152] 举例来说,请参照图9,存储器管理电路202会建立无效档案902,设定此无效档案902是逻辑地被存储在丛集682(E-1)与682(E)。也就是说,存储器管理电路202是将闲置的丛集项栏位720(F-1)与720(F)分配给无效档案902。并且,存储器管理电路202会将丛集项栏位720(F-1)的丛集项设定为”682(E)”,并将丛集项栏位720(F)的丛集项设定为”FFFFFFFh”,用以表示无效档案902是被存储在丛集682(E-1)与682(E)。换言之,通过上述设定,无效档案902是经由逻辑区块地址LBA(D)来存取。此外,存储器管理电路202还会产生无效档案902的档案描述区块904,并将档案描述区块904纪录在目录项栏位662(1)当中。存储器管理电路202会设定档案描述区块904包括了无效档案902的档名(例如,”bad”)与副档名(例如,”.dat”)以及无效档案902的起始丛集682(E-1)。特别的是,存储器管理电路202会将用以存取无效档案902的逻辑区块地址LBA(D)重新映射至实体区块304(N)。在一实施例中,存储器管理电路202还会将无效档案902设定为不可存取。例如,存储器管理电路202会设定逻辑区块地址LBA(D)为不可存取。如此一来,当主机系统1000要存取逻辑区块地址LBA(D)时,存储器管理电路202会传送一存取错误讯息给主机系统1000。藉此,主机系统1000便不能存取发生程序化错误的实体区块304(N)。值得一提的是,此时主机系统1000并不会得知实体区块304(N)发生程序化错误,主机系统只会发现存储器存储装置100的档案系统中多一个无效档案902。
[0153] 接下来,存储器管理电路202会完成数据706的写入操作。具体来说,存储器管理电路202会取得原本映射至逻辑区块地址LBA(D)的实体区块304(D),并将实体区块304(1)中的有效数据复制到实体区块304(D)。接下来,存储器管理电路202会将数据706写入至实体区块304(D),并将逻辑区块地址LBA(1)重新映射至实体区块304(D)。如此一来,主机系统1000会认为数据706已成功地写入至逻辑区块地址LBA(1)所映射的实体区块当中。
[0154] 在此实施例中,在存储器管理电路202从丛集项栏位720(0)~720(F)中寻找闲置的丛集项栏位的过程中,存储器管理电路202会取得连续、闲置、且存储器空间符合一个逻辑区块地址的多个丛集项栏位。例如,丛集项栏位720(F-1)与720(F)便是连续、闲置、且存储器空间符合逻辑区块地址LBA(D)的丛集项栏位。也就是说,存储器管理电路202会找到并用连续的丛集682(E-1)与682(E)来逻辑地存储无效档案。然而,在另一实施例当中,存储器管理电路202也可以取得不连续但闲置的多个丛集项栏位,并且,存储器管理电路202会通过数据整并与数据搬移的方式取得一个闲置的逻辑区块地址以存储无效档案。本发明并不限制所取得的丛集项栏位及丛集为连续或不连续。
[0155] 此外,在存储器管理电路202寻找闲置的丛集项栏位时,若找不到闲置且存储器空间符合一个逻辑区块地址的多个丛集项栏位时,表示数据区402中已经没有未被使用的实体区块。此亦表示可复写式非易失性存储器模块106已经没有闲置的实体区块可替换发生程序化错误的实体区块,因此,存储器管理电路202会对可复写式非易失性存储器模块106执行一个锁卡程序。而此锁卡程序是用以禁止对可复写式非易失性存储器模块106执行写入操作。
[0156] 此外,在本实施例中,无效档案902的档案描述区块904是被纪录在目录项栏位662(0)~662(G)的其中之一。然而,在另一实施例中,存储器管理电路202也可以建立一个无效档案目录,用来纪录所有无效档案的档案描述区块。
[0157] 图10是根据另一实施例说明建立无效档案目录的示意图。
[0158] 请参照图10,在图10所示的实施例当中,存储器管理电路202会在丛集682(4)与682(5)建立从无效档案目录906,并相对应的修改丛集项栏位720(6)与720(7)。并且,存储器管理电路202会建立无效档案目录906的档案描述区块908,并将档案描述区块908纪录在目录项栏位662(1)当中。特别的是,当存储器管理电路202建立无效档案902的档案描述区块以后,会将无效档案902的档案描述区块纪录在无效档案目录906当中。也就是说,无效档案目录906中纪录所有无效档案的档案描述区块,如此一来,便不会产生每一个无效档案的档案描述区块都占据一个目录项栏位的情形。在本实施例中无效档案目录906是占据两个丛集,然而,在其他实施例中无效档案目录906也可以占据数目更多或更少的丛集,本发明并不在此限。
[0159] 图11是根据一实施例说明存储器管理方法的流程图。
[0160] 请参照图11,在步骤S1102中,存储器管理电路202会接收一个写入指令,此写入指令是指示将一数据写入至一个逻辑区块地址(亦称第一逻辑区块地址),而第一逻辑区块地址是映射至第一实体区块。在步骤S1104中,存储器管理电路202会根据写入指令,将数据程序化至第二区的第三实体区块。在步骤S1106中,存储器管理电路202会判断将数据程序化至第三实体区块时是否发生一程序化错误。
[0161] 若没有发生程序化错误,在步骤S1108中,存储器管理电路202会将第一实体区块的有效数据复制到第三实体区块。在步骤S1110中,存储器管理电路202会将第一逻辑区块地址映射至第三实体区块。在步骤S1112中,存储器管理电路202会将第一实体区块关联至第二区(例如,闲置区404),并将第三实体区块关联至数据区402。
[0162] 若发生程序化错误,在步骤S1114中,存储器管理电路202会判断第二区(例如,取代区408)是否还存在可写入的第四实体区块。若存在第四实体区块,在步骤S1116中,存储器管理电路202会使用第四实体区块来替换第三实体区块。
[0163] 若不存在第四实体区块,在步骤S1118中,存储器管理电路202会从数据区402取得第二实体区块,此第二实体区块是映射至第二逻辑区块地址。在步骤S1122中,存储器管理电路202会将第二逻辑区块地址映射至第三实体区块。
[0164] 在步骤S1124中,存储器管理电路202会对第二实体区块执行写入指令。例如,存储器管理电路202会将第一实体区块的有效指令复制到第二实体区块,根据写入指令将数据写入至第二实体区块。存储器管理电路202还会将第一逻辑区块地址重新映射至第二实体区块,将第一实体区块关联至第二区,并将第二实体区块关联至数据区402。其中,步骤S1114、S1116、S1118、S1122与步骤S1124亦称为第一程序。然而,图11中各步骤已详细说明如上,在此便不再赘述。
[0165] 综上所述,本发明实施例所提出的存储器管理方法,存储器控制器与存储器管理电路,可以在实体区块发生程序化错误且第二区(例如,取代区)已经没有可用的实体区块时,使用数据区中的实体区块来取代发生程序化错误的实体区块。如此一来,可以延长可复写式非易失性存储器模块的使用寿命。
[0166] 虽然本发明已以较佳实施例揭示于上,但其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作任意改动或等同替换,因此本发明的保护范围当以本申请权利要求书所界定的范围为准。