CN103377129B - 数据写入方法、存储器控制器与存储器储存装置 - Google Patents

数据写入方法、存储器控制器与存储器储存装置 Download PDF

Info

Publication number
CN103377129B
CN103377129B CN201210105119.6A CN201210105119A CN103377129B CN 103377129 B CN103377129 B CN 103377129B CN 201210105119 A CN201210105119 A CN 201210105119A CN 103377129 B CN103377129 B CN 103377129B
Authority
CN
China
Prior art keywords
blocks
physical blocks
logical blocks
logical
physical
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
Application number
CN201210105119.6A
Other languages
English (en)
Other versions
CN103377129A (zh
Inventor
詹清文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Phison Electronics Corp
Original Assignee
Phison Electronics Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Phison Electronics Corp filed Critical Phison Electronics Corp
Priority to CN201210105119.6A priority Critical patent/CN103377129B/zh
Publication of CN103377129A publication Critical patent/CN103377129A/zh
Application granted granted Critical
Publication of CN103377129B publication Critical patent/CN103377129B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种数据写入方法、存储器控制器与存储器储存装置。该数据写入方法,用于具多个物理区块的可重写式非易失性存储器模块。该方法包括:配置虚拟区块地址以映射至少部分的逻辑区块;接收指示将文件数据写入至多个第一虚拟区块地址的写入指令,其中第一虚拟区块地址是映射至上述至少部分的多个第一逻辑区块。该方法还包括:将文件数据写入多个第二逻辑区块所映射的物理区块;在写入期间,判断是否发生编程错误;以及,当未发生编程错误时,将第一虚拟区块地址重新映射至第二逻辑区块。藉此,该方法可确保文件数据更新的完整性。

Description

数据写入方法、存储器控制器与存储器储存装置
技术领域
本发明涉及一种数据写入方法,特别是涉及一种用于可重写式非易失性存储器模块的数据写入方法以及使用此方法的存储器储存装置与存储器控制器。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可重写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。
一般来说,可重写式非易失性存储器模块包括多个物理区块,并且多个逻辑区块被配置以映射至部分的物理区块。当一个主机系统要存取可重写式非易失性存储器模块时,下达存取所述逻辑区块的指令给控制可重写式非易失性存储器模块的存储器控制器。在现有技术中,存储器控制器是以一个物理区块为单位来管理可重写式非易失性存储器模块。在根据一个写入指令将属于一个逻辑区块的数据写入至一个物理区块时,若发生编程错误,存储器控制器确保此逻辑区块所映射的物理区块所储存的数据是未执行写入指令前的旧数据。然而,当一个文件数据被分散地储存到多个逻辑区块,且执行写入指令时发生编程错误时,则发生多个逻辑区块所储存的文件数据的完整性发生问题。详细来说,已完成写入动作的逻辑区块被映射至储存有新数据的物理区块,但发生编程错误的逻辑区块仍映射至储存有旧数据的物理区块。如此一来,各个逻辑区块所储存的文件数据会不完整(即,一部分被更新,并且另一部分没有被更新)。因此,如何确保被分散地储存至多个逻辑区块的数据的更新能够完整,为本领域技术人员所关心的议题。
发明内容
本发明的范例实施例中提出一种数据写入方法以及使用此方法的存储器控制器与存储器储存装置,可确保被分散地储存至多个逻辑区块的文件数据的更新完整性。
本发明在一范例实施例中,提出一种数据写入方法,用于一可重写式非易失性存储器模块。此可重写式非易失性存储器模块包括了多个物理区块,其中多个逻辑区块被配置以映射至部分的物理区块。此数据写入方法包括:配置多个虚拟区块地址以映射至少部分的逻辑区块,并将所述虚拟区块地址提供给一主机系统;接收来自主机系统的一个写入指令,此写入指令是指示将一文件数据写入至上述虚拟区块地址之中的多个第一虚拟区块地址,而所述第一虚拟区块地址是映射至上述至少部分的逻辑区块之中的多个第一逻辑区块。本数据写入方法还包括:将上述的文件数据写入至上述逻辑区块中的多个第二逻辑区块所映射的物理区块;判断在将文件数据写入至第二逻辑区块所映射的物理区块期间是否发生一编程错误;以及,当未发生编程错误时,将第一虚拟区块地址映射至第二逻辑区块。
在一范例实施例中,上述的数据写入方法还包括:将逻辑区块至少划分为储存区与缓冲区,其中上述至少部分的逻辑区块被划分为储存区,而第二逻辑区块是属于缓冲区。其中当未发生编程错误时,将第一虚拟区块地址映射至第二逻辑区块的步骤还包括:将第二逻辑区块关联至上述的储存区,并将第一逻辑区块关联至缓冲区。
在一范例实施例中,上述的数据写入方法还包括:将上述的多个物理区块逻辑地至少分组为一数据区与一闲置区。其中,上述的逻辑区块是映射至数据区的物理区块;第一逻辑区块是分别地映射至数据区的物理区块之中的多个第一物理区块;并且,第二逻辑区块是分别地映射至数据区的物理区块之中的多个第二物理区块。
在一范例实施例中,上述将文件数据写入至逻辑区块之中的第二逻辑区块所映射的物理区块的步骤包括:从闲置区的物理区块之中选择多个第三物理区块;将文件数据写入至第三物理区块中;将第二逻辑区块分别地重新映射至第三物理区块;以及,将第二物理区块关联至闲置区并且将第三物理区块关联至数据区。
在一范例实施例中,上述的数据写入方法还包括:将属于第一逻辑区块的有效数据从第一物理区块复制到第三物理区块。
在一范例实施例中,上述的数据写入方法还包括:建立一虚拟逻辑映射表,用以记录上述的虚拟区块地址与储存区的逻辑区块之间的映射关系。
在一范例实施例中,上述配置多个虚拟区块地址以映射至储存区的逻辑区块,并将虚拟区块地址提供给主机系统的步骤包括;提供所述虚拟区块地址给执行于主机系统中的多个应用程序。上述建立虚拟逻辑映射表的步骤则包括:建立属于每一个应用程序的虚拟逻辑映射表。
在一范例实施例中,上述的数据写入方法还包括:当发生编程错误时,传送一错误讯息给主机系统以回应写入指令。
在一范例实施例中,上述的第一逻辑区块是映射至第一物理区块,而上述的第二逻辑区块是映射至第二物理区块。上述将文件数据写入至逻辑区块之中的第二逻辑区块所映射的物理区块的步骤包括:将上述的文件数据写入至第二物理区块当中;以及,将属于第一逻辑区块的有效数据从第一物理区块复制到第二物理区块。
以另外一个角度来说,本发明在一范例实施例中提出一种存储器储存装置,包括连接器、可重写式非易失性存储器模块与存储器控制器。其中,连接器是用以电性连接至一主机系统。可重写式非易失性存储器模块包括了多个物理区块,其中多个逻辑区块被配置以映射至部分的物理区块。存储器控制器则电性连接至连接器与可重写式非易失性存储器模块,并配置多个虚拟区块地址以映射至少部分的逻辑区块,并将所述虚拟区块地址提供给主机系统。此外,存储器控制器接收来自主机系统的一写入指令,此写入指令是指示将一个文件数据写入至上述虚拟区块地址之中的多个第一虚拟区块地址,而所述第一虚拟区块地址是映射至上述至少部分的逻辑区块之中的多个第一逻辑区块。存储器控制器也将文件数据写入至上述逻辑区块之中的多个第二逻辑区块所映射的物理区块。存储器控制器还判断在将文件数据写入至第二逻辑区块所映射的物理区块期间是否发生一编程错误。当未发生编程错误时,存储器控制器将第一虚拟区块地址映射至第二逻辑区块。
在一范例实施例中,上述的存储器控制器还用以将上述的逻辑区块至少划分为储存区与缓冲区,其中上述至少部分的逻辑区块被划分为储存区,而第二逻辑区块是属于缓冲区。当未发生编程错误时,存储器控制器将第二逻辑区块关联至储存区,并将第一逻辑区块关联至缓冲区。
在一范例实施例中,上述的存储器控制器还用以将物理区块逻辑地至少分组为一数据区与一闲置区。其中,上述的逻辑区块是映射至数据区的物理区块,而第一逻辑区块是分别地映射至数据区的物理区块之中的多个第一物理区块,并且,第二逻辑区块是分别地映射至数据区的物理区块之中的多个第二物理区块。
在一范例实施例中,上述在将文件数据写入至逻辑区块之中的第二逻辑区块所映射的物理区块的过程中,存储器控制器还用以从闲置区的物理区块之中选择多个第三物理区块,将文件数据写入至第三物理区块中,将第二逻辑区块分别地重新映射至第三物理区块,将第二物理区块关联至闲置区,以及将第三物理区块关联至数据区。
在一范例实施例中,上述的存储器控制器还用以将属于第一逻辑区块的有效数据从第一物理区块复制到第三物理区块。
在一范例实施例中,上述的存储器控制器还用以建立一虚拟逻辑映射表,以记录虚拟区块地址与储存区的逻辑区块之间的映射关系。
在一范例实施例中,上述的存储器控制器还用以提供上述的虚拟区块地址给执行于主机系统中的多个应用程序,并且建立属于每一个应用程序的虚拟逻辑映射表。
在一范例实施例中,上述的存储器控制器还用以在发生编程错误时,传送一错误讯息给主机系统以回应上述的写入指令。
以另外一个角度来说,本发明在一范例实施例中提出一种存储器控制器,包括主机接口、存储器接口与存储器管理电路。其中,主机接口是用以电性连接至一主机系统。存储器接口是电性连接至一可重写式非易失性存储器模块,此可重写式非易失性存储器模块包括了多个物理区块,而多个逻辑区块被配置以映射至部分的物理区块。存储器管理电路则电性连接至主机接口与存储器接口,并配置多个虚拟区块地址以映射至少部分的逻辑区块,并将所述虚拟区块地址提供给主机系统。此外,存储器管理电路接收来自主机系统的一写入指令,此写入指令是指示将一文件数据写入至虚拟区块地址之中的多个第一虚拟区块地址,而所述第一虚拟区块地址是映射至上述至少部分的逻辑区块之中的多个第一逻辑区块。存储器管理电路也将文件数据写入至上述逻辑区块之中的多个第二逻辑区块所映射的物理区块。存储器管理电路还判断在将文件数据写入至第二逻辑区块所映射的物理区块期间是否发生一编程错误。当未发生编程错误时,存储器管理电路将第一虚拟区块地址映射至第二逻辑区块。
在一范例实施例中,上述的存储器管理电路还用以将上述的逻辑区块至少划分为储存区与缓冲区,其中上述至少部分的逻辑区块被划分为储存区,而第二逻辑区块是属于缓冲区。当未发生编程错误时,存储器管理电路将第二逻辑区块关联至储存区,并将第一逻辑区块关联至缓冲区。
在一范例实施例中,上述的存储器管理电路还用以将物理区块逻辑地至少分组为一数据区与一闲置区。其中,上述的逻辑区块是映射至数据区的物理区块;而第一逻辑区块是分别地映射至数据区的物理区块之中的多个第一物理区块;并且,第二逻辑区块是分别地映射至数据区的物理区块之中的多个第二物理区块。
在一范例实施例中,上述在将文件数据写入至逻辑区块之中的第二逻辑区块所映射的物理区块的过程中,存储器管理电路还用以从闲置区的物理区块之中选择多个第三物理区块。存储器管理电路将文件数据写入至第三物理区块中,将第二逻辑区块分别地重新映射至第三物理区块,并且将第二物理区块关联至闲置区并且将第三物理区块关联至数据区。
在一范例实施例中,上述的存储器管理电路还用以将属于第一逻辑区块的有效数据从第一物理区块复制到第三物理区块。
在一范例实施例中,上述的存储器管理电路还用以建立一虚拟逻辑映射表,以记录虚拟区块地址与储存区的逻辑区块之间的映射关系。
在一范例实施例中,上述的存储器管理电路还用以提供上述的多个虚拟区块地址给执行于主机系统中的多个应用程序,并且建立属于每一个应用程序的虚拟逻辑映射表。
在一范例实施例中,上述的存储器管理电路还用以在发生编程错误时,传送一错误讯息给主机系统以回应写入指令。
基于上述,本发明范例实施例所提出的数据写入方法、存储器控制器与存储器储存装置,可确保被分散地储存至多个逻辑区块的数据的更新能够完整。
为使本发明的上述特征和优点能更明显易懂,下文特举实施例,并结合附图详细说明如下。
附图说明
图1A是根据第一范例实施例所绘示的主机系统与存储器储存装置。
图1B是根据第一范例实施例所绘示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据第一范例实施例所绘示的主机系统与存储器储存装置的示意图。
图2是绘示图1A所示的存储器储存装置的概要方块图。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
图4与图5是根据第一范例实施例所绘示的管理可重写式非易失性存储器模块的范例示意图。
图6是根据第一范例实施例说明主机系统的应用程序存取虚拟区块地址的示意图。
图7是根据第一范例实施例说明进行写入运作时调整逻辑区块与物理区块之间的映射关系的范例示意图。
图8是根据图7的范例绘示将文件数据写入至物理区块的示意图。
图9是根据一范例实施例绘示数据写入方法的流程图。
图10是根据第二范例实施例说明主机系统的应用程序存取虚拟区块地址的示意图。
图11是根据第二范例实施例说明进行写入运作时调整逻辑区块与物理区块之间的映射关系的范例示意图。
附图符号说明
1000:主机系统
1100:计算机
1102:微处理器
1104:随机存取存储器
1105:操作系统
1106:输入/输出装置
1107:应用程序
1108:系统总线
1110:数据传输接口
1202:鼠标
1204:键盘
1206:显示器
1208:打印机
1212:随身盘
1214:存储卡
1216:固态硬盘
1310:数码相机
1312:SD卡
1314:MMC卡
1316:存储棒
1318:CF卡
1320:嵌入式储存装置
100:存储器储存装置
102:连接器
104:存储器控制器
106:可重写式非易失性存储器模块
304(0)~304(R):物理区块
202:存储器管理电路
206:存储器接口
254:电源管理电路
252:缓冲存储器
256:错误检查与校正电路
402:数据区
404:闲置区
406:系统区
408:取代区
LBA(0)~LBA(D):逻辑区块
602(0)~602(E):虚拟区块地址
620、1020:储存区
640、1040:缓冲区
702:文件数据
704、706、708、709:虚拟区域
714、716、718、719、734、736、738、739:逻辑区域
724、726、728、729、804、806、808、809:物理区域
S904、S906、S908、S910、S912、S914:数据写入方法的步骤
具体实施方式
[第一范例实施例]
一般而言,存储器储存装置(亦称,存储器储存系统)包括可重写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图1A是根据第一范例实施例所绘示的主机系统与存储器储存装置。
请参照图1A,主机系统1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存取存储器(randomaccessmemory,RAM)1104、系统总线1108与数据传输接口1110。微处理器1102执行载入至随机存取存储器1104中的操作系统1105与应用程序1107,以使主机系统1000根据使用者的操作而提供对应的功能。输入/输出装置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为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统1000是以计算机系统来作说明,然而,在本发明另一范例实施例中主机系统1000可以是数码相机、摄影机、通信装置、音讯播放器或视讯播放器等系统。例如,在主机系统为数码相机(摄影机)1310时,可重写式非易失性存储器储存装置则为其所使用的SD卡1312、MMC卡1314、存储棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(EmbeddedMMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。
图2是绘示图1A所示的存储器储存装置的概要方块图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可重写式非易失性存储器模块106。
在本范例实施例中,连接器102是相容于安全数字(SecureDigital,SD)接口标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合并列先进附件(ParallelAdvancedTechnologyAttachment,PATA)标准、电气和电子工程师协会(InstituteofElectricalandElectronicEngineers,IEEE)1394标准、高速周边零件连接接口(PeripheralComponentInterconnectExpress,PCIExpress)标准、通用序列总线(UniversalSerialBus,USB)标准、序列先进附件(SerialAdvancedTechnologyAttachment,SATA)标准、存储棒(MemoryStick,MS)接口标准、多媒体储存卡(MultiMediaCard,MMC)接口标准、小型快闪(CompactFlash,CF)接口标准、整合式驱动电子接口(IntegratedDeviceElectronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬体型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可重写式非易失性存储器模块106中进行数据的写入、读取与擦除等运作。
可重写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可重写式非易失性存储器模块106具有物理区块304(0)~304(R)。例如,物理区块304(0)~304(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一物理区块分别具有多个物理页面,并且每一物理页面具有至少一物理扇区,其中属于同一个物理区块的物理页面可被独立地写入且被同时地擦除。例如,每一物理区块是由128个物理页面所组成,并且每一物理页面具有8个物理扇区(sector)。也就是说,在每一物理扇区为512字节(byte)的例子中,每一物理页面的容量为4千字节(Kilobyte,KB)。然而,必须了解的是,本发明不限于此,每一物理区块是可由64个物理页面、256个物理页面或其他任意个物理页面所组成。
更详细来说,物理区块为擦除的最小单位。亦即,每一物理区块含有最小数目的一并被擦除的存储单元。物理页面为编程的最小单元。即,物理页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是物理扇区或其他大小。每一物理页面通常包括数据位区与冗余位区。数据位区用以储存使用者的数据,而冗余位区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可重写式非易失性存储器模块106为多阶存储单元(MultiLevelCell,MLC)NAND快闪存储器模块,即一个存储单元中可储存至少2个位数据。然而,本发明不限于此,可重写式非易失性存储器模块106亦可是单阶存储单元(SingleLevelCell,SLC)NAND快闪存储器模块、多阶存储单元(TrinaryLevelCell,TLC)NAND型快闪存储器模块、其他快闪存储器模块或其他具有相同特性的存储器模块。
图3是根据第一范例实施例所绘示的存储器控制器的概要方块图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,所述控制指令被执行以进行数据的写入、读取与擦除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未绘示)与只读存储器(未绘示),并且所述控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,所述控制指令由微处理器单元来执行以进行数据的写入、读取与擦除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可重写式非易失性存储器模块106的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未绘示)、只读存储器(未绘示)及随机存取存储器(未绘示)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元先执行此驱动码来将储存于可重写式非易失性存储器模块106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元运转所述控制指令以进行数据的写入、读取与擦除等运作。
此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬体型式来实作。例如,存储器管理电路202包括微控制器、存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元。存储器管理单元、存储器写入单元、存储器读取单元、存储器擦除单元与数据处理单元是电性连接至微控制器。其中,存储器管理单元用以管理可重写式非易失性存储器模块106的物理区块;存储器写入单元用以对可重写式非易失性存储器模块106下达写入指令以将数据写入至可重写式非易失性存储器模块106中;存储器读取单元用以对可重写式非易失性存储器模块106下达读取指令以从可重写式非易失性存储器模块106中读取数据;存储器擦除单元用以对可重写式非易失性存储器模块106下达擦除指令以将数据从可重写式非易失性存储器模块106中擦除;而数据处理单元用以处理欲写入至可重写式非易失性存储器模块106的数据以及从可重写式非易失性存储器模块106中读取的数据。
主机接口204是电性连接至存储器管理电路202并且用以接收与识别主机系统1000所传送的指令与数据。也就是说,主机系统1000所传送的指令与数据通过主机接口204来传送至存储器管理电路202。在本范例实施例中,主机接口204是相容于SD标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是相容于PATA标准、IEEE1394标准、PCIExpress标准、USB标准、SATA标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可重写式非易失性存储器模块106。也就是说,欲写入至可重写式非易失性存储器模块106的数据经由存储器接口206转换为可重写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254与错误检查与校正电路256。
缓冲存储器252是电性连接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可重写式非易失性存储器模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器储存装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256为对应此写入指令的数据产生对应的错误检查与校正码(ErrorCheckingandCorrectingCode,ECCCode),并且存储器管理电路202将对应此写入指令的数据与对应的错误检查与校正码写入至可重写式非易失性存储器模块106中。之后,当存储器管理电路202从可重写式非易失性存储器模块106中读取数据时同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4与图5是根据第一范例实施例所绘示的管理可重写式非易失性存储器模块的范例示意图。
必须了解的是,在此描述可重写式非易失性存储器模块106的物理区块的运作时,以“提取”、“交换”、“分组”、“轮替”等词来操作物理区块是逻辑上的概念。也就是说,可重写式非易失性存储器模块的物理区块的实际位置并未更动,而是逻辑上对可重写式非易失性存储器模块的物理区块进行操作。
请参照图4,存储器控制器104将可重写式非易失性存储器模块的物理区块304(0)~304(R)逻辑地分组为数据区402、闲置区404、系统区406与取代区408。
数据区402与闲置区404的物理区块是用以储存来自于主机系统1000的数据。具体来说,数据区402是已储存数据的物理区块,而闲置区404的物理区块是用以替换数据区402的物理区块。因此,闲置区404的物理区块为空或可使用的物理区块,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区404中的物理区块已被执行擦除运作,或者当闲置区404中的物理区块被提取用于储存数据之前所提取的物理区块被执行擦除运作。因此,闲置区404的物理区块为可被使用的物理区块。
逻辑上属于系统区406的物理区块是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的物理区块数、每一物理区块的物理页面数等。
逻辑上属于取代区408中的物理区块是替代物理区块。例如,可重写式非易失性存储器模块于出厂时预留4%的物理区块作为更换使用。也就是说,当数据区402、闲置区404与系统区406中的物理区块损毁时,预留于取代区408中的物理区块是用以取代损坏的物理区块(即,坏物理区块(badblock))。因此,倘若取代区408中仍存有正常的物理区块且发生物理区块损毁时,存储器控制器104从取代区408中提取正常的物理区块来更换损毁的物理区块。倘若取代区408中无正常的物理区块且发生物理区块损毁时,则存储器控制器104将整个存储器储存装置100宣告为写入保护(writeprotect)状态,而无法再写入数据。
特别是,数据区402、闲置区404、系统区406与取代区408的物理区块的数量依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器储存装置100的运作中,物理区块关联至数据区402、闲置区404、系统区406与取代区408的分组关系动态地变动。例如,当闲置区中的物理区块损坏而被取代区的物理区块取代时,则原本取代区的物理区块被关联至闲置区。
请参照图5,如上所述,数据区402与闲置区404的物理区块是以轮替方式来储存主机系统1000所写入的数据。在本范例实施例中,存储器控制器104的存储器管理电路202配置逻辑区块LBA(0)~LBA(D)以利于在以上述轮替方式来储存数据的物理区块中进行数据存取。具体来说,逻辑区块LBA(0)~LBA(D)分别地具有多个逻辑页面,并且逻辑区块LBA(0)~LBA(D)初始地映射至数据区402的物理区块304(0)~304(D),其中一个逻辑区块映射数据区402中的一个物理区块。例如,存储器管理电路202建立逻辑区块-物理区块映射表(logicalblock-physicalblockmappingtable),以记录逻辑区块与物理区块之间的映射关系。
在本发明范例实施例中,存储器控制器104的存储器管理电路202将逻辑区块LBA(0)~LBA(D)区分为储存区与缓冲区,配置虚拟区块地址以映射储存区的逻辑区块,并且将所配置的虚拟区块地址提供给主机系统1000的应用程序进行存取,其中一个虚拟区块地址是映射一个逻辑区块。特别是,储存区与缓冲区的逻辑区块是以轮替方式来映射虚拟区块地址。也就是说,当原先关联至缓冲区的一个逻辑区块若被映射至一个虚拟区块地址,此逻辑区块被关联至储存区;并且当原先关联至储存区的一个逻辑区块不再被映射至一个虚拟区块地址时,此逻辑区块被关联至缓冲区。
图6是根据第一范例实施例说明主机系统的应用程序存取虚拟区块地址的示意图。
请参照图6,存储器管理电路202将逻辑区块LBA(0)~LBA(D)划分出储存区620与缓冲区640。例如,储存区620包括逻辑区块LBA(A)~LBA(B),而缓冲区640包括逻辑区块LBA(B+1)~LBA(C)。并且,存储器管理电路202将储存区620与缓冲区640的逻辑区块映射到数据区402的物理区块304(0)~304(M)。特别的是,存储器管理电路202配置虚拟区块地址602(0)~602(E)以映射至储存区620中的逻辑区块LBA(A)~LBA(B),并且将虚拟区块地址602(0)~602(E)提供给主机系统1000,使得安装在主机系统1000的应用程序1107可以存取虚拟区块地址602(0)~602(E)。值得注意的是,由于虚拟区块地址602(0)~602(E)只映射至逻辑区块LBA(A)~LBA(B),因此主机系统1000并无法存取逻辑区块LBA(B+1)~LBA(C)。
此外,尽管在本范例实施例中,逻辑区块LBA(0)~LBA(D)是被至少划分出储存区620与缓冲区640来进行说明,但本发明并不在此限,在本发明另一范例实施例中,逻辑区块LBA(0)~LBA(D)亦被划分为更多个区域来进行管理。并且,本发明并不限制储存区620与缓冲区640中所包括的逻辑区块个数。
例如,在一范例实施例中,存储器管理电路202建立属于应用程序1107的一个虚拟逻辑映射表,用以记录虚拟区块地址602(0)~602(E)与储存区620的逻辑区块LBA(A)~LBA(B)之间的映射关系。
图7是根据第一范例实施例说明进行写入运作时调整逻辑区块与物理区块之间的映射关系的范例示意图。
请参照图7,在此假设应用程序1107下达将文件数据702写入至虚拟区块地址602(0)的虚拟区域704与虚拟区块地址602(1)的虚拟区域706(在此,虚拟区块地址602(0)与602(1)亦被称为第一虚拟区块地址)的写入指令给存储器储存装置100。也就是说,文件数据702包括多个片段,并且应用程序1107欲将所述片段分别地储存至虚拟区域704以及虚拟区域706。例如,虚拟区域704以及虚拟区域706包括了一个或多个虚拟地址以供应用程序1107来存取。特别的是,在本范例实施例中,欲写入至虚拟区域704与虚拟区域706的文件数据702是属于同一个文件,因此,存储器管理电路202能够确保虚拟区域704与虚拟区域706所储存的文件数据的更新是完整的。
例如,存储器管理电路202在接收到此写入指令以后,可根据虚拟逻辑映射表找到映射至虚拟区块地址602(0)的逻辑区块LBA(A),以及映射至虚拟区块地址602(1)的逻辑区块LBA(A+1)(在此,逻辑区块LBA(A)与LBA(A+1)亦被统称为第一逻辑区块)。在图7所示的范例中,逻辑区块LBA(A)与LBA(A+1)是分别映射至数据区402的物理区块304(0)与304(1)(在此,物理区块304(0)与304(1)亦被统称为第一物理区块)。此外,逻辑区块LBA(A)包括映射至虚拟区域708的逻辑区域718以及映射至虚拟区域704的逻辑区域714,并且逻辑区块LBA(A+1)包括映射至虚拟区域706的逻辑区域716与映射至虚拟区域709的逻辑区域719。此外,逻辑区域718原始是映射至物理区块304(0)的物理区域728;逻辑区域714原始是映射物理区块304(0)的至物理区域724;逻辑区域716原始是映射至物理区块304(1)中的物理区域726;并且逻辑区域719是原始映射至物理区块304(1)的物理区域729。
从上述映射关系可以得知,应用程序1107是要根据文件数据702来更新储存在物理区域724与物理区域726中的数据。然而,在另一范例实施例中,虚拟区域708可以映射至逻辑区域714,并且逻辑区域718可以映射至物理区域724,本发明不限制虚拟区域、逻辑区域以及物理区域之间的映射关系。
在本范例实施例中,在接收到此写入指令时,存储器管理电路202将文件数据702写入至缓冲区640的逻辑区块LBA(B+1)与LBA(B+2)(亦被称为第二逻辑区块)所映射的物理区块。具体来说,逻辑区块LBA(B+1)包括逻辑区域738与逻辑区域734,并且逻辑区块LBA(B+2)包括逻辑区域736与逻辑区域739。并且,逻辑区块LBA(B+1)原始是映射至数据区402的物理区块304(2)并且逻辑区块LBA(B+2)原始是映射至数据区402的物理区块304(3)(在此,物理区块304(2)与304(3)亦被统称为第二物理区块)。存储器管理电路202下达写入指令给可重写式非易失性存储器模块106以指示将文件数据702写入至逻辑区域734与736所对应的物理区域。值得注意的是,由于物理区块在被擦除之前无法写入新的数据,因此,存储器管理电路202从闲置区404中提取物理区块304(D+1)与304(D+2)(在此,物理区块304(D+1)与304(D+2)亦被统称为第三物理区块),用以将文件数据702写入。然而,本发明不限于此,本发明亦可用第二物理区块(物理区块304(2)与304(3))将文件数据702写入。
在本范例实施例中,一个逻辑区域可包括一个或多个逻辑地址,一个物理区域可包括一个或多个物理地址。逻辑区域中的逻辑地址是用以映射至虚拟区域中的虚拟地址,以及物理区域中的物理地址。例如,逻辑区域718包括一个或多个逻辑地址,以映射至虚拟区域708中的一个或多个虚拟地址与物理区域728中的一个或多个物理地址。
图8是根据图7的范例绘示将文件数据写入至物理区块的示意图。
请参照图8,由于原始映射逻辑区块LBA(A)与LBA(A+1)的物理区块304(0)与304(1)储存有未被更新的数据(亦称为有效数据),因此,除了将文件数据702写入至物理区块304(D+1)与304(D+2)以外,存储器管理电路202也将物理区块304(0)与304(1)中的有效数据(即,物理区域728与729中所储存的数据)复制到物理区块304(D+1)与304(D+2)中。另一方面,由于一个物理区块所包括的物理页面必须依序的被编程,因此存储器管理电路202先将物理区域728所储存的有效数据复制到物理区域808,再将部分的文件数据702写入至物理区域804。类似地,存储器管理电路202先将其他部分的文件数据702写入至物理区域806,再将物理区域729所储存的有效数据复制到物理区域809。最后,存储器管理电路202将物理区块304(D+1)重新映射至逻辑区块LBA(B+1),并将物理区块304(D+2)重新映射至逻辑区块LBA(B+2)。
请参照回图7,在将逻辑区块LBA(B+1)与LBA(B+2)重新映射至物理区块304(D+1)与304(D+2)后,存储器管理电路202将物理区块304(D+1)与304(D+2)关联至数据区402,并将物理区块304(2)与304(3)关联至闲置区404。也就是说,由于物理区块304(2)与304(3)所储存的数据已是旧数据,因此可以被关联至闲置区404,并且在经过擦除以后便于下次执行写入运作或其他运作时用来写入数据。此外,顺利完成物理区块304(D+1)与304(D+2)的编程(即,未发生编程错误)后,存储器管理电路202将虚拟区块地址602(0)重新映射至逻辑区块LBA(B+1),并将虚拟区块地址602(1)重新映射至逻辑区块LBA(B+2)。
值得注意的是,在本范例实施例中,倘若在将文件数据702写入至物理区块304(D+1)与304(D+2)的期间发生编程错误时,存储器管理电路202维持虚拟区块地址602(0)与602(1)与逻辑区块LBA(A)与LBA(A+1)之间的映射关系,并且传送一个错误讯息给主机系统1000以回应所接收的写入指令。具体来说,如上所述,虚拟区域704与706所储存的的数据是属于同一个文件,因此,必须确保虚拟区域704与706所储存的数据的完整性(即,皆是旧数据或皆为已被更新的数据)。因此,在本范例实施例中,存储器管理电路202在确认物理区块304(D+1)与304(D+2)皆成功地完成编程后,才将虚拟区块地址602(0)与虚拟区块地址602(1)重新映射至逻辑区块LBA(B+1)与LBA(B+2),以确保虚拟区域704与706所储存的的数据皆为已更新数据;并且当物理区块304(D+1)与304(D+2)的任一个未完成编程时,维持虚拟区块地址602(0)与602(1)与逻辑区块LBA(A)与LBA(A+1)之间的映射关系,以确保虚拟区域704与706所储存的的数据皆为旧数据。
特别是,在确认顺利完成编程后并且将虚拟区块地址602(0)与虚拟区块地址602(1)重新映射至逻辑区块LBA(B+1)与LBA(B+2)后,存储器管理电路202将逻辑区块LBA(A)与LBA(A+1)关联至缓冲区640,并将逻辑区块LBA(B+1)与LBA(B+2)关联至储存区620。也就是说,由于逻辑区块LBA(A)与LBA(A+1)所储存的数据为无效数据因此可以被关联至缓冲区640并被使用于执行下个写入指令的过程中。
值得注意的是,在另一范例实施例中,在指示将文件数据702写入至逻辑区块LBA(B+1)所映射的物理区块时,存储器管理电路202可以先写入属于逻辑区域734的数据,再将属于逻辑区域718的有效数据复制到逻辑区域738所映射的物理区块中,本发明并不在此限。
值得一提的是,尽管在本范例实施例中,是将所有虚拟区块地址分配给安装于主机系统的一个应用程序来存取,然而本发明不限于此。在一范例实施例中,主机系统1000上可执行多个应用程序。特别的是,存储器管理电路202分配多个虚拟区块地址给每一个应用程序。并且,对于每一个应用程序,存储器管理电路202建立属于各个应用程序的虚拟逻辑映射表。如此一来,存储器管理电路202在接收到各个应用程序所下达的存取虚拟区块地址的写入指令时,便可以根据各自的虚拟逻辑映射表找到正确映射的逻辑区块。
图9是根据一范例实施例绘示数据写入方法的流程图。
请参照图9,在步骤S904中,存储器管理电路202配置多个虚拟区块地址602(0)~602(E)以映射至少部分(例如,储存区620)的逻辑区块,并将虚拟区块地址602(0)~602(E)提供给主机系统1000。
在步骤S906中,存储器管理电路202从主机系统1000接收用以指示将文件数据写入至多个虚拟区块地址(以下称为第一虚拟区块地址)的一个写入指令,其中第一虚拟区块地址是映射至上述至少部分的多个逻辑区块(以下称为第一逻辑区块)。
在步骤S908中,存储器管理电路202将上述的文件数据写入多个逻辑区块(以下称为第二逻辑区块)所映射的物理区块中。将数据写入至第二逻辑区块所映射的物理区块中的运作已结合图8详细描述如上,在此不再重复描述。
之后,在步骤S910中,存储器管理电路202判断在将文件数据写入至第二逻辑区块所映射的物理区块期间是否发生一编程错误。若发生编程错误,则在步骤S912中,存储器管理电路202传送一错误讯息给主机系统1000以回应上述写入指令。
若未发生编程错误,则在步骤S914中,存储器管理电路202将第一虚拟区块地址重新映射至第二逻辑区块。在此,将第一虚拟区块地址重新映射至第二逻辑区块的运作以配合图7详细描述如上,在此不再重复描述。
[第二范例实施例]
第二范例实施例与第一范例实施例类似,以下仅就不同之处加以说明。在第一范例实施例中,储存区与缓冲区的逻辑区块皆是映射到数据区的物理区块。然而,在第二范例实施例中,储存区的逻辑区块是映射至数据区的物理区块,但缓冲区的逻辑区块是映射至闲置区的物理区块。
图10是根据第二范例实施例说明主机系统的应用程序存取虚拟区块地址的示意图。
请参照图10,存储器管理电路202将逻辑区块LBA(0)~LBA(D)至少划分出储存区1020与缓冲区1040。储存区1020包括了逻辑区块LBA(F)~LBA(G),而缓冲区1040包括了逻辑区块LBA(G+1)~LBA(H)。值得注意的是,逻辑区块LBA(F)~LBA(G)是映射至数据区402中的物理区块304(0)~304(K),而逻辑区块LBA(G+1)~LBA(H)是映射至闲置区404中的物理区块304(D+1)~304(P)。在此范例实施例中,由于分配给应用程序1107的虚拟区块地址602(0)~602(E)仅映射至储存区1020的逻辑区块LBA(F)~LBA(G),因此应用程序1107并无法直接存取缓冲区1040的逻辑区块LBA(G+1)~LBA(H)。与第一范例实施例相同的是,在存储器管理电路202接收到指示将一文件数据写入至虚拟区块地址的写入指令时,先将此文件数据写入至缓冲区1040。并且,在确定写入此文件数据时没有发生编程错误以后,存储器管理电路202才会改变虚拟区块地址与逻辑区块之间的映射关系。
图11是根据第二范例实施例说明进行写入运作时调整逻辑区块与物理区块之间的映射关系的范例示意图。
请参照图11,当接收到欲将文件数据702写入至虚拟区块地址602(0)与602(1)(亦称第一虚拟区块地址)的写入指令以后,存储器管理电路202根据虚拟逻辑映射表找到映射至虚拟区块地址602(0)的逻辑区块LBA(F)与映射至虚拟区块地址602(1)的逻辑区块LBA(F+1)(在此,逻辑区块LBA(F)与LBA(F+1)亦统称为第一逻辑区块)。其中,逻辑区块LBA(F)是原始映射至物理区块304(0),而逻辑区块LBA(F+1)是原始映射至物理区块304(1)。也就是说,在此范例实施例中,主机系统1000是要根据文件数据702来更新储存在物理区块304(0)与304(1)的数据。特别的是,存储器管理电路将文件数据702指示写入至逻辑区块LBA(G+1)与LBA(G+2)(亦称为第二逻辑区块)。其中,逻辑区块LBA(G+1)是原始映射至物理区块304(D+1),而逻辑区块LBA(G+2)是原始映射至物理区块304(D+2)。由于一个物理区块必须先被擦除才能被重新写入,因此存储器管理电路202提取物理区块304(D+3)与304(D+4)来写入文件数据702。
存储器管理电路202将储存在物理区块304(0)的有效数据复制至物理区块304(D+3),并将文件数据702的一部分写入至物理区块304(D+3)。并且,存储器管理电路202将储存在物理区块304(1)的有效数据复制至物理区块304(D+4),并将文件数据702的另一部分写入至物理区块304(D+4)。在将文件数据702写入至物理区块304(D+3)与304(D+4)的过程中,存储器管理电路202还判断是否发生一编程错误。若没有,则将虚拟区块地址602(0)映射至逻辑区块LBA(G+1),将虚拟区块地址602(1)映射至逻辑区块LBA(G+2)。并且,逻辑区块LBA(G+1)与LBA(G+2)被关联至储存区1020,而逻辑区块LBA(F)与LBA(F+1)被关联至缓冲区1040。如此一来,可以确保虚拟区块地址602(0)与602(1)所储存的数据的完整性。
与第一范例实施例不同的是,原始映射至逻辑区块LBA(G+1)与LBA(G+2)的物理区块304(D+1)和304(D+2)是属于闲置区404,故在本范例实施例中,存储器管理电路202亦可将储存在物理区块304(0)的有效数据复制至物理区块304(D+1),并将文件数据702的一部分写入至物理区块304(D+1)。并且,存储器管理电路202将储存在物理区块304(1)的有效数据复制至物理区块304(D+2),并将文件数据702的另一部分写入至物理区块304(D+2)。
综上所述,本发明范例实施例所提出的数据写入方法、存储器控制器与存储器储存装置,是将文件数据写入的过程分为虚拟区块地址、逻辑区块与物理区块三个层级来管理。并且,当在判断物理区块的编程过程没有发生编程错误时,才会更新虚拟区块地址与逻辑区块之间的映射关系。如此一来,当欲写入的数据是对应到多个物理区块,且发生编程错误时,可以确保虚拟区块地址所储存的数据的完整性,由此避免属于同一个文件的数据的一部分被更新,而另一部分未被更新的情形。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,本领域的技术人员,在不脱离本发明的精神和范围的前提下,可作若干的更动与润饰,故本发明的保护范围是以本发明的权利要求为准。

Claims (25)

1.一种数据写入方法,用于一可重写式非易失性存储器模块,该可重写式非易失性存储器模块包括多个物理区块,其中多个逻辑区块被配置以映射至部分的所述物理区块,该数据写入方法包括:
配置多个虚拟区块地址以映射至至少部分的所述逻辑区块,并将所述虚拟区块地址提供给一主机系统;
接收来自该主机系统的一写入指令,其中该写入指令是指示将一文件数据写入至所述虚拟区块地址之中的多个第一虚拟区块地址,所述第一虚拟区块地址是映射至该至少部分的所述逻辑区块之中的多个第一逻辑区块;
将该文件数据写入至所述逻辑区块之中的多个第二逻辑区块所映射的物理区块;
判断在将该文件数据写入至所述第二逻辑区块所映射的物理区块期间是否发生一编程错误;以及
当未发生该编程错误时,将所述第一虚拟区块地址映射至所述第二逻辑区块。
2.如权利要求1所述的数据写入方法,还包括:
将所述逻辑区块至少划分为一储存区与一缓冲区,其中该至少部分的所述逻辑区块被划分为该储存区,所述第二逻辑区块是属于该缓冲区,
其中当未发生该编程错误时,将所述第一虚拟区块地址映射至所述第二逻辑区块的步骤还包括:
将所述第二逻辑区块关联至该储存区,并将所述第一逻辑区块关联至该缓冲区。
3.如权利要求1所述的数据写入方法,还包括:
将所述物理区块逻辑地至少分组为一数据区与一闲置区,其中该数据区是已储存数据的物理区块,且该闲置区的物理区块是用以替换该数据区的物理区块,其中所述逻辑区块是映射至该数据区的物理区块,所述第一逻辑区块是分别地映射至该数据区的物理区块之中的多个第一物理区块并且所述第二逻辑区块是分别地映射至该数据区的物理区块之中的多个第二物理区块。
4.如权利要求3所述的数据写入方法,其中将该文件数据写入至所述逻辑区块之中的所述第二逻辑区块所映射的物理区块的步骤包括:
从该闲置区的物理区块之中选择多个第三物理区块;
将该文件数据写入至所述第三物理区块中;
将所述第二逻辑区块分别地重新映射至所述第三物理区块;以及
将所述第二物理区块关联至该闲置区并且将所述第三物理区块关联至该数据区。
5.如权利要求4所述的数据写入方法,还包括:
将属于所述第一逻辑区块的有效数据从所述第一物理区块复制到所述第三物理区块。
6.如权利要求2所述的数据写入方法,还包括:
建立一虚拟逻辑映射表,用以记录所述虚拟区块地址与该储存区的所述逻辑区块之间的一映射关系。
7.如权利要求6所述的数据写入方法,其中配置所述虚拟区块地址以映射至该储存区的所述逻辑区块,并将所述虚拟区块地址提供给该主机系统的步骤包括:
提供所述虚拟区块地址给执行于该主机系统中的多个应用程序;
其中建立该虚拟逻辑映射表的步骤包括:
建立属于每一所述应用程序的该虚拟逻辑映射表。
8.如权利要求1所述的数据写入方法,还包括:
当发生该编程错误时,传送一错误讯息给该主机系统以回应该写入指令。
9.如权利要求1所述的数据写入方法,其中所述第一逻辑区块是映射至所述物理区块中的多个第一物理区块,所述第二逻辑区块是映射至所述物理区块中的多个第二物理区块,并且将该文件数据写入至所述逻辑区块之中的所述第二逻辑区块所映射的物理区块的步骤包括:
将该文件数据写入至所述第二物理区块当中;以及
将属于所述第一逻辑区块的有效数据从所述第一物理区块复制到所述第二物理区块。
10.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可重写式非易失性存储器模块,包括多个物理区块,其中多个逻辑区块被配置以映射至部分的所述物理区块;以及
一存储器控制器,电性连接至该连接器与该可重写式非易失性存储器模块,
其中,该存储器控制器配置多个虚拟区块地址以映射至至少部分的所述逻辑区块,并将所述虚拟区块地址提供给该主机系统,
其中,该存储器控制器接收来自该主机系统的一写入指令,其中该写入指令是指示将一文件数据写入至所述虚拟区块地址之中的多个第一虚拟区块地址,所述第一虚拟区块地址是映射至该至少部分的所述逻辑区块之中的多个第一逻辑区块,
其中,该存储器控制器将该文件数据写入至所述逻辑区块之中的多个第二逻辑区块所映射的物理区块,
其中,该存储器控制器判断在将该文件数据写入至所述第二逻辑区块所映射的物理区块期间是否发生一编程错误,
当未发生该编程错误时,该存储器控制器将所述第一虚拟区块地址映射至所述第二逻辑区块。
11.如权利要求10所述的存储器储存装置,其中该存储器控制器还用以将所述逻辑区块至少划分为一储存区与一缓冲区,其中该至少部分的所述逻辑区块被划分为该储存区,所述第二逻辑区块是属于该缓冲区,
其中当未发生该编程错误时,该存储器控制器将所述第二逻辑区块关联至该储存区,并将所述第一逻辑区块关联至该缓冲区。
12.如权利要求10所述的存储器储存装置,其中该存储器控制器还用以将所述物理区块逻辑地至少分组为一数据区与一闲置区,其中该数据区是已储存数据的物理区块,且该闲置区的物理区块是用以替换该数据区的物理区块,其中所述逻辑区块是映射至该数据区的物理区块,所述第一逻辑区块是分别地映射至该数据区的物理区块之中的多个第一物理区块并且所述第二逻辑区块是分别地映射至该数据区的物理区块之中的多个第二物理区块。
13.如权利要求12所述的存储器储存装置,其中在将该文件数据写入至所述逻辑区块之中的所述第二逻辑区块所映射的物理区块的过程中,该存储器控制器还用以从该闲置区的物理区块之中选择多个第三物理区块,将该文件数据写入至所述第三物理区块中,将所述第二逻辑区块分别地重新映射至所述第三物理区块,将所述第二物理区块关联至该闲置区,并且将所述第三物理区块关联至该数据区。
14.如权利要求13所述的存储器储存装置,其中该存储器控制器还用以将属于所述第一逻辑区块的有效数据从所述第一物理区块复制到所述第三物理区块。
15.如权利要求11所述的存储器储存装置,其中该存储器控制器还用以建立一虚拟逻辑映射表,以记录所述虚拟区块地址与该储存区的所述逻辑区块之间的一映射关系。
16.如权利要求15所述的存储器储存装置,其中该存储器控制器还用以提供所述虚拟区块地址给执行于该主机系统中的多个应用程序,并且建立属于每一所述应用程序的该虚拟逻辑映射表。
17.如权利要求10所述的存储器储存装置,其中该存储器控制器还用以在发生该编程错误时,传送一错误讯息给该主机系统以回应该写入指令。
18.一种存储器控制器,包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,电性连接至一可重写式非易失性存储器模块,其中该可重写式非易失性存储器模块包括多个物理区块,其中多个逻辑区块被配置以映射至部分的所述物理区块;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口;
其中,该存储器管理电路配置多个虚拟区块地址以映射至至少部分的所述逻辑区块,并将所述虚拟区块地址提供给该主机系统;
其中,该存储器管理电路接收来自该主机系统的一写入指令,其中该写入指令是指示将一文件数据写入至所述虚拟区块地址之中的多个第一虚拟区块地址,所述第一虚拟区块地址是映射至该至少部分的所述逻辑区块之中的多个第一逻辑区块;
其中,该存储器管理电路将该文件数据写入至所述逻辑区块之中的多个第二逻辑区块所映射的物理区块;
其中,该存储器管理电路判断在将该文件数据写入至所述第二逻辑区块所映射的物理区块期间是否发生一编程错误;
当未发生该编程错误时,该存储器管理电路将所述第一虚拟区块地址映射至所述第二逻辑区块。
19.如权利要求18所述的存储器控制器,其中该存储器管理电路还用以将所述逻辑区块至少划分为一储存区与一缓冲区,其中该至少部分的所述逻辑区块被划分为该储存区,所述第二逻辑区块是属于该缓冲区,
其中当未发生该编程错误时,该存储器管理电路将所述第二逻辑区块关联至该储存区,并将所述第一逻辑区块关联至该缓冲区。
20.如权利要求18所述的存储器控制器,其中该存储器管理电路还用以将所述物理区块逻辑地至少分组为一数据区与一闲置区,其中该数据区是已储存数据的物理区块,且该闲置区的物理区块是用以替换该数据区的物理区块,其中所述逻辑区块是映射至该数据区的物理区块,所述第一逻辑区块是分别地映射至该数据区的物理区块之中的多个第一物理区块并且所述第二逻辑区块是分别地映射至该数据区的物理区块之中的多个第二物理区块。
21.如权利要求20所述的存储器控制器,其中在将该文件数据写入至所述逻辑区块之中的所述第二逻辑区块所映射的物理区块的过程中,该存储器管理电路还用以从该闲置区的物理区块之中选择多个第三物理区块,将该文件数据写入至所述第三物理区块中,将所述第二逻辑区块分别地重新映射至所述第三物理区块,将所述第二物理区块关联至该闲置区,并且将所述第三物理区块关联至该数据区。
22.如权利要求21所述的存储器控制器,其中该存储器管理电路还用以将属于所述第一逻辑区块的有效数据从所述第一物理区块复制到所述第三物理区块。
23.如权利要求19所述的存储器控制器,其中该存储器管理电路还用以建立一虚拟逻辑映射表,以记录所述虚拟区块地址与该储存区的所述逻辑区块之间的一映射关系。
24.如权利要求23所述的存储器控制器,其中该存储器管理电路还用以提供所述虚拟区块地址给执行于该主机系统中的多个应用程序,并且建立属于每一所述应用程序的该虚拟逻辑映射表。
25.如权利要求18所述的存储器控制器,其中该存储器管理电路还用以在发生该编程错误时,传送一错误讯息给该主机系统以回应该写入指令。
CN201210105119.6A 2012-04-11 2012-04-11 数据写入方法、存储器控制器与存储器储存装置 Active CN103377129B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210105119.6A CN103377129B (zh) 2012-04-11 2012-04-11 数据写入方法、存储器控制器与存储器储存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210105119.6A CN103377129B (zh) 2012-04-11 2012-04-11 数据写入方法、存储器控制器与存储器储存装置

Publications (2)

Publication Number Publication Date
CN103377129A CN103377129A (zh) 2013-10-30
CN103377129B true CN103377129B (zh) 2016-04-06

Family

ID=49462278

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210105119.6A Active CN103377129B (zh) 2012-04-11 2012-04-11 数据写入方法、存储器控制器与存储器储存装置

Country Status (1)

Country Link
CN (1) CN103377129B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180032728A (ko) * 2016-09-22 2018-04-02 삼성전자주식회사 저장 장치, 저장 장치를 포함하는 사용자 장치, 및 사용자 장치의 동작 방법
US10445001B2 (en) * 2017-01-10 2019-10-15 Winbond Electronics Corporation Memory control scheme for flash memory devices
CN107168650B (zh) * 2017-05-10 2020-05-01 合肥联宝信息技术有限公司 一种对bios的存储器中的数据的处理方法及装置
JP2019008730A (ja) * 2017-06-28 2019-01-17 東芝メモリ株式会社 メモリシステム
TWI655640B (zh) * 2018-01-24 2019-04-01 慧榮科技股份有限公司 資料儲存裝置與資料處理方法
CN110321297A (zh) * 2018-03-28 2019-10-11 三星电子株式会社 用于将虚拟流映射到物理流上的存储装置及其操作方法
CN110471612B (zh) * 2018-05-09 2022-09-16 深圳大心电子科技有限公司 存储器管理方法以及存储控制器
CN109491616B (zh) * 2018-11-14 2022-05-24 三星(中国)半导体有限公司 数据的存储方法和设备
US10769018B2 (en) * 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
TWI726524B (zh) * 2019-12-09 2021-05-01 新唐科技股份有限公司 電子處理裝置及記憶體控制方法
CN111159123B (zh) * 2019-12-30 2023-07-14 中国兵器装备集团自动化研究所 一种嵌入式可靠参数储存文件系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0548564A2 (en) * 1991-11-26 1993-06-30 Hitachi, Ltd. Storage device employing a flash memory
CN101652758A (zh) * 2007-01-26 2010-02-17 大卫·R·谢里登 分级式不可变内容可寻址存储器处理器

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6347051B2 (en) * 1991-11-26 2002-02-12 Hitachi, Ltd. Storage device employing a flash memory
US20080288712A1 (en) * 2007-04-25 2008-11-20 Cornwell Michael J Accessing metadata with an external host

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0548564A2 (en) * 1991-11-26 1993-06-30 Hitachi, Ltd. Storage device employing a flash memory
CN101652758A (zh) * 2007-01-26 2010-02-17 大卫·R·谢里登 分级式不可变内容可寻址存储器处理器

Also Published As

Publication number Publication date
CN103377129A (zh) 2013-10-30

Similar Documents

Publication Publication Date Title
CN103377129B (zh) 数据写入方法、存储器控制器与存储器储存装置
US8812776B2 (en) Data writing method, and memory controller and memory storage device using the same
CN104423888A (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN103544115B (zh) 数据写入方法、存储器控制器与存储器存储装置
CN104679437A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN102890655B (zh) 存储器储存装置、其存储器控制器与有效数据识别方法
CN104765569A (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN103514096A (zh) 数据储存方法、存储器控制器与存储器储存装置
CN102043725B (zh) 用于闪存的数据写入方法及其控制器与储存系统
CN102592670B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103593296A (zh) 数据储存方法、存储器控制器与存储器储存装置
CN103136111A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102866861B (zh) 闪存储存系统、闪存控制器与数据写入方法
CN102915273B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102446137B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103678162A (zh) 系统数据储存方法、存储器控制器与存储器储存装置
CN103389941B (zh) 存储器格式化方法、存储器控制器及存储器存储装置
CN102999437B (zh) 数据搬移方法、存储器控制器与存储器储存装置
CN104536906A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103513930A (zh) 存储器管理方法、存储器控制器与存储器储存装置
CN103544118A (zh) 存储器储存装置、其存储器控制器与数据写入方法
CN103577344A (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103914391A (zh) 数据读取方法、存储器控制器与存储器存储装置
CN103714008A (zh) 数据存储方法、存储器控制器与存储器存储装置
CN103377132B (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