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

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

Info

Publication number
CN103577344B
CN103577344B CN201210253771.2A CN201210253771A CN103577344B CN 103577344 B CN103577344 B CN 103577344B CN 201210253771 A CN201210253771 A CN 201210253771A CN 103577344 B CN103577344 B CN 103577344B
Authority
CN
China
Prior art keywords
physics
data
erased cell
programming unit
pointer
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
CN201210253771.2A
Other languages
English (en)
Other versions
CN103577344A (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 CN201210253771.2A priority Critical patent/CN103577344B/zh
Publication of CN103577344A publication Critical patent/CN103577344A/zh
Application granted granted Critical
Publication of CN103577344B publication Critical patent/CN103577344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Read Only Memory (AREA)

Abstract

一种数据写入方法,用于控制具有多个物理抹除单元的可复写式非易失性存储器模块。此方法包括:将这些物理抹除单元划分出第一缓冲区与第二缓冲区,接收一个指示将数据写入至第一逻辑地址的写入指令;判断此数据的数据量是否小于一个预设值;若是,将此数据写入至第一缓冲区或第二缓冲区;以及当把数据写入至第二缓冲区时,取得第一缓冲区中的至少一个物理编程单元所映射的至少一个第二逻辑地址,并且整并属于第二逻辑地址的有效数据,其中第二逻辑地址的数目小于整并门坎值。藉此,可以减少主机系统等待写入成功消息的时间。

Description

数据写入方法、存储器控制器与存储器储存装置
技术领域
本发明是有关于一种数据写入方法,且特别是有关于一种将数据量小于预设值的数据写入至可复写式非易失性存储器模块的数据写入方法、存储器控制器与存储器储存装置。
背景技术
数字相机、移动电话与MP3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,闪存)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。
一般来说,可复写式非易失性存储器模块会包括多个物理抹除单元,并且这些物理抹除单元必须先被抹除以后才能写入新的数据。多个逻辑地址会被映射至部分的物理抹除单元,并且一个主机系统会下达存取这些逻辑地址的指令来写入数据至可复写式非易失性存储器模块。当多数的物理抹除单元中都储存了数据以后,若主机系统欲再写入其它数据,则这些物理抹除单元中的有效数据必须先被整并以产生闲置的物理抹除单元。然而,若一个物理抹除单元的有效数据属于多个不同的逻辑地址,必须要整并属于多个逻辑地址的有效数据才能产生一个闲置的物理抹除单元。若整并有效数据的时间太久,可能会超过主机系统等待写入成功消息的时间上限。因此,如何避免一次整并太多有效数据,使得主机系统等待写入成功消息的时间超过上限,为本领域技术人员所关心的议题。
发明内容
本发明的范例实施例中提出一种数据写入方法,存储器控制器与存储器储存装置,可以减少主机系统等待写入成功消息的时间。
本发明一范例实施例中提出一种数据写入方法,用于控制可复写式非易失性存储器模块。此可复写式非易失性存储器模块包括多个物理抹除单元,每一个物理抹除单元包括多个物理编程单元,这些物理抹除单元至少被划分出数据区。此数据写入方法包括:配置多个逻辑地址以映射至数据区的物理抹除单元;从数据区以外的物理抹除单元中将至少一个第一物理抹除单元划分为第一缓冲区,将至少一个第二物理抹除单元划分为第二缓冲区,其中第一物理抹除单元不同于第二物理抹除单元。此数据写入方法还包括:接收第一写入指令,此第一写入指令指示将第一数据写入至一个第一逻辑地址;判断第一数据的数据量是否小于一个预设值;若第一数据的数据量小于预设值,将第一数据写入至第一物理抹除单元或第二物理抹除单元;以及当把第一数据写入至第二物理抹除单元时,取得第一物理抹除单元中的至少一个第一物理编程单元所映射的至少一个第二逻辑地址,并且整并属于第二逻辑地址的有效数据,其中第二逻辑地址的数目小于一个整并门坎值。
在一范例实施例中,上述划分第一缓冲区与划分为第二缓冲区的步骤还包括:建立第一指针与第二指针,并且将第一指针与第二指针指向第一物理抹除单元或第二物理抹除单元中的其中一个物理编程单元。
在一范例实施例中,上述的将第一数据写入至第一物理抹除单元或第二物理抹除单元的步骤包括:将第一数据写入第二指针所指向的第二物理编程单元;以及,将第二指针移动至第三物理编程单元,其中第三物理编程单元的编程顺序是接续在第二物理编程单元之后。
在一范例实施例中,上述至少一个第一物理编程单元所映射的至少一个第二逻辑地址的步骤包括:依据第一指针所指向的物理编程单元取得上述的第一物理编程单元;以及将第一指针移动至第四物理编程单元,并取得第四物理编程单元所映射的第三逻辑地址。
在一范例实施例中,上述整并属于第二逻辑地址的有效数据的步骤包括:整并属于第三逻辑地址的有效数据;以及,将第一指针移动至第五物理编程单元,其中第五物理编程单元的编程顺序是接续在第四物理编程单元之后。
在一范例实施例中,上述的数据写入方法还包括:若第五物理编程单元所储存的数据已被整并,将第一指针移动至一个第六物理编程单元,其中第六物理编程单元的编程顺序是接续在第五物理编程单元之后。此方法还包括:当第一指针指向第一缓冲区中编程顺序为最后的物理编程单元时,判断第二指针是否指向第二缓冲区中编程顺序为最后的物理编程单元,若是,将第一指针移动至第二缓冲区中编程顺序为第一的物理编程单元。
以另一个角度来说,本发明一范例实施例提出一种存储器储存装置,包括连接器、可复写式非易失性存储器模块与存储器控制器。连接器是用以电性连接至主机系统。可复写式非易失性存储器模块包括多个物理抹除单元,每一个物理抹除单元包括多个物理编程单元。这些物理抹除单元至少被划分出一数据区。存储器控制器是电性连接至连接器与可复写式非易失性存储器模块,用以配置多个逻辑地址以映射至数据区的物理抹除单元,从数据区以外的物理抹除单元中将至少一个第一物理抹除单元划分为第一缓冲区,并将至少一个第二物理抹除单元划分为第二缓冲区,其中第一物理抹除单元不同于第二物理抹除单元。存储器控制器也用以接收指示将第一数据写入至一个第一逻辑地址的第一写入指令,并且判断第一数据的数据量是否小于预设值。若第一数据的数据量小于预设值,存储器控制器用以将第一数据写入至第一物理抹除单元或第二物理抹除单元。当把第一数据写入至第二物理抹除单元时,存储器控制器用以取得第一物理抹除单元中的至少一个第一物理编程单元所映射的至少一个第二逻辑地址,并且整并属于第二逻辑地址的有效数据。其中,第二逻辑地址的数目小于一个整并门坎值。
在一范例实施例中,上述的存储器控制器还用以建立第一指针与第二指针,并且将第一指针与第二指针指向第一物理抹除单元或第二物理抹除单元中的其中一个物理编程单元。
在一范例实施例中,若第一数据的数据量小于预设值,存储器控制器还用以将第一数据写入第二指针所指向的第二物理编程单元,并且将第二指针移动至第三物理编程单元。其中第三物理编程单元的编程顺序是接续在第二物理编程单元之后。
在一范例实施例中,上述存储器控制器还用以依据第一指针所指向的物理编程单元取得上述的第一物理编程单元。存储器控制器还用以将第一指针移动至第四物理编程单元,并取得第四物理编程单元所映射的第三逻辑地址。
在一范例实施例中,上述的存储器控制器还用以整并属于第三逻辑地址的有效数据,并且将第一指针移动至第五物理编程单元。其中第五物理编程单元的编程顺序是接续在第四物理编程单元之后。
在一范例实施例中,若第五物理编程单元所储存的数据已被整并,存储器控制器还用以将第一指针移动至一个第六物理编程单元,其中第六物理编程单元的编程顺序是接续在第五物理编程单元之后。当第一指针指向第一缓冲区中编程顺序为最后的物理编程单元时,存储器控制器还用以判断第二指针是否指向第二缓冲区中编程顺序为最后的物理编程单元后。若是,存储器控制器还用以将第一指针移动至第二缓冲区中编程顺序为第一的物理编程单元。
以另一个角度来说,本发明一范例实施例提出一种存储器控制器,包括主机接口、存储器接口与存储器管理电路。主机接口是用以电性连接至主机系统。存储器接口是用以电性连接至可复写式非易失性存储器模块。此可复写式非易失性存储器模块包括多个物理抹除单元,并且每一个物理抹除单元包括多个物理编程单元。这些物理抹除单元至少被划分出一数据区。存储器管理电路是电性连接至连接器与可复写式非易失性存储器模块,用以配置多个逻辑地址以映射至数据区的物理抹除单元,从数据区以外的物理抹除单元中将至少一个第一物理抹除单元划分为第一缓冲区,并将至少一个第二物理抹除单元划分为第二缓冲区,其中第一物理抹除单元不同于第二物理抹除单元。存储器管理电路也用以接收指示将第一数据写入至一个第一逻辑地址的第一写入指令,并且判断第一数据的数据量是否小于预设值。若第一数据的数据量小于预设值,存储器管理电路用以将第一数据写入至第一物理抹除单元或第二物理抹除单元。当把第一数据写入至第二物理抹除单元时,存储器管理电路用以取得第一物理抹除单元中的至少一个第一物理编程单元所映射的至少一个第二逻辑地址,并且整并属于第二逻辑地址的有效数据。其中,第二逻辑地址的数目小于一个整并门坎值。
在一范例实施例中,上述的存储器管理电路还用以建立第一指针与第二指针,并且将第一指针与第二指针指向第一物理抹除单元或第二物理抹除单元中的其中一个物理编程单元。
在一范例实施例中,若第一数据的数据量小于预设值,存储器管理电路还用以将第一数据写入第二指针所指向的第二物理编程单元,并且将第二指针移动至第三物理编程单元。第三物理编程单元的编程顺序是接续在第二物理编程单元之后。
在一范例实施例中,上述的存储器管理电路还用以依据第一指针所指向的物理编程单元取得上述的第一物理编程单元。存储器管理电路还用以将第一指针移动至第四物理编程单元,并取得第四物理编程单元所映射的第三逻辑地址。
在一范例实施例中,上述的存储器管理电路还用以整并属于第三逻辑地址的有效数据,并且将第一指针移动至第五物理编程单元。其中第五物理编程单元的编程顺序是接续在第四物理编程单元之后。
在一范例实施例中,若第五物理编程单元所储存的数据已被整并,存储器管理电路还用以将第一指针移动至一个第六物理编程单元,其中第六物理编程单元的编程顺序是接续在第五物理编程单元之后。当第一指针指向第一缓冲区中编程顺序为最后的物理编程单元时,存储器管理电路还用以判断第二指针是否指向第二缓冲区中编程顺序为最后的物理编程单元后。若是,存储器管理电路还用以将第一指针移动至第二缓冲区中编程顺序为第一的物理编程单元。
在一范例实施例中,上述的预设值为一个物理编程单元的大小。
在一范例实施例中,上述的第一缓冲区的大小与第二缓冲区的大小相同。
基于上述,本发明实施例所提出的数据写入方法、存储器控制器与存储器储存装置,可以在将数据量小于预设值的数据写入一个缓冲区时,整并另一个缓冲区的有效数据,藉此减少主机系统等待写入成功消息的时间。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1A是根据一范例实施例所绘示的主机系统与存储器储存装置。
图1B是根据一范例实施例所绘示的计算机、输入/输出装置与存储器储存装置的示意图。
图1C是根据一范例实施例所绘示的主机系统与存储器储存装置的示意图。
图2是绘示图1A所示的存储器储存装置的概要方块图。
图3是根据一范例实施例所绘示的存储器控制器的概要方块图。
图4根据一范例实施例所绘示的管理可复写式非易失性存储器模块的范例示意图。
图5是根据一范例实施例说明主机系统要写入的数据量小于预设值的数据时的写入操作的示意图。
图6与图7是根据一范例实施例说明根据第一指针与第二指针将第一数据写入的范例示意图。
图8是根据一范例实施例说明数据写入方法的流程图。
[主要元件标号说明]
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:可复写式非易失性存储器模块
304(0)~304(R):物理抹除单元 202:存储器管理电路
204:主机接口 206:存储器接口
252:缓冲存储器 254:电源管理电路
256:错误检查与校正电路 410:数据区
420:闲置区 430:第一缓冲区
440:第二缓冲区 450(0)~450(E):逻辑地址
502:第一数据
508(0)~508(E)、510(0)~510(E):逻辑编程单元
504(0)~504(E)、506(0)~506(E)、604(0)、604(E)、702(E):物理编程单元
630:第一指针 640:第二指针
S801、S802、S804、S806、S808、S810、S812:数据写入方法的步骤
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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所示的随身盘1212、存储卡1214或固态硬盘(Solid StateDrive,SSD)1216等的可复写式非易失性存储器储存装置。
一般而言,主机系统1000为可实质地与存储器储存装置100配合以储存数据的任意系统。虽然在本范例实施例中,主机系统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是兼容于高速外围零件连接接口(PeripheralComponent Interconnect Express,PCI Express)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合并列先进附件(Parallel Advanced TechnologyAttachment,PATA)标准、电气和电子工程师协会(Institute of Electrical andElectronic Engineers,IEEE)1394标准、序列先进附件(Serial Advanced TechnologyAttachment,SATA)标准、通用序列总线(Universal Serial Bus,USB)标准、安全数字(Secure Digital,SD)接口标准、超高速一代(Ultra High Speed-I,UHS-I)接口标准、超高速二代(Ultra High Speed-II,UHS-II)接口标准、存储棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、嵌入式多媒体储存卡(EmbeddedMultimedia Card,eMMC)接口标准、通用闪存(Universal Flash Storage,UFS)接口标准、小型快闪(Compact Flash,CF)接口标准、集成式驱动电子接口(Integrated DeviceElectronics,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为多阶存储单元(MultiLevel Cell,MLC)NAND型闪存模块,即一个存储单元中可储存至少2个位数据。然而,本发明不限于此,可复写式非易失性存储器模块106亦可是单阶存储单元(Single Level Cell,SLC)NAND型闪存模块、多阶存储单元(Trinary Level Cell,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是兼容于PCI Express标准。然而,必须了解的是本发明不限于此,主机接口204亦可以是兼容于PATA标准、IEEE1394标准、SATA标准、USB标准、SD标准、UHS-I标准、UHS-II标准、MS标准、MMC标准、eMMC标准、UFS标准、CF标准、IDE标准或其它适合的数据传输标准。
存储器接口206是电性连接至存储器管理电路202并且用以存取可复写式非易失性存储器模块106。也就是说,欲写入至可复写式非易失性存储器模块106的数据会经由存储器接口206转换为可复写式非易失性存储器模块106所能接受的格式。
在本发明一范例实施例中,存储器控制器104还包括缓冲存储器252、电源管理电路254与错误检查与校正电路256。
缓冲存储器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是根据一范例实施例所绘示的管理可复写式非易失性存储器模块的范例示意图。
请参照图4,存储器管理电路202可将可复写式非易失性存储器模块106的物理抹除单元304(0)~304(R)逻辑地分组为多个区域,例如为数据区410、闲置区420、第一缓冲区430以及第二缓冲区440。
数据区410与闲置区420的物理抹除单元是用以储存来自于主机系统1000的数据。具体来说,数据区410的物理抹除单元是已储存数据的物理抹除单元,而闲置区420的物理抹除单元是用以替换数据区420的物理抹除单元。因此,闲置区420的物理抹除单元为空或可使用的物理抹除单元,即无记录数据或标记为已没用的无效数据。也就是说,在闲置区420中的物理抹除单元已被执行抹除运作,或者当闲置区420中的物理抹除单元被提取用于储存数据之前所提取的物理抹除单元会先被执行抹除运作。因此,闲置区420的物理抹除单元为可被使用的物理抹除单元。在一范例实施例中,闲置区420的物理抹除单元也可以用以替换其它区域中已经损坏的物理抹除单元。
第一缓冲区430包括了物理抹除单元304(B+1)~304(C)(亦称为第一物理抹除单元)。第二缓冲区440包括了物理抹除单元304(C+1)~304(D)(亦称第二物理抹除单元)。第一缓冲区460与第二缓冲区480是用以暂存小数据。举例来说,当主机系统1000要写入多笔数据,且这些数据的数据量都小于一个预设值时,存储器管理电路202会将这些数据写入至第一缓冲区460或是第二缓冲区。存储器管理电路202会将这些小数据整并以后,再写入至从闲置区420所提取的物理抹除单元中。
然而,存储器管理电路202也可以将物理抹除单元304(0)~304(R)划分出其它区域,例如,系统区。逻辑上属于系统区的物理抹除单元是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的物理抹除单元数、每一物理抹除单元的物理编程单元数等。本发明并不限制将物理抹除单元304(0)~304(R)划分出的区域的个数。
存储器管理电路202也会配置多个逻辑地址450(0)~450(E),用以映射至数据区410的物理抹除单元304(0)~304(A)。例如,当存储器储存装置100被主机系统1000上的操作系统通过文件系统(例如,FAT 32)格式化时,逻辑地址450(0)~450(E)会分别地映射至数据区410的物理抹除单元304(0)~304(A)。在此,存储器管理电路202会建立逻辑地址-物理抹除单元映射表(logical address-physical erase unit mapping table),以记录逻辑地址与物理抹除单元之间的映射关系。在此范例实施例中,一个逻辑地址所对应的存储器空间的大小等于一个物理抹除单元的大小,此时逻辑地址亦可被称为逻辑抹除单元。而每一个逻辑地址450(0)~450(E)还包括多个逻辑编程单元,用以映射至物理编程单元。然而,在其它范例实施例中,每一个逻辑地址450(0)~450(E)所对应的存储器空间也可以是多个物理抹除单元的大小、一个物理编程单元的大小或其它数值,本发明并不在此限。
当主机系统1000要存取或更新物理抹除单元304(0)~304(R)中储存的数据时,便会下达存取逻辑地址450(0)~450(E)的指令给存储器管理电路202。例如,主机系统1000下达了一个写入指令(亦称第一写入指令),此写入指令指示将第一数据502写入至逻辑地址450(0)(亦称第一逻辑地址)。存储器管理电路202会先判断第一数据502的数据量是否小于一个预设值。
若第一数据502的数据量并不小于预设值,则存储器管理电路202会将第一数据502写入至从闲置区420所提取的物理抹除单元中。举例来说,第一数据502是要写入至逻辑地址450(0),且逻辑地址450(0)是映射至物理抹除单元304(0)。当第一数据502不小于预设值时,存储器管理电路202会从闲置区420提取物理抹除单元304(A+1)。存储器管理电路202可将物理抹除单元304(0)中部分的数据复制到物理抹除单元304(A+1),并且将第一数据502写入至物理抹除单元304(A+1)。也就是说,此时属于逻辑地址450(0)的有效数据会储存在物理抹除单元304(0)与物理抹除单元304(A+1)当中。此时物理抹除单元304(0)亦被称为母物理抹除单元,而物理抹除单元304(A+1)亦被称为子物理抹除单元。之后,存储器管理电路202会整并属于逻辑地址450(0)的有效数据。亦即,存储器管理电路202会将物理抹除单元304(0)中储存的有效数据复制到物理抹除单元304(A+1),把物理抹除单元304(A+1)关联至数据区410,把物理抹除单元304(0)关联至闲置区420,并且把逻辑地址450(0)重新映射至物理抹除单元304(A+1)。此时,属于逻辑地址450(0)的有效数据便仅储存在物理抹除单元304(A+1)中。
相反地,若第一数据502的数据量小于预设值,则存储器管理电路202会将第一数据502写入至第一缓冲区430或是第二缓冲区440的物理抹除单元中。例如,此预设值为可复写式非易失性存储器106中一个物理编程单元的大小。在其它范例实施例中,此预设值也可以被设定多个物理编程单元的大小或其它数值,本发明并不在此限。
当把第一数据502写入至第二缓冲区440(或第一缓冲区430)的物理抹除单元时,存储器管理电路202会取得第一缓冲区430(或第二缓冲区440)中一个物理抹除单元中的一个物理编程单元,取得此物理编程单元所映射的逻辑地址,并且整并属于此逻辑地址的有效数据。在本说明书中,所称的“整并”是表示取得属于同一个逻辑地址的多个物理编程单元,并将这些物理编程单元储存的有效数据写入一个闲置的物理抹除单元。以下称整并有效数据、整并逻辑地址或是整并多个物理编程单元皆是指同一种操作,以下不再赘述。
图5是根据一范例实施例说明主机系统要写入数据量小于预设值的数据时的写入操作示意图。
请参照图5,逻辑地址450(0)包括逻辑编程单元508(0)~508(E),逻辑地址450(1)包括逻辑编程单元510(0)~510(E),物理抹除单元304(B+1)包括物理编程单元504(0)~504(E),并且物理抹除单元304(C+1)包括物理编程单元506(0)~506(E)。举例来说,主机系统1000是要将第一数据402写入至逻辑编程单元508(1),且存储器管理电路202判断第一数据502的数据量小于预设值。存储器管理电路202会取得属于逻辑编程单元508(1)的旧数据,并将部分的旧数据加入第一数据502,使得所产生的数据符合一个物理编程单元的大小。接着,存储器管理电路202会将所产生的数据写入至物理编程单元506(0)。
存储器管理电路202会在一个映射表中,记录物理编程单元506(0)储存有属于逻辑编程单元508(1)的有效数据。换言之,此时物理编程单元506(0)是映射至逻辑编程单元508(1)(即,映射至逻辑地址450(0))。类似地,在写入第一数据502之前,物理编程单元504(0)已储存了属于逻辑编程单元510(1)的有效数据,而物理编程单元504(1)已储存了属于逻辑编程单元510(E)的有效数据。也就是说,物理编程单元504(0)与物理编程单元504(1)皆映射至逻辑地址450(1)。
当存储器管理电路202将第一数据502写入至物理编程单元506(0)时,便会取得物理编程单元504(0)(亦称第一物理编程单元)所映射的逻辑地址450(1)(亦称为第二逻辑地址),并且会整并属于逻辑地址450(1)的有效数据。具体来说,存储器管理电路202会读取物理编程单元504(0)与504(1)中储存的数据以及读取属于逻辑地址450(1)的有效数据,并且将这些所读取的数据一并写入至从闲置区420所提取的一个物理抹除单元中。如此一来,属于逻辑地址450(1)的有效数据便会集中地储存在一个物理抹除单元中,而此时物理编程单元504(0)与504(1)所储存的数据已是无效数据。最后,存储器管理电路202便会回复一个写入成功消息给主机系统1000,用以表示存储器管理电路202已成功地执行写入指令。换言之,存储器管理电路202是在将第一数据502写入至第二缓冲区440时,同时整并第一缓冲区430中的有效数据。在本范例实施例中,当第二缓冲区440中已没有闲置的物理编程单元时,第一缓冲区430亦已没有储存有效数据,因此可以经过抹除以后用以储存下一个写入指令所要写入的数据。如此一来,可以避免一次整并太多有效数据,藉此减少主机系统1000等待写入成功消息的时间。
另一方面,存储器管理电路202也可以在将第一数据502写入至物理抹除单元304(B+1)时,同时整并物理抹除单元304(C+1)中的有效数据。换言之,第一缓冲区430与第二缓冲区440是交替的使用。
在一实施例中,存储器管理电路202会建立两个指针,这两个指针会指向第一缓冲区430或第二缓冲区440中的一个物理编程单元。存储器管理电路202会根据这两个指针所指向的位置来决定要将第一数据502写入至第一缓冲区430或是第二缓冲区440。
图6与图7是根据一范例实施例说明根据第一指针与第二指针将第一数据写入的范例示意图。
请参照图6,当存储器管理电路202划分出第一缓冲区430与第二缓冲区440时,会将第一指针630与第二指针640指向物理编程单元504(0)。其中,第一指针630指向的是有效数据的起始地址,第二指针640指向的是有效数据的结尾地址。在初始阶段,即第一缓冲区430与第二缓冲区440都没有储存有效数据时,第一指针630与第二指针640会指向同一个物理编程单元。
当存储器管理电路202判断第一数据502的数据量小于预设值时,会将第一数据502写入第二指针所指向的物理编程单元504(0)(亦称第二物理编程单元)。在完成第一数据502的写入以后,存储器管理电路202会将第二指针640移动至物理编程单元504(1)(亦称第三物理编程单元)。以物理抹除单元304(B+1)的编程顺序来说,物理编程单元504(1)是接续在物理编程单元504(0)之后,即存储器管理电路202必须先编程物理编程单元504(0)后才能编程物理编程单元504(1)。当存储器管理电路202接收到下一个数据量小于预设值的数据时,便会把此数据写入至物理编程单元504(1)。换言之,第二指针640是用以指向下一笔数据量小于预设值的数据应该写入的物理编程单元。直到第一缓冲区430中编程顺序为最后的物理编程单元604(E)也被写入以后,存储器管理电路202会将第二指针640移动至物理编程单元506(0)。换言之,在图6所示的范例实施例中,存储器管理电路202会设定一个编程顺序,使得第二指针640会从一个缓冲区中编程顺序为最后的物理编程单元移动至另一个缓冲区中编程顺序为第一的物理编程单元。
当第二指针640指向物理编程单元506(0)以后,便表示第一缓冲区430已没有闲置的物理编程单元,此时存储器管理电路202会使用第二缓冲区440的物理抹除单元来储存数据量小于预设值的数据,并且会整并第一缓冲区430的有效数据。当要执行整并的操作时,存储器管理电路202会根据第一指针630所指向的物理编程单元来取得至少一个物理编程单元(亦称第一物理编程单元)。第一物理编程单元中便储存了所要整并的有效数据。接下来,存储器管理电路202会移动第一指针630至下一个物理编程单元(亦称第四物理编程单元)。存储器管理电路202会取得第四物理编程单元所映射的逻辑地址(亦称第三逻辑地址)。存储器管理电路202会整并属于第三逻辑地址的有效数据。
请参照图7,在此假设第二指针640已被存储器管理电路202移动至物理编程单元506(0),第一指针630指向物理编程单元504(0),物理编程单元504(0)中储存有属于逻辑编程单元508(0)的有效数据,物理编程单元504(1)储存有属于逻辑编程单元510(0)的有效数据,并且物理编程单元604(0)中储存有属于逻辑编程单元508(1)的有效数据。当接收到第一数据502且判断第一数据502的数据量小于预设值以后,存储器管理电路202会将第一数据502写入至第二指针640所指向的物理编程单元506(0)。此时,存储器管理电路202也会取得第一指针630所指向的物理编程单元504(0),取得物理编程单元504(0)所映射的逻辑编程单元508(0),并且取得逻辑编程单元508(0)所属的逻辑地址450(0)。存储器管理电路202会取得在第一缓冲区430中属于逻辑地址450(0)的有效数据,其储存在物理编程单元504(0)与物理编程单元604(0)。接下来,存储器管理电路202会整并属于逻辑地址450(0)的有效数据。具体来说,存储器管理电路202会读取属于逻辑地址450(0)的有效数据,并且把这些读取的数据一并写入至从闲置区420所提取的一个物理抹除单元,再把逻辑地址450(0)映射至此物理抹除单元。
在整并完属于逻辑地址450(0)的有效数据以后,物理编程单元504(0)与604(0)所储存的已是无效数据。存储器管理电路202会把第一指针630移动至物理编程单元504(1)(亦称第五物理编程单元)。在一实施例中,存储器管理电路202也可以继续整并属于物理编程单元504(1)所映射的逻辑地址的有效数据,之后再接收下一个写入指令。也就是说,存储器管理电路202会一次整并属于多个逻辑地址的有效数据。然而,整并属于物理编程单元504(1)所映射的逻辑地址的有效数据的操作与整并物理编程单元504(0)所映射的逻辑地址的有效数据的操作类似,在此并不重复赘述。在整并完属于物理编程单元504(1)所映射的逻辑地址的有效数据以后,存储器管理电路202才会回复写入成功消息给主机系统1000。接下来,存储器管理电路202可从主机系统1000接收下一个写入指令。
在存储器管理电路202移动第一指针630以后,若第一指针630所指向的物理编程单元中的有效数据已被整并,则会跳到下一个有效数据未被整并的物理编程单元进行整并或者循序的指向已被整并的物理编程单元而不进行整并。举例来说,当第一指针630被移动至物理编程单元504(1)以后,若物理编程单元504(1)所储存的有效数据已被整并,则存储器管理电路202会将第一指针再移动至编程顺序接续在物理编程单元504(1)之后的物理编程单元(亦称第六编程单元)。
另一方面,当第一指针630在第一缓冲区430已指向编程顺序为最后的物理编程单元604(E)时,存储器管理电路202会等第二指针640指向第二缓冲区440中最后一个物理编程单元702(E)后,才将第一指针630指向第二缓冲区440中编程顺序为第一的物理编程单元506(0)。也就是说,存储器管理电路202会等到第二缓冲区440被写满时才会将第一指针630从第一缓冲区430移动至第二缓冲区440。
值得注意的是,在接收两个写入指令之间,存储器管理电路202所能整并的逻辑地址的个数会小于一个整并门坎值。存储器管理电路202会根据主机系统1000等待写入成功消息的时间上限以及执行整并操作所需的时间来设定整并门坎值。例如,当主机系统1000等待写入成功消息的时间上限增加时,整并门坎值便可以设定得更大。或者,当物理抹除单元304(0)~304(R)的写入速度增加时,存储器管理电路202执行整并操作所需的时间也会减少,因此整并门坎值也可以设定得更大。例如,此整并门坎值为10,但本发明并不在此限。
换句话说,在图6与图7所示的范例实施例中,第二指针640是用以指向第一数据502应该写入的物理编程单元。第一指针630所指向的物理编程单元则是存储器管理电路202所要整并的物理编程单元。
在本范例实施例中,第一缓冲区430的大小与第二缓冲区的大小相同。然而,在其它范例实施例中,第一缓冲区430的大小与第二缓冲区的大小也可以不相同,本发明并不在此限。或者,在其它范例实施例中,存储器管理电路202会配置多个缓冲区,轮流地将数据量小于预设值的数据写入这些缓冲区的其中之一,并且轮流地整并其中一个缓冲区的有效数据。本发明并不限制缓冲区的个数。
图8是根据一范例实施例说明数据写入方法的流程图。
请参照图8,在步骤S801中,存储器管理电路202会配置多个逻辑地址以映射至数据区的物理抹除单元。在步骤S802中,存储器管理电路202会从数据区以外的物理抹除单元中,将至少一个第一物理抹除单元划分为第一缓冲区,并将至少一个第二物理抹除单元划分为第二缓冲区。在步骤S804中,存储器管理电路202会接收一个指示将数据写入至第一逻辑地址的写入指令。在步骤S806中,存储器管理电路202会判断此数据的数据量是否小于一个预设值。
若数据量不小于预设值,在步骤S808中,存储器管理电路202会将数据写入至从闲置区所提取的物理抹除单元。
若数据量小于预设值,在步骤S8010中,存储器管理电路202会将数据写入至第一物理抹除单元或第二物理抹除单元。在步骤S812中,当把数据写入至第二物理抹除单元时,存储器管理电路202会取得第一物理抹除单元中的至少一个物理编程单元所映射的至少一第二逻辑地址,并且整并属于至少一第二逻辑地址的有效数据,其中至少一第二逻辑地址的数目小于一个整并门坎值。
然而,图8中各步骤已详细说明如上,在此便不再赘述。
综上所述,本发明实施例所提出的数据写入方法、存储器控制器与存储器储存装置,会划分出多个缓冲区。其中,当数据量小于一个预设值的数据被写入至一个缓冲区时,其它缓冲区的有效数据会被整并。如此一来,可以避免在执行某一个写入指令时,整并太多的有效数据,进而减少主机系统等待写入成功消息的时间。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附的权利要求范围所界定者为准。

Claims (24)

1.一种数据写入方法,用于一可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个物理抹除单元,每一该些物理抹除单元包括多个物理编程单元,该些物理抹除单元至少被划分出一数据区,该数据写入方法包括:
配置多个逻辑地址以映射至该数据区的该些物理抹除单元;
从该数据区以外的该些物理抹除单元中将至少一第一物理抹除单元划分为一第一缓冲区,并从该数据区以外的该些物理抹除单元中,将至少一第二物理抹除单元划分为一第二缓冲区,其中所述至少一第一物理抹除单元不同于所述至少一第二物理抹除单元;
接收一第一写入指令,该第一写入指令指示将一第一数据写入至该些逻辑地址的一第一逻辑地址;
判断该第一数据的数据量是否小于一预设值;
若该第一数据的数据量小于该预设值,将该第一数据写入至所述至少一第一物理抹除单元或所述至少一第二物理抹除单元;以及
当把该第一数据写入至所述至少一第二物理抹除单元时,取得所述至少一第一物理抹除单元中的至少一第一物理编程单元所映射的至少一第二逻辑地址,并且整并属于所述至少一第二逻辑地址的有效数据,以将所述至少一第二逻辑地址的有效数据写入至该数据区以外的该些物理抹除单元中的一第三物理抹除单元中,其中所述至少一第二逻辑地址的数目小于一整并门坎值,且所述第三物理抹除单元不同于所述至少一第一物理抹除单元与所述至少一第二物理抹除单元。
2.根据权利要求1所述的数据写入方法,其中将该至少一第一物理抹除单元划分为该第一缓冲区,并将该些物理抹除单元中的该至少一第二物理抹除单元划分为该第二缓冲区的步骤还包括:
建立一第一指针与一第二指针,并且将该第一指针与该第二指针指向所述至少一第一物理抹除单元或所述至少一第二物理抹除单元中的该些物理编程单元的其中之一,其中该第二指针用以指向该第一数据应写入的物理编程单元,且该第一指针所指向的物理编程单元是所要整并的物理编程单元。
3.根据权利要求2所述的数据写入方法,其中若该第一数据的数据量小于该预设值,将该第一数据写入至所述至少一第一物理抹除单元或所述至少一第二物理抹除单元的步骤包括:
将该第一数据写入该第二指针所指向的一第二物理编程单元;以及
将该第二指针移动至一第三物理编程单元,其中该第三物理编程单元的编程顺序是接续在该第二物理编程单元之后。
4.根据权利要求2所述的数据写入方法,其中当把该第一数据写入至所述至少一第二物理抹除单元时,取得所述至少一第一物理抹除单元中的该至少一第一物理编程单元所映射的该至少一第二逻辑地址的步骤包括:
依据该第一指针所指向的物理编程单元取得该至少一第一物理编程单元;以及
将该第一指针移动至一第四物理编程单元,并取得该第四物理编程单元所映射的一第三逻辑地址。
5.根据权利要求4所述的数据写入方法,其中整并属于所述至少一第二逻辑地址的该有效数据的步骤包括:
整并属于该第三逻辑地址的有效数据;以及
将该第一指针移动至一第五物理编程单元,其中该第五物理编程单元的编程顺序是接续在该第四物理编程单元之后。
6.根据权利要求5所述的数据写入方法,还包括:
若该第五物理编程单元所储存的数据已被整并,将该第一指针移动至一第六物理编程单元,其中该第六物理编程单元的编程顺序是接续在该第五物理编程单元之后;以及
当该第一指针指向该第一缓冲区中编程顺序为最后的物理编程单元时,判断该第二指针是否指向该第二缓冲区中编程顺序为最后的物理编程单元,若是,将该第一指针移动至该第二缓冲区中编程顺序为第一的物理编程单元。
7.根据权利要求1所述的数据写入方法,其中该预设值为该些物理编程单元的其中之一的大小。
8.根据权利要求1所述的数据写入方法,其中该第一缓冲区的大小与该第二缓冲区的大小相同。
9.一种存储器储存装置,包括:
一连接器,用以电性连接至一主机系统;
一可复写式非易失性存储器模块,包括多个物理抹除单元,其中每一该些物理抹除单元包括多个物理编程单元,该些物理抹除单元至少被划分出一数据区;以及
一存储器控制器,电性连接至该连接器与该可复写式非易失性存储器模块,用以配置多个逻辑地址以映射至该数据区的该些物理抹除单元,从该数据区以外的该些物理抹除单元中将至少一第一物理抹除单元划分为一第一缓冲区,并从该数据区以外的该些物理抹除单元中,将至少一第二物理抹除单元划分为一第二缓冲区,其中所述至少一第一物理抹除单元不同于所述至少一第二物理抹除单元,
其中,该存储器控制器用以接收一第一写入指令,该第一写入指令指示将一第一数据写入至该些逻辑地址的一第一逻辑地址,并且判断该第一数据的数据量是否小于一预设值,
若该第一数据的数据量小于该预设值,该存储器控制器用以将该第一数据写入至所述至少一第一物理抹除单元或所述至少一第二物理抹除单元,
当把该第一数据写入至所述至少一第二物理抹除单元时,该存储器控制器用以取得所述至少一第一物理抹除单元中的至少一第一物理编程单元所映射的至少一第二逻辑地址,并且整并属于所述至少一第二逻辑地址的有效数据,以将所述至少一第二逻辑地址的有效数据写入至该数据区以外的该些物理抹除单元中的一第三物理抹除单元中,其中所述至少一第二逻辑地址的数目小于一整并门坎值,且所述第三物理抹除单元不同于所述至少一第一物理抹除单元与所述至少一第二物理抹除单元。
10.根据权利要求9所述的存储器储存装置,其中该存储器控制器还用以建立一第一指针与一第二指针,并且将该第一指针与该第二指针指向所述至少一第一物理抹除单元或所述至少一第二物理抹除单元中的该些物理编程单元的其中之一,其中该第二指针用以指向该第一数据应写入的物理编程单元,且该第一指针所指向的物理编程单元是所要整并的物理编程单元。
11.根据权利要求10所述的存储器储存装置,其中若该第一数据的数据量小于该预设值,该存储器控制器还用以将该第一数据写入该第二指针所指向的一第二物理编程单元,并且将该第二指针移动至一第三物理编程单元,该第三物理编程单元的编程顺序是接续在该第二物理编程单元之后。
12.根据权利要求10所述的存储器储存装置,其中该存储器控制器还用以依据该第一指针所指向的一第四物理编程单元取得该至少一第一物理编程单元,以及将该第一指针移动至一第四物理编程单元,并取得该第四物理编程单元所映射的一第三逻辑地址。
13.根据权利要求12所述的存储器储存装置,其中该存储器控制器还用以整并属于该第三逻辑地址的有效数据,并且将该第一指针移动至一第五物理编程单元,该第五物理编程单元的编程顺序是接续在该第四物理编程单元之后。
14.根据权利要求13所述的存储器储存装置,若该第五物理编程单元所储存的数据已被整并,该存储器控制器还用以将该第一指针移动至一第六物理编程单元,其中该第六物理编程单元的编程顺序是接续在该第五物理编程单元之后,
当该第一指针指向该第一缓冲区中编程顺序为最后的物理编程单元时,该存储器控制器还用以判断该第二指针是否指向该第二缓冲区中编程顺序为最后的物理编程单元,若是,该存储器控制器将该第一指针移动至该第二缓冲区中编程顺序为第一的物理编程单元。
15.根据权利要求9所述的存储器储存装置,其中该预设值为该些物理编程单元的其中之一的大小。
16.根据权利要求9所述的存储器储存装置,其中该第一缓冲区的大小与该第二缓冲区的大小相同。
17.一种存储器控制器,用于控制一可复写式非易失性存储器模块,包括:
一主机接口,用以电性连接至一主机系统;
一存储器接口,用以电性连接至该可复写式非易失性存储器模块,其中该可复写式非易失性存储器模块包括多个物理抹除单元,每一该些物理抹除单元包括多个物理编程单元,该些物理抹除单元至少被划分出一数据区;以及
一存储器管理电路,电性连接至该主机接口与该存储器接口,用以配置多个逻辑地址以映射至该数据区的该些物理抹除单元,从该数据区以外的该些物理抹除单元中将至少一第一物理抹除单元划分为一第一缓冲区,并从该数据区以外的该些物理抹除单元中,将至少一第二物理抹除单元划分为一第二缓冲区,其中所述至少一第一物理抹除单元不同于所述至少一第二物理抹除单元,
其中,该存储器管理电路用以接收一第一写入指令,该第一写入指令指示将一第一数据写入至该些逻辑地址的一第一逻辑地址,并且判断该第一数据的数据量是否小于一预设值,
若该第一数据的数据量小于该预设值,该存储器管理电路用以将该第一数据写入至所述至少一第一物理抹除单元或所述至少一第二物理抹除单元,
当把该第一数据写入至所述至少一第二物理抹除单元时,该存储器管理电路用以取得所述至少一第一物理抹除单元中的至少一第一物理编程单元所映射的至少一第二逻辑地址,并且整并属于所述至少一第二逻辑地址的有效数据,以将所述至少一第二逻辑地址的有效数据写入至该数据区以外的该些物理抹除单元中的一第三物理抹除单元中,其中所述至少一第二逻辑地址的数目小于一整并门坎值,且所述第三物理抹除单元不同于所述至少一第一物理抹除单元与所述至少一第二物理抹除单元。
18.根据权利要求17所述的存储器控制器,其中该存储器管理电路还用以建立一第一指针与一第二指针,并且将该第一指针与该第二指针指向所述至少一第一物理抹除单元或所述至少一第二物理抹除单元中的该些物理编程单元的其中之一,其中该第二指针用以指向该第一数据应写入的物理编程单元,且该第一指针所指向的物理编程单元是所要整并的物理编程单元。
19.根据权利要求18所述的存储器控制器,其中若该第一数据的数据量小于该预设值,该存储器管理电路还用以将该第一数据写入该第二指针所指向的一第二物理编程单元,并且将该第二指针移动至一第三物理编程单元,该第三物理编程单元的编程顺序是接续在该第二物理编程单元之后。
20.根据权利要求18所述的存储器控制器,其中该存储器管理电路还用以依据该第一指针所指向的物理编程单元取得该至少一第一物理编程单元,将该第一指针移动至一第四物理编程单元,并取得该第四物理编程单元所映射的一第三逻辑地址。
21.根据权利要求20所述的存储器控制器,其中该存储器管理电路还用以整并属于该第三逻辑地址的有效数据,并且将该第一指针移动至一第五物理编程单元,该第五物理编程单元的编程顺序是接续在该第四物理编程单元之后。
22.根据权利要求21所述的存储器控制器,若该第五物理编程单元所储存的数据已被整并,该存储器管理电路还用以将该第一指针移动至一第六物理编程单元,其中该第六物理编程单元的编程顺序是接续在该第五物理编程单元之后,
当该第一指针指向该第一缓冲区中编程顺序为最后的物理编程单元时,该存储器管理电路还用以判断该第二指针是否指向该第二缓冲区中编程顺序为最后的物理编程单元,若是,该存储器管理电路将该第一指针移动至该第二缓冲区中编程顺序为第一的物理编程单元。
23.根据权利要求17所述的存储器控制器,其中该预设值为该些物理编程单元的其中之一的大小。
24.根据权利要求17所述的存储器控制器,其中该第一缓冲区的大小与该第二缓冲区的大小相同。
CN201210253771.2A 2012-07-20 2012-07-20 数据写入方法、存储器控制器与存储器储存装置 Active CN103577344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210253771.2A CN103577344B (zh) 2012-07-20 2012-07-20 数据写入方法、存储器控制器与存储器储存装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210253771.2A CN103577344B (zh) 2012-07-20 2012-07-20 数据写入方法、存储器控制器与存储器储存装置

Publications (2)

Publication Number Publication Date
CN103577344A CN103577344A (zh) 2014-02-12
CN103577344B true CN103577344B (zh) 2017-03-01

Family

ID=50049163

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210253771.2A Active CN103577344B (zh) 2012-07-20 2012-07-20 数据写入方法、存储器控制器与存储器储存装置

Country Status (1)

Country Link
CN (1) CN103577344B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107132989B (zh) * 2016-02-26 2020-05-12 群联电子股份有限公司 数据程序化方法、存储器控制电路单元及存储器存储装置
CN107783916B (zh) * 2016-08-26 2020-01-31 深圳大心电子科技有限公司 数据传输方法、存储控制器与清单管理电路
JP6767532B2 (ja) * 2019-03-11 2020-10-14 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
CN110727604B (zh) * 2019-08-26 2022-04-29 华为技术有限公司 一种数据处理方法及装置
CN113504880B (zh) * 2021-07-27 2024-02-23 群联电子股份有限公司 存储器缓冲区管理方法、存储器控制电路单元与存储装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
TW200933631A (en) * 2008-01-24 2009-08-01 Samsung Electronics Co Ltd Write and merge methods in memory card systems for reducing the number of page copies
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1902599A (zh) * 2003-12-30 2007-01-24 桑迪士克股份有限公司 具有大型擦除区块的非易失性存储器系统的管理
TW200933631A (en) * 2008-01-24 2009-08-01 Samsung Electronics Co Ltd Write and merge methods in memory card systems for reducing the number of page copies
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management

Also Published As

Publication number Publication date
CN103577344A (zh) 2014-02-12

Similar Documents

Publication Publication Date Title
CN104679437B (zh) 数据写入方法、存储器控制电路单元与存储器储存装置
CN104423888B (zh) 数据写入方法、存储器控制电路单元与存储器存储装置
CN104699413B (zh) 数据管理方法、存储器存储装置及存储器控制电路单元
TWI436212B (zh) 資料寫入方法、記憶體控制器與記憶體儲存裝置
CN103377129B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN103544115B (zh) 数据写入方法、存储器控制器与存储器存储装置
CN103577344B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102592670B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102902626B (zh) 区块管理方法、存储器控制器与存储器储存装置
US9032135B2 (en) Data protecting method, memory controller and memory storage device using the same
CN103136111B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN106484307A (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置
CN103544118B (zh) 存储器储存装置、其存储器控制器与数据写入方法
CN102915273B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN102129353B (zh) 数据写入系统与数据写入方法
CN105224238B (zh) 存储器管理方法、存储器存储装置及存储器控制电路单元
CN102446137B (zh) 数据写入方法、存储器控制器与存储器储存装置
US9501397B2 (en) Data writing method, memory controller, and memory storage apparatus
CN104731710B (zh) 存储器管理方法、存储器控制电路单元与存储器储存装置
CN104657083B (zh) 数据写入方法、存储器储存装置、存储器控制电路单元
CN103513930A (zh) 存储器管理方法、存储器控制器与存储器储存装置
CN103984635B (zh) 数据写入方法、存储器控制器与存储器储存装置
CN104375945B (zh) 存储器地址管理方法、存储器控制器与存储器储存装置
CN103488579B (zh) 存储器管理方法、存储器控制器与存储器储存装置
CN106445397A (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
GR01 Patent grant
GR01 Patent grant