闪存区块管理方法、闪存储存系统及控制器转让专利

申请号 : CN200810214447.3

文献号 : CN101661432B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨俊勇朱健华叶志刚方冠统张瑞贤

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

摘要 :

一种区块管理方法,其适用于管理具有多区块面的闪存芯片,其中每一区块面具有多个物理区块。此区块管理方法包括配置多个物理单元,其中每一物理单元包括每一区块面中的一个物理区块并且在每一物理单元中的物理区块具有可同时操作关系。此区块管理方法也包括当主机系统写入数据至物理单元时判断主机系统是否更新物理单元中全部的物理区块中,其中当主机系统并非更新物理单元中全部的物理区块时则以单区块面存取模式写入数据。此外,当主机系统更新物理单元中全部的物理区块时则以多区块面存取模式写入数据,其中用以写入数据的物理区块具有可同时操作关系。

权利要求 :

1.一种区块管理方法,包括:

提供闪存芯片,其中该闪存芯片包括第一区块面与第二区块面,并且该第一区块面与该第二区块面分别地具有多个物理区块;

配置多个物理单元,其中每一物理单元包括该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块,并且在每一物理单元中属于该第一区块面的物理区块与属于该第二区块面的物理区块具有可同时操作关系;

当主机系统写入数据至该些物理单元时,判断该主机系统是否仅写入该数据至该些物理单元中属于该第一区块面的物理区块中;

当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块;以及当该主机系统非仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以多区块面存取模式写入该数据至该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块中,其中写入该数据的该第一区块面的物理区块与该第二区块面的物理区块具有该可同时操作关系。

2.根据权利要求1所述的区块管理方法,还包括:

配置多个逻辑区块以供该主机系统存取;以及

配置多个逻辑-物理映射表来分别地记录该第一区块面与该第二区块面中每一物理区块与该些逻辑区块的映射关系。

3.根据权利要求1所述的区块管理方法,还包括将该第一区块面的物理区块分组为第一区块面数据区与第一区块面备用区,并且将该第二区块面的物理区块分组为第二区块面数据区与第二区块面备用区。

4.根据权利要求3所述的区块管理方法,其中以该单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的步骤包括:从该第一区块面的该第一区块面备用区中提取一个物理区块;以及

将该数据写入至从该第一区块面备用区中提取的物理区块中。

5.根据权利要求3所述的区块管理方法,其中以该多区块面存取模式写入该数据至该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块中的步骤包括:从该第一区块面的该第一区块面备用区中提取一个物理区块;

从该第二区块面的该第二区块面备用区中提取一个物理区块;以及

将该数据写入至从该第一区块面备用区与该第二区块面备用区中提取的物理区块中。

6.根据权利要求4所述的区块管理方法,其中从该第一区块面的该第一区块面备用区中提取一个物理区块的步骤包括:判断在该第一区块面备用区中是否存有与该些物理单元中属于该第二区块面的物理区块具有该可同时操作关系的物理区块,若是,则从该第一区块面备用区中提取与该些物理单元中属于该第二区块面的物理区块具有该可同时操作关系的物理区块,若否,则从该第一区块面备用区中提取任一物理区块。

7.一种区块管理系统,适用于管理闪存储存系统的闪存芯片,其中该闪存芯片具有第一区块面与第二区块面并且该第一区块面与该第二区块面分别地具有多个物理区块,该区块管理系统包括:用于配置多个物理单元的部件,其中每一物理单元包括该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块,并且在每一物理单元中属于该第一区块面的物理区块与属于该第二区块面的物理区块具有可同时操作关系;

用于当主机系统写入数据至该些物理单元时,判断该主机系统是否仅写入该数据至该些物理单元中属于该第一区块面的物理区块中的部件;

用于当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的部件;以及用于当该主机系统非仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以多区块面存取模式写入该数据至该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块中的部件,其中写入该数据的该第一区块面的物理区块与该第二区块面的物理区块具有该可同时操作关系。

8.根据权利要求7所述的区块管理系统,还包括:

用于配置多个逻辑区块以供该主机系统存取的部件;以及

用于配置多个逻辑-物理映射表来分别地记录该第一区块面与该第二区块面中每一物理区块与该些逻辑区块的映射关系的部件。

9.根据权利要求7所述的区块管理系统,还包括:

用于将该第一区块面的物理区块分组为第一区块面数据区与第一区块面备用区,并且将该第二区块面的物理区块分组为第二区块面数据区与第二区块面备用区的部件。

10.根据权利要求9所述的区块管理系统,其中用于当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以该单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的部件会从该第一区块面的该第一区块面备用区中提取一个物理区块并且将该数据写入至从该第一区块面备用区中提取的物理区块中。

11.根据权利要求9所述的区块管理系统,其中用于当该主机系统非仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以该多区块面存取模式写入该数据至该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块中的部件会从该第一区块面的该第一区块面备用区中提取一个物理区块,从该第二区块面的该第二区块面备用区中提取一个物理区块并且将该数据写入至从该第一区块面备用区与该第二区块面备用区中提取的物理区块中。

12.根据权利要求10所述的区块管理系统,其中用于当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以该单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的部件会判断在该第一区块面备用区中是否存有与该些物理单元中属于该第二区块面的物理区块具有该可同时操作关系的物理区块,若是,则用于当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以该单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的部件会从该第一区块面备用区中提取与该些物理单元中属于该第二区块面的物理区块具有该可同时操作关系的物理区块,若否,则用于当该主机系统仅写入该数据至该些物理单元中属于该第一区块面的物理区块中时,以该单区块面存取模式将该数据写入至该第一区块面的其中一个物理区块的部件会从该第一区块面备用区中提取任一物理区块。

13.根据权利要求7所述的区块管理系统,其中该闪存储存系统为随身碟、快闪存储卡或固态硬盘。

14.一种区块管理方法,包括:

提供闪存芯片,其中该闪存芯片包括多区块面并且每一区块面具有多个物理区块;

配置多个物理单元,其中每一物理单元包括每一区块面中的其中一个物理区块并且在每一物理单元的该些物理区块具有可同时操作关系;

当主机系统欲写入数据至该些物理单元时判断该主机系统是否写入该数据至该些物理单元中的所有物理区块中;

当该主机系统非欲写入该数据至该些物理单元中的所有物理区块时,以单区块面存取模式写入该数据;以及当该主机系统欲写入该数据至该些物理单元中的所有物理区块时,以多区块面存取模式写入该数据,其中写入该数据的物理区块具有该可同时操作关系。

说明书 :

闪存区块管理方法、闪存储存系统及控制器

技术领域

[0001] 本发明是有关于一种用于管理闪存的区块管理方法,且特别是有关于一种用于管理具有多区块面(multi planes)的闪存芯片的区块管理方法以及使用此方法的储存系统与控制器。

背景技术

[0002] 数字相机、手机相机与MP3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘就是一种以NAND闪存作为储存媒体的储存装置。
[0003] 一般来说,闪存储存系统的闪存芯片会划分为多个物理单元(unit),此些单元是一般可由一个物理区块或多个物理区块所组成。此些单元会分组为数据区(data area)与备用区(spare area)。归类为数据区中的物理单元会储存由写入指令所写入的有效数据,而备用区中的物理单元是用以在执行写入指令时替换数据区中的物理单元。具体来说,当闪存储存系统接受到主机系统的写入指令而欲对数据区的物理单元进行写入时,闪存储存系统会从备用区中提取一物理单元并且将在数据区中欲更新的物理单元中的有效旧数据与欲写入的新数据写入至从备用区中提取的物理单元并且将已写入新数据的物理单元关联为数据区,并且将原本数据区的物理单元进行抹除并关联为备用区。为了能够让主机系统能够顺利地存取以轮替方式储存数据的物理单元,闪存储存系统会配置逻辑单元以供主机系统进行存取。也就是说,闪存储存系统会建立逻辑-物理映射表,并且在此表中记录与更新逻辑单元与数据区的物理单元之间的映射关系来反映物理区块的轮替,所以主机系统仅需要针对所提供逻辑单元进行写入而闪存储存系统会依据逻辑-物理映射表对所映射的物理单元进行读取或写入数据。
[0004] 然而,在闪存制程上的进步而使得每一物理区块的设计容量会越来越大的同时,亦造成上述搬移有效旧数据的时间会相对地增加。特别是,在具多区块面(multi planes)存取的闪存芯片(即,在闪存芯片中一个物理单元包括多个物理区块)的闪存储存系统中,闪存储存系统会将多个区块面中具可同时操作关系的物理区块视为一个物理单元,并且以一个物理单元为单位来同时对属于不同区块面的物理区块下达存取指令(在此称为多区块面存取(multiplanes access)),以加速数据的存取速度。在使用多区块面存取技术的闪存储存系统中进行数据写入时必须对一个物理单元的多个物理区块进行上述耗时的数据搬移操作。因此,闪存芯片完成写入数据的时间会大幅增加,以致于闪存储存系统完成写入指令而回复主机系统的响应时间会远超过主机系统的规格设计,而造成逾时(time out)错误的问题。

发明内容

[0005] 有鉴于此,本发明提供一种区块管理方法,其能够提升数据写入的效率并且能够减少非必要的数据搬移操作而避免逾时错误。
[0006] 此外,本发明提供一种控制器,其使用上述区块管理方法来管理闪存,其能够提升数据写入的效率并且能够减少非必要的数据搬移操作而避免逾时错误。
[0007] 再者,本发明提供一种储存系统,其使用上述区块管理方法来管理闪存,其能够提升数据写入的效率并且能够减少非必要的数据搬移操作而避免逾时错误。
[0008] 本发明提出一种区块管理方法,此区块管理方法包括提供闪存芯片,其中此闪存芯片包括第一区块面(plane)与第二区块面,并且第一区块面与第二区块面分别地具有多个物理区块,此区块管理方法还包括配置多个物理单元,其中每一物理单元包括第一区块面的其中一个物理区块与第二区块面的其中一个物理区块,并且在每一物理单元中属于第一区块面的物理区块与属于第二区块面的物理区块具有可同时操作关系。此区块管理方法也包括当主机系统写入数据至物理单元时判断主机系统是否仅写入数据至物理单元中属于第一区块面的物理区块中,其中当主机系统仅写入数据至物理单元中属于第一区块面的物理区块中时以单区块面存取(single plane access)方式将数据写入至第一区块面的其中一个物理区块。此外,当主机系统不仅写入数据至物理单元中属于第一区块面的物理区块中时以多区块面存取(multi planesaccess)方式写入数据至第一区块面的其中一个物理区块与第二区块面的其中一个物理区块中,其中写入数据的第一区块面的物理区块与第二区块面的物理区块具有可同时操作关系。
[0009] 在本发明的一实施例中,上述的区块管理方法还包括配置多个逻辑区块以供主机系统存取,以及配置多个逻辑-物理映射表来分别地记录第一区块面与第二区块面中每一物理区块与逻辑区块的映射关系。
[0010] 在本发明的一实施例中,上述的区块管理方法还包括将第一区块面的物理区块分组为第一区块面数据区与第一区块面备用区并且将第二区块面的物理区块分组为第二区块面数据区与第二区块面备用区。
[0011] 在本发明的一实施例中,上述的以单区块面存取模式将数据写入至第一区块面的其中一个物理区块的步骤包括从第一区块面的第一区块面备用区中提取一个物理区块,以及将数据写入至从第一区块面备用区中提取的物理区块中。
[0012] 在本发明的一实施例中,上述的以多区块面存取模式写入数据至第一区块面的其中一个物理区块与第二区块面的其中一个物理区块中的步骤包括从第一区块面的第一区块面备用区中提取一个物理区块、从第二区块面的第二区块面备用区中提取一个物理区块以及将数据写入至从第一区块面备用区与第二区块面备用区中提取的物理区块中。
[0013] 在本发明的一实施例中,上述的从第一区块面的第一区块面备用区中提取一个物理区块的步骤包括判断在第一区块面备用区中是否存有与物理单元中属于第二区块面的物理区块具有可同时操作关系的物理区块,若是,则从第一区块面备用区中提取与物理单元中属于第二区块面的物理区块具有可同时操作关系的物理区块,若否,则从第一区块面备用区中提取任一物理区块。
[0014] 本发明亦提供一种闪存储存系统及其控制器,此闪存储存系统包括闪存芯片、连接器以及控制器,其中闪存芯片具有第一区块面与第二区块面且第一区块面与第二区块面分别地具有多个物理区块。此控制器是电性连接至上述闪存芯片与连接器,并且此控制器包括微处理器单元以及耦接至微处理器单元的闪存接口模块、缓冲存储器、主机接口模块与存储器管理模块。特别是,此存储器管理模块具有可由微处理器单元执行的多个机器指令以对闪存完成上述区块管理方法。
[0015] 在本发明的一实施例中,上述的闪存储存系统为随身碟、快闪存储卡或固态硬盘。
[0016] 在本发明的一实施例中,上述的存储器管理模块是配置在控制器中的硬件。
[0017] 在本发明的一实施例中,上述的存储器管理模块是固件码,此固件码是储存在上述闪存中或上述控制器的程序存储器中。
[0018] 本发明提出一种区块管理方法,其包括提供闪存芯片,其中闪存芯片包括多区块面(multi planes)并且每一区块面具有多个物理区块。此区块管理方法也包括配置多个物理单元,其中每一物理单元包括每一区块面中的其中一个物理区块并且在每一物理单元的物理区块具有可同时操作关系。此区块管理方法还包括当主机系统欲写入数据至物理单元时判断主机系统是否写入数据至物理单元中的所有物理区块中,其中当主机系统非欲写入数据至物理单元中的所有物理区块时以单区块面存取模式写入数据,并且当主机系统欲写入数据至物理单元中的所有物理区块时以多区块面存取模式写入数据,其中写入数据的物理区块具有可同时操作关系。
[0019] 本发明因采用在具多区块面的闪存芯片中依据欲写入数据的地址的分布来使用单区块面写入或多区块面写入,因此可提升数据写入的速度同时避免因不必要的物理区块的数据搬移所产生的逾时问题。
[0020] 为让本发明的上述特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。

附图说明

[0021] 图1是根据本发明一实施例绘示闪存储存系统的概要方块图。
[0022] 图2是根据本发明实施例绘示闪存芯片的方块图。
[0023] 图3A与3B是根据本发明实施例绘示物理区块的运作示意图。
[0024] 图4(a)~4(b)是根据本发明实施例绘示以多区块面存取模式写入数据至闪存芯片的范例示意图。
[0025] 图5(a)~5(c)是根据本发明实施例绘示以单区块面存取模式写入数据至闪存芯片的范例示意图。
[0026] 图6是根据本发明实施例绘示区块管理步骤的流程图。
[0027] [主要元件标号说明]
[0028] 100:闪存储存系统
[0029] 110:控制器
[0030] 110a:微处理器单元
[0031] 110b:存储器管理模块
[0032] 110c:闪存接口模块
[0033] 110d:缓冲存储器
[0034] 110e:主机接口模块
[0035] 120:连接器
[0036] 130:闪存芯片
[0037] 130a:第一区块面
[0038] 130b:第二区块面
[0039] 200:主机系统
[0040] 202a、202b:系统区
[0041] 204a、204b:数据区
[0042] 206a、206b:备用区
[0043] 208:替换区块
[0044] 210a-1~210a-M:逻辑区块
[0045] 300:总线
[0046] 310-(1)、310-(2)、310-(S)、310-(S+1)、310-(S+2)、310-(S+M)、310-(S+M+1)、310-(S+M+2)、310-(S+M+C):物理单元
[0047] S601、S603、S605、S607、S609、S611、S613:区块管理步骤

具体实施方式

[0048] 为了能够以利用多区块面存取技术存取具多区块面架构的闪存芯片,同时避免因仅写入少量数据(例如,数据长度为单扇区(single sector)的数据)时所发生的上述逾时(time out)问题,本发明将闪存芯片的每一区块面中具有可同时操作关系的物理区块分别地配置为多个物理单元,并且在当主机系统欲写入数据至物理单元时判断主机系统是否写入数据至物理单元中的所有物理区块中,其中当主机系统非欲写入数据至物理单元中的所有物理区块时以单区块面存取模式写入数据,并且当主机系统欲写入数据至物理单元中的所有物理区块时以多区块面存取模式将数据写入至具有可同时操作关系的物理区块。以下将以范例实施例详细说明本发明。
[0049] 图1是根据本发明一实施例绘示闪存储存系统的概要方块图。请参照图1,闪存储存系统100包括控制器(亦称控制器系统)110、连接器120以及闪存芯片130。
[0050] 通常闪存储存系统100会与主机系统200一起使用,以使主机系统200可将数据写入至闪存储存系统100或从闪存储存系统100中读取数据。在本实施例中,闪存储存系统100为存储卡。但必须了解的是,在本发明另一实施例中闪存储存系统100亦可以是固态硬盘(Solid State Drive,SSD)或随身碟。
[0051] 控制器110会执行以硬件形式或固件形式实作的多个指令以配合连接器120与闪存芯片130来进行数据的储存、读取与抹除等运作。控制器110包括微处理器单元110a、存储器管理模块110b、闪存接口模块110c、缓冲存储器110d与主机接口模块110e。
[0052] 微处理器单元110a用以与存储器管理模块110b、闪存接口模块110c、缓冲存储器110d与主机接口模块110e等协同合作以进行闪存储存系统100的各种运作。
[0053] 存储器管理模块110b是耦接至微处理器单元110a。存储器管理模块110b具有可由微处理器单元110a执行的多个机器指令以管理闪存芯片130,例如平均磨损、区块管理功能、维护逻辑-物理映射表(mapping table)功能等的机器指令。特别是,在本发明实施例中,存储器管理模块110b包含可完成根据本实施例的区块管理步骤的机器指令。
[0054] 在本实施例中,存储器管理模块110b是以固件形式实作在控制器110中,例如以程序语言撰写程序相关机械指令并且储存于程序存储器(例如,只读存储器(Read Only Memory,ROM))来实作存储器管理模块110b。当闪存储存系统100运作时,存储器管理模块110b的多个机器指令会间接地被加载至缓冲存储器110d中,并且由微处理器单元110a来执行或直接由微处理器单元110a来执行以完成上述平均磨损功能、坏区块管理功能、维护逻辑-物理区块映射表功能等。特别是,控制器110通过执行存储器管理模块110b的多个机械指令来此完成根据本发明实施例的区块管理步骤。
[0055] 在本发明另一实施例中,存储器管理模块110b的机械指令亦可以固件形式储存于闪存芯片130的特定区域(例如,闪存中专用于存放系统数据的系统区)中。同样地,当闪存储存系统100运作时,存储器管理模块110b的多个机器指令会被加载至缓冲存储器110d中并且由微处理器单元110a来执行。此外,在本发明另一实施例中,存储器管理模块
110b亦可以硬件形式实作在控制器110中。
[0056] 闪存接口模块110c是耦接至微处理器单元110a并且用以存取闪存芯片130。也就是说,欲写入至闪存芯片130的数据会经由闪存接口模块110c转换为闪存芯片130所能接受的格式。
[0057] 缓冲存储器110d是耦接至微处理器单元110a并且用以暂时地储存系统数据(例如逻辑-物理映射表)或者主机系统200所读取或写入的数据。在本实施例中,缓冲存储器110d为静态随机存取存储器(static random accessmemory,SRAM)。然而,必须了解的是,本发明不限于此,动态随机存取存储器(Dynamic Random Access memory,DRAM)、磁阻式存储器(MagnetoresistiveRandom Access Memory,MRAM)、相变化存储器(Phase Change Random AccessMemory,PRAM)或其它适合的存储器亦可应用于本发明。
[0058] 主机接口模块110e是耦接至微处理器单元110a并且用以接收与识别主机系统200所传送的指令。也就是,主机系统200所传送的指令与数据会通过主机接口模块110e来传送至微处理器单元110a。在本实施例中,主机接口模块110e为SD接口。然而,必须了解的是本发明不限于此,主机接口模块110e亦可以是USB接口、IEEE1394接口、PCI Express接口、MS接口、MMC接口、SATA接口、CF接口、IDE接口或其它适合的数据传输接口。特别是,主机接口模块110e会与连接器120相对应。也就是,主机接口模块110e必须与连接器
120互相搭配。
[0059] 此外,虽未绘示于本实施例,但控制器110可还包括错误校正模块与电源管理模块等用于控制闪存的一般功能模块。
[0060] 连接器120用以通过总线300连接主机系统200。在本实施例中,连接器120为SD连接器。然而,必须了解的是本发明不限于此,连接器120亦可以是USB连接器、IEEE1394连接器、PCI Express连接器、MS连接器、MMC连接器、SATA连接器、CF连接器、IDE连接器或其它适合的连接器。
[0061] 闪存芯片130是电性连接至控制器110并且用以储存数据。在本实施中闪存芯片130为多层存储单元(Multi Level Cell,MLC)NAND闪存。然而,必须了解的是,本发明不限于此。在本发明另一实施例中,单层存储单元(Single Level Cell,SLC)NAND闪存亦可应用于本发明。
[0062] 在本实施例中闪存芯片130包括第一区块面(plane)130a与第二区块面130b,第一区块面130a与第二区块面130b中分别包括多个物理区块。特别是,第一区块面与第二区块面彼此间可为物理或虚拟的分割。
[0063] 在闪存中物理区块为抹除的最小单位。亦即,每一物理区块含有最小数目之一并被抹除的存储单元。每一物理区块通常会分割为数个页面地址(page)。页面地址通常为编程(program)的最小单元。但要特别说明的是于有些不同的闪存设计,最小的编程单位也可为一个扇区(sector)。也就是说,一个页面地址中有多个扇区并以一个扇区为编程的最小单元。换言之,页面地址为写入数据或读取数据的最小单元。每一页面地址通常包括使用者数据区D与冗余区R。使用者数据区用以储存使用者的数据,而冗余区用以储存系统的数据(例如,错误校正码(error correcting code,ECC))。
[0064] 为对应于磁盘驱动器的扇区(sector)大小,一般而言,使用者数据区D通常为512字节,而冗余区R通常为16字节。也就是说,一个页面地址为一个扇区。然而,亦可以多个扇区形成一个页面地址。在本实施例中,闪存区块的一个页面地址是包括4个扇区。
[0065] 一般而言,物理区块可由任意数目的页面地址所组成,例如64个页面地址、128个页面地址、256个页面地址等。此外,在第一区块面130a或第二区块面130b中的物理区块通常也可被分组为数个区域(zone),以区域来管理存储器某种程度上是彼此独立地操作以增加操作执行的平行程度且简化管理的复杂度。
[0066] 此外,控制器110会将第一区块面130a与第二区块面130b中的多个物理区块配置为一个物理单元来管理,例如一个物理单元包括两个物理区块。由于以物理单元进行管理时,控制器110是以较大的单位(即物理单元)来维护逻辑与物理映射表,因此可节省所需使用缓冲存储器110d的空间。
[0067] 特别是,在本实施例中由于控制器110可以多区块面存取模式同时存取第一区块面130a与第二区块面130b中的特定物理区块。也就是说,在闪存芯片130中第一区块面130a中的特定物理区块与第二区块面130b的特定物理区块可同时由多区块面存取指令来操作(例如,执行写入、读取与抹除)。因此,在本实施例中控制器110更会分别将具有可同时操作关系的物理区块配置为一个物理单元。具体来说,在特定闪存芯片电路设计上会使得一些区块面可以至少一部分的操作时间重迭(或同步)的方式来存取数据以缩短存取数据所需的时间。因此,在此称此些可以部分同步方式存取数据的特定区块面为具有可同时操作关系,而以部分同步方式存取数据的存取模式称为多区块面存取模式。图2是根据本发明实施例绘示闪存芯片的方块图。请参照图2,第一区块面130a与第二区块面130b的物理区块可分别地组成物理单元310-1~310-(S+M+C)。
[0068] 图3A与3B是根据本发明实施例绘示第一区块面130a(或第二区块面130b)中物理区块的运作示意图。
[0069] 必须了解的是,在此描述闪存的运作时以“提取”、“搬移”、“交换”、“替换”、“轮替”、“分割”、“划分”等词来操作闪存芯片130的物理区块是逻辑上的概念。也就是说,闪存的物理区块的实际位置并未更动,而是逻辑上对闪存的物理区块进行操作。值得一提的是,下述物理区块的运作是控制器110执行存储器管理模块110b的机械指令所完成。
[0070] 第一区块面130a与第二区块面130b中物理区块的运作是相同的,在此以第一区块面130a为例进行说明。请参照图3A,在本发明实施例中,为了有效率地编程(即,写入)数据,控制器110会将第一区块面130a的物理区块在逻辑上分组为系统区202a(即,物理区块a(1)~物理区块a(S))、数据区204a(即,物理区块a(S+1)~物理区块a(S+M))与备用区206a(即,物理区块a(S+M+1)~物理区块a(S+M+C))。如前所述,第一区块面130a的物理区块会以轮替方式提供主机系统来储存数据,因此控制器110会提供逻辑区块210a-1~210a-M给主机系统以进行数据存取,并且通过维护逻辑-物理映射表来记录逻辑区块所映射的物理区块。在本实施例中,上述S、M与C为正整数,其代表各区配置的物理区块数量,其可由闪存储存系统的制造商依据所使用的闪存的容量而设定。
[0071] 系统区202a中的物理区块用以记录系统数据,此系统数据包括关于第一区块面130a的区域数、每一区域的物理区块数、每一物理区块的页面地址数、记录逻辑地址与物理地址映射关系的逻辑-物理映射表(logical-physicalmapping table)等。
[0072] 数据区204a中的物理区块用以储存使用者的数据,一般来说就是主机系统200所存取的逻辑区块所映射的区块。
[0073] 备用区206a中的物理区块是用以替换数据区204a中的物理区块,因此在备用区206a中的物理区块为空或可使用的区块,即无记录数据或标记为已没用的无效数据。
[0074] 特别是,数据区204a与备用区206a的物理区块会以轮替方式来储存主机系统200对闪存储存系统100写入的数据。具体来说,由于在闪存中每个地址仅能编程一次,因此若要对已写过数据位置再次写入数据时,必须先执行抹除的操作。然而,如前所述闪存写入单位为页面,其小于以物理区块为单位的抹除单位。因此,若要执行物理区块的抹除操作时,必须先将欲抹除物理区块中的有效页面地址的数据复制至其它物理区块后才可进行物理区块的抹除操作。
[0075] 例如,当主机系统欲写入数据至逻辑区块210a-1(即,逻辑区块a(1))时,控制器110会通过逻辑-物理映射表得知逻辑区块a(1)目前是映射数据区204a中的物理区块
a(S+1)。因此,闪存储存系统100将对物理区块a(S+1)中的数据进行更新,期间,控制器110会从备用区206a中提取物理区块a(S+M+1)来取代数据区204a的物理区块a(S+1)。然而,当将新数据写入至物理区块a(S+M+1)的同时,不会立刻将物理区块a(S+1)中的所有有效数据搬移至物理区块a(S+M+1)而抹除物理区块a(S+1)。具体来说,控制器110会将物理区块a(S+1)中欲写入页面地址之前的有效数据(即,页P0与P1)复制至物理区块a(S+M+1)(如图3B的(a)),并且将新数据(即,物理区块a(S+M+1)的页P2与P3)写入至物理区块a(S+M+1)(如图3B的(b))。此时,将含有部分的有效旧数据与所写入新数据的物理区块a(S+M+1)暂时地关联为替换物理区块208。此是因为物理区块a(S+1)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将物理区块a(S+1)中的所有有效数据搬移至替换物理区块a(S+M+1)可能会造成无谓的搬移。在此案例中,物理区块a(S+1)与替换物理区块a(S+M+1)的内容整合起来才是所映射逻辑区块a(1)的完整内容。此等母子区块(即,物理区块a(S+1)与替换物理区块a(S+M+1))的瞬时关系可依据控制器110中缓冲存储器110d的大小而定,例如一般会使用五组来实作。暂时地维持此种瞬时关系的操作一般可称为开启(open)母子区块。
[0076] 之后,当需要将物理区块a(S+1)与替换物理区块a(S+M+1)的内容真正合并时,控制器110才会将物理区块a(S+1)与替换物理区块a(S+M+1)整并为一个物理区块,由此提升区块的使用效率,此合并的操作又可称为关闭(close)母子区块。例如,如图3B的(c)所示,当进行关闭母子区块时,控制器110会将物理区块a(S+1)中剩余的有效数据(即,页P4~PN)复制至替换物理区块a(S+M+1),然后将物理区块a(S+1)抹除并关联为备用区206a,同时,将替换物理区块a(S+M+1)关联为数据区204a,并且在逻辑-物理映射表中将逻辑区块a1的映射更改为物理区块a(S+M+1),由此完成关闭母子区块的操作。在此,系统区
202a、数据区204a、备用区206a是第一区块面130a的物理区块的逻辑分组,以下将以系统区202b、数据区204b、备用区206b表示第二区块面130b的物理区块的逻辑分组。特别是,在本实施例中,控制器110会为闪存芯片130的第一区块面130a与第二区块面130b分别地维护一个独立的逻辑-物理映射表来记录上述的映射关系。也就是说,在本实施例中会记录与更新两个逻辑-物理映射表。
[0077] 此外,当以多区块面存取方式存取模式来进行编程(即,写入与抹除)时,上述在数据区204a与备用区206a之间轮替使用物理区块来写入数据的过程亦会使用物理单元为单位来进行。例如,如图4所示,倘若物理单元310-(S+1)的物理区块存有有效数据(即,物理单元310-(S+1)的物理区块a(S+1)与物理区块b(S+1)目前是分别关联为数据区204a与数据区204b,如图4的(a)所示)并且主机系统200下达写入指令来更新物理单元310-(S+1)的物理区块a(S+1)与物理区块b(S+1)中的数据时,控制器110会使用一个多区块面写入指令来写入数据(即,上述的多区块面存取模式)。也就是说,控制器110会通过多区块面写入指令来从第一区块面130a的备用区206a与第二区块面130b的备用区206b中提取构成一个物理单元的两个物理区块(例如,物理单元310-(S+M+1)的物理区块a(S+M+1)与物理区块b(S+M+1))来写入数据以替换物理单元310-(S+1)的物理区块a(S+1)与物理区块b(S+1)(如图4的(b)所示)。在此例子中,控制器110写入数据时是以物理单元为单位来进行如图3A与3B所述的轮替。在此,通过多区块面存取技术仅需执行一个指令就可对物理单元的两个物理区块进行编程,因此可加速数据存取的速度。此外,由于本实施例的区块管理方法是独立地管理每一区块面的物理区块,因此在进行多区块面存取时控制器110必须同时更新与维护两个逻辑-物理映射表。
[0078] 另外,在本实施中闪存芯片130亦可使用单区块面存取模式来仅存取物理单元中的其中一个物理区块(即第一区块面的物理区块或第二区块面的物理区块)。例如,如图5所示,倘若物理单元310-(S+1)的物理区块存有有效数据(即,物理单元310-(S+1)的物理区块a(S+1)与物理区块b(S+1)目前是分别关联为数据区204a与数据区204b,如图5的(a)所示)并且主机系统200下达写入指令来更新物理单元310-(S+1)中属于第一区块面130a的物理区块a(S+1)的数据时,控制器110会通过一个单区块面写入指令来从第一区块面130a的备用区206a中提取一个物理区块(例如,物理单元310-(S+M+1)中第一区块面130a的物理区块a(S+M+1))来写入数据以替换物理单元310-(S+1)中属于第一区块面
130a的物理区块a(S+1)(如图5的(b)所示)。在此例子中,由于本实施例的区块管理方法是独立地管理每一区块面的物理区块,因此在进行单区块面存取时控制器110仅需更新与维护其中一个对应的逻辑-物理映射表。
[0079] 值得一提的是,在执行单区块面写入指令时倘若主机系统200欲更新的物理单元目前是由具有可同时操作关系的两个物理区块所组成时,则在执行单区块面写入指令之后,储存新数据的物理单元的两个物理区块将不具有可同时操作关系,而此不具有可同时操作关系的物理区块所构成的物理单元在之后无法以多区块面存取模式进行存取而使得其存取速度会较慢。基此,在本发明另一实施例中所执行的区块管理方法更会在对不具有可同时操作关系的物理区块所构成的物理单元执行单区块面写入指令时会从备用区中优先提取可与此物理单元的另一物理区块具可同时操作关系的物理区块来写入数据,以使得此类物理单元又可恢复为可执行多区块面存取的物理单元。
[0080] 例如,在上述以单区块面写入方式写入数据至物理单元310-(S+1)的例子之后,因为物理单元310-(S+1)将变成由不具可同时操作关系的物理区块a(S+M+1)与物理区块b(S+1)所组成,所以控制器110无法对由物理区块a(S+M+1)与物理区块b(S+1)所组成的物理单元310-(S+1)执行多区块面存取。因此,在此状态下倘若之后主机系统200对物理单元310-(S+1)中第一区块面130a的物理区块a(S+M+1)进行更新时,控制器110会判断第一区块面130a的备用区206a中是否存有与物理区块b(S+1)具有可同时操作关系的物理区块(即,物理区块a(S+1))。倘若物理区块a(S+1)目前是关联为备用区206a(即,物理区块a(S+1)为空区块),则控制器110会提取物理区块a(S+1)来写入数据以替换物理区块a(S+M+1),此时物理单元310-(S+1)又可再度恢复为可执行多区块面存取的物理单元(如图5的(c)所示)。
[0081] 图6是根据本发明实施例绘示区块管理步骤的流程图,其中此些步骤是控制器110的微处理器单元110a执行存储器管理模块110b的机械指令所完成。必须了解的是,本发明所提出的区块管理步骤不限于图6所示的执行顺序,本领域技术人员可根据本发明的精神任意更动区块管理步骤的顺序。值得一提的是,由于多区块面的闪存芯片130仅会在写入数据时因上述搬移数据而使系统逾时,因此以下区块管理步骤仅描述针对写入指令的处理。对于读取指令或其它指令的处理则可依照一般已知的技术进行,在此不详细描述。
[0082] 请参照图6,在步骤S601中控制器110会配置多个物理单元,其中每一物理单元包括该第一区块面的其中一个物理区块与该第二区块面的其中一个物理区块。特别是,在闪存储存系统100出厂初始化(即,第一次启动)时控制器110会将具有可同时操作关系的物理区块规划为一个物理单元(如图2所示)。
[0083] 之后,在步骤S603中会等候与接收来自于主机系统200的写入指令与欲写入的数据,并且在步骤S605中会判断主机系统200是否仅更新物理单元的其中一个物理区块的数据。倘若在步骤S605中判断主机系统200仅更新物理单元的其中一个物理区块(例如,物理单元310-(S+1)中属于第一区块面130a的物理区块a(S+1))的数据时,则在步骤S607中会以单区块面存取模式来写入数据(如图5的(b)所示)。具体来说,在步骤S607中控制器110会执行单区块面写入指令来从欲更新的物理区块所属区块面(例如,第一区块面130a)的备用区中提取一个物理区块并且将有效旧数据与新数据写入至所提取的物理区块中(如图3B所示)。
[0084] 倘若在步骤S605中判断主机系统200欲更新物理单元的所有物理区块的数据时,则在步骤S609中会判断欲更新的物理单元中的物理区块是否具可同时操作关系。具体来说,在步骤S609中控制器110可依据快闪记存储器芯片130的规格书中关于多区块面存取指令的使用规定来判断。例如,倘若一物理区块地址为N时则具有可同时操作关系的物理区块地址为1024+N。
[0085] 倘若在步骤S609中判断欲更新的物理单元中的物理区块不具可同时操作关系时则在步骤S611中控制器110会执行单区块面写入指令来以物理区块为单位来写入数据。也就是说,在步骤S611中会以两个单区块面写入指令来执行图3A与3B的操作来将数据分别地写入至两个物理区块中。
[0086] 倘若在步骤S609中判断欲更新物理单元中目前的物理区块具可同时操作关系,则在步骤S613中控制器110会以多区块面存取模式来写入数据。具体来说,在步骤S613中控制器110会执行一个多区块面写入指令来从第一区块面130a与第二区块面130b的备用区206a与206b中分别地提取具有可同时操作关系的物理区块并且将有效旧数据与新数据写入至所提取的物理区块中(如图4的(b)所示)。
[0087] 之后在步骤S615中会更新与维护逻辑-物理映射表。最后,区块管理步骤会返回至步骤S603中等待下一个写入指令。虽未绘示于图6中,但本领域技术人员可轻易了解图6的区块管理步骤会在接收到关机或电源中断指令后结束。
[0088] 值得一提的是,如上所述由于物理单元可能因前次执行单区块面写入后而使得构成此物理单元的物理区块不具可同时操作关系。因此,在本发明另一实施中,步骤S607中还包括在从备用区中提取物理区块时,判断备用区中是否存有与欲更新物理单元中其它物理区块具可同时操作关系的物理区块,并且倘若存有此物理区块时提取此物理区块来写入数据。基此,可将原先因执行单区块面写入后无法执行多区块面存取的物理单元恢复为可执行多区块面存取。
[0089] 此外,本实施例是以一个具有两个区块面的闪存芯片为例来进行说明,然而本发明的区块管理方法亦可应用于具有超过两个区块面的闪存芯片。
[0090] 综上所述,本发明所提出的区块管理方法是在具多区块面的闪存芯片中独立地为每一区块面管理各自的逻辑-物理映射表,并且依据欲写入数据的地址来决定使用单区块面写入指令或多区块面写入指令。因此,可减少因使用多区块面存取技术时造成不必要的数据搬移操作而缩短响应时间,由此避免上述逾时问题。
[0091] 虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。