CN102110056B - 闪存管理方法、闪存控制器与闪存存储系统 - Google Patents
闪存管理方法、闪存控制器与闪存存储系统 Download PDFInfo
- Publication number
- CN102110056B CN102110056B CN 200910262376 CN200910262376A CN102110056B CN 102110056 B CN102110056 B CN 102110056B CN 200910262376 CN200910262376 CN 200910262376 CN 200910262376 A CN200910262376 A CN 200910262376A CN 102110056 B CN102110056 B CN 102110056B
- Authority
- CN
- China
- Prior art keywords
- logical block
- solid element
- data
- logical
- shines
- 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
Images
Abstract
本发明涉及一种闪存管理方法、闪存控制器与闪存存储系统,该闪存管理方法用于管理闪存晶片的多个实体单元。本方法包括将部分的实体单元分组为数据区与备用区;配置多个逻辑单元;设定逻辑单元与数据区的实体单元之间的映射关系。本方法还包括接收一数据,并且将此数据写入至逻辑单元之中的第二逻辑单元所映射的实体单元中,且此数据属于逻辑单元之中的第一逻辑单元。基此,本方法可有效地减少整理有效数据的次数,由此缩短执行主机写入指令的时间。本发明提供的闪存管理方法、闪存控制器与闪存存储系统,能够有效地减少执行整理有效数据的次数,并且提升写入数据的速度。
Description
技术领域
本发明涉及一种闪存管理方法,尤其涉及一种闪存管理方法、闪存控制器与闪存存储系统。
背景技术
数码相机、手机与MP3(MPEG-1 Audio Layer 3,简称为:MP3)在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于闪存(Flash Memory)具有数据非挥发性、省电、体积小与无机械结构等的特性,适合可携式应用,最适合使用于这类可携式由电池供电的产品上。固态硬盘(Solid State Drive,简称为:SSD)就是一种以反及(Not AND,简称为:NAND)闪存作为存储媒体的存储装置。由于闪存体积小容量大,所以已广泛用于个人重要数据的存储。因此,近年闪存产业成为电子产业中相当热门的一环。
在闪存存储装置的设计中,闪存晶片具有多个实体区块且每一实体区块具有多个实体页,其中实体区块是闪存晶片的抹除单位并且实体页是闪存晶片的写入单位。由于在闪存晶片执行程式化(即,写入程序)时,仅能执行单向的程式化(即,仅能将其记忆胞的值由1程式化为0),因此无法对已程式化的实体页(即,存有旧数据的页面)直接进行写入新数据,而是必须先将此实体页抹除后方可重新程式化。特别是,由于闪存晶片的抹除是以实体区块为单位,所以当欲对存有旧数据的实体页执行抹除运作时,必须对此实体页所属的整个实体区块进行抹除。基于闪存以实体页为写入的单元而以实体区块为抹除的单位的特性,实体区块会由闪存存储装置的闪存控制器将实体区块逻辑地分组为系统区(system area)、数据区(data area)、备用区(spare area)与取代区(replacement area)。系统区的实体区块是用以存储闪存存储装置的相关重要信息,而取代区的实体区块是用以取代数据区或备用区中已损坏的实体区块(即,坏实体区块),因此在一般存取状态下,主机系统是无法存取系统区与取代区中的实体区块。至于归类为数据区的实体区块中会存储由写入指令所写入的有效数据,而备用区中的实体区块是用以在执行写入指令时替换数据区中的实体区块。具体来说,当闪存存储装置接受到主机系统的主机写入指令而欲更新对数据区的一实体区块中的数据进行写入时,闪存存储装置的闪存控制器会从备用区中提取一实体区块并且将存储于在数据区中欲更新写入的实体区块中内的有效旧数据与欲写入的新数据写入至从备用区中提取的实体区块中并且将已写入新数据的实体区块逻辑地关联至数据区,并且对此欲更新原本数据区的实体区块进行抹除运作并将已抹除的实体区块逻辑地关联至备用区。为了能够让主机系统能够顺利地存取以轮替方式存储数据的实体区块,闪存存储装置会提供逻辑位址给主机系统。也就是说,闪存存储装置会通过在逻辑位址-实体位址映射表(logical address-physical address mappingtable)中记录与更新逻辑位址与数据区的实体区块之间的映射关系来反映实体区块的轮替。因此,主机系统仅需要针对所提供逻辑位址进行写入而闪存存储装置的闪存控制器会依据逻辑位址-实体位址映射表在所映射的实体区块内的实体页上来读取或写入数据。
由于实体区块是以轮替方式来存储主机系统所写入的数据,因此当备用区无足够的实体区块来存储数据时,闪存存储装置必须整理数据区的实体区块内的有效数据。例如,闪存存储装置的闪存控制器会将属于同一个逻辑单元的有效数据搬移至同一个实体区块,并且由此释放存储无效数据的实体区块。然而,整理有效数据会造成执行主机写入指令的时间的增加。因此,当闪存存储装置需频繁地整理存储于数据区的实体区块中的有效数据时,闪存存储装置的效能会因此降低。
发明内容
本发明的目的是提供一种闪存管理方法,其能够有效地减少执行整理有效数据的次数,并且提升写入数据的速度。
本发明的目的是提供一种闪存控制器,其所执行的闪存管理方法能够有效地减少执行整理有效数据的次数,并且提升写入数据的速度。
本发明的目的是提供一种闪存存储系统,其所执行的闪存管理方法能够有效地减少执行整理有效数据的次数,并且提升写入数据的速度。
本发明实施例提供一种闪存管理方法,用于管理一闪存晶片的多个实体单元。本闪存管理方法包括将部分的实体单元至少分组为数据区与备用区。本闪存管理方法也包括配置多个逻辑单元,并且设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。本闪存管理方法还包括将每一逻辑单元所映射的实体单元的存储状态标记为空状态。本闪存管理单元也包括接收第一数据,将此第一数据写入至实体单元之中的第一实体单元,并且将此第一实体单元的存储状态标记为母状态,其中此第一数据是属于逻辑单元之中的第一逻辑单元并且此第一逻辑单元映射第一实体单元。
本发明实施例提供一种闪存管理方法,用于管理一闪存晶片的多个实体单元。本闪存管理方法包括将部分的实体单元至少分组为数据区与备用区,配置多个逻辑单元,以及设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。本闪存管理方法还包括接收一第一数据,将此第一数据写入至逻辑单元之中的第二逻辑单元所映射的实体单元中,其中此第一数据属于逻辑单元之中的第一逻辑单元并且第一逻辑单元不同于第二逻辑单元。
本发明实施例提供一种闪存控制器,用于管理一闪存晶片的多个实体单元。本闪存控制器包括微处理器单元、闪存接口单元、主机接口单元与存储器管理单元。闪存接口单元电性连接至微处理器单元,并且用以电性连接至闪存晶片。主机接口单元电性连接至微处理器单元,并且用以电性连接至主机系统。存储器管理单元电性连接至微处理器单元。在此,存储器管理单元将部分的实体单元至少分组为数据区与备用区。此外,存储器管理单元配置多个逻辑单元,并且设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。另外,存储器管理单元将每一逻辑单元所映射的实体单元的存储状态标记为一空状态。并且,主机接口单元用以接收第一数据,其中此第一数据属于该些逻辑单元之中的第一逻辑单元并且第一逻辑单元映射实体单元之中的第一实体单元。再者,存储器管理单元将第一数据写入至第一逻辑单元所映射的第一实体单元,并且将第一逻辑单元所映射的第一实体单元的存储状态标记为母状态。
本发明实施例提供一种闪存控制器,用于管理一闪存晶片的多个实体单元。本闪存控制器包括微处理器单元、闪存接口单元、主机接口单元与存储器管理单元。闪存接口单元电性连接至微处理器单元,并且用以电性连接至闪存晶片。主机接口单元电性连接至微处理器单元,并且用以电性连接至主机系统。存储器管理单元电性连接至微处理器单元。在此,存储器管理单元将部分的实体单元至少分组为数据区与备用区,配置多个逻辑单元,并且设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。再者,主机接口单元用以接收第一数据,其中此第一数据属于逻辑单元之中的第一逻辑单元。并且,存储器管理单元将此第一数据写入至逻辑单元之中的第二逻辑单元所映射的实体单元中,其中第一逻辑单元不同于第二逻辑单元。
本发明实施例提供一种闪存存储系统,其包括闪存晶片、连接器与闪存控制器。闪存晶片具有多个实体单元。连接器用以电性连接至主机系统。闪存控制器电性连接至闪存晶片与连接器。闪存控制器将部分的实体单元至少分组为数据区与备用区。此外,闪存控制器配置多个逻辑单元,并且设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。另外,闪存控制器将每一逻辑单元所映射的实体单元的存储状态标记为一空状态。再者,闪存控制器用以接收第一数据,其中第一数据属于逻辑单元之中的第一逻辑单元并且第一逻辑单元映射实体单元之中的第一实体单元。并且,闪存控制器将此第一数据写入至第一逻辑单元所映射的第一实体单元,并且将第一逻辑单元所映射的第一实体单元的存储状态标记为母状态。
本发明实施例提供一种闪存存储系统,其包括闪存晶片、连接器与闪存控制器。闪存晶片具有多个实体单元。连接器用以电性连接至主机系统。闪存控制器电性连接至闪存晶片与连接器。在此,闪存控制器将部分的实体单元至少分组为数据区与备用区,配置多个逻辑单元,并且设定逻辑单元与数据区的实体单元之间的映射关系,其中每一逻辑单元映射数据区的实体单元的其中之一。再者,闪存控制器用以接收第一数据,其中此第一数据属于逻辑单元之中的第一逻辑单元。并且,闪存控制器将此第一数据写入至逻辑单元之中的第二逻辑单元所映射的实体单元中,其中第一逻辑单元不同于第二逻辑单元。
基于上述,本发明实施例的闪存管理方法及其控制器与存储系统能够有效地减少整理有效数据的次数,进而缩短执行主机写入指令所需的时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图作详细说明如下。
附图说明
图1A是本发明第一实施例使用闪存存储装置的主机系统。
图1B是本发明实施例的电脑、输入/输出装置与闪存存储装置的示意图。
图1C是本发明另一实施例的主机系统与闪存存储装置的示意图。
图2是图1A所示的闪存存储装置的概要方块图。
图3是本发明第一实施例的管理闪存晶片的示意图。
图4是本发明第一实施例的管理存储区的实体单元的示意图。
图5是本发明第一实施例的逻辑单元-实体单元映射表的范例示意图。
图6是本发明第一实施例的逻辑单元-实体单元映射表的另一范例示意图。
图7是本发明第一实施例的逻辑单元-实体单元映射表的又一范例示意图。
图8是本发明第一实施例的逻辑单元-实体单元映射表的再一范例示意图。
图9是本发明第一实施例的写入数据的范例示意图。
图10是本发明第一实施例的逻辑位址与实体位址之间的映射关系的范例示意图。
图11是本发明第一实施例的写入数据的另一范例示意图。
图12是本发明第一实施例的逻辑位址与实体位址之间的映射关系的另一范例示意图。
图13是本发明第一实施例的写入数据的又一范例示意图。
图14是本发明第一实施例的逻辑位址与实体位址之间的映射关系的又一范例示意图。
图15是本发明第一实施例的写入数据的又一范例示意图。
图16是本发明第一实施例的逻辑位址与实体位址之间的映射关系的再一范例示意图。
图17是本发明第一实施例的闪存管理方法的流程图。
图18是本发明第一实施例的闪存管理方法的另一流程图。
图19是本发明第二实施例的写入数据的范例示意图。
图20是本发明第二实施例的逻辑位址与实体位址之间的映射关系的范例示意图。
图21是本发明第三实施例的管理存储区的实体单元的示意图。
主要元件符号说明:
1000:主机系统;1100:电脑;
1102:微处理器;1104:随机存取存储器;
1106:输入/输出装置;1108:系统汇流排;
1110:数据传输接口;1202:鼠标;
1204:键盘;1206:显示器;
1208:打印机;1212:U盘;
1214:存储卡;1216:固态硬盘;
1310:数码相机;1312:SD卡;
1314:MMC卡;1316:记忆棒;
1318:CF卡;1320:嵌入式存储装置;
100:闪存存储装置;102:连接器;
104:闪存控制器;106:闪存晶片;
122-(0)~122(N):实体单元;202:微处理器单元;
204:存储器管理单元;206:主机接口单元;
208:闪存接口单元;252:缓冲存储器;
254:电源管理单元;256:错误校正单元;
302:系统区;304:存储区;
306:取代区;402、412:区域;
404、414:数据区;406、416:备用区;
450-(0)~450-(N):逻辑单元;502:逻辑单元-实体单元映射表;
502a:逻辑单元栏位;502b:实体单元栏位;
502c:存储状态栏位;
302-(0)~302-(S)、304-(0)~304-(D)、306-(0)~306-(R):实体单元;
S1701、S1703、S1705、S1707:闪存管理方法的步骤;
S1801、S1803、S1805、S1807、S1809、S1811、S1813、S1815、S1817、
S1819、S1821、S1823、S1825、S1827、S1829、S1831、S1833:闪存管理方法的步骤。
具体实施方式
第一实施例
一般而言,闪存存储装置(也称,闪存存储系统)包括闪存晶片与控制器(也称,控制电路)。通常闪存存储装置会与主机系统一起使用,以使主机系统可将数据写入至闪存存储装置或从闪存存储装置中读取数据。另外,也有闪存存储装置是包括嵌入式闪存与可执行在主机系统上以实质地作为此嵌入式闪存的控制器的软体。
图1A是本发明第一实施例使用闪存存储装置的主机系统。图1B是本发明实施例的电脑、输入/输出装置与闪存存储装置的示意图。图1C是本发明另一实施例的主机系统与闪存存储装置的示意图。
请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,简称为:I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(randomaccess memory,简称为:RAM)1104、系统汇流排1108以及数据传输接口1110。输入/输出装置1106包括如图1B的滑鼠1202、键盘1204、显示器1206与印表机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106还可包括其他装置。
在本发明实施例中闪存存储装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的处理可将数据写入至闪存存储装置100或从闪存存储装置100中读取数据。例如,闪存存储装置100可以是如图1B所示的U盘1212、存储卡1214或固态硬盘(Solid State Drive,简称为:SSD)1216。
一般而言,主机系统1000实质地可为可存储数据的任意系统。虽然在本实施例中,主机系统1000是以电脑系统为例来作说明,然而,在本发明另一实施例中主机系统1000可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,闪存存储装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式存储装置1320(如图1C所示)。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,简称为:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接在主机系统的基板上。
图2是图1A所示的闪存存储装置的概要方块图。请参照图2,闪存存储装置100包括连接器102、闪存控制器104与闪存晶片106。
连接器102是电性连接至闪存控制器104并且用以电性连接至主机系统1000。在本实施例中,连接器102为序列先进附件(Serial Advanced TechnologyAttachment,简称为:SATA)连接器。然而,必须了解的是本发明不限于此,连接器102也可以是通用序列汇流排(Universal Serial Bus,简称为:USB)连接器、电气和电子工程师协会(Institute of Electrical and Electronic Engineers,简称为:IEEE)1394连接器、高速外围零件连接接口(Peripheral ComponentInterconnect Express,简称为:PCI Express)连接器、安全数码(secure digital,简称为:SD)接口连接器、记忆棒(Memory Stick,简称为:MS)接口连接器、多媒体存储卡(Multi Media Card,简称为:MMC)接口连接器、小型快闪(CompactFlash,简称为:CF)接口连接器、整合式驱动电子接口(Integrated DeviceElectronics,简称为:IDE)连接器或其他适合的连接器。
闪存控制器104会执行以硬体型式或韧体型式实作的多个逻辑闸或控制指令,并且根据主机系统1000的指令在闪存晶片106中进行数据的写入、读取与抹除等运作。闪存控制器104包括微处理器单元202、存储器管理单元204、主机接口单元206、闪存接口单元208。
微处理器单元202为闪存控制器104的主控单元,用以与存储器管理单元204、主机接口单元206与闪存接口单元208等协同合作以进行闪存存储装置100的各种运作。
存储器管理单元204是电性连接至微处理器单元202,用以执行根据本实施例的数据写入机制与闪存管理机制,存储器管理单元204的运作将在下面结合附图作详细说明。
在本实施例中,存储器管理单元204是以一韧体型式实作在闪存控制器104中。例如,将包括多个控制指令的存储器管理单元204烧录至一程式存储器(例如,只读存储器(Read Only Memory,简称为:ROM))中并且将此程式存储器嵌入在闪存控制器104中,当闪存存储装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元202来执行以完成根据本发明实施例的数据写入机制与闪存管理机制。
在本发明另一实施例中,存储器管理单元204的控制指令也可以程式码型式存储在闪存晶片106的特定区域(例如,闪存晶片中专用于存放系统数据的系统区)中。同样的,当闪存存储装置100运作时,存储器管理单元204的多个控制指令会由微处理器单元202来执行。此外,在本发明另一实施例中,存储器管理单元204也可以一硬体型式实作在闪存控制器104中。
主机接口单元206是电性连接至微处理器单元202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口单元206来传送至微处理器单元202。在本实施例中,主机接口单元206是对应连接器102为SATA接口。然而,必须了解的是本发明不限于此,主机接口单元206也可以是PATA接口、USB接口、IEEE1394接口、PCI Express接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其他适合的数据传输接口。
闪存接口单元208是电性连接至微处理器单元202并且用以存取闪存晶片106。也就是说,欲写入至闪存晶片106的数据会经由闪存接口单元208转换为闪存晶片106所能接受的格式。
此外,在本发明一实施例中,闪存控制器104还包括缓冲存储器252、电源管理单元254与错误校正单元256。
缓冲存储器252是电性连接至微处理器单元202并且用以暂存来自于主机系统1000的数据与指令或来自于闪存晶片106的数据。
电源管理单元254是电性连接至微处理器单元202并且用以控制闪存存储装置100的电源。
错误校正单元256是电性连接至微处理器单元202并且用以执行一错误校正程序以确保数据的正确性。具体来说,当存储器管理单元204从主机系统1000中接收到主机写入指令时,错误校正单元256会为对应此主机写入指令的写入数据产生对应的错误检查与校正码(Error Checking and CorrectingCode,简称为:ECC Code),并且存储器管理单元204会将此写入数据与对应的错误校正码写入至闪存晶片106中。之后,当存储器管理单元204从闪存晶片106中读取数据时会同时读取此数据对应的错误校正码,并且错误校正单元256会依据此错误校正码对所读取的数据执行错误校正程序。
请再参照图2,闪存晶片106是电性连接至闪存控制器104并且用以存储数据。闪存晶片106具有多个实体单元。在本实施例中,每一实体单元是由1个实体区块所组成。然而,本发明不限于此,在本发明另一实施例中,每一实体单元也可由多个实体区块所组成。在闪存的设计中,实体区块为抹除的最小单位。即,每一实体区块含有最小数目的一并被抹除的记忆胞。每一实体区块具有数个实体位址。在本实施例中,实体位址为实体页面,但本发明不限于此。实体页面为程式化的最小单元。换言之,实体页面为写入数据或读取数据的最小单元。每一实体页面通常包括使用者数据区与冗余区。使用者数据区用以存储使用者的数据,而冗余区用以存储系统的数据(例如,错误检查与校正码)。在本实施例中,闪存晶片106为多层记忆胞(Multi LevelCell,简称为:MLC)NAND闪存晶片。然而,本发明不限于此,闪存晶片106也可是单层记忆胞(Single Level Cell,简称为:SLC)NAND闪存晶片。
图3是本发明第一实施例的管理闪存晶片的示意图。必须了解的是,在此描述闪存的实体区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体区块是逻辑上的概念。也就是说,闪存的实体区块的实际位置并未更动,而是逻辑上对闪存的实体区块进行操作。
请参照图3,存储器管理单元204会将闪存晶片106的实体单元逻辑地分组为系统区(system area)302、存储区(storage area)304与取代区(replacementarea)306。
逻辑上属于系统区302的实体单元302-(0)~302-(S)是用以记录系统数据,此系统数据包括关于闪存晶片的制造商与型号等信息。
逻辑上属于存储区304的实体单元304-(0)~304-(D)是用以存储主机系统1000所写入的数据。也就是说,闪存存储装置100会使用分组为存储区304的实体单元来实际地存储主机系统1000所写入的数据。
逻辑上属于取代区306中的实体单元306-(0)~306-(R)是替代实体单元。例如,闪存晶片106在出厂时会预留4%的实体区块作为更换使用。也就是说,当系统区302与存储区304中的实体单元损毁时,预留在取代区306中的实体单元可用以取代损坏的实体单元(即,坏实体区块(bad block))。因此,倘若取代区306中仍存有可用的实体区块且发生实体区块损毁时,存储器管理单元204会从取代区306中提取可用的实体区块来更换损毁的实体区块。倘若取代区306中无可用的实体区块且发生实体区块损毁时,则闪存存储装置100将会被宣告为写入保护(write protect)状态,而无法再写入数据。
在此,S、D与R为正整数,其表示系统区302、存储区304与取代区306中实体单元的编号与数量。特别是,系统区302、存储区304与取代区306的实体单元的数量会依据不同的闪存规格而有所不同。此外,必须了解的是,在闪存存储装置100的运作中,实体单元关联至系统区302、存储区304与取代区306的分组关系会动态地变动。例如,当存储区中的实体单元损坏时而被取代区的实体单元取代时,则原本取代区的实体单元会被关联至存储区。
图4是本发明第一实施例的管理存储区的实体单元的示意图。请参照图4,存储器管理单元204将存储区304的实体单元304-(0)~304-(D)分组为区域402与区域412来分别地管理。具体来说,在数据写入与读取的运作过程中,存储器管理单元204将每一区域视为独立的运作区域来管理实体单元。在此,将实体单元分组为多个区域来各别地管理可降低管理闪存晶片106所需的资源,例如缓冲存储器的大小。在本实施例中,存储器管理单元204是将存储区304的实体单元304-(0)~304-(D)分组为2个区域来管理,然而,必须了解的是,本发明不限于此。在本发明另一实施例,存储器管理单元204也可将存储区304中的所有实体单元视为1个区域来管理或将存储区304中的实体单元分组为更多区域来管理。
如图4所示,存储器管理单元204将每一区域中的实体单元分组为数据区与备用区。例如,区域402中的实体单元304-(0)~304-(Z)被分组为关联为数据区404的实体单元304-(0)~304-(U)与关联为备用区406的实体单元304-(U+1)~304-(Z),并且区域412中的实体单元304-(Z+1)~304-(D)被分组为关联为数据区414的实体单元304-(Z+1)~304-(K)与关联为备用区416的实体单元304-(K+1)~304-(D)。
数据区的实体单元是用以存储主机系统1000所存储的数据。而备用区的实体单元是用以轮替数据区中的实体单元。因此,在备用区中的实体单元为空或可使用的单元,即无记录数据或标记为已没用的无效数据。也就是说,数据区与备用区的实体单元是以轮替方式来存储主机系统1000所写入至闪存存储装置100的数据。例如,当主机系统1000欲将数据写入至闪存存储装置100时,存储器管理单元204会从备用区中提取实体单元来写入数据,并且已写入数据的实体单元会被关联为数据区。此外,当关联为数据区的实体单元被执行抹除运作后已抹除的实体单元会被关联为备用区。
由于存储器管理单元204是轮替地使用存储区304的实体单元来存储主机系统1000所写入的数据,因此,存储器管理单元204在每一区域中配置逻辑单元来变动地映射实体单元,以使得主机系统1000能够顺利地存取数据。
例如,存储器管理单元204配置逻辑单元450-(0)~450-(M)来映射关联至区域402的数据区404的实体单元,并且配置逻辑单元450-(M+1)~450-(N)来映射关联至区域412的数据区414的实体单元。
在本实施例中,逻辑单元的大小是相同于实体单元的大小,并且每一逻辑单元具有多个逻辑位址以对应实体单元的实体位址(即,实体页面)。也就是说,逻辑位址的大小是相同于实体位址的大小。如上所述,闪存的程式化是以实体位址为单位,因此,存储器管理单元204会以逻辑位址为单位将主机系统1000所写入的数据写入至闪存晶片106中。
值得一提的是,主机系统1000的作业系统是以逻辑存取位址为单位来存取数据,例如,逻辑存取位址为扇区(sector)、丛集(cluster)等。然而,在闪存存储装置100中,数据是以实体位址为单位被程式化至闪存晶片106中。因此,存储器管理单元204会提供一转换机制来将主机系统1000所存取的逻辑存取位址转换成对应的逻辑位址与逻辑单元。例如,在本实施例中,存储器管理单元204会将4个逻辑存取位址对应至1个逻辑位址。例如,存储器管理单元204会使用一运算规则来设定每一逻辑存取位址所对应的逻辑位址以及所对应的逻辑单元。也就是说,1个逻辑位址的容量可用来存储对应4个逻辑存取位址的数据。必须了解的是,本发明不限于此,在本发明另一实施例中,1个逻辑位址也可对应8个逻辑存取位址或是16个逻辑存取位址。
在本发明实施例中,存储器管理单元204会为每一区域建立与维护逻辑单元-实体单元映射表(logical unit-physical unit mapping table)来记录逻辑单元与实体单元之间的映射关系。
特别是,在本发明实施例中,存储器管理单元204会在逻辑单元-实体单元映射表中标记被映射至逻辑单元的实体单元的存储状态。具体来说,当闪存存储装置100被格式化时,存储器管理单元204会将每一逻辑单元映射至一个实体单元,并且将此些实体单元的存储状态标记为″空状态″。也就是说,在闪存存储装置100被格式化后,虽然每一逻辑单元已映射至一个实体单元,但这些实体单元实际上未存储任何数据。
以下将以多个实例来描述存储器管理单元204管理闪存晶片106的机制。必须了解的是,虽然以下仅以区域402的数据区404与备用区406的实体单元来进行描述,但这些机制也适用于区域412的数据区414与备用区416的实体单元。
图5是本发明第一实施例的逻辑单元-实体单元映射表的范例示意图。请参照图5,逻辑单元-实体单元映射表502是用以记录区域402的数据区404的实体单元与逻辑单元450-(0)~450-(M)的映射关系。逻辑单元-实体单元映射表502包括逻辑单元栏位502a、实体单元栏位502b与存储状态栏位502c。实体单元栏位502b是用以记录逻辑单元栏位502a中的逻辑单位所映射的实体单元并且存储状态栏位502c是用以记录实体单元栏位502b中的实体单元的存储状态。
如上所述,当闪存存储装置100被格式化时,存储器管理单元204会将逻辑单元450-(0)~450-(M)分别地映射数据区404中的其中一个实体单元,并且将这些实体单元的存储状态标记为″空″状态。
图6是本发明第一实施例的逻辑单元-实体单元映射表的另一范例示意图。倘若在图5所示的状态下,主机系统1000在对应逻辑单元450-(0)的逻辑位址的逻辑存取位址中存储数据时,存储器管理单元204会依据图5所示的逻辑单元-实体单元映射表502获知逻辑单元450-(0)目前是映射至实体单元304-(0)且实体单元304-(0)的存储状态为″空″状态。基此,存储器管理单元204会根据实体位址的排列顺序将数据写入至实体单元304-(0)中,并且在逻辑单元-实体单元映射表502中将实体单元304-(0)的存储状态更改为″母″状态(如图6所示)。在此,实体单元被标记为″母″状态是表示此实体单元所存储的数据是属于此实体单元所映射的逻辑单元。
图7是本发明第一实施例的逻辑单元-实体单元映射表的又一范例示意图。倘若在图6所示的状态下,主机系统1000在对应逻辑单元450-(0)的逻辑位址的逻辑存取位址中存储数据时,存储器管理单元204会依据图6所示的逻辑单元-实体单元映射表502获知逻辑单元450-(0)目前是映射至实体单元304-(0)且实体单元304-(0)的存储状态为″母″状态。基此,存储器管理单元204会判断实体单元304-(0)是否已被写满,倘若实体单元304-(0)未被写满时,存储器管理单元204会接着判断实体单元304-(0)的剩余存储空间(即,未存储数据的空间)是否足够写入主机系统1000所写入的数据。倘若实体单元304-(0)的剩余的可存储空间足够存储主机系统1000所写入的数据时,则存储器管理单元204会根据实体位址的排列顺序将数据写入至实体单元304-(0)。
倘若实体单元304-(0)已被写满或者实体单元304-(0)的剩余的可存储空间不足够写入主机系统1000所写入的数据时,则存储器管理单元204会依据逻辑单元-实体单元映射表502获知在数据区402中仍有处于″空″状态的实体单元304-(1)并且根据实体位址的排列顺序将数据写入至实体单元304-(1)中。特别是,存储器管理单元204会在逻辑单元-实体单元映射表502中将实体单元304-(1)的存储状态更改为″子″状态(如图7所示)。在此,实体单元被标记为″子″状态是表示此实体单元所存储的数据是不属于此实体单元所映射的逻辑单元。
图8是本发明第一实施例的逻辑单元-实体单元映射表的再一范例示意图。倘若在图7所示的状态下,主机系统1000在对应逻辑单元450-(1)的逻辑位址的逻辑存取位址中存储数据时,存储器管理单元204会依据图7所示的逻辑单元-实体单元映射表502获知逻辑单元450-(1)目前是映射至实体单元304-(1)且实体单元304-(1)的存储状态为″子″状态。基此,存储器管理单元204会依据逻辑单元-实体单元映射表502获知在数据区402中仍有处于″空″状态的实体单元304-(2)并且将数据依序地写入至实体单元304-(2)的实体位址中。特别是,存储器管理单元204会在逻辑单元-实体单元映射表502中将逻辑单元450-(1)映射至实体单元304-(2)并且将实体单元304-(2)的存储状态更改为″母″状态,同时将逻辑单元450-(2)映射至实体单元304-(1),其中实体单元304-(1)的存储状态仍维持为″子″状态(如图8所示)。
此外,在本实施例中,存储器管理单元204会为每一逻辑单元建立一随机表以记录映射至每一逻辑位址的实体位址。如上所述,当主机系统1000于对应逻辑单元的逻辑位址的逻辑存取位址中写入数据时,存储器管理单元204会依序地在所映射的实体单元的实体位址中写入此数据,或者依序地在映射至其他逻辑单元的实体单元的实体位址中写入此数据。因此,在一个逻辑单元的逻辑位址未必会依其排列顺序映射至同一个实体单元的实体位址的情况下,存储器管理单元204会通过维护随机表来记录每一逻辑位址所映射的实体位址。也就是说,当主机系统1000欲读取存储于某一逻辑位址的数据时,存储器管理单元204会依据随机表来从对应的实体位址中读取此数据。
图9是本发明第一实施例的写入数据的范例示意图,并且图10是本发明第一实施例的逻辑位址与实体位址之间的映射关系的范例示意图。为了方便说明,在以下范例中假设每一逻辑单元具有4个逻辑位址且每一实体单元具有4个实体位址。然而,必须了解的是,在实际的闪存存储系统中,每一逻辑单元的逻辑位址的数目以及每一实体单元的实体位址的数目可以是64、128、256或其他适合的数值。
请参照图9,当在所有实体单元都为″空″状态的状态下主机系统1000将数据存储至属于逻辑单元450-(0)的第2个逻辑位址时,存储器管理单元204会根据实体位址的排列顺序将属于逻辑单元450-(0)的第2个逻辑位址的数据写入至逻辑单元450-(0)所映射的实体单元304-(0)的第1个实体位址。
请参照图10,此时,在逻辑单元450-(0)的随机表中逻辑单元450-(0)的第2个逻辑位址是映射至实体单元304-(0)的第1个实体位址。
图11是本发明第一实施例的写入数据的另一范例示意图,并且图12是本发明第一实施例的逻辑位址与实体位址之间的映射关系的另一范例示意图。
请参照图11,当在图9所示的状态下主机系统1000将数据存储至属于逻辑单元450-(0)的第1个逻辑位址与第3个逻辑位址时,存储器管理单元204会根据实体位址的排列顺序将属于逻辑单元450-(0)的第1个逻辑位址的数据写入至逻辑单元450-(0)所映射的实体单元304-(0)的第2个实体位址,并且将属于逻辑单元450-(0)的第3个逻辑位址的数据写入至逻辑单元450-(0)所映射的实体单元304-(0)的第3个实体位址。
请参照图12,此时,在逻辑单元450-(0)的随机表中逻辑单元450-(0)的第2个逻辑位址是映射至实体单元304-(0)的第1个实体位址;逻辑单元450-(0)的第1个逻辑位址是映射至实体单元304-(0)的第2个实体位址;并且逻辑单元450-(0)的第3个逻辑位址是映射至实体单元304-(0)的第3个实体位址。
图13是本发明第一实施例的写入数据的又一范例示意图,并且图14是本发明第一实施例的逻辑位址与实体位址之间的映射关系的又一范例示意图。
请参照图13,当在图11所示的状态下主机系统1000存储新数据至属于逻辑单元450-(0)的第1个逻辑位址时,存储器管理单元204会根据实体位址的排列顺序将属于逻辑单元450-(0)的第1个逻辑位址的新数据写入至逻辑单元450-(0)所映射的实体单元304-(0)的第4个实体位址。
请参照图14,此时,在逻辑单元450-(0)的随机表中逻辑单元450-(0)的第2个逻辑位址是映射至实体单元304-(0)的第1个实体位址;逻辑单元450-(0)的第3个逻辑位址是映射至实体单元304-(0)的第3个实体位址;并且逻辑单元450-(0)的第1个逻辑位址是映射至实体单元304-(0)的第4个实体位址。
图15是本发明第一实施例的写入数据的又一范例示意图,并且图16是本发明第一实施例的逻辑位址与实体位址之间的映射关系的再一范例示意图。
请参照图15,当在图13的状态下主机系统1000存储新数据至属于逻辑单元450-(0)的第4个逻辑位址时,由于实体单元304-(0)已被写满且已映射至逻辑单元450-(1)的实体单元304-(1)为″空″状态,因此存储器管理单元204会根据实体位址的排列顺序将新数据写入至实体单元304-(1)的第1个实体位址中。
请参照图16,此时,在逻辑单元450-(0)的随机表中逻辑单元450-(0)的第2个逻辑位址是映射至实体单元304-(0)的第1个实体位址;逻辑单元450-(0)的第3个逻辑位址是映射至实体单元304-(0)的第3个实体位址;逻辑单元450-(0)的第1个逻辑位址是映射至实体单元304-(0)的第4个实体位址;并且逻辑单元450-(0)的第4个逻辑位址是映射至实体单元304-(1)的第1个实体位址。
基于上述,当主机系统1000欲对某一区域内的某一逻辑单元的逻辑位址存取数据时,存储器管理单元204会依据对应的逻辑单元-实体单元映射表与随机表在所映射的实体位址中存取数据。
在本发明一实施例中,存储器管理单元204会记录每一实体位址的存储状态。具体来说,如上所述,由于闪存晶片106的抹除运作是以实体单元(或实体区块)为单位,因此存储器管理单元204会记录每一实体位址的存储状态以确认每一实体单元中是否仍存有有效数据。
例如,如图11所示,在实体单元304-(0)的第2个实体位址被用以存储属于逻辑单元450-(0)的第1个逻辑位址的数据时,实体单元304-(0)的第2个实体位址的存储状态会被标记为有效数据。之后,如图13所示,主机系统1000将新数据存储至逻辑单元450-(0)的第1个逻辑位址且实体单元304-(0)的第4个实体位址被用以写入此新数据时,实体单元304-(0)的第4个实体位址的存储状态会被标记为有效数据,且同时实体单元304-(0)的第2个实体位址的存储状态会被标记为无效数据。
特别是,在本实施例中,当主机系统1000删除存储在逻辑位址中的数据时,存储器管理单元204会将此逻辑位址所映射的实体位址的存储状态标记为无效数据。例如,存储器管理单元204是通过主机系统1000的微软视窗作业系统7所传送的整理指令(trim command)来获知哪些逻辑位址上的数据已被主机系统1000删除。
值得一提的是,在本实施例中,当主机系统1000欲存储新数据至一逻辑单元,而此逻辑单元所映射的实体单元已被写满且数据区中已无存储状态为″空″状态的实体单元时,存储器管理单元204会从备用区中提取实体单元并且将此新数据写入至所提取的实体单元中。特别是,此时,存储器管理单元204会执行有效数据整理程序以释放存储无效数据的实体单元。
具体来说,当存储器管理单元204针对一逻辑单元执行有效数据整理程序时,此逻辑单元的有效数据会都被搬移至从备用区中提取的实体单元,并且原本用于存储此逻辑单元的数据的实体单元会被执行抹除运作。特别是,在有效数据整理程序中,被抹除的实体单元之中原先被标记为″子″状态的实体单元会被重新标记为″空″状态,并且原先被标记为″母″状态的实体单元会被关联至备用区。此外,此逻辑单元会重新被映射至所提取之实体单元且此所提取之实体单元会被关联至数据区且其存储状态会被标记为″母″状态。
图17是本发明第一实施例的闪存管理方法的流程图。请参照图17,当闪存存储装置100被格式化或初始化时,首先,在步骤S1701中存储器管理单元204会将闪存存储装置100的闪存晶片106的实体单元分组为多个区域,并且在步骤S1703中存储器管理单元204会将每一区域的实体单元至少分组为数据区与备用区。
然后,在步骤S1705中存储器管理单元204会为每一区域配置多个逻辑单元,并且设定每一区域的逻辑单元与每一区域的数据区的实体单元之间的映射关系。最后,在步骤S1707中存储器管理单元204将每一逻辑单元所映射的实体单元的存储状态标记为″空″状态。
在图17所示的步骤中,将实体区块划分为多个区域以及配置逻辑单元的方式已详细描述如上,在此不重复说明。
图18是本发明第一实施例的闪存管理方法的另一流程图,其闪存存储装置100在依据图17的步骤被初始化后执行主机写入指令的步骤。
请参照图18,当闪存存储装置100经由连接器102从主机系统1000接收到主机写入指令与对应此主机写入指令的数据时,首先,在步骤S1801中,存储器管理单元204会判断对应此主机写入指令的逻辑单元所映射的实体单元是否为″空″状态。
倘若在步骤S1801中判断对应此主机写入指令的逻辑单元所映射的实体单元为″空″状态时,则在步骤S1803中存储器管理单元204会将数据写入至对应此主机写入指令的逻辑单元所映射的实体单元中,并且在步骤S1805中存储器管理单元204会将对应此主机写入指令的逻辑单元所映射的实体单元的存储状态更改为″母″状态。
倘若在步骤S1801中判断对应此主机写入指令的逻辑单元所映射的实体单元不为″空″状态时,则在步骤S1807中存储器管理单元204会判断对应此主机写入指令的逻辑单元所映射的实体单元是否为″母″状态。
倘若在步骤S1807中判断对应此主机写入指令的逻辑单元所映射的实体单元为″母″状态时,则在步骤S1809中存储器管理单元204会判断对应此主机写入指令的逻辑单元所映射的实体单元是否已被写满。
倘若在步骤S1809中判断对应此主机写入指令的逻辑单元所映射的实体单元已被写满时,则在步骤S1811中存储器管理单元204会判断数据区(例如,数据区404)中的实体单元之中是否仍有存储状态为″空″状态的实体单元。倘若数据区中的实体单元之中仍有存储状态为″空″状态的实体单元时,则在步骤S1813中存储器管理单元204会利用存储状态为″空″状态的实体单元来写入此数据,并且在步骤S1815中存储器管理单元204会将写入此数据的实体单元的存储状态更改为″子″状态。
倘若在步骤S1811中判断数据区中的实体单元之中已无存储状态为″空″状态的实体单元时,则在步骤S1817中存储器管理单元204会从备用区(例如,备用区406)提取一个实体单元,并且将数据写入至所提取的实体单元。之后,在步骤S1819中存储器管理单元204会执行有效数据整理程序。
倘若在步骤S1809中判断对应此主机写入指令的逻辑单元所映射的实体单元未被写满时,则在步骤S1821中存储器管理单元204会判断所映射的实体单元是否有足够的剩余空间(即,未存储数据的空间)来存储对应此主机写入指令的数据。倘若所映射的实体单元有足够的可存储空间来存储对应此主机写入指令的数据时,则在步骤S1823中存储器管理单元204会将数据写入至对应此主机写入指令的逻辑单元所映射的实体单元中。倘若所映射的实体单元无足够的可存储空间来存储对应此主机写入指令的数据时,则步骤S1811会被执行。
倘若在步骤S1807中判断对应此主机写入指令的逻辑单元所映射的实体单元不为″母″状态时,则在步骤S1825中存储器管理单元204会判断数据区(例如,数据区404)中的实体单元之中是否仍有存储状态为″空″状态的实体单元。倘若数据区中的实体单元之中仍有存储状态为″空″状态的实体单元,则在步骤S1827中存储器管理单元204会利用存储状态为″空″状态的实体单元来写入此数据,并且在步骤S1829中存储器管理单元204会将写入此数据的实体单元的存储状态更改为″母″状态并且更新逻辑单元与实体单元的映射关系(如图8所示)。
倘若在步骤S1825中判断数据区中的实体单元之中已无存储状态为″空″状态的实体单元时,则在步骤S1831中存储器管理单元204会从备用区(例如,备用区406)提取一个实体单元,并且将数据写入至所提取的实体单元。之后,在步骤S1833中存储器管理单元204会执行有效数据整理程序。
基于上述,在本实施例中,当数据区中仍有未存储数据的实体单元时,存储器管理单元204会利用此些实体单元来存储主机系统1000所写入的数据。基此,可有效地减少执行有效数据整理程序的次数,进而提升闪存存储装置的效能。
第二实施例
本发明第二实施例的闪存存储装置与主机系统本质上是相同于第一实施例的闪存存储装置与主机系统。以下将配合第一实施例的图式并且仅针对差异部分来描述第二实施例。
在本实施例中,闪存晶片106为MLC NAND闪存晶片。MLC NAND闪存晶片的实体单元的程式化可分为多阶段。例如,以2层记忆胞为例,实体单元的程式化可分为2阶段。第一阶段是下实体页(lower page)的写入部分,其物理特性类似于SLC NAND闪存晶片。而第二阶段是上实体页(upper page)的写入部分,其中第二阶段必须在完成第一阶段之后才会被执行。值得一提的是,写入数据至下实体页的速度会快于写入数据至上实体页的速度。因此,每一实体单元的实体页可区分为慢速实体页(即,上实体页)与快速实体页(即,下实体页)。
类似地,在8层记忆胞或16层记忆胞的案例中,记忆胞会包括更多个实体页并且会以更多阶段来写入。在此,将写入速度最快的实体页称为快速实体页,其他写入速度较慢的实体页统称为慢速实体页。例如,慢速实体页包括具有不同写入速度的多个实体页。此外,在其他实施例中,慢速实体页也可为写入速度最慢的实体页,或者写入速度最慢与部分写入速度快于写入速度最慢实体页的实体页。例如,在4层记忆胞中,快速实体页为写入速度最快与写入速度次快的实体页,慢速实体页则为写入速度最慢与写入速度次慢的实体页。
在本实施例中,当主机系统1000欲存储数据至逻辑单元(例如,逻辑单元450-(0)),并且存储器管理单元204利用非此逻辑单元所映射的实体单元来写入数据(如图7所示)时,存储器管理单元204仅会利用快速实体页(即,快速实体位址)来写入数据。
图19是本发明第二实施例的写入数据的范例示意图,并且图20是本发明第二实施例的逻辑位址与实体位址之间的映射关系的范例示意图。
请参照图19,当在图13的状态下主机系统1000欲存储新数据至属于逻辑单元450-(0)的第4个逻辑位址时,由于实体单元304-(0)已被写满且已映射至逻辑单元450-(1)的实体单元304-(1)为″空″状态,因此存储器管理单元204会根据实体位址的排列顺序将新数据写入至实体单元304-(1)中。特别是,假设在实体单元304-(1)中第1与3实体位址为慢速实体位址,并且第2与4实体位址为快速实体位址的例子中,存储器管理单元204会将新数据写入至实体单元304-(1)的第2个实体位址中。
请参照图20,此时,在逻辑单元450-(0)的随机表中逻辑单元450-(0)的第2个逻辑位址是映射至实体单元304-(1)的第4个实体位址;逻辑单元450-(0)的第3个逻辑位址是映射至实体单元304-(0)的第3个实体位址;逻辑单元450-(0)的第1个逻辑位址是映射至实体单元304-(0)的第4个实体位址;并且逻辑单元450-(0)的第4个逻辑位址是映射至实体单元304-(1)的第2个实体位址。
类似地,倘若后续主机系统1000存储新数据至属于逻辑单元450-(0)的第2个逻辑位址时,存储器管理单元204会根据实体位址的排列顺序将新数据写入至实体单元304-(1)的第4个实体位址中。也就是说,存储器管理单元204仅使用实体单元304-(1)的快速实体位址来写入数据。
综合上述,在本实施例中,当存储器管理单元204利用非映射至逻辑单元的实体单元来写入数据时,存储器管理单元204仅使用快速实体位址来写入数据。基此,可有效地提升写入数据的速度。
第三实施例
本发明第三实施例的闪存存储装置与主机系统本质上是相同于第一实施例的闪存存储装置与主机系统。以下将配合第一实施例的图式并且仅针对差异部分来描述第三实施例。
如上所述,存储器管理单元204将存储区304的实体单元304-(0)~304-(D)分组为区域402与区域412来分别地管理。如图4所示,在第一实施例中,存储器管理单元204是依据实体单元304-(0)~304-(D)的排列顺序以一连续方式将实体单元304-(0)~304-(D)分组为包含实体单元304-(0)~304-(Z)的区域402以及包含实体单元304-(Z+1)~304-(D)的区域412。在以连续方式分组实体单元的例子中,倘若主机系统1000在连续的逻辑单元中写入大量数据时,同一个区域的数据区的实体单元可能很快就会被写满,而需要执行有效数据整理程序。
然而,在本实施例中,存储器管理单元204是依据实体单元的排列顺序以一交错方式将实体单元分组为多个区域。
图21是本发明第三实施例的管理存储区的实体单元的示意图。请参照图21,存储器管理单元204以交错方式将实体单元304-(0)~304-(D)分组至区域402与区域412中,其中编号为偶数的实体单元(例如,实体单元304-(0)、304-(2)…)被分组至区域402,且编号为奇数的实体单元(例如,实体单元304-(1)、304-(3)…)被分组至区域412。并且,存储器管理单元204会将所配置的逻辑单元以交错方式来映射至实体单元。例如,编号为偶数的逻辑单元(例如,逻辑单元450-(0)、逻辑单元450-(2)…)是映射区域402的实体单元,并且编号为奇数的逻辑单元(例如,逻辑单元450-(1)、逻辑单元450-(3)…)是映射区域412的实体单元。
在本实施例中,当主机系统1000在多个连续的逻辑单元上存储大量数据时,存储器管理单元204会在不同的区域的实体单元中分散地写入此数据。因此,在本实施例中,数据会被分散地存储在多个区域,由此更减少执行有效数据整理程序的次数,进而提升闪存存储装置的效能。
综上所述,根据本发明实施例的闪存管理方法能够有效地减少整理有效数据的次数,提升写入数据的速度,并且提升闪存存储装置的效能。
最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
Claims (22)
1.一种闪存管理方法,用于管理一闪存晶片的多个实体单元,其特征在于,所述闪存管理方法包括:
将部分所述多个实体单元至少分组为一数据区与一备用区;
配置多个逻辑单元;
设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一;
将每一所述逻辑单元所映射的实体单元的存储状态标记为一空状态;
接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元并且所述第一逻辑单元映射所述多个实体单元之中的一第一实体单元;
将所述第一数据写入至所述第一逻辑单元所映射的所述第一实体单元;
将所述第一逻辑单元所映射的所述第一实体单元的存储状态标记为一母状态;
接收一第二数据,其中所述第二数据属于所述第一逻辑单元;以及
当所述第一实体单元的剩余存储空间不足够写入所述第二数据且所述多个实体单元之中的一第二实体单元的存储状态为所述空状态时,将所述第二数据写入至所述第二实体单元,且将所述第二实体单元的存储状态标记为一子状态,其中所述第二实体单元映射所述多个逻辑单元之中的一第二逻辑单元,
其中所述第二逻辑单元不同于所述第一逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
2.根据权利要求1所述的闪存管理方法,其特征在于,还包括:
接收一第三数据,其中所述第三数据属于所述第二逻辑单元;
将所述第三数据写入至所述多个实体单元之中的一第三实体单元,其中所述第三实体单元映射所述多个逻辑单元之中的一第三逻辑单元;
将所述第三逻辑单元原始所映射的第三实体单元映射至所述第二逻辑单元;
将所述第二逻辑单元原始所映射的第二实体单元映射至所述第三逻辑单元;以及
将所述第二逻辑单元所映射的第三实体单元的存储状态标记为所述母状态,
其中所述第三逻辑单元不同于所述第一逻辑单元与所述第二逻辑单元。
3.根据权利要求1所述的闪存管理方法,其特征在于,还包括利用一逻辑单元-实体单元映射表来记录每一所述逻辑单元所映射的实体单元及每一所述逻辑单元所映射的实体单元的存储状态。
4.根据权利要求1所述的闪存管理方法,其特征在于,还包括将所述多个逻辑单元分组为多个区域;
其中每一所述逻辑单元具有多个逻辑位址,且
在每一所述区域中,至少2个相邻的逻辑位址彼此是不连续的。
5.根据权利要求1所述的闪存管理方法,其特征在于,其中每一所述逻辑单元具有多个逻辑位址且每一所述实体单元具有多个实体位址,其中所述第一数据属于所述第一逻辑单元的逻辑位址之中的一第一逻辑位址,
其中将所述第一数据写入至所述第一逻辑单元所映射的所述第一实体单元的步骤包括:
将所述第一数据写入至所述第一实体单元的实体位址之中的一第一实体位址;以及
记录所述第一逻辑位址与所述第一实体位址之间的映射关系。
6.根据权利要求5所述的闪存管理方法,其特征在于,还包括:
建立至少一随机表;以及
在所述至少一随机表中记录所述多个逻辑位址所映射的所述多个实体位址。
7.根据权利要求5所述的闪存管理方法,其特征在于,还包括:
当一主机系统在所述多个逻辑位址的其中之一中存储数据时,将所述其中之一逻辑位址所映射的实体位址的存储状态标记为有效数据;以及
当所述主机系统删除存储在所述多个逻辑位址的其中之一中的数据时,将所述其中之一逻辑位址所映射的实体位址的存储状态标记为无效数据。
8.根据权利要求1所述的闪存管理方法,其特征在于,其中每一所述逻辑单元具有多个逻辑位址且每一所述实体单元具有多个实体位址,所述多个实体位址包括多个快速实体位址与多个慢速实体位址,并且写入数据至所述快速实体位址的速度快于写入数据至所述多个慢速实体位址的速度,
其中将所述第二数据写入至所述多个实体单元之中的所述第二实体单元的步骤包括:
仅利用所述第二实体单元的快速实体位址来写入所述第二数据。
9.一种闪存管理方法,用于管理一闪存晶片的多个实体单元,其特征在于,所述闪存管理方法包括:
将部分的所述多个实体单元至少分组为一数据区与一备用区;
配置多个逻辑单元;
设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一;
接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元;以及
当所述第一逻辑单元所映射的一第一实体单元的存储状态为一子状态且所述多个逻辑单元之中的一第二逻辑单元所映射的一第二实体单元为一空状态时,将所述第一数据写入至所述第二逻辑单元所映射的第二实体单元中,将所述第二逻辑单元原始所映射的第二实体单元映射至所述第一逻辑单元,将所述第一逻辑单元原始所映射的第一实体单元映射至所述第二逻辑单元,并且将所述第一逻辑单元所映射的第二实体单元的存储状态标记为一母状态,其中所述第一逻辑单元不同于所述第二逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
10.一种闪存控制器,用于管理一闪存晶片的多个实体单元,其特征在于,所述闪存控制器包括:
一微处理器单元;
一闪存接口单元,电性连接至所述微处理器单元,用以电性连接至所述闪存晶片;
一主机接口单元,电性连接至所述微处理器单元,用以电性连接至一主机系统;以及
一存储器管理单元,电性连接至所述微处理器单元,用以将部分所述多个实体单元至少分组为一数据区与一备用区,
其中所述存储器管理单元配置多个逻辑单元,并且设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一,
其中所述存储器管理单元将每一所述逻辑单元所映射的实体单元的存储状态标记为一空状态,
其中所述主机接口单元接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元并且所述第一逻辑单元映射所述多个实体单元之中的一第一实体单元,
其中所述存储器管理单元将所述第一数据写入至所述第一逻辑单元所映射的所述第一实体单元,并且将所述第一逻辑单元所映射的所述第一实体单元的存储状态标记为一母状态,
其中所述主机接口单元接收一第二数据,其中所述第二数据属于所述第一逻辑单元,
其中当所述第一实体单元的剩余存储空间不足够写入所述第二数据且所述多个实体单元之中的一第二实体单元的存储状态为所述空状态时,所述存储器管理单元将所述第二数据写入至所述第二实体单元并且将所述第二实体单元的存储状态标记为一子状态,其中所述第二实体单元映射所述多个逻辑单元之中的一第二逻辑单元,且所述第二逻辑单元不同于所述第一逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
11.根据权利要求10所述的闪存控制器,其特征在于,其中所述主机接口单元接收一第三数据,其中所述第三数据属于所述第二逻辑单元,
其中所述存储器管理单元将所述第三数据写入至所述多个实体单元之中的一第三实体单元,其中所述第三实体单元映射所述多个逻辑单元之中的一第三逻辑单元,
其中所述存储器管理单元将所述第三逻辑单元原始所映射的第三实体单元映射至所述第二逻辑单元,将所述第二逻辑单元原始所映射的第二实体单元映射至所述第三逻辑单元,并且将所述第二逻辑单元所映射的第三实体单元的存储状态标记为所述母状态,
其中所述第三逻辑单元不同于所述第一逻辑单元与所述第二逻辑单元。
12.根据权利要求10所述的闪存控制器,其特征在于,其中所述存储器管理单元利用一逻辑单元-实体单元映射表来记录每一所述逻辑单元所映射的实体单元及每一所述逻辑单元所映射的实体单元的存储状态。
13.根据权利要求10所述的闪存控制器,其特征在于,其中所述存储器管理单元将所述多个逻辑单元分组为多个区域,
其中每一所述逻辑单元具有多个逻辑位址,并且在每一所述区域中至少2个相邻的逻辑位址彼此是不连续的。
14.根据权利要求10所述的闪存控制器,其特征在于,其中每一所述逻辑单元具有多个逻辑位址且每一所述实体单元具有多个实体位址,其中所述第一数据属于所述第一逻辑单元的逻辑位址之中的一第一逻辑位址,
其中所述存储器管理单元将所述第一数据写入至所述第一实体单元的实体位址之中的一第一实体位址,并且记录所述第一逻辑位址与所述第一实体位址之间的映射关系。
15.根据权利要求14所述的闪存控制器,其特征在于,其中所述存储器管理单元建立至少一随机表并且在所述至少一随机表中记录所述多个逻辑位址所映射的所述多个实体位址。
16.根据权利要求14所述的闪存控制器,其特征在于,其中当所述主机系统在所述多个逻辑位址的其中之一中存储数据时,所述存储器管理单元将所述其中之一逻辑位址所映射的实体位址的存储状态标记为有效数据,
其中当所述主机系统删除存储在所述多个逻辑位址的其中之一中的数据时,所述存储器管理单元将所述其中之一逻辑位址所映射的实体位址的存储状态标记为无效数据。
17.根据权利要求10所述的闪存控制器,其特征在于,其中每一所述逻辑单元具有多个逻辑位址且每一所述实体单元具有多个实体位址,并且所述实体位址包括多个快速实体位址与多个慢速实体位址,并且写入数据至所述多个快速实体位址的速度快于写入数据至所述多个慢速实体位址的速度,
其中所述存储器管理单元仅利用所述第二实体单元的快速实体位址来写入所述第二数据。
18.一种闪存控制器,用于管理一闪存晶片的多个实体单元,其特征在于,所述闪存控制器包括:
一微处理器单元;
一闪存接口单元,电性连接至所述微处理器单元,用以电性连接至所述闪存晶片;
一主机接口单元,电性连接至所述微处理器单元,用以电性连接至一主机系统;以及
一存储器管理单元,电性连接至所述微处理器单元,用以将部分所述多个实体单元至少分组为一数据区与一备用区,
其中所述存储器管理单元配置多个逻辑单元,并且设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一,
其中所述主机接口单元接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元,
其中当所述第一逻辑单元所映射的一第一实体单元的存储状态为一子状态且所述多个逻辑单元之中的一第二逻辑单元所映射的一第二实体单元为一空状态时,所述存储器管理单元将所述第一数据写入至所述第二逻辑单元所映射的第二实体单元中,将所述第二逻辑单元原始所映射的第二实体单元映射至所述第一逻辑单元,将所述第一逻辑单元原始所映射的第一实体单元映射至所述第二逻辑单元,并且将所述第一逻辑单元所映射的第二实体单元的存储状态标记为一母状态,其中所述第一逻辑单元不同于所述第二逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
19.一种闪存存储系统,其特征在于,包括:
一闪存晶片,具有多个实体单元;
一连接器,用以电性连接至一主机系统;以及
一闪存控制器,电性连接至所述闪存晶片与所述连接器,用以将部分的所述多个实体单元至少分组为一数据区与一备用区,
其中所述闪存控制器配置多个逻辑单元,并且设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一,
其中所述闪存控制器将每一所述逻辑单元所映射的实体单元的存储状态标记为一空状态,
其中所述闪存控制器接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元并且所述第一逻辑单元映射所述多个实体单元之中的一第一实体单元,
其中所述闪存控制器将所述第一数据写入至所述第一逻辑单元所映射的所述第一实体单元,并且将所述第一逻辑单元所映射的所述第一实体单元的存储状态标记为一母状态,
其中所述闪存控制器接收一第二数据,其中所述第二数据属于所述第一逻辑单元,
其中当所述第一实体单元的剩余存储空间不足够写入所述第二数据且所述多个实体单元之中的一第二实体单元的存储状态为所述空状态时,所述闪存控制器将所述第二数据写入至所述第二实体单元并且将所述第二实体单元的存储状态标记为一子状态,其中所述第二实体单元映射所述多个逻辑单元之中的一第二逻辑单元,且所述第二逻辑单元不同于所述第一逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
20.根据权利要求19所述的闪存存储系统,其特征在于,其中所述闪存控制器接收一第三数据,其中所述第三数据属于所述第二逻辑单元,
其中所述闪存控制器将所述第三数据写入至所述多个实体单元之中的一第三实体单元,其中所述第三实体单元映射所述多个逻辑单元之中的一第三逻辑单元,
其中所述闪存控制器将所述第三逻辑单元原始所映射的第三实体单元映射至所述第二逻辑单元,将所述第二逻辑单元原始所映射的第二实体单元映射至所述第三逻辑单元,并且将所述第二逻辑单元映射的第三实体单元的存储状态标记为所述母状态,
其中所述第三逻辑单元不同于所述第一逻辑单元与所述第二逻辑单元。
21.根据权利要求19所述的闪存存储系统,其特征在于,其中所述闪存控制器将所述多个逻辑单元分组为多个区域,
其中每一所述逻辑单元具有多个逻辑位址,且在每一所述区域中,至少2个相邻的逻辑位址彼此是不连续的。
22.一种闪存存储系统,其特征在于,包括:
一闪存晶片,具有多个实体单元;
一连接器,用以电性连接至一主机系统;以及
一闪存控制器,电性连接至所述闪存晶片与所述连接器,用以将部分的所述多个实体单元至少分组为一数据区与一备用区,
其中所述闪存控制器配置多个逻辑单元,并且设定所述多个逻辑单元与所述数据区的实体单元之间的映射关系,其中每一所述逻辑单元映射所述数据区的实体单元的其中之一,
其中所述闪存控制器接收一第一数据,其中所述第一数据属于所述多个逻辑单元之中的一第一逻辑单元,
其中当所述第一逻辑单元所映射的一第一实体单元的存储状态为一子状态且所述多个逻辑单元之中的一第二逻辑单元所映射的一第二实体单元为一空状态时,所述闪存控制器将所述第一数据写入至所述第二逻辑单元所映射的第二实体单元中,将所述第二逻辑单元原始所映射的第二实体单元映射至所述第一逻辑单元,将所述第一逻辑单元原始所映射的第一实体单元映射至所述第二逻辑单元,并且将所述第一逻辑单元所映射的第二实体单元的存储状态标记为一母状态,其中所述第一逻辑单元不同于所述第二逻辑单元,
其中当所述实体单元被标记为所述母状态是表示所述实体单元所存储的数据是属于所述实体单元所映射的逻辑单元,并且当所述实体单元被标记为所述子状态是表示所述实体单元所存储的数据是不属于所述实体单元所映射的逻辑单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910262376 CN102110056B (zh) | 2009-12-24 | 2009-12-24 | 闪存管理方法、闪存控制器与闪存存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910262376 CN102110056B (zh) | 2009-12-24 | 2009-12-24 | 闪存管理方法、闪存控制器与闪存存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102110056A CN102110056A (zh) | 2011-06-29 |
CN102110056B true CN102110056B (zh) | 2013-07-17 |
Family
ID=44174222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910262376 Active CN102110056B (zh) | 2009-12-24 | 2009-12-24 | 闪存管理方法、闪存控制器与闪存存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102110056B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104978280B (zh) * | 2015-06-04 | 2020-10-30 | 上海川源信息科技有限公司 | 数据储存系统及其特定指令执行方法 |
CN106325777A (zh) * | 2016-08-24 | 2017-01-11 | 浪潮(北京)电子信息产业有限公司 | 一种逻辑单元管理方法及系统 |
TWI744049B (zh) * | 2020-02-06 | 2021-10-21 | 瑞昱半導體股份有限公司 | 記憶體控制器與資料處理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1256732C (zh) * | 1999-09-29 | 2006-05-17 | 三星电子株式会社 | 快闪存储器及其控制方法 |
CN101458956A (zh) * | 2007-12-14 | 2009-06-17 | 慧荣科技股份有限公司 | 存取一快闪存储器的装置、方法及平均地使用该快闪存储器的区块的方法 |
-
2009
- 2009-12-24 CN CN 200910262376 patent/CN102110056B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1256732C (zh) * | 1999-09-29 | 2006-05-17 | 三星电子株式会社 | 快闪存储器及其控制方法 |
CN101458956A (zh) * | 2007-12-14 | 2009-06-17 | 慧荣科技股份有限公司 | 存取一快闪存储器的装置、方法及平均地使用该快闪存储器的区块的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102110056A (zh) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103530062A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN102053796A (zh) | 闪存储存系统、闪存控制器与数据处理方法 | |
CN103514096A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN103377129A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN101425338B (zh) | 非易失性存储器的写入方法及使用此方法的控制器 | |
CN101408864B (zh) | 用于断电时的数据保护方法及使用此方法的控制器 | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN103678162A (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102866861B (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN102110056B (zh) | 闪存管理方法、闪存控制器与闪存存储系统 | |
CN102800357A (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
CN102122233A (zh) | 区块管理与数据写入方法、闪存储存系统与控制器 | |
CN102053920B (zh) | 数据写入方法及闪存控制器与闪存存储系统 | |
CN103984635A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102467459B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102467460B (zh) | 资料管理方法、存储器控制器与存储器储存装置 | |
CN102543184A (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN102841853B (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 |