CN103544115A - 数据写入方法、存储器控制器与存储器存储装置 - Google Patents
数据写入方法、存储器控制器与存储器存储装置 Download PDFInfo
- Publication number
- CN103544115A CN103544115A CN201210236689.9A CN201210236689A CN103544115A CN 103544115 A CN103544115 A CN 103544115A CN 201210236689 A CN201210236689 A CN 201210236689A CN 103544115 A CN103544115 A CN 103544115A
- Authority
- CN
- China
- Prior art keywords
- entity
- sequencing
- unit
- erase unit
- write
- 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.)
- Granted
Links
Images
Landscapes
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制器与存储器存储装置,用于控制具有多个实体擦除单元的可复写式非易失性存储器模块。此方法包括:接收一个指示将数据写入到第一逻辑地址的写入指令,其中第一逻辑地址是映射至第二实体擦除单元:判断第二实体擦除单元是否为连续写入状态,此连续写入状态表示第二实体擦除单元中超过预设比例的实体程序化单元在预设时间内曾经被连续地程序化;若是,将数据以第一程序化模式写入至一个第三实体擦除单元,其中第一程序化模式表示上实体程序化单元为不可程序化。由此,可以增加数据写入的速度。
Description
技术领域
本发明涉及一种用于可复写式非易失性存储器模块的数据写入方法,尤其涉及一种使用此方法的存储器控制器与存储器存储装置。
背景技术
数码相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪速存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种便携式多媒体装置中。
一般来说,可复写式非易失性存储器模块会与一个主机***搭配使用。主机***可以下达存取逻辑地址的指令给可复写式非易失性存储器模块来读取或写入数据。然而,主机***可能从逻辑地址中划分出一个特定的区域,此区域可被用以备份或转储(dump)数据。当主机***存取此区域时,可能会下达多个写入指令来存取多个连续的逻辑地址。如果所要备份或转储的数据量很大,则写入的速度明显的影响主机***的效能。因此,如何快速地写入有连续逻辑地址的数据到可复写式非易失性存储器模块,是此领域研究人员所关心的议题。
发明内容
本发明的实施例提供一种数据写入方法,存储器控制器与存储器存储装置,可以增加写入数据的速度。
本发明一实施例提供一种数据写入方法,用于控制可复写式非易失性存储器模块。可复写式非易失性存储器模块包括多个实体擦除单元,每一个实体擦除单元包括多个实体程序化单元组,每一个实体程序化单元组包括多个实体程序化单元。每一个实体程序化单元组的实体程序化单元包括一个下实体程序化单元与一个上实体程序化单元。多个逻辑地址是映射至实体擦除单元中的多个第一实体擦除单元。此数据写入方法包括:接收一个第一写入指令,此第一写入指令指示将一个数据写入至逻辑地址的至少一个第一逻辑地址,其中第一逻辑地址是映射至第一实体擦除单元中的第二实体擦除单元。此方法还包括:判断第二实体擦除单元是否为连续写入状态,连续写入状态表示第二实体擦除单元中超过预设比例的实体程序化单元在预设时间内曾经被连续地程序化;以及若第二实体擦除单元是连续写入状态,将数据以第一程序化模式写入至第三实体擦除单元,其中第一程序化模式表示上实体程序化单元为不可程序化。
在一实施例中,上述在判断第二实体擦除单元是否为连续写入状态的步骤之前,此数据写入方法还包括:判断第一写入指令是否为连续写入指令。连续写入指令表示第一逻辑地址是在第二写入指令指示要存取的逻辑地址之后,并且第二写入指令是被接收在第一写入指令之前。
在一实施例中,上述的数据写入方法还包括:若第一写入指令不为连续写入指令,则将数据写入至第四实体擦除单元;以及设定第四实体擦除单元不为连续写入状态。
在一实施例中,上述在判断第二实体擦除单元是否为连续写入状态的步骤之前,此数据写入方法还包括:判断第二实体擦除单元是否为未曾被写入过;以及若第二实体擦除单元未曾被写入过,将数据以第二程序化模式写入至第二实体擦除单元,其中第二程序化模式表示所有的实体程序化单元可被程序化。
在一实施例中,上述若第二实体擦除单元为连续写入状态,将数据以第一程序化模式写入至第三实体擦除单元的步骤包括:判断第二实体擦除单元是否是以第一程序化模式写入;若第二实体擦除单元是第一程序化模式,判断实体擦除单元中的闲置实体擦除单元的数目是否不小于第一预设数目;以及若闲置实体擦除单元的数目不小于第一预设数目,将数据以第一程序化模式写入至第三实体擦除单元;以及设定第三实体擦除单元为连续写入状态。
在一实施例中,上述若第二实体擦除单元为连续写入状态,将数据以第一程序化模式写入至第三实体擦除单元的步骤包括:判断第二实体擦除单元是否是以第一程序化模式写入;若第二实体擦除单元不是以第一程序化模式写入,判断实体擦除单元中的一闲置实体擦除单元的数目是否不小于第二预设数目;以及若闲置实体擦除单元的数目不小于第二预设数目,将数据以第一程序化模式写入至第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
在一实施例中,上述的数据写入方法还包括:若闲置实体擦除单元的数目小于第二预设数目,判断闲置实体擦除单元的数目是否不小于第一预设数目,其中第二预设数目大于第一预设数目;若闲置实体擦除单元的数目不小于第一预设数目,将数据以第二程序化模式写入至实体擦除单元中的第五实体擦除单元;以及设定第五实体擦除单元为连续写入状态。
在一实施例中,上述的数据写入方法还包括:若第二实体擦除单元不为连续写入状态,判断实体擦除单元中闲置实体擦除单元的数目是否不小于第一预设数目;若闲置实体擦除单元的数目不小于第一预设数目,将数据以第二程序化模式写入至实体擦除单元中的第六实体擦除单元;以及设定第六实体擦除单元为连续写入状态。
以另外一个角度来说,本发明一实施例提供一种存储器存储装置,包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器是用以电性连接至主机***。可复写式非易失性存储器模块包括多个实体擦除单元,其中每一个实体擦除单元包括多个实体程序化单元组,每一个实体程序化单元组包括多个实体程序化单元,每一个实体程序化单元组的这些实体程序化单元包括一个下实体程序化单元与一个上实体程序化单元。多个逻辑地址是映射至多个第一实体擦除单元。存储器控制器是电性连接至连接器与可复写式非易失性存储器模块,用以接收一个第一写入指令。此第一写入指令指示将一个数据写入至少一个第一逻辑地址,并且第一逻辑地址是映射至所述第一实体擦除单元中的一个第二实体擦除单元。存储器控制器还用以判断第二实体擦除单元是否为一个连续写入状态,此连续写入状态表示第二实体擦除单元中超过一个预设比例的实体程序化单元在一个预设时间内曾经被连续地程序化。若第二实体擦除单元为连续写入状态,存储器控制器还用以将数据以第一程序化模式写入至一个第三实体擦除单元,其中第一程序化模式表示上实体程序化单元为不可程序化。
在一实施例中,上述的存储器控制器还用以判断第一写入指令是否为连续写入指令。连续写入指令表示第一逻辑地址是在第二写入指令指示要存取的逻辑地址之后,并且第二写入指令是被存储器控制器接收在第一写入指令之前。
在一实施例中,若第一写入指令不为连续写入指令,存储器控制器还用以将数据写入至实体擦除单元中的第四实体擦除单元,并且设定第四实体擦除单元不为连续写入状态。
在一实施例中,上述的存储器控制器还用以判断第二实体擦除单元是否未曾被写入过。若第二实体擦除单元未曾被写入过,存储器控制器还用以将数据以第二程序化模式写入至第二实体擦除单元,其中第二程序化模式表示实体程序化单元可被程序化。
在一实施例中,上述的存储器控制器还用以判断第二实体擦除单元是否是以第一程序化模式写入。若第二实体擦除单元是以第一程序化模式写入,存储器控制器还用以判断实体擦除单元中闲置实体擦除单元的数目是否不小于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器控制器还用以将数据以第一程序化模式写入至第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
在一实施例中,上述的存储器控制器还用以判断第二实体擦除单元是否是以第一程序化模式写入。若第二实体擦除单元不是以第一程序化模式写入,存储器控制器还用以判断实体擦除单元中闲置实体擦除单元的数目是否不小于第二预设数目。若闲置实体擦除单元的数目不小于第二预设数目,存储器控制器还用以将数据以第一程序化模式写入至第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
在一实施例中,若闲置实体擦除单元的数目小于第二预设数目,存储器控制器还用以判断闲置实体擦除单元的数目是否不小于第一预设数目,其中第二预设数目大于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器控制器还用以将数据第二程序化模式写入至实体擦除单元的第五实体擦除单元。存储器控制器还用以设定第五实体擦除单元为连续写入状态。
在一实施例中,若第二实体擦除单元不为连续写入状态,存储器控制器还用以判断闲置实体擦除单元的数目是否不小于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器控制器还用以将数据以第一程序化模式写入至第六实体擦除单元,并且设定第六实体擦除单元为连续写入状态。
以另外一个角度来说,本发明一实施例提供一种存储器控制器,包括主机接口、存储器接口与存储器管理电路。主机接口是用以电性连接至主机***。存储器接口是用以电性连接至一个可复写式非易失性存储器模块。此可复写式非易失性存储器模块包括多个实体擦除单元,其中每一个实体擦除单元包括多个实体程序化单元组,每一个实体程序化单元组包括多个实体程序化单元,每一个实体程序化单元组的这些实体程序化单元包括一个下实体程序化单元与一个上实体程序化单元。多个逻辑地址是映射至多个第一实体擦除单元。存储器管理电路是电性连接至连接器与可复写式非易失性存储器模块,用以接收一个第一写入指令。此第一写入指令指示将一个数据写入至少一个第一逻辑地址,并且第一逻辑地址是映射至所述第一实体擦除单元中的一个第二实体擦除单元。存储器管理电路还用以判断第二实体擦除单元是否为一个连续写入状态,此连续写入状态表示第二实体擦除单元中超过一个预设比例的实体程序化单元在一个预设时间内曾经被连续地程序化。若第二实体擦除单元为连续写入状态,存储器管理电路还用以将数据以第一程序化模式写入至一个第三实体擦除单元。第一程序化模式表示上实体程序化单元为不可程序化。
在一实施例中,上述的存储器管理电路还用以判断第一写入指令是否为连续写入指令。连续写入指令表示第一逻辑地址是在第二写入指令指示要存取的逻辑地址之后,并且第二写入指令是被存储器管理电路接收在第一写入指令之前。
在一实施例中,若第一写入指令不为连续写入指令,存储器管理电路还用以将数据写入至实体擦除单元中的第四实体擦除单元,并且设定第四实体擦除单元不为连续写入状态。
在一实施例中,上述的存储器管理电路还用以判断第二实体擦除单元是否未曾被写入过。若第二实体擦除单元未曾被写入过,存储器管理电路还用以将数据以第二程序化模式写入至第二实体擦除单元,其中第二程序化模式表示实体程序化单元可被程序化。
在一实施例中,上述的存储器管理电路还用以判断第二实体擦除单元是否是以第一程序化模式写入。若第二实体擦除单元是以第一程序化模式写入,存储器管理电路还用以判断实体擦除单元中闲置实体擦除单元的数目是否不小于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器管理电路还用以将数据以第一程序化模式写入至第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
在一实施例中,上述的存储器管理电路还用以判断第二实体擦除单元是否是以第一程序化模式写入。若第二实体擦除单元不是以第一程序化模式写入,存储器管理电路还用以判断实体擦除单元中闲置实体擦除单元的数目是否不小于第二预设数目。若闲置实体擦除单元的数目不小于第二预设数目,存储器管理电路还用以将数据以第一程序化模式写入至第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
在一实施例中,若闲置实体擦除单元的数目小于第二预设数目,存储器管理电路还用以判断闲置实体擦除单元的数目是否不小于第一预设数目,其中第二预设数目大于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器管理电路还用以将数据第二程序化模式写入至实体擦除单元的第五实体擦除单元。存储器管理电路还用以设定第五实体擦除单元为连续写入状态。
在一实施例中,若第二实体擦除单元不为连续写入状态,存储器管理电路还用以判断闲置实体擦除单元的数目是否不小于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器管理电路还用以将数据以第一程序化模式写入至第六实体擦除单元,并且设定第六实体擦除单元为连续写入状态。
基于上述,本发明实施例提供的数据写入方法、存储器控制器与存储器存储装置,可以在主机***要写入逻辑地址为连续的数据时,增加数据写入的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据一实施例所示出的主机***与存储器存储装置的结构示意图;
图1B是根据一实施例所示出的计算机、输入/输出装置与存储器存储装置的示意图;
图1C是根据一实施例所示出的主机***与存储器存储装置的示意图;
图2A是示出图1A所示的存储器存储装置的概要方块图;
图2B是根据一实施例说明第一程序化模式与第二程序化模式的示意图;
图3是根据一实施例所示出的存储器控制器的概要方块图;
图4与图5是根据一实施例所示出的管理可复写式非易失性存储器模块的示意图;
图6是根据一实施例说明第二实体擦除单元是以第一程序化模式写入时的写入操作的示意图;
图7是根据一实施例说明第二实体擦除单元不是以第一程序化模式写入时的写入操作的示意图;
图8是根据一实施例说明第二实体擦除单元不是以第一程序化模式写入,且闲置实体擦除单元的数目小于第二预设数目时的写入操作的示意图;
图9A~图9C是根据一实施例说明数据写入方法的流程图;
图10是根据另一实施例说明数据写入方法的流程图。
附图标记说明:
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:可复写式非易失性存储器模块;
304(0)~304(R):实体擦除单元;
220(0)~220(127):实体程序化单元组;
202:存储器管理电路;
204:主机接口;
206:存储器接口;
252:缓冲存储器;
254:电源管理电路;
256:错误检查与校正电路;
402:数据区;
404:闲置区;
406:***区;
408:取代区;
504:数据;
502(0)~502(A):逻辑地址;
S602、S604、S606、S608、S610、S612、S614、S616、S618、S620、S622、S624、S626、S628、S630、S632、S634、S636、S1002、S1004、S1006、S1008:数据写入方法的步骤。
具体实施方式
一般而言,存储器存储装置(也称,存储器存储***)包括可复写式非易失性存储器模块与控制器(也称,控制电路)。通常存储器存储装置是与主机***一起使用,以使主机***可将数据写入至存储器存储装置或从存储器存储装置中读取数据。
图1A是根据一实施例所示出的主机***与存储器存储装置的结构示意图。
请参照图1A,主机***1000一般包括计算机1100与输入/输出(input/output,I/O)装置1106。计算机1100包括微处理器1102、随机存储器(random access 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 StateDrive,SSD)1216等的可复写式非易失性存储器装置。
一般而言,主机***1000为可实质地与存储器存储装置100配合以存储数据的任意***。虽然在本实施例中,主机***1000是以计算机***来作说明,然而,在本发明另一实施例中主机***1000可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等***。例如,如图1C所示,在主机***为数码相机(摄像机)1310时,可复写式非易失性存储器装置则为其所使用的SD卡1312、MMC卡1314、记忆棒(memory stick)1316、CF卡1318或嵌入式存储装置1320。嵌入式存储装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机***的基板上。
图2A是示出图1A所示的存储器存储装置的概要方块图。
请参照图1A及图2,存储器存储装置100包括连接器102、存储器控制器104与可复写式非易失性存储器模块106。
在本实施例中,连接器102是兼容于串行高级技术附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102也可以是兼容并行高级技术附件(ParallelAdvanced Technology Attachment,PATA)标准、电气和电子工程师学会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速外设组件互连(Peripheral Component Interconnect Express,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、安全数码(SecureDigital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体存储卡(Multi Media Card,MMC)接口标准、嵌入式多媒体存储卡(Embedded Multimedia Card,eMMC)接口标准、通用闪速存储器(Universal Flash Storage,UFS)接口标准、小型闪存(CompactFlash,CF)接口标准、电子集成驱动器(Integrated Device Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实现的多个逻辑门或控制指令,并且根据主机***1000的指令在可复写式非易失性存储器模块106中进行数据的写入、读取与擦除等操作。
可复写式非易失性存储器模块106是电性连接至存储器控制器104,并且用以存储主机***1000所写入的数据。可复写式非易失性存储器模块106具有实体擦除单元304(0)~304(R)。例如,实体擦除单元304(0)~304(R)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体擦除单元分别具有复数个实体程序化单元,并且属于同一个实体擦除单元的实体程序化单元可被独立地写入且被同时地擦除。例如,每一实体擦除单元是由128个实体程序化单元所组成。然而,必须了解的是,本发明不限于此,每一实体擦除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。
更详细来说,实体擦除单元为擦除的最小单位。也即,每一实体擦除单元含有最小数目的一并被擦除的记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据字节区与冗余字节区。数据字节区包含多个实体存取地址用以存储使用者的数据,而冗余字节区用以存储***的数据(例如,控制信息与错误更正码)。在本实施例中,每一个实体程序化单元的数据字节区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte,B)。然而,在其他实施例中,数据字节区中也可包含8个、16个或数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。例如,实体擦除单元为实体区块,并且实体程序化单元为实体页面或实体扇。
在本实施例中,可复写式非易失性存储器模块106为多阶记忆胞(Multi Level Cell,MLC)NAND闪存存储器模块,即一个记忆胞中可存储至少2个字节数据。也即,每一个实体擦除单元会包括多个实体程序化单元组,而每个实体程序化单元组会包括下实体程序化单元与上实体程序化单元。其中下实体程序化单元的程序化速度会大于上实体程序化单元的程序化速度。然而,本发明不限于此,可复写式非易失性存储器模块106也可是单阶记忆胞(Single Level Cell,SLC)NAND闪存存储器模块、复数阶记忆胞(Trinary Level Cell,TLC)NAND型闪存存储器模块、其他闪存存储器模块或其他具有相同特性的存储器模块。
图2B是根据一实施例说明第一程序化模式与第二程序化模式的示意图。
在本实施例中,一个实体擦除单元的程序化模式至少可包括两种,即第一程序化模式与第二程序化模式。而第一程序化模式表示上实体程序化单元不可被程序化。第二程序化模式表示每一个实体程序化单元组中所有的实体程序化单元都可被程序化。举例来说,请参照图2B,实体擦除单元304(0)是操作在第二程序化模式,而实体擦除单元304(1)是操作在第一程序化模式。实体擦除单元304(0)包括了实体程序化单元组220(0)~220(127),其中所有的实体程序化单元(即,实体地址0~255的实体程序化单元)都可被程序化。另一方面,实体擦除单元304(1)里的上实体程序化单元为不可被程序化,换言之,仅下实体程序化单元(即,实体地址0~127的实体程序化单元)可被程序化。当一个实体擦除单元操作在第一程序化模式时,其擦除次数的上限为第一临界值。当一个实体擦除单元操作在第二程序化模式时,其擦除次数的上限为第二临界值。并且,第二临界值会大于第一临界值。在本实施例中,每一个实体擦除单元304(0)~304(R)都可用第一程序化模式或第二程序化模式来写入数据。
图3是根据一实施例所示出的存储器控制器的概要方块图。
请参照图2A及图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并且用以接收与识别如图1A所示的主机***1000所传送的指令与数据。也就是说,主机***1000所传送的指令与数据会通过主机接口204来传送至存储器管理电路202。在本实施例中,主机接口204是兼容于SATA标准。然而,必须了解的是本发明不限于此,主机接口204也可以是兼容于PATA标准、IEEE 1394标准、PCI Express标准、USB标准、SD标准、MS标准、MMC标准、CF标准、IDE标准或其他适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254与错误检查与校正电路256。
请参照图1A、图2A及图3,缓冲存储器252是电性连接至存储器管理电路202并且用以寄存来自于主机***1000的数据与指令或来自于可复写式非易失性存储器模块106的数据。
电源管理电路254是电性连接至存储器管理电路202并且用以控制存储器存储装置100的电源。
错误检查与校正电路256是电性连接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机***1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性存储器模块106中。之后,当存储器管理电路202从可复写式非易失性存储器模块106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4与图5是根据一实施例所示出的管理可复写式非易失性存储器模块的示意图。
必须了解的是,在此描述可复写式非易失性存储器模块106的实体擦除单元的操作时,以“提取”、“交换”、“分组”、“轮替”等词来操作实体擦除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体擦除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体擦除单元进行操作。
请参照图1A、图2A及图4,存储器控制器104可将可复写式非易失性存储器模块106的实体擦除单元304(0)~304(R)逻辑地分组为多个区域,例如为数据区402、闲置区404、***区406与取代区408。在另一实施例中,取代区408也可与闲置区404共用包含无效数据的实体擦除单元。
数据区402与闲置区404的实体擦除单元是用以存储来自于主机***1000的数据。具体来说,数据区402是已存储数据的实体擦除单元,而闲置区404的实体擦除单元是用以替换数据区402的实体擦除单元。因此,闲置区404的实体擦除单元为空或可使用的实体擦除单元,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区404中的实体擦除单元已被执行擦除操作,或者当闲置区404中的实体擦除单元被提取用于存储数据之前所提取的实体擦除单元会先被执行擦除操作。因此,闲置区404的实体擦除单元为可被使用的实体擦除单元。
逻辑上属于***区406的实体擦除单元是用以记录***数据,其中此***数据包括关于存储器芯片的制造商与型号、存储器芯片的实体擦除单元数、每一实体擦除单元的实体程序化单元数等。
逻辑上属于取代区408中的实体擦除单元是替代实体擦除单元。例如,可复写式非易失性存储器模块于出厂时会预留4%的实体擦除单元作为更换使用。也就是说,当数据区402、闲置区404与***区406中的实体擦除单元损毁时,预留于取代区408中的实体擦除单元是用以取代损坏的实体擦除单元(即,坏实体擦除单元(bad block))。因此,倘若取代区408中仍存有正常的实体擦除单元且发生实体擦除单元损毁时,存储器控制器104会从取代区408中提取正常的实体擦除单元来更换损毁的实体擦除单元。倘若取代区408中无正常的实体擦除单元且发生实体擦除单元损毁时,则存储器控制器104会将整个存储器存储装置100宣告为写入保护(write protect)状态,而无法再写入数据。
特别是,数据区402、闲置区404、***区406与取代区408的实体擦除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置100的操作中,实体擦除单元关联至数据区402、闲置区404、***区406与取代区408的分组关系会动态地变动。例如,当闲置区中的实体擦除单元损坏而被取代区的实体擦除单元取代时,则原本取代区的实体擦除单元会被关联至闲置区。
请参照图1A、图2A、图3、图4及图5,如上所述,数据区402与闲置区404的实体擦除单元是以轮替方式来存储主机***1000所写入的数据。在本实施例中,存储器控制器104会配置逻辑地址502(0)~502(A)以利于在以上述轮替方式在存储数据的实体擦除单元中进行数据存取。例如,当存储器存储装置100被数据传输接口1110通过文件***(例如,FAT 32)格式化时,逻辑地址502(0)~502(A)分别地映射至数据区402的实体擦除单元304(0)~304(D)(也称第一实体擦除单元)。在此,存储器管理电路202会建立逻辑地址~实体擦除单元映射表(logicaladdress-physical erase unit mapping table),以记录逻辑地址与实体擦除单元之间的映射关系。在一实施例中,一个逻辑地址对应的存储器空间容量为一个实体擦除单元的容量,此时逻辑地址也被称为逻辑区块地址(logical block address)。然而,在其他实施例中,一个逻辑地址对应的存储器空间容量也可是一个实体程序化单元的容量。本发明并不限制逻辑地址所对应的存储器空间容量。
举例来说,当主机***1000要将数据504写入至实体擦除单元304(0)时,会下达存取逻辑地址502(0)(也称第一逻辑地址)的写入指令给存储器管理电路202。存储器管理电路202会根据逻辑地址~-实体擦除单元映射表找到映射至逻辑地址502(0)的实体擦除单元304(0)(也称第二实体擦除单元)。在本实施例中,存储器管理电路202会判断实体擦除单元304(0)中的实体程序化单元是否曾经连续地被程序化,若是,则表示主机***1000有可能是在转储或备份大量的数据。此时,存储器管理电路202会设定一个实体擦除单元(也称第三实体擦除单元)是以第一程序化模式写入,并将数据504写入至此实体擦除单元。由于实体擦除单元在第一程序化模式下的程序化速度比在第二程序化模式下的程序化速度快,因此可以快速的将数据504写入。
详细来说,存储器管理电路202会先判断所接收到的写入指令(也称第一写入指令)是否为一个连续写入指令。例如,当下达第一写入指令之前,主机***1000还下达了第二写入指令给存储器管理电路202。若第一写入指令指示要存取的逻辑地址与第二写入指令指示要存取的逻辑地址相同,则存储器管理电路202会判断第一写入指令不是连续写入指令。或者,若第一写入指令指示要存取的逻辑地址与第二写入指令指示要存取的逻辑地址是映射到同一个实体擦除单元,但以程序化顺序来说,第一写入指令所要存取的实体程序化单元是在第二写入指令所要存取的实体程序化单元之前,则存储器管理电路202也会判断第一写入指令不是连续写入指令。在其余情况下,存储器管理电路202会判断第一写入指令为连续写入指令。在另一实施例中,存储器管理电路202也可以判断第一写入指令指示要存取的逻辑地址是否接续在第二写入指令指示要存取的逻辑地址之后,若是,则判断第一写入指令为连续写入指令。换言之,若一个写入指令为连续写入指令,表示主机***1000有可能正在写入大量且逻辑地址为连续的数据,然而,本发明并不限制存储器管理电路202如何判断所接收的写入指令为连续写入指令。
若目前所接收的写入指令并不是连续写入指令,则存储器管理电路202会将数据504写入至闲置区404的一个实体擦除单元(也称第四实体擦除单元,例如,实体擦除单元304(D+1))。然而,存储器管理电路202可以设定实体擦除单元304(D+1)是以第一程序化模式写入或是第二程序化模式写入,本发明并不在此限。并且,存储器管理电路202会纪录实体擦除单元304(D+1)不为一个连续写入状态。此外,判断实体擦除单元304(D+1)是否以第一程序化模式写入或是第二程序化模式写入的方式,可于数据写入时,于实体擦除单元304(D+1)所属的实体程序化单元的冗余区中(例如只在第一个下实体程序化单元中标记)或是于逻辑地址-实体擦除单元映射表中,利用一字节,来注记写入的方式,或是判断实体擦除单元304(D+1)的上实体程序化单元中的数据是否都是0xFFFF。若是,则判断是以第一程序化模式写入,本发明并不在此限。
在本实施例中,当一个实体擦除单元被纪录为连续写入状态时,表示此实体擦除单元中超过一个预设比例的实体程序化单元在一个预设时间内曾经被连续地被程序化。例如,此预设比例可设定为75%、100%或被程序化的实体程序化单元的数目,本发明并不在此限。值得注意的是,预设时间可以用实体擦除单元被程序化的次数来表示。例如,若预设时间表示一次,则存储器管理电路202是根据一个实体擦除单元在上一次被程序化时,其中75%的实体程序化单元是否连续地被程序化,来判断此实体擦除单元是否为连续写入状态。然而,在其他实施例中,存储器管理电路202也可以在一个实体擦除单元最近两次被程序化时,其中75%的实体程序化单元都连续地被程序化以后,才设定此实体擦除单元为连续写入状态。在一实施例中,存储器管理电路202可以用一个有限状态机(finite state machine)或是纪录表来纪录一个实体擦除单元中的实体程序化单元最近是否连续地被程序化,本发明并不在此限。举例来说,有限状态机包括多个状态,每个状态都记录一个实体擦除单元的实体程序化单元在前n次是否被连续的程序化。其中,若干状态会是连续写入状态,其他状态不是连续写入状态。当一个实体擦除单元被程序化时,都会根据其中的实体程序化单元是否连续地被程序化而将此实体擦除单元的状态切换至另一个状态(或停留在原本的状态)。另一方面,存储器管理电路202也可以用一个计时器来得知一个实体擦除单元上一次被程序化是在什么时候。当一个实体擦除单元为连续写入状态时,表示主机***1000有可能正在对某些特定的逻辑地址写入逻辑地址为连续的数据。
值得一提的是,用以存储使用者数据的实体擦除单元皆会映射至逻辑地址502(0)~502(A)的其中之一。因此,在另一实施例中,存储器管理电路202也可以在逻辑地址的层级判断一个逻辑地址是否为连续写入状态。举例来说,一个逻辑地址中还包括多个次逻辑地址(例如,一个逻辑擦除单元地址包括多个逻辑程序化单元地址)。当一个逻辑地址被纪录为连续写入状态时,表示此逻辑地址中超过一个预设比例的次逻辑地址在一个预设时间内曾经被连续地被程序化。换言之,当一个实体擦除单元为连续写入状态时,表示所映射的逻辑地址也为连续写入状态。本发明并不限制是在实体或是逻辑的层级来纪录连续写入状态。
当判断所接收的写入指令是连续写入指令以后,存储器管理电路202会判断实体擦除单元304(0)是否未曾被写入过。若实体擦除单元304(0)未曾被写入过,则存储器管理电路202会将数据以第二程序化模式写入至实体擦除单元304(0)。
若判断实体擦除单元304(0)曾经被写入过,则存储器管理电路202会进一步判断实体擦除单元304(0)是否是以第一程序化模式写入。
若实体擦除单元304(0)是以第一程序化模式写入,则存储器管理电路202会提取一个闲置实体擦除单元,并以第一程序化模式将数据504写入至此闲置实体擦除单元。当一个实体擦除单元为闲置实体擦除单元时,表示此实体擦除单元并没有存储任何有效的数据。例如,分组为闲置区404的实体擦除单元便是闲置实体擦除单元。为了要提取一个闲置实体擦除单元,存储器管理电路202会判断闲置区404中闲置实体擦除区块的数目是否不小于一个第一预设数目。例如,此第一预设数目为1。也即,此时只要闲置实体擦除区块的数目不小于1,便可以完成写入的动作。
图6是根据一实施例说明第二实体擦除单元是以第一程序化模式写入时的写入操作的示意图。
请参照图3、图4及图6,当实体擦除单元304(0)是以第一程序化模式写入时,表示其中所能存储的数据量较少(相较于第二程序化模式)。在本实施例中,逻辑地址502(0)的所对应的存储器空间的容量是一个实体擦除单元的上实体程序化单元与下实体程序化单元。因此,除了实体擦除单元304(0)外,部份属于逻辑地址502(0)的数据还会存储在另一个实体擦除单元304(1)。在此假设闲置实体擦除单元的数目不小于第一预设数目(例如,实体擦除单元304(D+1)为闲置实体擦除单元)。存储器管理电路202会取得实体擦除单元304(D+1),并且将数据504的一部份以第一程序化模式写入至实体擦除单元304(D+1)。此外,存储器管理电路202还会设定实体擦除单元304(D+1)为连续写入状态。值得注意的是,当实体擦除单元304(D+1)被写满之后,也表示实体擦除单元304(0)中所存储的已是无效数据,此时属于逻辑地址502(0)的数据是存储在实体擦除单元304(D+1)与304(1)当中。接下来,存储器管理电路202会对实体擦除单元304(0)下达擦除的指令,并将数据504的另一个部分写入至实体擦除单元304(0)。完成上述步骤以后,属于逻辑地址502(0)的数据便是存储在实体擦除单元304(D+1)与304(0),并且实体擦除单元304(1)中所存储的是无效数据。在实体擦除单元304(1)被擦除以后便可成为闲置实体擦除单元,用以在接收下一个写入指令时使用。
然而,此时若闲置实体擦除区块的数目小于第一预设数目,则存储器管理电路202会执行合并(merge)操作或将数据写入至闲置的实体程序化单元。具体来说,存储器管理电路202会将两个或两个以上的实体擦除单元中的有效数据复制到同一个实体擦除单元。并且,存储器管理电路会对没有存储有效数据的实体擦除单元执行擦除的操作,此被执行擦除操作的实体擦除单元便会成为闲置实体擦除单元。接下来,存储器管理电路202便可以图6所示的方式将数据504以第一程序化模式的方式写入至此闲置实体擦除单元。或者,当存储器管理电路202是以实体程序化单元为基本单位来管理可复写式非易失性存储器模块106时,即使闲置实体擦除区块的数目小于第一预设数目,但一些实体擦除单元中可能还有闲置的实体程序化单元。此时,存储器管理电路202可将数据504写入至任一个闲置的实体程序化单元,本发明并不在此限。
另一方面,若实体擦除单元304(0)为连续写入状态,但不是以第一程序化模式写入,存储器管理电路202也会以第一程序化模式的方式将数据504写入。然而,当一个实体擦除单元是以第一程序化模式来存储数据时,所能使用的实体程序化单元的个数较少(相较于第二程序化模式)。因此,存储器管理电路202会判断闲置区404中闲置实体擦除单元的个数是否不小于第二预设数目。例如,此第二预设数目表示每一个实体程序化单元组中实体程序化单元的数目,在本实施例中为2。然而,在其他实施例中,第二预设数目也可以为其他的正整数,本发明并不在此限。
图7是根据一实施例说明第二实体擦除单元不是以第一程序化模式写入时的写入操作的示意图。
请参照图3及图7,在此假设存储器管理电路202判断闲置实体擦除单元的个数不小于第二预设数目,其中实体擦除单元304(D+1)与304(D+2)(也称为第三实体擦除单元)为闲置实体擦除单元。另一方面,在此假设逻辑地址502(0)是原始映射至实体擦除单元304(0)。存储器管理电路202会将数据504以第一程序化模式写入至实体擦除单元304(D+1)与304(D+2),并且设定实体擦除单元304(D+1)与304(D+2)为连续写入状态。此外,存储器管理电路202也会将原始映射至实体擦除单元304(0)的逻辑地址502(0)重新映射至实体擦除单元304(D+1)与304(D+2)。
图8是根据一实施例说明第二实体擦除单元不是以第一程序化模式写入,且闲置实体擦除单元的数目小于第二预设数目时的写入操作的示意图。
请参照图3及图8,若实体擦除单元304(0)为连续写入状态,不是以第一程序化模式写入,且闲置实体擦除单元的个数小于第二预设数目时,存储器管理电路202还会进一步判断闲置实体擦除单元的个数是否不小于第一预设数目。在此假设闲置实体擦除单元的个数不小于第一预设数目,且实体擦除单元304(D+3)(也称第五实体擦除单元)为闲置实体擦除单元。逻辑地址502(0)是原始映射至实体擦除单元304(0)。存储器管理电路202会将数据504以第二程序化模式写入至实体擦除单元304(D+3),并且设定实体擦除单元304(D+3)为连续写入状态。此外,存储器管理电路202也会将原始映射至实体擦除单元304(0)的逻辑地址502(0)重新映射至实体擦除单元304(D+3)。另一方面,若闲置实体擦除单元的个数小于第一预设数目时,存储器管理电路202会执行合并操作或将数据写入至闲置的实体程序化单元。然而,闲置实体擦除单元不足时的写入操作已说明如上,在此便不再赘述。
当实体擦除单元304(0)不为连续写入状态时,存储器管理电路202会先判断闲置实体擦除单元的数目是否不小于第一预设数目。若闲置实体擦除单元的数目不小于第一预设数目,存储器管理电路202会取得一个闲置实体擦除单元(也称第六实体擦除单元),并将数据504以第二程序化模式写入至此第六实体擦除单元。然而,此步骤类似于图8所示的例子,以下将配合图式一并说明。
图9A~图9C是根据一实施例说明数据写入方法的流程图。
请参照图3及图9A,在步骤S602中,存储器管理电路202会接收一个写入指令,此写入指令指示将一份数据写入至至少一个逻辑地址(也称第一逻辑地址)当中。其中第一逻辑地址是映射至第二实体擦除单元。
在步骤S604中,存储器管理电路202会判断所接收的写入指令是否为连续写入指令。
若所接收的写入指令不是连续写入指令,则在步骤S606中,存储器管理电路202会将数据写入至一个第四实体擦除单元。并且,存储器管理电路202会设定第四实体擦除单元不为连续写入状态。
若所接收的写入指令是连续写入指令,在步骤S608中,存储器管理电路202会判断第二实体擦除单元是否未曾被程序化过。
若第二实体擦除单元未曾被程序化过,在步骤S610中,存储器管理电路202会将数据以第二程序化模式写入至第二实体擦除单元。
若第二实体擦除单元曾经被程序化过,在步骤S612中,存储器管理电路202会判断第二实体擦除单元是否为连续写入状态。
若第二实体擦除单元为连续写入状态,在步骤S614中,存储器管理电路202会判断第二实体擦除单元是否是以第一程序化模式写入。
若第二实体擦除单元是以第一程序化模式写入,在步骤S616中,存储器管理电路202会判断闲置实体擦除单元的个数是否不小于第一预设数目。
若闲置实体擦除单元的个数不小于第一预设数目,在步骤S618中,存储器管理电路202会取得一个闲置的实体擦除单元(也称第三实体擦除单元)。存储器管理电路202会将数据以第一程序化模式写入至此第三实体擦除单元,并且设定第三实体擦除单元为连续写入状态。
若闲置实体擦除单元的个数小于第一预设数目,在步骤S620中,存储器管理电路202会将数据写入至闲置的实体程序化单元。
若在步骤S614的结果为“否”,请参照图9B,在步骤S622中,存储器管理电路202会判断闲置实体擦除单元的数目是否不小于第二预设数目。若是,在步骤S624中,存储器管理电路202会取得两个第三实体擦除单元,将数据以第一程序化模式写入至第三实体擦除单元,并设定第三实体擦除单元为连续写入状态。
若步骤S622的结果为“否”,在步骤S626中,存储器管理电路202会判断闲置实体擦除单元的数目不小于第一预设数目。
若步骤S626的结果为“是”,在步骤S628中,存储器管理电路202会将数据以第二程序化模式写入至一个第五实体擦除单元,并且设定第五实体擦除单元为连续写入状态。
若步骤S626的结果为“否”,在步骤S630中,存储器管理电路202会将数据写入至闲置的实体程序化单元。
若步骤S612的结果为“否”,请参照图9C,在步骤S632中,存储器管理电路202会判断闲置实体擦除单元的数目是否不小于第一预设数目。
步骤S632的结果为“是″,在步骤S634中,存储器管理电路202会将数据以第二程序化模式写入至一个第六实体擦除单元,并设定第六实体擦除单元符合连续写入状态。
若步骤S632的结果为“否”,在步骤S636中,存储器管理电路202会将数据写入至闲置的实体程序化单元。
在图9A~图9C中,存储器管理电路202是先判断所接收的写入指令是否为连续写入指令,再判断是否要以第一程序化模式将数据写入。然而,在另一实施例中,存储器管理电路202也可以预设所接收的写入指令都是连续写入指令,因此并不判断写入指令是否为连续写入指令。
图10是根据另一实施例说明数据写入方法的流程图。
请参照图3及图10,在步骤S 1002中,存储器管理电路202会接收一个写入指令。此写入指令指示将一份数据写入到至少一个逻辑地址,此至少一个逻辑地址是映射至一个第二实体擦除单元。
在步骤S 1004中,存储器管理电路202判断第二实体擦除单元是否为连续写入状态。
若第二实体擦除单元为连续写入状态,在步骤S 1006中,存储器管理电路202会将数据以第一程序化模式写入至第三实体擦除单元。
若第二实体擦除单元不为连续写入状态,在步骤S 1008中,存储器管理电路202会将数据以第一程序化模式或第二程序化模式写入至一个闲置实体擦除单元。
然而,图10中各步骤已详细说明如上,在此便不再赘述。
值得一提的是,在另一实施例中,如图3所示的存储器管理电路202也可以将一或多个实体擦除单元逻辑地划分为一个实体单元,并且根据实体单元是否为连续写入状态来写入数据。具体来说,一个实体单元可包括2、4或8个实体擦除单元,但本发明并不在此限。当一个实体单元中超过一预设比例的实体程序化单元在一预设时间内被连续地程序化,存储器管理电路202会判断此实体单元为连续写入状态。另一方面,存储器管理电路202也可以将一或多个逻辑地址分组为一个逻辑单元,并且一个逻辑单元是映射至一个实体单元。
或者,实体擦除单元之间也可以是以交错式(interleave)的方式来写入。当以交错式的方式来写入时,判断连续写入的方式也可以是交错式的。举例来说,若如图1A所示的主机***1000要存取的是编号为0~100的逻辑地址,则一个实体擦除单元可用以存储属于编号0、2、4...100的逻辑地址的数据,而另一个实体擦除单元可用以存储属于编号1、3、5...99的逻辑地址的数据。若为上述情况,则这两个实体擦除单元也可为连续写入状态,进而使用第一程序化模式来数据,本发明并不在此限。
综上所述,本发明实施例所提出的数据写入方法、存储器控制器与存储器管理电路,可以在如图1A所示的主机***1000要对某一逻辑区域连续的数据时,加快数据写入的速度。。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (24)
1.一种数据写入方法,用于控制一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个实体擦除单元,每一该些实体擦除单元包括多个实体程序化单元组,每一该些实体程序化单元组包括多个实体程序化单元,每一该些实体程序化单元组的该些实体程序化单元包括一下实体程序化单元与一上实体程序化单元,其中,该些下实体程序化单元程序化的速度快于该些上实体程序化单元,多个逻辑地址是映射至该些实体擦除单元中的多个第一实体擦除单元,其特征在于,该数据写入方法包括:
接收一第一写入指令,该第一写入指令指示将一数据写入至该些逻辑地址的至少一第一逻辑地址,其中该至少一第一逻辑地址是映射至该些第一实体擦除单元中的一第二实体擦除单元;
判断该第二实体擦除单元是否为一连续写入状态,该连续写入状态表示该第二实体擦除单元中超过一预设比例的该些实体程序化单元在一预设时间内曾经被连续地程序化;以及
若该第二实体擦除单元是该连续写入状态,将该数据以一第一程序化模式写入至该些实体擦除单元中的一第三实体擦除单元,其中该第一程序化模式表示该些上实体程序化单元为不可程序化。
2.根据权利要求1所述的数据写入方法,其特征在于,在判断该第二实体擦除单元是否为该连续写入状态的步骤之前,该数据写入方法还包括:
判断该第一写入指令是否为一连续写入指令,其中该连续写入指令表示该至少一第一逻辑地址是在一第二写入指令指示要存取的逻辑地址之后,并且该第二写入指令是被接收在该第一写入指令之前。
3.根据权利要求2所述的数据写入方法,其特征在于,还包括:
若该第一写入指令不为该连续写入指令,则将该数据写入至该些实体擦除单元中的一第四实体擦除单元;以及
设定该第四实体擦除单元不为该连续写入状态。
4.根据权利要求1所述的数据写入方法,其特征在于,在判断该第二实体擦除单元是否为该连续写入状态的步骤之前,该数据写入方法还包括:
判断该第二实体擦除单元是否为未曾被写入过;以及
若该第二实体擦除单元未曾被写入过,将该数据以一第二程序化模式写入至该第二实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化。
5.根据权利要求1所述的数据写入方法,其特征在于,若该第二实体擦除单元为该连续写入状态,将该数据以第一程序化模式写入至该些实体擦除单元中的该第三实体擦除单元的步骤包括:
判断该第二实体擦除单元是否是以该第一程序化模式写入;
若该第二实体擦除单元是以该第一程序化模式写入,判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第一预设数目;以及
若该闲置实体擦除单元的数目不小于该第一预设数目,将该数据以该第一程序化模式写入至该第三实体擦除单元;以及
设定该第三实体擦除单元为该连续写入状态。
6.根据权利要求1所述的数据写入方法,其特征在于,若该第二实体擦除单元为该连续写入状态,将该数据以该第一程序化模式写入至该第三实体擦除单元的步骤包括:
判断该第二实体擦除单元是否是以该第一程序化模式写入;
若该第二实体擦除单元不是以该第一程序化模式写入,判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第二预设数目;以及
若该闲置实体擦除单元的数目不小于该第二预设数目,将该数据以该第一程序化模式写入至该第三实体擦除单元,并且设定该第三实体擦除单元为该连续写入状态。
7.根据权利要求6所述的数据写入方法,还包括:
若该闲置实体擦除单元的数目小于该第二预设数目,判断该闲置实体擦除单元的数目是否不小于一第一预设数目,其中该第二预设数目大于该第一预设数目;
若该闲置实体擦除单元的数目不小于该第一预设数目,将该数据以一第二程序化模式写入至该些实体擦除单元中的一第五实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化;以及
设定该第五实体擦除单元为该连续写入状态。
8.根据权利要求1所述的数据写入方法,还包括:
若该第二实体擦除单元不为该连续写入状态,判断该些实体擦除单元中一闲置实体擦除单元的数目是否不小于一第一预设数目;
若该闲置实体擦除单元的数目不小于该第一预设数目,将该数据以一第二程序化模式写入至该些实体擦除单元中的一第六实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化;以及
设定该第六实体擦除单元为该连续写入状态。
9.一种存储器存储装置,其特征在于,包括:
一连接器,用以电性连接至一主机***;
一可复写式非易失性存储器模块,包括多个实体擦除单元,其中每一该些实体擦除单元包括多个实体程序化单元组,每一该些实体程序化单元组包括多个实体程序化单元,每一该些实体程序化单元组的该些实体程序化单元包括一下实体程序化单元与一上实体程序化单元,其中,该等下实体程序化单元程序化的速度快于该等上实体程序化单元,并且多个逻辑地址是映射至该些实体擦除单元中的多个第一实体擦除单元;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,用以接收一第一写入指令,其中该第一写入指令指示将一数据写入至该些逻辑地址的至少一第一逻辑地址,并且该至少一第一逻辑地址是映射至该些第一实体擦除单元中的一第二实体擦除单元,
该存储器控制器还用以判断该第二实体擦除单元是否为一连续写入状态,其中该连续写入状态表示该第二实体擦除单元中超过一预设比例的该些实体程序化单元在一预设时间内曾经被连续地程序化,
若该第二实体擦除单元为该连续写入状态,该存储器控制器还用以将该数据以一第一程序化模式写入至该些实体擦除单元的一第三实体擦除单元,其中该第一程序化模式表示该些上实体程序化单元为不可程序化。
10.根据权利要求第9所述的存储器存储装置,其特征在于,该存储器控制器还用以判断该第一写入指令是否为一连续写入指令,其中该连续写入指令表示该至少一第一逻辑地址是在一第二写入指令指示要存取的逻辑地址之后,并且该第二写入指令是被该存储器控制器接收在该第一写入指令之前。
11.根据权利要求10所述的存储器存储装置,其特征在于,若该第一写入指令不为该连续写入指令,该存储器控制器还用以将该数据写入至该些实体擦除单元中的一第四实体擦除单元,并且设定该第四实体擦除单元不为该连续写入状态。
12.根据权利要求9所述的存储器存储装置,其特征在于,该存储器控制器还用以判断该第二实体擦除单元是否未曾被写入过,
若该第二实体擦除单元未曾被写入过,该存储器控制器还用以将该数据以一第二程序化模式写入至该第二实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化。
13.根据权利要求9所述的存储器存储装置,其特征在于,该存储器控制器还用以判断该第二实体擦除单元是否是以该第一程序化模式写入,
若该第二实体擦除单元是以该第一程序化模式写入,该存储器控制器还用以判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器控制器还用以将该数据以该第一程序化模式写入至该第三实体擦除单元,并且设定该第三实体擦除单元为该连续写入状态。
14.根据权利要求9所述的存储器存储装置,其特征在于,该存储器控制器还用以判断该第二实体擦除单元是否是以该第一程序化模式写入,
若该第二实体擦除单元不是以该第一程序化模式写入,该存储器控制器还用以判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第二预设数目,
若该闲置实体擦除单元的数目不小于该第二预设数目,该存储器控制器还用以将该数据以该第一程序化模式写入至该第三实体擦除单元,并且设定该第三实体擦除单元为该连续写入状态。
15.根据权利要求14所述的存储器存储装置,其特征在于,若该闲置实体擦除单元的数目小于该第二预设数目,该存储器控制器还用以判断该闲置实体擦除单元的数目是否不小于一第一预设数目,其中该第二预设数目大于该第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器控制器还用以将该数据一第二程序化模式写入至该些实体擦除单元的一第五实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化,
该存储器控制器还用以设定该第五实体擦除单元为该连续写入状态。
16.根据权利要求9所述的存储器存储装置,其特征在于,若该第二实体擦除单元不为该连续写入状态,该存储器控制器还用以判断该些实体擦除单元中一闲置实体擦除单元的数目是否不小于一第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器控制器还用以将该数据以该第一程序化模式写入至该些实体擦除单元中的一第六实体擦除单元,并且设定该第六实体擦除单元为该连续写入状态。
17.一种存储器控制器,用于控制一可复写式非易失性存储器模块,其特征在于,该存储器控制器包括:
一主机接口,用以电性连接至一主机***;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个实体程序化单元,每一该些实体程序化单元组包括多个实体程序化单元,每一该些实体程序化单元组的该些实体程序化单元包括一下实体程序化单元与一上实体程序化单元,其中,该等下实体程序化单元程序化的速度快于该等上实体程序化单元,并且多个逻辑地址是映射至该些实体擦除单元中的多个第一实体擦除单元;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,用以接收一第一写入指令,其中该第一写入指令指示将一数据写入至该些逻辑地址的至少一第一逻辑地址,并且该至少一第一逻辑地址是映射至该些第一实体擦除单元中的一第二实体擦除单元,
该存储器管理电路还用以判断该第二实体擦除单元是否为一连续写入状态,其中该连续写入状态表示该第二实体擦除单元中超过一预设比例的该些实体程序化单元在一预设时间内曾经被连续地程序化,
若该第二实体擦除单元为该连续写入状态,该存储器管理电路还用以将该数据以一第一程序化模式写入至该些实体擦除单元的一第三实体擦除单元,其中该第一程序化模式表示该些上实体程序化单元为不可程序化。
18.根据权利要求17所述的存储器控制器,其特征在于,该存储器管理电路还用以判断该第一写入指令是否为一连续写入指令,其中该连续写入指令表示该至少一第一逻辑地址是在一第二写入指令指示要存取的逻辑地址之后,并且该第二写入指令是被该存储器管理电路接收在该第一写入指令之前。
19.根据权利要求18所述的存储器控制器,其特征在于,若该第一写入指令不为该连续写入指令,该存储器管理电路还用以将该数据写入至该些实体擦除单元中的一第四实体擦除单元,并且设定该第四实体擦除单元不为该连续写入状态。
20.根据权利要求17所述的存储器控制器,其特征在于,该存储器管理电路还用以判断该第二实体擦除单元是否未曾被写入过,
若该第二实体擦除单元未曾被写入过,该存储器管理电路还用以将该数据以一第二程序化模式写入至该第二实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化。
21.根据权利要求17所述的存储器控制器,其特征在于,该存储器管理电路还用以判断该第二实体擦除单元是否是以该第一程序化模式写入,
若该第二实体擦除单元是以该第一程序化模式写入,该存储器管理电路还用以判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器管理电路还用以将该数据以该第一程序化模式写入至该第三实体擦除单元,并且设定该第三实体擦除单元为该连续写入状态。
22.根据权利要求17所述的存储器控制器,其特征在于,该存储器管理电路还用以判断该第二实体擦除单元是否是以该第一程序化模式写入,
若该第二实体擦除单元不是以该第一程序化模式写入,该存储器管理电路还用以判断该些实体擦除单元中的一闲置实体擦除单元的数目是否不小于一第二预设数目,
若该闲置实体擦除单元的数目不小于该第二预设数目,该存储器管理电路还用以将该数据以该第一程序化模式写入至该第三实体擦除单元,并且设定该第三实体擦除单元为该连续写入状态。
23.根据权利要求22所述的存储器控制器,其特征在于,若该闲置实体擦除单元的数目小于该第二预设数目,该存储器管理电路还用以判断该闲置实体擦除单元的数目是否不小于一第一预设数目,其中该第二预设数目大于该第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器管理电路还用以将该数据一第二程序化模式写入至该些实体擦除单元的一第五实体擦除单元,其中该第二程序化模式表示该些实体程序化单元可被程序化,
该存储器管理电路还用以设定该第五实体擦除单元为该连续写入状态。
24.根据权利要求17所述的存储器控制器,其特征在于,若该第二实体擦除单元不为该连续写入状态,该存储器管理电路还用以判断该些实体擦除单元中一闲置实体擦除单元的数目是否不小于一第一预设数目,
若该闲置实体擦除单元的数目不小于该第一预设数目,该存储器管理电路还用以将该数据以该第一程序化模式写入至该些实体擦除单元中的一第六实体擦除单元,并且设定该第六实体擦除单元为该连续写入状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210236689.9A CN103544115B (zh) | 2012-07-10 | 2012-07-10 | 数据写入方法、存储器控制器与存储器存储装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210236689.9A CN103544115B (zh) | 2012-07-10 | 2012-07-10 | 数据写入方法、存储器控制器与存储器存储装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103544115A true CN103544115A (zh) | 2014-01-29 |
CN103544115B CN103544115B (zh) | 2016-08-03 |
Family
ID=49967587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210236689.9A Active CN103544115B (zh) | 2012-07-10 | 2012-07-10 | 数据写入方法、存储器控制器与存储器存储装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103544115B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325764A (zh) * | 2015-07-08 | 2017-01-11 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN106406746A (zh) * | 2015-07-31 | 2017-02-15 | 群联电子股份有限公司 | 映射表存取方法、存储器控制电路单元及存储器存储装置 |
CN106528464A (zh) * | 2016-11-08 | 2017-03-22 | 英业达科技有限公司 | 内存访问冲突控制的计算机*** |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与***及其存储器控制电路单元 |
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
CN108121680A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储装置、电子***以及操作电子装置的方法 |
CN109947678A (zh) * | 2019-03-26 | 2019-06-28 | 联想(北京)有限公司 | 一种存储装置、电子设备及数据交互方法 |
CN110008146A (zh) * | 2018-01-05 | 2019-07-12 | 群联电子股份有限公司 | 数据写入方法、有效数据识别方法及存储器存储装置 |
CN112988076A (zh) * | 2021-04-26 | 2021-06-18 | 群联电子股份有限公司 | 快闪存储器控制方法、存储装置及控制器 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172256A1 (en) * | 2007-12-31 | 2009-07-02 | Phison Electronics Corp. | Data writing method for flash memory, and flash memory controller and storage device thereof |
CN101930407A (zh) * | 2009-06-26 | 2010-12-29 | 群联电子股份有限公司 | 闪速存储器控制电路及其存储***与数据传输方法 |
CN101937399A (zh) * | 2009-07-02 | 2011-01-05 | 联发科技股份有限公司 | 在非易失性存储器上执行随机写入操作的方法与装置 |
CN102129353A (zh) * | 2010-01-13 | 2011-07-20 | 群联电子股份有限公司 | 闪存储存***、闪存控制器与数据写入方法 |
-
2012
- 2012-07-10 CN CN201210236689.9A patent/CN103544115B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090172256A1 (en) * | 2007-12-31 | 2009-07-02 | Phison Electronics Corp. | Data writing method for flash memory, and flash memory controller and storage device thereof |
CN101930407A (zh) * | 2009-06-26 | 2010-12-29 | 群联电子股份有限公司 | 闪速存储器控制电路及其存储***与数据传输方法 |
CN101937399A (zh) * | 2009-07-02 | 2011-01-05 | 联发科技股份有限公司 | 在非易失性存储器上执行随机写入操作的方法与装置 |
CN102129353A (zh) * | 2010-01-13 | 2011-07-20 | 群联电子股份有限公司 | 闪存储存***、闪存控制器与数据写入方法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106325764A (zh) * | 2015-07-08 | 2017-01-11 | 群联电子股份有限公司 | 存储器管理方法、存储器控制电路单元与存储器存储装置 |
CN106406746A (zh) * | 2015-07-31 | 2017-02-15 | 群联电子股份有限公司 | 映射表存取方法、存储器控制电路单元及存储器存储装置 |
CN106406746B (zh) * | 2015-07-31 | 2019-04-23 | 群联电子股份有限公司 | 映射表存取方法、存储器控制电路单元及存储器存储装置 |
CN106708416A (zh) * | 2015-11-13 | 2017-05-24 | 群联电子股份有限公司 | 数据重建方法与***及其存储器控制电路单元 |
TWI596476B (zh) * | 2015-11-27 | 2017-08-21 | 群聯電子股份有限公司 | 資料程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
CN106528464A (zh) * | 2016-11-08 | 2017-03-22 | 英业达科技有限公司 | 内存访问冲突控制的计算机*** |
CN108121680A (zh) * | 2016-11-30 | 2018-06-05 | 三星电子株式会社 | 存储装置、电子***以及操作电子装置的方法 |
CN110008146A (zh) * | 2018-01-05 | 2019-07-12 | 群联电子股份有限公司 | 数据写入方法、有效数据识别方法及存储器存储装置 |
CN110008146B (zh) * | 2018-01-05 | 2022-11-08 | 群联电子股份有限公司 | 数据写入方法、有效数据识别方法及存储器存储装置 |
CN109947678A (zh) * | 2019-03-26 | 2019-06-28 | 联想(北京)有限公司 | 一种存储装置、电子设备及数据交互方法 |
CN112988076A (zh) * | 2021-04-26 | 2021-06-18 | 群联电子股份有限公司 | 快闪存储器控制方法、存储装置及控制器 |
CN112988076B (zh) * | 2021-04-26 | 2023-08-15 | 群联电子股份有限公司 | 快闪存储器控制方法、存储装置及控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN103544115B (zh) | 2016-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103544115B (zh) | 数据写入方法、存储器控制器与存储器存储装置 | |
CN103377129B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103530062A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
TWI454913B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
CN102193869B (zh) | 存储器管理与写入方法及其存储器控制器与储存*** | |
CN104423888A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN104765568A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN103514096A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN104866429A (zh) | 存储器管理方法、存储器控制电路单元与存储器存储装置 | |
CN103699491A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN104636267A (zh) | 存储器控制方法、存储器存储装置与存储器控制电路单元 | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103514103A (zh) | 数据保护方法、存储器控制器与存储器储存装置 | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN103678162A (zh) | ***数据储存方法、存储器控制器与存储器储存装置 | |
CN105022695A (zh) | 数据存储方法、存储器控制电路单元与存储器存储装置 | |
CN102866861B (zh) | 闪存储存***、闪存控制器与数据写入方法 | |
CN105224238A (zh) | 存储器管理方法、存储器存储装置及存储器控制电路单元 | |
CN103513930A (zh) | 存储器管理方法、存储器控制器与存储器储存装置 | |
CN103914391A (zh) | 数据读取方法、存储器控制器与存储器存储装置 | |
CN103714008A (zh) | 数据存储方法、存储器控制器与存储器存储装置 | |
CN103984635A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103577344A (zh) | 数据写入方法、存储器控制器与存储器储存装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |