CN102479154B - 用来进行超区块管理的方法、记忆装置及其控制器 - Google Patents
用来进行超区块管理的方法、记忆装置及其控制器 Download PDFInfo
- Publication number
- CN102479154B CN102479154B CN201010566447.7A CN201010566447A CN102479154B CN 102479154 B CN102479154 B CN 102479154B CN 201010566447 A CN201010566447 A CN 201010566447A CN 102479154 B CN102479154 B CN 102479154B
- Authority
- CN
- China
- Prior art keywords
- block
- superzone
- blank
- mapping table
- super
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Memory System (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种用来进行超区块管理的方法,该方法应用于具有多通道的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,该方法包含有:利用一超区块映像表储存分别对应于多个超区块的区块分组关系,其中每一超区块中的区块分别对应于该些通道;以及当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,依据该超区块映射表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用。依据本发明所实现的超区块管理可提升具有多通道的闪存的整体的通道频宽;本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
Description
技术领域
本发明涉及关于具有多通道的闪存(Flash Memory)的存取(Access),更具体地说,涉及一种用来进行超区块(Meta Block)管理的方法以及相关的记忆装置及其控制器。
背景技术
近年来由于闪存的技术不断地发展,各种可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)或具备闪存的固态硬盘(Solid State Drive,SSD)被广泛地实施于诸多应用中。因此,这些记忆装置中的闪存的存取控制遂成为相当热门的议题。
以常用的NAND型闪存而言,其主要可区分为单阶细胞(Single Level Cell,SLC)与多阶细胞(Multiple Level Cell,MLC)两大类的闪存。单阶细胞闪存中的每个被当作记忆单元的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多阶细胞闪存中的每个被当作记忆单元的晶体管的储存能力则被充分利用,采用较高的电压来驱动,以透过不同级别的电压在一个晶体管中记录两组(或以上)位信息(00、01、11、10);理论上,多阶细胞闪存的记录密度可以达到单阶细胞闪存的记录密度的两倍,这对于曾经在发展过程中遇到瓶颈的NAND型闪存的相关产业而言,是非常好的消息。
相较于单阶细胞闪存,由于多阶细胞闪存的价格较便宜,并且在有限的空间里可提供较大的容量,故多阶细胞闪存很快地成为市面上的可携式记忆装置竞相采用的主流。然而,多阶细胞闪存的不稳定性所导致的问题也一一浮现。为了确保记忆装置对闪存的存取控制能符合相关规范,闪存的控制器通常备有某些管理机制以妥善地管理数据的存取。
依据相关技术,有了这些管理机制的记忆装置还是有不足之处。例如:相关技术的管理机制无法保证在具有多通道的闪存中的各个信道的信道频宽;又例如:相关技术在进行随机写入之后的循序读取的效能甚差。因此,需要一种新颖的方法来进行超区块管理,以增进闪存的存取效能。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述在具有多通道的细胞闪存中的各个信道的信道频宽易导致随机写入之后的循序读取的效能甚差的缺陷,提供一种用来进行超区块(Meta Block)管理的方法以及相关的记忆装置及其控制器,以解决上述问题。
本发明的另一目的在于提供一种用来进行超区块管理的方法以及相关的记忆装置及其控制器,以增进闪存(Flash Memory)的存取效能。
本发明解决其技术问题所采用的技术方案之一是:构造一种用来进行超区块管理的方法,该方法应用于具有多通道(Channel)的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,闪存包括备用区,被分类于所述备用区的任一超区块为空白的超区块,该方法包含有:利用一超区块(Meta Block)映像表储存分别对应于多个超区块的区块分组关系,其中每一超区块中的区块分别对应于该些通道;以及当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
尤其是,基于预定的逻辑地址与信道的映像关系,在该控制器运作于页模式(Page Mode)的状况下,采用该方法的该控制器可动态地(Dynamically)进行超区块管理,以增进该闪存的存取效能。
上述本发明所述的方法,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;以及利用该至少一其它超区块当中对应于该特定通道的该至少一空白区块作为该特定区块的延伸以供进一步写入之用的步骤另包含:
利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
上述本发明所述的方法,其中利用该至少一其它超区块当中对应于该特定通道的该至少一空白区块作为该特定区块的延伸以供进一步写入之用的步骤另包含:
在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
上述本发明所述的方法,其另包含有:
当该特定区块所属的该超区块当中的每一区块均被完全写入时,将其内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块之映像信息。
上述本发明所述的方法,其另包含有:
将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及
将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
上述本发明所述的方法,其另包含有:
依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
上述本发明所述的方法,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
本发明解决其技术问题所采用的技术方案之二是:构造一种记忆装置,其包含有:具有多通道的一闪存,该闪存包含备用区以及分别对应于该些通道的多个区块,被分类于所述备用区的任一超区块为空白的超区块;以及一控制器,用来存取(Access)该闪存以及管理该多个区块。另外,该控制器利用一超区块映像表储存分别对应于多个超区块的区块分组关系,而每一超区块中的区块分别对应于该些通道。此外,当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,该控制器在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;其中在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,该控制器在所述备用区内寻找其它超区块,并依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
尤其是,基于预定的逻辑地址与信道之映像关系,在该控制器运作于页模式的状况下,该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
上述本发明所述的记忆装置,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;该控制器利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
上述本发明所述的记忆装置,其中在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,该控制器依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
上述本发明所述的记忆装置,其中当该特定区块所属的该超区块当中的每一区块均被完全写入时,该控制器将其内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块的映像信息。
上述本发明所述的记忆装置,其中该控制器将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及该控制器将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
上述本发明所述的记忆装置,其中该控制器依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
上述本发明所述的记忆装置,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
本发明解决其技术问题所采用的技术方案之三是:构造
一种用来进行超区块管理的装置,该装置用来存取具有多通道的一闪存,其特征在于,该闪存包含备用区以及分别对应于该些通道的多个区块,被分类于所述备用区的任一超区块为空白的超区块,该装置包含有:
一
区块分组关系存储单元,用于利用一超区块映像表储存分别对应于多个超区块的区块分组关系,其中每一超区块中的区块分别对应于该些通道;
管理单元,用于在侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;其中在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
其中基于预定的逻辑地址与信道的映像关系,在该控制器运作于页模式的状况下,该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
上述本发明所述的控制器,其中在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,该管理单元依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
上述本发明所述的控制器,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;该管理单元利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
上述本发明所述的控制器,其中在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,该管理单元依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
上述本发明所述的控制器,其中当该特定区块所属的该超区块当中的每一区块均被完全写入时,该管理单元将该超区块内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块的映像信息。
上述本发明所述的控制器,还包括:
超区块映像表存储单元,用于将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
上述本发明所述的控制器,还包括:
调整单元,用于依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
上述本发明所述的控制器,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
本发明解决其技术问题所采用的技术方案之四是:构造一种用来进行超区块管理的方法,该方法应用于具有多通道的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,该方法包含有:利用该闪存中的一数据区、一备用区(Spare Region)、与一动态区(Active Region)针对多个超区块的使用状态对该些超区块进行分类,其中该些超区块代表该些区块的区块分组关系,而每一超区块中的区块分别对应于该些通道,且被分类于资料区的任一超区块并非空白超区块,并且被分类于该备用区的任一超区块为空白超区块;以及当需要新的空白超区块以供写入时,将一超区块从该备用区提取(Pop)至该动态区,以进行写入运作;其中,当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;尤其是,在该控制器运作于页模式的状况下,通过对该些超区块进行分类,采用该方法的该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
实施本发明的技术方案,具有以下有益效果:依据本发明所实现的超区块管理可提升具有多通道的闪存的整体的通道频宽。
另外,本发明不会有过度使用某一通道的问题。相较于相关技术,本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
附图说明
下面将结合附图及实施例对本发明作进一步说明,附图中:
图1A为依据本发明一第一实施例的一种记忆装置的示意图;
图1B为图1A所示的记忆装置于一实施例中的实施细节;
图1C为图1A所示的记忆装置于一实施例中所涉及的预定的逻辑地址与信道的映像关系;
图2为依据本发明一实施例的一种用来进行超区块管理的方法的流程图;
图3A至图3C为图2所示的方法于一实施例中的实施细节;
图4A至图4B为图2所示的方法于另一实施例中的实施细节;
图5A至图5C为图2所示的方法于另一实施例中的实施细节。
【主要组件符号说明】
具体实施方式
请参考图1A,图1A为依据本发明一第一实施例的一种记忆装置100的示意图,其中本实施例的记忆装置100尤其可为可携式记忆装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡)、或固态硬盘(SSD,Solid State Drive)。记忆装置100包含有:一闪存(Flash Memory)120,其包含至少一信息区块(Block)120B;以及一控制器,用来存取(Access)闪存120,其中该控制器例如一内存控制器110。依据本实施例,内存控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、至少一缓冲存储器116、与一接口逻辑118。另外,本实施例的只读存储器112M用来储存一程序代码112C,而微处理器112则用来执行程序代码112C以控制对闪存120的存取。请注意到,程序代码112C也得储存在缓冲存储器116或任何形式的内存内。
如图1A所示,上述的至少一信息区块120B可用来储存关于区块管理的信息,尤其是一超区块(Meta Block)映射表120M。依据本实施例,缓冲存储器116包含一缓冲器Buf(1)。例如:缓冲器Buf(1)可为缓冲存储器116中的多个缓冲区域的一缓冲区域。又例如:上述的至少一缓冲存储器116包含多个缓冲存储器,该些缓冲存储器中之一个可用来实施缓冲器Buf(1)。在本实施例中,上述的控制器(例如:透过微处理器112执行程序代码112C的内存控制器110)可将超区块映像表120M的一先前版本储存于闪存120,并将超区块映像表120M的一复制版本储存于缓冲器Buf(1),以供动态地更新超区块映射表120M。另外,该控制器可将缓冲器Buf(1)当中超区块映像表120M的最新版本储存至闪存120,以取代超区块映像表120M的该先前版本。
图1B为图1A所示的记忆装置100在一实施例中的实施细节。如图1B所示,上述的闪存120包含多个闪存芯片诸如闪存芯片120-0、120-1、…、与120-(N-1),其中闪存120具有多信道(Channel)诸如信道Ch(0)、Ch(1)、…、与Ch(N-1),而该些闪存芯片诸如闪存芯片120-0、120-1、…、与120-(N-1)分别属于该些通道。在典型状况下,除了上述的至少一信息区块120B,闪存120另包含分别对应于该些通道的多个区块。闪存芯片执行抹除(Erase)运作时,最小的抹除单位得以区块为单位来进行抹除。而在本实施例中,该控制器以一超区块为单位对闪存芯片进行抹除。另外,一区块可记录特定数量的页(Page),其中该控制器对每一闪存芯片进行写入时,最小的写入单位系以页为单位来进行写入。
实作上,透过微处理器112执行程序代码112C的内存控制器110可利用其本身内部的组件来进行诸多控制运作,例如:利用控制逻辑114来控制每一闪存芯片的存取运作(尤其是对至少一区块或至少一页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主装置(HostDevice)沟通。
除了能存取闪存120,该控制器还能妥善地管理上述的多个区块。图1C为图1A所示的记忆装置100在一实施例中所涉及的预定的逻辑地址与信道的映像关系。尤其是,该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。依据本实施例,该控制器可运作在页模式(Page Mode)的状况下,不论该主装置指定记忆装置100写入的数据的逻辑地址(Logical Address)分布在哪些地址,该控制器基于图1C所示的安排,能在进行随机写入之后的循序读取时达到极佳的效能。尤其是,在该控制器运作在页模式的状况下,该控制器可将逻辑地址不连续分布(或随机分布)的数据一页一页地写入同一实体区块(Physical Block),也可以将属于同一页的不同版本的更新数据一页一页地写入于一个或多个实体区块中的多个实体页,并记录关于这些实体页当中哪一实体页是最新版本的更新数据的信息。同一实体区块的任意两个实体页所储存的数据的逻辑地址可能相差很大,其逻辑地址差距可能大过于一个实体区块所包含的实体页数量。例如,某一实体区块包含256个实体页,而该实体区块中的一实体页的所储存的数据其逻辑页地址为0x0000,而该实体区块中另一实体页的所储存的数据其逻辑页地址为0x2000,两者的逻辑地址差异大于256。如图1C所示,给定符号n代表非负数的整数,逻辑页地址0x0000、0x0004、0x0008……0x(4n)……映像至通道Ch(0)上的闪存芯片120-0,属于上述逻辑地址的数据应储存至信道Ch(0)上的闪存芯片120-0。逻辑页地址0x0001、0x0005、0x0009……0x(4n+1)……映像至通道Ch(1)上的闪存芯片120-1,属于上述逻辑地址的数据应储存至信道Ch(1)上的闪存芯片120-1。逻辑页地址0x0002、0x0006、0x0010……0x(4n+2)……映像至通道Ch(2)上的闪存芯片120-2,属于上述逻辑地址的数据应储存至信道Ch(2)上的闪存芯片120-2。逻辑页地址0x0003、0x0007、0x0011……0x(4n+3)……映像至通道Ch(3)上的闪存芯片120-3,属于上述逻辑地址的数据应储存至信道Ch(3)上的闪存芯片120-3。换言之,单一闪存芯片上,任意两个实体页其所映像的逻辑页地址的差异为该记忆装置中信道总数的整数倍。举例来说,主装置向记忆装置100发出一第一写入指令,命其写入逻辑页地址0x0000的数据D0。内存控制器110收到该第一写入指令便将数据D0写入信道Ch(0)上的闪存芯片120-0的一实体区块(例如第一实体区块)上的一空白记忆页(例如第一实体记忆页)。随后,主装置向记忆装置100发出一第二写入指令,命其写入逻辑页地址0x2000的数据D2000。内存控制器110收到该第二写入指令便将数据D2000写入信道Ch(0)上的闪存芯片120-0的第一实体区块上的另一空白记忆页(例如第二实体记忆页)。逻辑页地址0x0000与0x2000的差异为通道数(在此实施例中通道总数为4)的整数倍。换言之,同一信道上的逻辑页地址的差异与信道数有关。此外,第一实体记忆页与第二实体记忆页相邻的实体记忆页。且在实体记忆页地址分布上,第二实体记忆页仅次于第一实体记忆页。
基于上述预定的逻辑地址与信道的映像关系,诸如图1C所揭露的逻辑页地址与信道的映像关系,在该控制器运作在页模式的状况下,该控制器可动态地进行超区块管理,以增进闪存的存取效能。尤其是,该控制器可将上述的多个区块动态地分组(Group)至多个超区块诸如超区块M(0)、M(1)、M(2)、…等,并且动态地更新超区块映像表120M,以供用来作为存取资料时的参考,其中该些超区块代表该些区块的区块分组关系,而每一超区块中的区块分别对应于该些通道。请参考图2,相关细节进一步说明如下。
图2为依据本发明一实施例的一种进行超区块管理的方法910的流程图。该方法可应用于在图1A至图1B所示的各个实施例(及相关的变化例)中的任一个当中的记忆装置100,尤其是具有多通道的闪存120的控制器诸如上述的控制器(例如:透过微处理器112执行程序代码112C的内存控制器110)。该方法说明如下:
在步骤912中,该控制器利用上述的超区块映像表120M储存分别对应于多个超区块诸如超区块M(0)、M(1)、M(2)、…等的区块分组关系,其中每一超区块中的区块分别对应于该些信道诸如信道Ch(0)、Ch(1)、…、与Ch(N-1)。实作上,该控制器可记录各个超区块M(0)、M(1)、M(2)、…等的使用状态,尤其是利用超区块映像表120M来记录这些超区块M(0)、M(1)、M(2)、…等的使用状态。例如:超区块映像表120M中所记录的该些使用状态可分别指出这些超区块M(0)、M(1)、M(2)、…等是否为空白超区块(例如:已抹除完毕、而尚未被写入的超区块)。
在步骤914中,当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,该控制器依据超区块映射表120M,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用。例如:超区块映像表120M中所记录的该些使用状态可分别指出这些超区块M(0)、M(1)、M(2)、…等是否为空白超区块,而该控制器可据以上述的至少一其它超区块。如此,基于上述预定的逻辑地址与信道的映像关系,在该控制器运作在页模式的状况下,该控制器(例如:透过微处理器112执行程序代码112C的内存控制器110)可动态地进行超区块管理,以增进闪存的存取效能。
图3A至图3C为图2所示的方法910在一实施例中的实施细节。如图3A所示,在通道Ch(0)、Ch(1)、…、与Ch(N-1)的数量N等于4的状况下,各个通道Ch(0)、Ch(1)、Ch(2)、与Ch(3)当中的各个区块可分别以索引0、1、2、3、…、(K-3)、(K-2)、与(K-1)来表示,其中符号「X」在图3A中可用来代表坏区块。该控制器可将这些索引所代表的好区块动态地分组至超区块M(0)、M(1)、M(2)、…等,并舍弃这些坏区块而不予采用。请注意,这些索引可对应于实体区块地址。这只是为了说明的目的而已,并非对本发明的限制。依据本实施例的一变化例,这些索引可代表分别属于相对应信道的实体区块地址。
如图3B所示,因应图3A所示的分组运作,该控制器对应地将分组的区块的索引暂时地储存于超区块映像表120M。例如:超区块M(0)包含分别对应于通道Ch(0)、Ch(1)、Ch(2)、与Ch(3)的区块B0(0)、B1(0)、B2(0)、与B3(1),故该控制器将分组的区块B0(0)、B1(0)、B2(0)、与B3(1)的索引{0,0,0,1}暂时地储存在超区块映像表120M当中对应于超区块M(0)的各个字段。又例如:超区块M(1)包含分别对应于通道Ch(0)、Ch(1)、Ch(2)、与Ch(3)的区块B0(1)、B1(2)、B2(1)、与B3(2),故该控制器将分组的区块B0(1)、B1(2)、B2(1)、与B3(2)的索引{1,2,1,2}暂时地储存于超区块映像表120M当中对应于超区块M(1)的各个字段。又例如:超区块M(2)包含分别对应于通道Ch(0)、Ch(1)、Ch(2)、与Ch(3)的区块B0(3)、B1(3)、B2(3)、与B3(3),故该控制器将分组的区块B0(3)、B1(3)、B2(3)、与B3(3)的索引{3,3,3,3}暂时地储存于超区块映像表120M当中对应于超区块M(2)的各个字段。
另外,如图3C所示,该控制器可利用闪存120中的一数据区120D、一备用区(Spare Region)120S、与一动态区(Active Region)120A针对超区块M(0)、M(1)、M(2)、…等的使用状态对该些超区块进行分类,其中数据区120D、备用区120S、与动态区120A代表逻辑上的区域划分,而非实体上的区域划分。请注意,被分类在资料区120D的任一超区块并非空白超区块,而被分类于备用区120S的任一超区块为空白超区块。例如:针对超区块M(0)、M(1)、M(2)、…等中的任一超区块M(k)(在本实施例中,k代表非负数的整数),当侦测到此超区块M(k)中的每一区块已无剩余可写入空间时,该控制器将超区块M(k)推入(Push)资料区120D;如此,当所考虑的这个超区块M(k)被分类在资料区120D时,这表示此超区块M(k)并非空白超区块(也就是,超区块M(k)已被使用)。经过某些运作之后,当侦测到此超区块M(k)中的每一区块已无有效页(Valid Page)时,也就是超区块M(k)的每一区块均无有效数据,则该控制器将超区块M(k)抹除并分类至备用区120S;如此,当所考虑的这个超区块M(k)被分类至备用区120S时,这表示此超区块M(k)为空白超区块(也就是,超区块M(k)在最近一次抹除之后未被使用)。于是,当需要新的空白超区块以供写入时,该控制器可将超区块M(k)从备用区120S提取(Pop)至动态区120A,以进行写入运作;如此,当所考虑的这个超区块M(k)被分类至动态区120A时,这表示此超区块M(k)随时可供该控制器进行写入。在该控制器运作在页模式的状况下,通过对该些超区块进行分类(例如图3C所揭露的分类运作),该控制器可动态地进行超区块管理,以增进闪存120的存取效能。关于该控制器对动态区120A内的超区块所进行的运作的相关细节进一步说明如下。
图4A至图4B为2图所示的方法910在另一实施例中的实施细节,其中本实施例为图3A至图3C所示实施例的变化例。如图4A所示,各区块当中以阴影绘示的部分代表目前已被写入资料的部分。例如:在对应于通道Ch(1)之区块B1(0)为超区块M(0)当中首先被完全写入(即无剩余可写入空间/页面)的区块的状况下,在本实施例中所考虑的对应于该特定通道的该特定区块可为对应于通道Ch(1)的区块B1(0)。如图4B所示,当侦测到超区块M(0)当中对应于通道Ch(1)的区块B1(0)被完全写入时,该控制器在备用区120S内寻找已抹除完毕、而尚未被写入的其它空白超区块,并依据超区块映射表120M,利用至少一其它超区块诸如超区块M(1)当中对应于通道Ch(1)的至少一空白区块诸如区块B1(2)作为区块B1(0)的延伸,以供进一步写入之用。尤其是,在对应于通道Ch(1)的该至少一空白区块诸如区块B1(2)被利用作为区块B1(0)的延伸的状况下,该控制器依据超区块映射表120M,利用该至少一其它超区块诸如超区块M(1)当中对应于至少一其它通道的至少一空白区块(例如:分别对应于通道Ch(0)、Ch(2)、与Ch(3)的区块B0(1)、B2(1)、与B3(2)),作为区块B1(0)所属的超区块M(0)当中对应于该至少一其它通道的至少一其它区块(例如:分别对应于通道Ch(0)、Ch(2)、与Ch(3)的区块B0(0)、B2(0)、与B3(1))的延伸,以供进一步写入之用。如此一来,可将超区块M(0)、M(1)视为一超区块集团(Meta Block Group)。
广义而言,上述的至少一其它超区块可包含多个超区块。例如:在图5A至图5C所示实施例中,上述的至少一其它超区块可包含一第一超区块诸如超区块M(1)与一第二超区块诸如超区块M(2);尤其是,上述的至少一空白区块可包含一第一空白区块诸如区块B1(2)与一第二空白区块诸如区块B1(3)。如此,该控制器利用超区块M(1)当中对应于通道Ch(1)的区块B1(2)作为区块B1(0)的延伸,并且利用超区块M(2)当中对应于通道Ch(1)的区块B1(3)作为区块B1(0)的延伸。另外,在该第一空白区块与该第二空白区块诸如区块B1(2)与B1(3)被利用作为该特定区块诸如区块B1(0)的延伸的状况下,该控制器另可依据超区块映射表120M,利用超区块M(1)当中对应于至少一其它通道的至少一空白区块(例如:分别对应于通道Ch(0)、Ch(2)、与Ch(3)的区块B0(1)、B2(1)、与B3(2))、以及超区块M(2)当中对应于该至少一其它通道的至少一空白区块(例如:分别对应于通道Ch(0)、Ch(2)、与Ch(3)的区块B0(3)、B2(3)、与B3(3)),作为区块B1(0)所属的超区块M(0)当中对应于该至少一其它通道的至少一其它区块(例如:分别对应于通道Ch(0)、Ch(2)、与Ch(3)的区块B0(0)、B2(0)、与B3(1))的延伸,以供进一步写入之用。
为了便于理解,在本实施例(即图5A至图5C所示的实施例)中所考虑的对应于该特定通道之该特定区块可动态地由区块B1(0)改成另一区块诸如区块B2(1)。例如:在对应于通道Ch(2)的区块B2(1)为超区块M(1)当中首先被完全写入的区块的状况下,在图4A至图4B所示实施例当中针对区块B1(0)的说明可应用于本实施例的区块B2(1)。请注意,超区块M(2)可视为该超区块集团中的新成员,其中区块B0(3)、B1(3)、B2(3)、与B3(3)也可分别视为区块B0(1)、B1(2)、B2(1)、与B3(2)的延伸。本实施例与前述各个实施例/变化例相仿之处不再重复赘述。
依据本实施例的一变化例,该控制器可依据该主装置所导致的至少一存取特性,动态地调整步骤914所述的至少一其它超区块的数量。例如:针对该主装置所触发的一系列随机写入运作,该控制器在使用单一超区块诸如图4A所示的超区块M(0)时,可能无法均匀地在各个通道进行写入。然而,在使用多个超区块诸如超区块M(0)、M(1)、与M(2)的状况下,该系列随机写入运作所导致的各个信道的累积写入数据量之间的差异可被降低。于是,当图5C所示的超区块M(2)当中对应于通道Ch(0)的区块B0(3)被完全写入时,同一超区块M(2)中的其它区块B1(3)、B2(3)、与B3(3)几乎可达到完全写入的状态。本变化例与前述各个实施例/变化例相仿之处不再重复赘述。
依据本实施例的另一变化例,当步骤914所述的该特定区块所属的该超区块当中的每一区块均被完全写入时,该控制器可将其内的有效数据储存在上述的至少一其它超区块,并且动态地更新超区块映像表120M以移除该特定区块所属的该超区块的映像信息。例如:当区块B1(0)所属的超区块M(0)当中的每一区块(区块B0(0)、区块B1(0)、区块B2(0)、区块B3(1))均被完全写入时,该控制器可将超区块M(0)移除在其所属的超区块集团之外,此外,该控制器可将超区块M(0)内的有效数据储存在上述的至少一其它超区块诸如超区块M(Z)(在本实施例中,Z代表正整数),以使超区块M(0)得被抹除为空白超区块以利重新被使用。并且,控制器得动态地更新超区块映射表120M以移除区块B1(0)所属的超区块M(0)的映像信息。本变化例与前述各个实施例/变化例相仿之处不再重复赘述。
本发明的好处之一是,依据本发明所实现的超区块管理可提升具有多通道的闪存的整体的通道频宽。另外,本发明不会有过度使用某一通道的问题。相较于相关技术,本发明在不大幅地增加芯片面积及相关成本的状况下就能达到兼顾运作效能与系统资源使用控管的目标。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (22)
1.一种用来进行超区块管理的方法,该方法应用于具有多通道的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,其特征在于,闪存包括备用区,被分类于所述备用区的任一超区块为空白的超区块,该方法包含有:
利用一超区块映像表储存分别对应于多个超区块的区块分组关系,其中每一超区块中的区块分别对应于该些通道;以及
当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
其中基于预定的逻辑地址与信道的映像关系,在该控制器运作于页模式的状况下,采用该方法的该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
2.根据权利要求1所述的方法,其特征在于,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;以及利用该至少一其它超区块当中对应于该特定通道的该至少一空白区块作为该特定区块的延伸以供进一步写入之用的步骤另包含:
利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
3.根据权利要求2所述的方法,其特征在于,其中利用该至少一其它超区块当中对应于该特定通道的该至少一空白区块作为该特定区块的延伸以供进一步写入之用的步骤另包含:
在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
4.根据权利要求1所述的方法,其特征在于,其另包含有:
当该特定区块所属的该超区块当中的每一区块均被完全写入时,将其内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块的映像信息。
5.根据权利要求1所述的方法,其特征在于,其另包含有:
将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及
将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
6.根据权利要求1所述的方法,其特征在于,其另包含有:
依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
7.根据权利要求1所述的方法,其特征在于,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
8.一种记忆装置,其特征在于,其包含有:
具有多通道的一闪存,该闪存包含备用区以及分别对应于该些通道的多个区块,被分类于所述备用区的任一超区块为空白的超区块;以及
一控制器,用来存取该闪存以及管理该多个区块,其中该控制器利用一超区块映像表储存分别对应于多个超区块的区块分组关系,而每一超区块中的区块分别对应于该些通道,以及当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,该控制器在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;其中在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,该控制器在所述备用区内寻找其它超区块,并依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
其中基于预定的逻辑地址与信道的映像关系,在该控制器运作于页模式的状况下,该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
9.根据权利要求8所述的记忆装置,其特征在于,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;该控制器利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
10.根据权利要求9所述的记忆装置,其特征在于,其中在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,该控制器依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
11.根据权利要求8所述的记忆装置,其特征在于,其中当该特定区块所属的该超区块当中的每一区块均被完全写入时,该控制器将其内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块的映像信息。
12.根据权利要求8所述的记忆装置,其特征在于,其中该控制器将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及该控制器将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
13.根据权利要求8所述的记忆装置,其特征在于,其中该控制器依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
14.根据权利要求8所述的记忆装置,其特征在于,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
15.一种用来进行超区块管理的控制器,该控制器用来存取具有多通道的一闪存,其特征在于,该闪存包含备用区以及分别对应于该些通道的多个区块,被分类于所述备用区的任一超区块为空白的超区块,该控制器包含有:
区块分组关系存储单元,用于利用一超区块映像表储存分别对应于多个超区块的区块分组关系,其中每一超区块中的区块分别对应于该些通道;
管理单元,用于在侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;其中在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
其中基于预定的逻辑地址与信道的映像关系,在该控制器运作于页模式的状况下,该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
16.根据权利要求15所述的控制器,其特征在于,其中该至少一其它超区块包含一第一超区块与一第二超区块,且该至少一空白区块包含一第一空白区块与一第二空白区块;该管理单元利用该第一空白区块与该第二空白区块作为该特定区块的延伸。
17.根据权利要求16所述的控制器,其特征在于,其中在该第一空白区块与该第二空白区块被利用作为该特定区块的延伸的状况下,该管理单元依据该超区块映像表,利用该第一超区块当中对应于至少一其它通道的至少一空白区块、以及该第二超区块当中对应于该至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用。
18.根据权利要求15所述的控制器,其特征在于,其中当该特定区块所属的该超区块当中的每一区块均被完全写入时,该管理单元将该超区块内的有效数据储存于该至少一其它超区块,并且动态地更新该超区块映像表以移除该特定区块所属的该超区块的映像信息。
19.根据权利要求15所述的控制器,其特征在于,还包括:
超区块映像表存储单元,用于将该超区块映像表的一先前版本储存于该闪存,并将该超区块映像表的一复制版本储存于该控制器的一缓冲器,以供动态地更新该超区块映像表;以及将该缓冲器当中该超区块映像表的最新版本储存至该闪存,以取代该超区块映像表的该先前版本。
20.根据权利要求15所述的控制器,其特征在于,还包括:
调整单元,用于依据一主装置所导致的至少一存取特性,动态地调整该至少一其它超区块的数量。
21.根据权利要求15所述的控制器,其特征在于,其中该预定的逻辑地址与信道的映像关系代表多个逻辑页地址与该些信道之间的预定映像关系。
22.一种用来进行超区块管理的方法,该方法应用于具有多通道的闪存的控制器,该闪存包含分别对应于该些通道的多个区块,其特征在于,该方法包含有:
利用该闪存中的一数据区、一备用区、与一动态区针对多个超区块的使用状态对该些超区块进行分类,其中该些超区块代表该些区块的区块分组关系,而每一超区块中的区块分别对应于该些通道,且被分类于资料区的任一超区块并非空白超区块,并且被分类于该备用区的任一超区块为空白超区块;以及
当需要新的空白超区块以供写入时,将一超区块从该备用区提取至该动态区,以进行写入运作;其中,当侦测到一超区块当中对应于一特定通道的一特定区块无剩余可写入空间时,在所述备用区内寻找其它超区块,并依据该超区块映像表,利用至少一其它超区块当中对应于该特定通道的至少一空白区块作为该特定区块的延伸,以供进一步写入之用;在对应于该特定通道的该至少一空白区块被利用作为该特定区块的延伸的状况下,依据该超区块映像表,利用该至少一其它超区块当中对应于至少一其它通道的至少一空白区块,作为该特定区块所属的该超区块当中对应于该至少一其它通道的至少一其它区块的延伸,以供进一步写入之用;
其中在该控制器运作于页模式的状况下,通过对该些超区块进行分类,采用该方法的该控制器可动态地进行超区块管理,以增进该闪存的存取效能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010566447.7A CN102479154B (zh) | 2010-11-30 | 2010-11-30 | 用来进行超区块管理的方法、记忆装置及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010566447.7A CN102479154B (zh) | 2010-11-30 | 2010-11-30 | 用来进行超区块管理的方法、记忆装置及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102479154A CN102479154A (zh) | 2012-05-30 |
CN102479154B true CN102479154B (zh) | 2015-03-11 |
Family
ID=46091806
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010566447.7A Active CN102479154B (zh) | 2010-11-30 | 2010-11-30 | 用来进行超区块管理的方法、记忆装置及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102479154B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI570559B (zh) * | 2015-12-28 | 2017-02-11 | 點序科技股份有限公司 | 快閃記憶體及其存取方法 |
CN108717395B (zh) * | 2018-05-18 | 2021-07-13 | 记忆科技(深圳)有限公司 | 一种降低动态块映射信息占用内存的方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
-
2010
- 2010-11-30 CN CN201010566447.7A patent/CN102479154B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1930635A (zh) * | 2003-12-30 | 2007-03-14 | 桑迪士克股份有限公司 | 对多个区块进行适应性确定群组以成为多个多区块单元 |
Also Published As
Publication number | Publication date |
---|---|
CN102479154A (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI425357B (zh) | 用來進行區塊管理之方法以及記憶裝置及控制器 | |
US9098395B2 (en) | Logical block management method for a flash memory and control circuit storage system using the same | |
CN1902599B (zh) | 将数据更新到非易失性存储器系统和操作该系统的方法 | |
US8484406B2 (en) | Method of evenly using a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
US8244966B2 (en) | Self-adaptive control method for logical strips based on multi-channel solid-state non-volatile storage device | |
US8244965B2 (en) | Control method for logical strips based on multi-channel solid-state non-volatile storage device | |
CN101777026B (zh) | 一种存储管理方法、硬盘及存储系统 | |
US8656090B2 (en) | Method for performing block management, and associated memory device and controller thereof | |
US7610465B2 (en) | Method and related apparatus for data migration utilizing disk arrays | |
US8892812B2 (en) | Flash memory device and data writing method for a flash memory | |
CN103246609B (zh) | 一种闪存存储设备中冷热数据区分管理的方法及装置 | |
CN104346357A (zh) | 一种嵌入式终端的文件存取方法及系统 | |
CN106227471A (zh) | 固态硬盘和应用于固态硬盘的数据存取方法 | |
CN101556555B (zh) | 用于闪存的区块管理方法、其控制器与储存系统 | |
CN101499315B (zh) | 快闪存储器平均磨损方法及其控制器 | |
US9235501B2 (en) | Memory storage device, memory controller thereof, and method for programming data thereof | |
US20110093649A1 (en) | Method for managing a plurality of blocks of a flash memory, and associated memory device and controller thereof | |
TWI435216B (zh) | 用來進行超區塊管理之方法以及記憶裝置及控制器 | |
CN102479154B (zh) | 用来进行超区块管理的方法、记忆装置及其控制器 | |
CN103246615A (zh) | 一种闪存存储设备中数据管理的方法及装置 | |
US8364894B2 (en) | Data update method and flash memory apparatus utilizing a cache block | |
CN102479156B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 | |
CN102479157B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 | |
CN102637146B (zh) | 用来进行区块管理的方法、记忆装置及其控制器 | |
CN102236584B (zh) | 用来抑制数据错误的方法以及相关的记忆装置及其控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |