CN102446137B - 数据写入方法、存储器控制器与存储器储存装置 - Google Patents
数据写入方法、存储器控制器与存储器储存装置 Download PDFInfo
- Publication number
- CN102446137B CN102446137B CN201010504333.XA CN201010504333A CN102446137B CN 102446137 B CN102446137 B CN 102446137B CN 201010504333 A CN201010504333 A CN 201010504333A CN 102446137 B CN102446137 B CN 102446137B
- Authority
- CN
- China
- Prior art keywords
- solid element
- data
- logical block
- write
- memory
- 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
Abstract
本发明提供一种数据写入方法、存储器控制器与存储器储存装置。该数据写入方法包括将多个实体区块分组为多个实体单元,将这些实体单元至少分组为数据区与闲置区,并且配置多个逻辑单元以映射属于数据区的实体单元。该数据写入方法也包括从属于闲置区的实体单元之中提取一个实体单元,将属于这些逻辑单元之中的至少一逻辑单元的至少一数据写入至所提取的实体单元中,以及在所提取的实体单元中写入一结束标记,其中在所提取的实体单元中此结束标记是接续于属于此逻辑单元的数据之后。基此,可有效地使用实体单元,延长存储器储存装置的寿命。
Description
技术领域
本发明涉及一种数据写入方法,尤其涉及一种用于非易失性存储器模组的数据写入方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP3在这几年来的发展十分迅速,使得消费者对数码内容的储存需求也急速增加。由于闪存(FlashMemory)具有数据非易失性、省电、体积小与无机械结构等的特性,适合使用者随身携带作为数码文件传递与交换的储存媒体。
传统上,闪存储存装置的用途主要是储存使用者数据。例如,使用者会使用随身碟来储存数码文件,或者使用记忆卡作为数码相机、MP3播放器等可携式装置的储存媒体,此类闪存储存装置主要储存数据量较大的数码数据(例如,数据量为64Kb或128Kb以上的数据)。
随着闪存技术的发展,使得闪存储存装置的储存容量越来越大且成本越来越低,因此许多电脑制造商开始将以闪存作为储存媒体的固态硬盘(SolidStateDrive,SSD)用作为电脑系统的主要磁碟。由电脑系统的作业系统会经常性地在主要磁碟中反复地写入与更新数据量较小的数据(例如,数据量为4Kb或8Kb以下的数据)。
基于闪存的物理特性,在闪存记忆胞仅能进行单向的程序化(即,记忆胞中的位元仅能从1程序化为0),因此在闪存的记忆胞中写入数据时必须先将记忆胞中先前所储存的数据抹除后方能重新写入新数据。
在闪存储存系统的设计上,一般来说,闪存储存系统的闪存实体区块会分组为多个实体单元(即,每一实体单元是由一个或多个实体区块所组成),该实体单元中具有至少一闪存细胞(flashmemorycell),每一细胞是由至少一电晶体所组成,如MOSFET或其他电晶体或逻辑电路,各该细胞可储存至少一个位元,并且这些实体单元会分组为数据区(dataarea)与闲置区(freearea)。归类为数据区的实体单元中会储存由写入指令所写入的有效数据,而闲置区中的实体单元是用以在执行写入指令时替换数据区中的实体单元。具体来说,当闪存储存系统接受到主机的写入指令而欲对数据区的实体单元进行写入时,闪存储存系统会从闲置区中提取一实体单元并且将在数据区中欲写入的实体单元中的有效旧数据与欲写入的新数据写入至从闲置区中提取的实体单元并且将已写入新数据的实体单元关联为数据区,并且将原该数据区的实体单元进行抹除并关联为闲置区。为了能够让主机能够顺利地存取以轮替方式储存数据的实体单元,闪存储存系统会提供逻辑单元以映射这些实体单元。具体来说,闪存储存系统会将主机所存取的逻辑存取地址转换至对应的逻辑单元,并且通过在逻辑单元-实体单元对映表(logicalunit-physicalunitmappingtable)中记录与更新逻辑单元与数据区的实体单元之间的对映关系来反映实体单元的轮替,所以主机仅需依据逻辑存取地址进行存取,而闪存储存系统会依据逻辑单元-实体单元对映表对所对映的实体单元进行数据的读取或写入。
基于上述闪存储存系统的运作架构下,在将闪存储存系统应用作为电脑系统的主硬盘时,由于电脑系统会经常性地反复地写入与更新数据量较小的数据,所以闪存储存系统的实体单元会被频繁地进行抹除动作来以上述轮替方式写入电脑系统所更新的数据。然而,组成实体单元的实体区块的抹除次数是有限的(例如实体区块抹除一万次后就会损坏),因此在频繁地抹除实体单元时将大幅缩短闪存储存装置的寿命。
发明内容
本发明提供一种数据写入方法与存储器控制器,其能够减少实体单元的抹除,由此有效地增加存储器储存装置的效能并且延长存储器储存装置的寿命。
此外,本发明提供一种存储器储存装置,其具有较长的使用寿命与较佳的写入效能。
本发明范例实施例提供一种数据写入方法,用于写入数据至多个实体区块。该数据写入方法包括将这些实体区块分组为多个实体单元,将这些实体单元至少分组为数据区与闲置区,并且配置多个逻辑单元以映射属于数据区的实体单元。该数据写入方法也包括从属于闲置区的实体单元之中提取一个实体单元,将属于这些逻辑单元之中的至少一逻辑单元的至少一数据写入至所提取的实体单元中,以及在所提取的实体单元中写入一结束标记,其中在所提取的实体单元中此结束标记是接续于属于此逻辑单元的数据之后。
本发明范例实施例提出一种数据写入方法,用于写入数据至多个实体区块。该数据写入方法包括将这些实体区块分组为多个实体单元,将这些实体单元至少分组为数据区与闲置区,并且配置多个逻辑单元以映射属于数据区的实体单元。该数据写入方法也包括接收属于这些逻辑单元之中的第一逻辑单元的第一数据,其中第一逻辑单元映射属于数据区的实体单元之中的第一实体单元。该数据写入方法还包括判断第一逻辑单元是否进入混乱写入状态,并且当第一逻辑单元进入混乱写入状态时,该数据写入方法还包括从属于闲置区的实体单元之中提取第三实体单元,并且将第一数据依序地写入至第三实体单元中。该数据写入方法还包括接收属于这些逻辑单元之中的第二逻辑单元的第二数据,其中此第二逻辑单元映射属于数据区的实体单元之中的第二实体单元。该数据写入方法也包括判断此第二逻辑单元是否进入混乱写入状态,并且当第二逻辑单元进入混乱写入状态时,该数据写入方法还包括将第二数据依序地写入至第三实体单元中。该数据写入方法还包括对第一逻辑单元与第二逻辑单元执行一数据合并程序,并且在对第一逻辑单元与第二逻辑单元执行数据合并程序之后,在第三实体单元中写入结束标记,其中在第三实体单元中此结束标记是接续于第一数据与第二数据之后。
本发明范例实施例提供一种存储器装置,用于管理非易失性存储器模组,其中此非易失性存储器模组具有多个实体区块。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统,并且存储器接口用以电性连接至非易失性存储器模组。存储器管理电路电性连接至此主机接口与此存储器接口,并且用以执行上述数据写入方法。
本发明范例实施例提出一种存储器储存系统,其包括连接器、非易失性存储器模组与存储器控制器。非易失性存储器模组具有多个实体区块。存储器控制器电性连接至此非易失性存储器模组与此连接器,并且用以执行上述数据写入方法。
基于上述,本发明范例实施例的数据写入方法与存储器控制器能够有效地延长存储器储存装置的寿命。并且,配置使用上述数据写入方法之存储器控制器的存储器储存装置具有较长的使用寿命。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明范例实施例的主机系统与存储器储存装置。
图1B是根据本发明范例实施例所示的电脑、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一范例实施例所示的主机系统与存储器储存装置的示意图。
图2是图1A所示的存储器储存装置的概要方块图。
图3是根据本发明范例实施例所示的存储器控制器的概要方块图。
图4是根据本发明一范例实施例所示的非易失性存储器模组的概要方块图。
图5与图6是根据本发明范例实施例所示的管理实体单元的示意图。
图7~图9是根据本发明范例实施例所示的以一般写入模式写入数据至非易失性存储器模组的范例。
图10A~10B是根据本发明范例实施例所示的以混乱写入模式写入数据的范例示意图。
图10C是根据本发明范例实施例所示的对以混乱写入模式所写入的数据执行数据合并程序的范例示意图。
图11是根据本发明另一范例实施例所示的以混乱写入模式写入数据的范例示意图。
图12是根据本发明另一范例实施例所示的混乱实体单元的范例示意图。
图13是根据本发明范例实施例所示的数据写入方法的流程图。
主要附图标记说明:
1000:主机系统;1100:电脑;
1102:微处理器;1104:随机存取存储器;
1106:输入/输出装置;1108:系统总线;
1110:数据传输接口;1202:鼠标;
1204:键盘;1206:显示器;
1208:打印机;1212:随身碟;
1214:记忆卡;1216:固态硬盘;
1310:数码相机;1312:SD卡;
1314:MMC卡;1316:记忆棒;
1318:CF卡;1320:嵌入式储存装置;
100:存储器储存装置;102:连接器;
104:存储器控制器;106:非易失性存储器模组;
202:存储器管理电路;204:主机接口;
206:存储器接口;252:缓冲存储器;
254:电源管理电路;256:错误检查与校正电路;
410:第一存储器子模组;420:第二存储器子模组;
430:第三存储器子模组;440:第四存储器子模组;
410(0)~410(R)、420(0)~420(R)、430(0)~430(R)、440(0)~440(R):实体区块;
D:数据位元区;R:冗余位元区;
310(0)~310(R):实体单元;502:数据区;
504:闲置区;506:系统区;
508:取代区;510(0)~510(H):逻辑单元;
S1301、S1303、S1305、S1307、S1309、S1311、S1313、S1315、S1317、S1319、
S1321:数据写入的步骤。
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括非易失性存储器模组与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据本发明范例实施例主机系统与存储器储存装置。
请参照图1A,主机系统1000一般包括电脑1100与输入/输出(input/output,I/O)装置1106。电脑1100包括微处理器1102、随机存取存储器(randomaccessmemory,RAM)1104、系统总线1108与数据传输接口1110。输入/输出装置1106包括如图1B的鼠标1202、键盘1204、显示器1206与打印机1208。必须了解的是,图1B所示的装置非限制输入/输出装置1106,输入/输出装置1106可还包括其他装置。
在本发明实施例中,存储器储存装置100是通过数据传输接口1110与主机系统1000的其他元件电性连接。通过微处理器1102、随机存取存储器1104与输入/输出装置1106的运作可将数据写入至存储器储存装置100或从存储器储存装置100中读取数据。例如,存储器储存装置100可以是如图1B所示的随身碟1212、记忆卡1214或固态硬盘(SolidStateDrive,SSD)1216等的非易失性存储器储存装置。
一般而言,主机系统1000可实质地为可储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以电脑系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音乐播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与非易失性存储器模组106。
在本范例实施例中,连接器102为通用串行总线(UniversalSerialBus,USB)连接器。然而,必须了解的是,本发明不限于此,连接器102也可以是电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394连接器、外设部件互连标准接口(PeripheralComponentInterconnectExpress,PCIExpress)连接器、串行高级技术附件(SerialAdvancedTechnologyAttachment,SATA)连接器、安全数码(SecureDigital,SD)接口连接器、记忆棒(MemoryStick,MS)接口连接器、多媒体储存卡(MultiMediaCard,MMC)接口连接器、小型快闪(CompactFlash,CF)接口连接器、集成设备电路接口(IntegratedDeviceElectronics,IDE)连接器或其他适合的连接器。
存储器控制器104用以执行以硬体型式或韧体型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在非易失性存储器模组106中进行数据的写入、读取与抹除等运作。在本范例实施例中,存储器控制器104用以根据本发明范例实施例的数据写入方法与存储器管理方法来管理非易失性存储器模组106。根据本发明范例实施例的数据写入方法与存储器管理方法将于以下配合附图作详细说明。
非易失性存储器模组106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。在本范例实施例中,非易失性存储器模组106为可复写式非易失性存储器模组。例如,非易失性存储器模组106为多阶记忆胞(MultiLevelCell,MLC)NAND闪存模组。然而,本发明不限于此,非易失性存储器模组106也可是单阶记忆胞(SingleLevelCell,SLC)NAND闪存模组、其他闪存模组或其他具有相同特性的存储器模组。
图3是根据本发明范例实施例所示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,这些控制指令会被执行以根据本范例实施例的数据写入方法与存储器管理方法来管理非易失性存储器模组106。
在本范例实施例中,存储器管理电路202的控制指令是以韧体型式来实作。例如,存储器管理电路202具有微处理器单元(未图示)与只读存储器(未图示),并且这些控制指令是被刻录至此只读存储器中。当存储器储存装置100运作时,这些控制指令会由微处理器单元来执行以完成根据本发明范例实施例的数据写入方法与存储器管理方法。
在本发明另一范例实施例中,存储器管理电路202的控制指令也可以程序码型式储存于非易失性存储器模组106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未图示)、只读存储器(未图示)及随机存取存储器(未图示)。特别是,此只读存储器具有驱动码段,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于非易失性存储器模组106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转这些控制指令以执行本发明第一范例实施例的数据写入方法与存储器管理方法。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令也可以一硬体型式来实作。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是对应连接器102为USB接口。然而,必须了解的是本发明不限于此,主机接口204也可以是PATA接口、IEEE1394接口、PCIExpress接口、SATA接口、SD接口、MS接口、MMC接口、CF接口、IDE接口或其他适合的数据传输接口。
存储器接口206是电性连接至存储器管理电路202并且用以存取非易失性存储器模组106。也就是说,欲写入至非易失性存储器模组106的数据会经由存储器接口206转换为非易失性存储器模组106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252。缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于非易失性存储器模组106的数据。
在本发明一范例实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本发明一范例实施例中,存储器控制器104还包括错误检查与校正电路256。错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(ErrorCheckingandCorrectingCode,ECCCode),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至非易失性存储器模组106中。之后,当存储器管理电路202从非易失性存储器模组106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4是根据本发明范例实施例所示的非易失性存储器模组的概要方块图。
请参照图4,非易失性存储器模组106包括第一存储器子模组410、第二存储器子模组420、第三存储器子模组430与第四存储器子模组440,其中第一存储器子模组410具有实体区块410(0)~410(R);第二存储器子模组420具有实体区块420(0)~420(R);第三存储器子模组430具有实体区块430(0)~430(R);以及第四存储器子模组440具有实体区块440(0)~440(R)。例如,第一存储器子模组410、第二存储器子模组420、第三存储器子模组430与第四存储器子模组440是分别地通过独立的数据总线电性连接至存储器控制器104。然而,必须了解的是,在本发明另一范例实施例中,第一存储器子模组410、第二存储器子模组420、第三存储器子模组430与第四存储器子模组440亦可通过1个数据总线或2个数据总线与存储器控制器104电性连接。第一存储器子模组410、第二存储器子模组420、第三存储器子模组430与第四存储器子模组440中的每一实体区块分别具有复数个实体页面,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除之最小单位。亦即,每一实体区块含有最小数目的一并被抹除的记忆胞。实体页面为程序化的最小单位。即,实体页面为写入数据的最小单位。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位也可以是扇区(Sector)或其他大小。每一实体页面通常包括数据位元区D与冗余位元区R。数据位元区D用以储存使用者的数据,而冗余位元区R用以储存系统的数据(例如,错误检查与校正码)。
此外,第一存储器子模组410、第二存储器子模组420、第三存储器子模组430与第四存储器子模组440的实体区块通常也可被分组为数个区域(zone),以每一独立的区域来管理实体区块410(0)~410(R)、实体区块420(0)~420(R)、实体区块430(0)~430(R)与实体区块440(0)~440(R)可增加操作执行的平行程度且简化管理的复杂度。
值得一提的是,虽然本发明范例实施例是以包括4个存储器子模组的非易失性存储器模组106为例来描述,但本发明不限于此。
在本范例实施例中,存储器控制器104的存储器管理电路202会将实体区块410(0)~410(R)、实体区块420(0)~420(R)、实体区块430(0)~430(R)与实体区块440(0)~440(R)分组为实体单元310(0)~310(R),并且以每一实体单元为单位来管理非易失性存储器模组106。也就是说,倘若每一个实体区块具有128个实体页面时,每一实体单元会包括512个实体页面,并且存储器管理电路202会以512个实体页面为单位来管理非易失性存储器模组106。
图5与图6是根据本发明范例实施例所示的管理实体单元的示意图。
请参照图5,存储器控制器104的存储器管理电路202会将实体单元310(0)~310(R)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体单元是用以储存来自于主机系统1000的数据。具体来说,数据区502是已储存数据的实体单元,而闲置区504的实体单元是用以替换数据区502的实体单元。因此,闲置区504的实体单元为空或可使用的实体单元,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区504中的实体单元已被执行抹除运作,或者当闲置区504中的实体单元被提取用于储存数据之前所提取的实体单元会被执行抹除运作。因此,闲置区504的实体单元为可被使用的实体单元。
逻辑上属于系统区506的实体单元是用以记录系统数据,其中此系统数据包括关于非易失性存储器模组的制造商与型号、非易失性存储器模组的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区508中的实体单元是替代实体单元。例如,非易失性存储器模组106于出厂时会预留4%的实体单元作为更换使用。也就是说,当数据区502、闲置区504与系统区506中的实体单元损毁时,预留于取代区508中的实体单元是用以取代损坏的实体单元。因此,倘若取代区508中仍存有正常的实体单元且发生实体单元损毁时,存储器管理电路202会从取代区508中提取正常的实体单元来更换损毁的实体单元。倘若取代区508中无正常的实体单元且发生实体单元损毁时,则存储器管理电路202会将整个存储器储存装置100宣告为写入保护(writeprotect)状态,而无法再写入数据。
特别是,数据区502、闲置区504、系统区506与取代区508的实体单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的运作中,实体单元关联至数据区502、闲置区504、系统区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体单元损坏而被取代区的实体单元取代时,则原本取代区508的实体单元会被关联至闲置区504。
请参照图6,如上所述,数据区502与闲置区504的实体单元是以轮替方式来储存主机系统1000所写入的数据。在本范例实施例中,存储器管理电路202会配置逻辑单元510(0)~510(H)以映射以上述轮替方式来储存数据的实体单元,并且将逻辑单元510(0)~510(H)映射至主机系统1000所存取的逻辑存取地址,以利主机系统1000来存取数据。
例如,存储器管理电路202会初始地将逻辑单元510(0)~510(H)映射至数据区502的实体单元。具体来说,当存储器储存装置100被完成制造时,逻辑单元510(0)~510(H)分别地映射至数据区502的实体单元310(0)~310(D)。也就是说,一个逻辑单元会映射数据区502中的一个实体单元。在此,存储器管理电路202会建立逻辑单元-实体单元映射表(logicalunit-physicalunitmappingtable),以记录逻辑单元与实体单元之间的映射关系。也就是说,存储器管理电路202会将主机系统1000欲存取的逻辑存取地址转换成对应的逻辑单元,由此通过逻辑单元-实体单元映射表于实体地址中存取数据。
图7~图9是根据本发明范例实施例所示的以一般写入模式写入数据至非易失性存储器模组的范例。
请同时参照图7~图9,例如,在逻辑单元510(0)是映射至实体单元310(0)的映射状态下,当存储器控制器104从主机系统1000中接收到写入指令而欲写入数据至属于逻辑单元510(0)的逻辑存取地址时,存储器管理电路202会依据逻辑单元-实体单元映射表识别逻辑单元510(0)目前是映射至实体单元310(0)并且从闲置区504中提取实体单元310(D+1)作为替换实体单元来轮替实体单元310(0)。然而,当存储器管理电路202将新数据写入至实体单元310(D+1)的同时,存储器管理电路202不会立刻将实体单元310(0)中的所有有效数据搬移至实体单元310(D+1)而抹除实体单元310(0)。具体来说,存储器管理电路202会将实体单元310(0)中欲写入实体页面之前的有效数据(即,实体单元310(0)的第0实体页面与第1实体页面中的数据)复制至实体单元310(D+1)的第0实体页面与第1实体页面中(如图7所示),并且将新数据写入至实体单元310(D+1)的第2实体页面与第3实体页面中(如图8所示)。此时,存储器管理电路202即完成写入的运作。因为实体单元310(0)中的有效数据有可能在下个操作(例如,写入指令)中变成无效,因此立刻将实体单元310(0)中的有效数据搬移至实体单元310(D+1)可能会造成无谓的搬移。此外,数据必须依序地写入至实体单元内的实体页面,因此,存储器管理电路202仅会先搬移欲写入实体页面之前的有效数据。
在本范例实施例中,暂时地维持此等母子暂态关系(即,实体单元310(0)与实体单元310(D+1))的运作称为开启(open)母子单元,并且原实体单元称为母实体单元而替换实体单元称为子实体单元。
之后,当需要将实体单元310(0)与实体单元310(D+1)的内容合并(merge)时,存储器管理电路202才会将实体单元310(0)与实体单元310(D+1)的数据整并至一个实体单元,由此提升实体单元的使用效率。在此,合并母子单元的运作称为数据合并程序或关闭(close)母子单元。例如,如图9所示,当进行关闭母子单元时,存储器管理电路202会将实体单元310(0)中剩余的有效数据(即,实体单元310(0)的第4实体页面~第(K)实体页面中的数据)复制至替换实体单元310(D+1)的第4实体页面~第(K)实体页面中,然后将实体单元310(0)抹除并关联至闲置区504,同时,将实体单元310(D+1)关联至数据区502。也就是说,存储器管理电路202会在逻辑单元-实体单元映射表中将逻辑单元510(0)重新映射至实体单元310(D+1)。此外,在本范例实施例中,存储器管理电路202会建立闲置区实体单元表(未图示)来记录目前被关联至闲置区的实体单元。值得一提的是,闲置区504中实体单元的数目是有限的,基此,在存储器储存装置100运作期间,开启之母子单元的组数亦会受到限制。因此,当存储器储存装置100接收到来自于主机系统1000的写入指令时,倘若已开启母子单元的组数达到上限时,存储器管理电路202需关闭至少一组目前已开启的母子单元(即,执行关闭母子单元运作)以执行此写入指令。在此,图7~图9所示的写入运作称为一般写入模式。
在本范例实施例中,存储器控制器104的存储器管理电路202除了执行上述的一般写入模式之外,还用以执行混乱写入模式(RandomWritingMode)来写入数据。
具体来说,由于非易失性存储器模组的程序化规范要求必须从每一实体区块的起始实体页面开始写入至最后一个实体页面并且在每个位元仅能程序一次(即由仅能“1”变为“0”)的条件下,一旦实体区块的实体页面被写入数据后,若欲更新已写入的数据就必须从闲置区504中提取一实体区块来重新进行图7~9所示的步骤。因此,当实体区块在未进行图9所示的关闭母子区块运作之前(即处于图8所示的暂态),而发生必须更新刚搬移的数据(例如图7所示的第0实体页面与第1实体页面中的数据)时,则所搬移的旧数据就必须再搬移一次。特别是,在存储器储存装置100作为主机系统1000的系统硬盘(即,安装作业系统的硬盘)时,主机系统1000会于相同逻辑存取地址上存取少量的数据。例如,主机系统1000会频繁地更改文件配置表(FileAllocationTable,FAT)。此时,存储器管理电路202会将此逻辑单元视为进入混乱写入状态,并且以混乱写入模式来将此逻辑单元的数据写入至非易失性存储器模组106中。例如,当以混乱写入模式来写入数据时,存储器管理电路202会从闲置区504中提取一个实体单元作为混乱实体单元并直接从所提取的实体单元的起始实体页面开始写入新数据而不进行图7所示的动作(即,复制有效数据的动作)。并且,当混乱写入状态结束后再从闲置区504中提取另一实体单元来进行数据合并程序,以将对应此逻辑单元的所有有效数据整理至所提取的实体单元中。
特别是,在本范例实施例中,存储器管理电路202会将进入混乱写入状态的一个或多个逻辑单元的数据写入至同一个混乱实体单元中。例如,在本范例实施例中,存储器管理电路202会将进入混乱写入状态的2个逻辑单元的数据写入至同一个混乱实体单元中。
图10A~10B是根据本发明范例实施例所示的以混乱写入模式写入数据的范例示意图,其以混乱写入模式将来自于主机系统1000的属于第一逻辑单元(即,逻辑单元510(0))的数据(也称为第一数据)与属于第二逻辑单元(即,逻辑单元510(4))的数据(也称为第二数据)写入至混乱实体单元的范例,其中假设逻辑单元510(0)是映射至第一实体单元(即,实体单元310(0))并且逻辑单元510(4)是映射至第二实体单元(即,实体单元310(4))。
请参照图10A,当欲以混乱写入模式写入属于逻辑单元510(0)的第3个逻辑页面的数据(即,更新实体单元310(0)的第3个实体页面)时,存储器管理电路202会从闲置区504中提取第三实体单元(即,实体单元310(D+1))作为混乱实体单元,并且将此数据写入至实体单元310(D+1)的第0个实体页面中。
之后,当欲以混乱写入模式来写入属于逻辑单元510(4)的第2个逻辑页面的数据(即,更新实体单元310(4)的第2个实体页面)时,存储器管理电路202会将属于逻辑单元510(4)的第2个逻辑页面的数据写入至实体单元310(D+1)的第1个实体页面中。
请参照图10B,在图10A所示的状态下,当欲写入属于逻辑单元510(0)的第2个逻辑页面的数据(即,更新实体单元310(0)的第2个实体页面)时,存储器管理电路202会将属于逻辑单元510(0)的第2个逻辑页面的数据写入至实体单元310(D+1)的第2个实体页面中。类似地,之后,当欲写入属于逻辑单元510(4)的第1个逻辑页面的数据(即,更新实体单元310(4)的第1个实体页面)时,存储器管理电路202会将属于逻辑单元510(4)的第1个逻辑页面的数据写入至实体单元310(D+1)的第3个实体页面中。
基于上述,如图10A与图10B所示,在混乱写入模式中,数据不会如图7~图9所示依据对应的实体页面来写入,因此,可省去搬移数据的时间,提高存取速度。
值得一提的是,闲置区504中实体单元的数目是有限的,因此,在存储器储存装置100运作期间,能够作为混乱实体单元的实体单元的数目也会受到限制。例如,当已用作为混乱实体单元的实体单元的数目大于预设门槛值并且需要从闲置区504中提取一个实体单元作为下一个写入指令所对应的逻辑单元的混乱实体单元时,存储器控制器104会执行数据合并程序,来整理有效数据,由此将皆储存无效数据的实体单元关联至闲置区504。或者,当混乱写入模式结束时,存储器控制器104亦会执行数据合并程序,来整理有效数据,由此将皆储存无效数据的实体单元关联至闲置区504。
图10C是根据本发明范例实施例所示的对以混乱写入模式所写入的数据执行数据合并程序的范例示意图,其对逻辑单元510(0)与逻辑单元510(4)执行数据合并程序的范例。
请参照图10C,存储器管理电路202会从闲置区504中提取第四实体单元(即,实体单元310(D+2))与第五实体单元(即,实体单元310(D+3))。并且,存储器管理电路202会将实体单元310(0)与实体单元310(D+1)中属于逻辑单元510(0)的有效数据搬移至实体单元310(D+2)并且在逻辑单元-实体单元映射表中将逻辑单元510(0)映射至(或称关联至)实体单元310(D+2)。此外,存储器管理电路202会将实体单元310(4)与实体单元310(D+1)中属于逻辑单元510(4)的有效数据搬移至实体单元310(D+3)并且在逻辑单元-实体单元映射表中将逻辑单元510(4)映射至(或称关联至)实体单元310(D+3)。
特别是,在本范例实施例中,存储器管理电路202会在混乱实体单元310(D+1)中写入结束标记EM。例如,结束标记会被记录在已使用过的实体页面的下一个实体页面的冗余位元区中(如图10C所示)。也就是说,在混乱实体单元310(D+1)中,结束标记EM会接续于属于逻辑单元510(0)与逻辑单元510(4)的数据之后被记录,以表示在结束标记EM之前的数据已被执行过数据合并程序。基此,倘若之后有逻辑单元进入混乱写入状态而需以混乱写入模式来写入数据时,结束标记EM以下的储存空间会再被用来写入此数据,以有效地使用实体单元。在本范例实施例中,结束标记EM可以是任何文字或任何字元。
具体来说,如上所述,在混乱写入模式中所写入的数据一般为少量的数据,因此,混乱实体单元310(D+1)中仍有其他储存空间未被使用。若继续使用混乱实体单元中未被写入数据的空间,直到混乱实体单元的所有空间皆被使用后再对此混乱实体单元执行抹除运作,将可大幅减少实体单元的抹除次数,延长存储器储存装置100的寿命。
图11是根据本发明另一范例实施例所示的以混乱写入模式写入数据的范例示意图,其系在图10C所示的状态下以混乱写入模式将来自于主机系统1000的属于第三逻辑单元(即,逻辑单元510(6))的数据(也称为第三数据)与属于第四逻辑单元(即,逻辑单元510(2))的数据(也称为第四数据)写入至混乱实体单元的范例,其中假设逻辑单元510(6)是映射至第六实体单元(即,实体单元310(6))并且逻辑单元510(2)是映射至第七实体单元(即,实体单元310(2))。
请参照图11,当欲以混乱写入模式写入属于逻辑单元510(6)的第1个逻辑页面的数据(即,更新实体单元310(6)的第1个实体页面)时,存储器管理电路202会将属于逻辑单元510(6)的第1个逻辑页面的数据写入至实体单元310(D+1)的第5个实体页面中。类似地,之后,当欲写入属于逻辑单元510(2)的第0个逻辑页面的数据(即,更新实体单元310(2)的第0个实体页面)时,存储器管理电路202会将属于逻辑单元510(2)的第0个逻辑页面的数据写入至实体单元310(D+1)的第6个实体页面中。
类似地,倘若存储器管理电路202对逻辑单元510(6)与逻辑单元510(2)执行数据合并程序之后,另一个结束标记EM会接续于属于逻辑单元510(6)与逻辑单元510(2)的数据之后被记录在混乱实体单元310(D+1)中(如图12所示),以表示在结束标记EM之前的数据已被执行过数据合并程序。
值得一提的是,倘若在存储器储存装置100中有逻辑单元是进入混乱写入状态并且发生不正常的断电时,存储器控制器104的存储器管理电路202会根据混乱实体单元中的结束标记来识别哪些数据已完成数据合并程序。例如,存储器管理电路202会从混乱实体单元的最后一个实体页面开始向前搜寻结束标记,并且识别记录在所搜寻到的第一个结束标记之后的数据为未完成数据合并程序的数据。
图13是根据本发明范例实施例所示的数据写入方法的流程图。
请参照图13,在步骤S1301中,存储器控制器104会从主机系统1000接收写入指令以及对应的逻辑存取地址与数据。
然后,在步骤S1303中,存储器控制器104会判断对应此逻辑存取地址的逻辑单元是否进入混乱写入状态。
倘若对应此逻辑存取地址的逻辑单元未进入混乱写入状态时,则在步骤S1305中,存储器控制器104会以一般写入模式将数据写入至对应的实体单元的实体页面中。以一般写入模式写入数据的方式已配合图7~图9描述如上,在此不重复描述。
倘若对应此逻辑存取地址的逻辑单元进入混乱写入状态时,则在步骤S1307中,存储器控制器104会判断是否存有已被设定对应此逻辑单元的混乱实体单元。
倘若存有已被设定对应此逻辑单元的混乱实体单元时,则在步骤S1309中,存储器控制器104会以混乱写入模式将数据依序地写入至对应的混乱实体单元中。
倘若未存有已被设定对应此逻辑单元的混乱实体单元时,则在步骤S1311中,存储器控制器104会判断是否可将目前的混乱实体单元的其中之一设定给此逻辑单元。例如,在本范例实施例中,存储器控制器104会使用一个混乱实体单元来储存对应2个逻辑单元的数据。因此,倘若目前的混乱实体单元之中有任一个混乱实体单元仅储存对应1个逻辑单元的数据时,则此混乱实体单元就可同时设定给另一个逻辑单元。
倘若在步骤S1311中判断可将目前的混乱实体单元的其中之一设定给此逻辑单元,则在步骤S1313中,存储器控制器104会将其中一个混乱实体单元设定给此逻辑单元并且将数据依序地写入至所设定的混乱实体单元中。
倘若在步骤S1311中判断无法将目前的混乱实体单元的任何一个设定给此逻辑单元时,则在步骤S1315中,存储器控制器104会判断所使用的混乱实体单元的数目是否已达到预设门槛值。
倘若所使用的混乱实体单元的数目已达到预设门槛值时,则在步骤S1317中,存储器控制器104会选择其中一个已使用的混乱实体单元执行数据合并程序并且在所选择的混乱实体单元中加入结束标记。执行数据合并程序与加入结束标记的方式已配合图10C描述如上,在此不重复描述。
之后,在步骤S1319,将所选择的混乱实体单元设定给此逻辑单元,并且将数据依序地写入至所设定的混乱实体单元中。
倘若所使用的混乱实体单元的数目未达到预设门槛值时,则在步骤S1321中存储器控制器104会从闲置区504中提取一个实体单元作为对应此逻辑单元的混乱实体单元,并且将数据依序地写入至所设定的混乱实体单元中。
综上所述,本发明范例实施例的数据写入方法及使此方法的存储器控制器与存储器储存装置能够有效地利用混乱实体单元的储存空间,减少实体单元的抹除次数,延长非易失性存储器模组的寿命。
虽然本发明以实施例揭示如上,但其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可作任意改动和等同替换,故本发明的保护范围应当以本发明权利要求所限定的范围为准。
Claims (5)
1.一种数据写入方法,用于写入数据至多个实体区块,该数据写入方法包括:
将所述实体区块分组为多个实体单元;
将所述实体单元至少分组为一数据区与一闲置区;
配置多个逻辑单元以映射属于该数据区的实体单元;
从属于该闲置区的实体单元之中提取一实体单元;
将属于所述逻辑单元之中的至少一逻辑单元的至少一数据写入至所提取的该实体单元中;以及
在所提取的该实体单元中写入一结束标记,其中在所提取的该实体单元中该结束标记是接续于属于该至少一逻辑单元的该至少一数据之后,并且该至少一逻辑单元的该至少一数据是已被执行过一数据合并程序的无效数据。
2.根据权利要求1所述的数据写入方法,还包括:
将属于所述逻辑单元之中的至少一其他逻辑单元的至少一数据写入至所提取的该实体单元中,其中该至少一其他逻辑单元的该至少一数据是接续于该结束标记之后。
3.根据权利要求1所述的数据写入方法,还包括:
在所提取的该实体单元中写入该结束标记之前执行该数据合并程序。
4.根据权利要求1所述的数据写入方法,其中每一所述实体单元具有多个实体页面并且每一所述实体页面具有一数据位元区与一冗余位元区,
其中在所提取的该实体单元中写入该结束标记的步骤包括:
在所提取的该实体单元的所述实体页面中的一实体页面的该冗余位元区中写入该结束标记。
5.一种存储器控制器,用于管理一非易失性存储器模组,其中该非易失性存储器模组具有多个实体区块,该存储器控制器包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该非易失性存储器模组;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,
其中该存储器管理电路用以将所述实体区块分组为多个实体单元,将所述实体单元至少分组为一数据区与一闲置区,并且配置多个逻辑单元以映射属于该数据区的实体单元,
其中该存储器管理电路还用以从属于该闲置区的实体单元之中提取一实体单元,将属于所述逻辑单元之中的至少一逻辑单元的至少一数据写入至所提取的该实体单元中,并且在所提取的该实体单元中写入一结束标记,
其中在所提取的该实体单元中该结束标记是接续于属于该至少一逻辑单元的该至少一数据,并且该至少一逻辑单元的该至少一数据是已被执行过一数据合并程序的无效数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410176976.4A CN103955434B (zh) | 2010-10-08 | 2010-10-08 | 数据写入方法、存储器控制器与存储器储存装置 |
CN201010504333.XA CN102446137B (zh) | 2010-10-08 | 2010-10-08 | 数据写入方法、存储器控制器与存储器储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010504333.XA CN102446137B (zh) | 2010-10-08 | 2010-10-08 | 数据写入方法、存储器控制器与存储器储存装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410176976.4A Division CN103955434B (zh) | 2010-10-08 | 2010-10-08 | 数据写入方法、存储器控制器与存储器储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102446137A CN102446137A (zh) | 2012-05-09 |
CN102446137B true CN102446137B (zh) | 2015-12-09 |
Family
ID=46008644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010504333.XA Active CN102446137B (zh) | 2010-10-08 | 2010-10-08 | 数据写入方法、存储器控制器与存储器储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102446137B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841851B (zh) * | 2012-07-19 | 2015-09-09 | 深圳市江波龙电子有限公司 | 闪存管理方法和闪存设备 |
US9442840B2 (en) * | 2012-12-19 | 2016-09-13 | Qualcomm Incorporated | Virtual boundary codes in a data image of a read-write memory device |
CN104732153B (zh) * | 2013-12-18 | 2018-01-12 | 群联电子股份有限公司 | 数据抹除方法、存储器控制电路单元及存储器存储装置 |
CN106708416B (zh) * | 2015-11-13 | 2020-06-09 | 群联电子股份有限公司 | 数据重建方法与系统及其存储器控制电路单元 |
CN106990921B (zh) * | 2017-03-24 | 2019-10-11 | 合肥兆芯电子有限公司 | 数据写入方法、存储器存储装置与存储器控制电路单元 |
CN110297810B (zh) * | 2019-07-05 | 2022-01-18 | 联想(北京)有限公司 | 一种流数据处理方法、装置及电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833437A (zh) * | 2009-05-19 | 2010-09-15 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004303092A (ja) * | 2003-03-31 | 2004-10-28 | Fujitsu Ltd | メモリ装置、メモリアクセス制限システムおよびメモリアクセス方法 |
TWI379194B (en) * | 2009-01-15 | 2012-12-11 | Phison Electronics Corp | Block management method for flash memory, and storage system and controller using the same |
-
2010
- 2010-10-08 CN CN201010504333.XA patent/CN102446137B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833437A (zh) * | 2009-05-19 | 2010-09-15 | 威盛电子股份有限公司 | 适用于微处理器的装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102446137A (zh) | 2012-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI436212B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN104679437A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN103514096B (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
CN104732153A (zh) | 数据抹除方法、存储器控制电路单元及存储器存储装置 | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102592670B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102043725B (zh) | 用于闪存的数据写入方法及其控制器与储存系统 | |
CN102915273B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102968385B (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102200946B (zh) | 资料存取方法、记忆体控制器与储存系统 | |
CN103678162A (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN102866861B (zh) | 闪存储存系统、闪存控制器与数据写入方法 | |
CN104536906A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI451247B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN103577344A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103513930A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN103544118A (zh) | 存储器储存装置、其存储器控制器与数据写入方法 | |
CN102999437A (zh) | 数据搬移方法、存储器控制器与存储器储存装置 | |
CN102890653A (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 |