CN102543183B - 数据写入方法、存储器控制器与储存装置 - Google Patents
数据写入方法、存储器控制器与储存装置 Download PDFInfo
- Publication number
- CN102543183B CN102543183B CN201010609112.9A CN201010609112A CN102543183B CN 102543183 B CN102543183 B CN 102543183B CN 201010609112 A CN201010609112 A CN 201010609112A CN 102543183 B CN102543183 B CN 102543183B
- Authority
- CN
- China
- Prior art keywords
- data
- solid element
- those
- lpage
- universe
- 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
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供一种数据写入方法、存储器控制器与储存装置,该方法用于将来自于主机的更新数据写入至存储器模组中,其中此存储器模组的实体单元会被提取作为全域混乱实体单元以写入来自于主机的数据。本方法包括判断更新数据是否为循序数据并且判断上述更新数据对应的逻辑页面是否为起始逻辑页面。本方法还包括:倘若更新数据为循序数据并且上述更新数据对应的逻辑页面为起始逻辑页面时,提取一个空的实体单元作为新全域混乱实体单元并且将此更新数据写入至新全域混乱实体单元中。基此,本方法可将属于同一个逻辑单元的更新数据写入至同一个实体单元中,由此缩短执行写入指令的时间。
Description
技术领域
本发明涉及一种用于可擦除非易失性存储器的数据写入方法及使用此方法的存储器控制器与存储器储存装置。
背景技术
数码相机、手机与MP 3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可擦除非易失性存储器(rewritablenon-volatile memory)具有数据非挥发性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记型电脑。固态硬盘就是一种以快速存储器作为储存媒体的存储器储存装置。因此,近年快速存储器产业成为电子产业中相当热门的一环。
快速存储器模组的存储器子模组具有多个实体单元且每一实体单元区块具有多个实体页面(physical page),其中在实体单元中写入数据时必须依据实体页面的顺序依序地写入数据。此外,已被写入数据的实体页面并需先被抹除后才能再次用于写入数据。特别是,实体单元为抹除的最小单位,并且实体页面为程式化(亦称写入)的最小单元。因此,在快速存储器模组的管理中,实体单元会被区分为数据区与闲置区。
数据区的实体单元是用以储存主机系统所储存的数据。具体来说,存储器储存装置中的存储器管理电路会将主机系统所存取的逻辑存取地址转换为逻辑单元的逻辑页面并且将逻辑单元的逻辑页面映射至数据区的实体单元的实体页面。也就是说,快速存储器模组的管理上数据区的实体单元是被视为已被使用的实体单元(例如,已储存主机系统所写入的数据)。例如,存储器管理电路会使用逻辑单元-实体单元映射表来记载逻辑单元与数据区的实体单元的映射关系,其中逻辑单元中的逻辑页面是依序的对应所映射的实体单元的实体页面。
闲置区的实体单元是用以轮替数据区中的实体单元。具体来说,如上所述,已写入数据的实体单元必须被抹除后才可再次用于写入数据,因此,闲置区的实体单元是被设计用于写入更新数据以替换映射逻辑单元的实体单元。基此,在闲置区中的实体单元为空或可使用的实体单元,即无记录数据或标记为已没用的无效数据。
也就是说,数据区与闲置区的实体单元的实体页面是以轮替方式来映射逻辑单元的逻辑页面,以储存主机系统所写入的数据。例如,存储器储存装置的存储器管理电路会从闲置区中提取一个或多个实体单元作为全域混乱实体单元,并且当主机系统欲写入更新数据的逻辑存取地址是对应储存装置的某一逻辑单元的某一逻辑页面时,储存装置的存储器管理电路会将此更新数据写入至全域混乱实体单元的实体页面中。此外,存储器管理电路会在一全域混乱实体单元搜寻表中记录关于已被更新的逻辑页面的更新信息。也就是说,在全域混乱实体单元搜寻表中会记录属于一个逻辑单元的有效数据分别地被写入至那些全域混乱实体单元的那些实体页面中。基此,当某一逻辑单元的某一逻辑页面的更新数据被储存于全域混乱实体单元时,存储器管理电路必须搜寻全域混乱实体单元搜寻表,才能读取属于此逻辑单元的有效数据。
在使用全域混乱实体单元来写入来自于主机系统的数据的架构下,当主机系统持续写入大量的循序数据至存储器储存装置时,全域混乱实体单元可能很快就会被写满。此时,倘若闲置区无足够的实体单元可作为新的全域混乱实体单元时,存储器管理电路就必须进行数据合并(Merge)程序才能继续执行写入指令,以避免闲置区的实体单元被耗尽(exhaust)。
具体来说,在数据合并程序中,存储器管理电路会从闲置区中提取一个空的实体单元,将在全域混乱实体单元以及数据区的实体单元中属于同一个逻辑单元的有效数据复制至所提取的实体区块中,由此所储存数据皆为无效数据的全域混乱实体单元与数据区中的实体单元就可被抹除并关联至闲置区。由于执行数据合并程序会大幅地延长执行写入指令的时间,甚至造成逾时。因此,如何减少上述数据合并程序,以提升存储器储存装置的效能,是此领域技术人员所致力的目标。
发明内容
本发明提供一种数据写入方法与存储器控制器,其能够减少上述数据合并程序,以缩短执行写入指令的时间。
本发明提供一种存储器储存装置,其能够以较短的时间完成数据写入指令。
本发明实施例提出一种数据写入方法,用于将来自于一主机系统的一更新数据写入至一可擦除非易失性存储器,其中此可擦除非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,此些实体区块至少分组为一数据区与一闲置区,属于数据区与闲置区的实体区块被分组为多个实体单元,闲置区的实体单元用以替换数据区的实体单元以写入数据。本数据写入方法包括:配置多个逻辑单元以映射数据区的实体单元,其中每一逻辑单元具有多个逻辑页面并且上述更新数据是属于其中一个逻辑页面。本数据写入方法也包括从闲置区中提取实体单元作为第一全域混乱实体单元。此外,本数据写入方法亦包括:判断上述更新数据是否为循序数据并且判断上述更新数据对应的逻辑页面是否为起始逻辑页面。本数据写入方法还包括:倘若更新数据为循序数据并且上述更新数据对应的逻辑页面为起始逻辑页面时,从闲置区中提取一个实体单元作为第二全域混乱实体单元并且将此更新数据写入至第二全域混乱实体单元中。在此,循序数据是定义为主机系统依序地写入至连续的多个逻辑页面中的数据。
此外,本发明实施例亦提出一种存储器控制器,用于控制可擦除非易失性存储器模组,其中此可擦除非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面。本存储器控制器包括主机接口、存储器接口与存储器管理电路。主机接口用以耦接至主机系统。存储器接口用以耦接至可擦除非易失性存储器模组。存储器管理电路耦接至主机接口与存储器接口,并且用以写入一更新数据至可擦除非易失性存储器模组。在此,存储器管理电路用以将实体区块至少分组为一数据区与一闲置区,并且将属于数据区与闲置区的该些实体区块分组为多个实体单元,其中闲置区的实体单元用以替换数据区的实体单元以写入数据。此外,存储器管理电路还用以配置多个逻辑单元以映射数据区的实体单元,其中每一逻辑单元具有多个逻辑页面并且上述更新数据属于其中一个逻辑页面。再者,存储器管理电路还用以从闲置区中提取实体单元作为第一全域混乱实体单元。另外,存储器管理电路还用以判断上述更新数据是否为一循序数据并且判断上述更新数据对应的逻辑页面是否为起始逻辑页面。倘若更新数据为循序数据并且上述更新数据对应的逻辑页面为起始逻辑页面时,存储器管理电路还用以从闲置区中提取一个实体单元作为第二全域混乱实体单元并且将此更新数据写入至第二全域混乱实体单元中。在此,循序数据是定义为主机系统依序地写入至连续的多个逻辑页面中的多笔数据。
再者,本发明范例实施例亦提出一种存储器储存装置,其包括连接器、可擦除非易失性存储器模组与存储器控制器。连接器用以耦接至主机系统。可擦除非易失性存储器模组具有多个实体区块并且每一实体区块具有多个实体页面。存储器控制器耦接至连接器与可擦除非易失性存储器模组,并且用以写入一更新数据至可擦除非易失性存储器模组中。存储器控制器用以将此些实体区块至少分组为一数据区与一闲置区,并且将属于数据区与闲置区的实体区块分组为多个实体单元,其中闲置区的实体单元用以替换数据区的实体单元以写入数据。此外,存储器控制器还用以配置多个逻辑单元以映射数据区的实体单元,其中每一逻辑单元具有多个逻辑页面并且上述更新数据属于其中一个逻辑页面。再者,存储器控制器还用以从闲置区中提取实体单元作为第一全域混乱实体单元。另外,存储器控制器还用以判断上述更新数据是否为循序数据并且判断上述更新数据对应的逻辑页面是否为起始逻辑页面。倘若更新数据为循序数据并且上述更新数据对应的逻辑页面为起始逻辑页面时,存储器控制器还用以从闲置区中提取一个实体单元作为第二全域混乱实体单元并且将此更新数据写入至第二全域混乱实体单元。在此,循序数据是定义为主机系统依序地写入至连续的多个逻辑页面中的多笔数据。
另外,本发明实施例还提出一种数据写入方法,用于可擦除非易失性存储器,其中此可擦除非易失性存储器模组具有多个实体区块,每一实体区块具有多个实体页面,此些实体区块至少分组为一数据区与一闲置区,属于数据区与闲置区的实体区块被分组为多个实体单元,数据区的实体单元映射多个逻辑单元,每一逻辑单元具有多个逻辑页面,闲置区的实体单元之中的一第一实体单元被用作为目前全域混乱实体单元来写入数据。本数据写入方法包括:a、从主机系统接收至少一写入指令与对应此写入指令的多笔更新数据,其中每一更新数据对应其中一个逻辑页面;b、判断此些更新数据是否为一循序数据,其中倘若此些更新数据为循序数据时标记一第一标识;c、根据此些更新数据对应的逻辑页面依序地选择该些更新数据之中未被写入的其中一个更新数据并且执行步骤d;d、判断第一标识是否已被标记,其中倘若第一标识未被标记时执行步骤h并且倘若第一标识已被标记时执行步骤e;e、判断一第二标识是否已被标记,其中倘若第二标识未被标记时执行步骤f并且倘若第二标识已被标记时执行步骤i;f、判断此更新数据对应的逻辑页面是否为起始逻辑页面,其中倘若此更新数据对应的逻辑页面为起始逻辑页面时执行步骤g并且倘若此更新数据对应的逻辑页面非为起始逻辑页面时执行步骤h;g、从闲置区中提取一第二实体单元,将此更新数据依序地写入至第二实体单元中,将第二实体单元作为目前全域混乱实体单元,标记第二标识并且之后执行步骤j;h、将此更新数据依序地写入至目前全域混乱实体单元中,将关于此更新数据对应的逻辑页面的更新信息记录至全域混乱实体单元搜寻表中并且之后执行步骤j;i、将此更新数据依序地写入至目前全域混乱实体单元中,不将关于此更新数据对应的逻辑页面的更新信息记录至全域混乱实体单元搜寻表中并且之后执行步骤j;以及j、判断是否已将所有更新数据写入至可擦除非易失性存储器中,其中倘若未将所有更新数据写入至可擦除非易失性存储器中时,执行步骤c。
基于上述,本发明实施例的数据写入方法、存储器控制器与存储器储存装置能够有效地将主机系统以循序写入模式所储存的数据写入至可擦除非易失性存储器模组。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1A是根据本发明第一范例实施例所显示的主机系统与存储器储存装置。
图1B是根据本发明范例实施例所显示的电脑、输入/输出装置与存储器储存装置的示意图。
图1C是根据本发明另一范例实施例所显示的主机系统与存储器储存装置的示意图。
图2为图1A所示的存储器储存装置的概要方框图。
图3是根据本发明范例实施例所显示的存储器控制器的概要方框图。
图4A与图4B是根据本发明范例实施例所显示的管理实体区块的范例示意图。
图5A-5G是根据本发明范例实施例所显示写入数据的范例示意图。
图6是根据图5G所显示的全域混乱实体单元搜寻表。
图7A与7B是根据本发明范例实施例所显示写入数据与执行数据合并程序的范例示意图。
图8A-8D是根据本发明范例实施例所显示的主机系统以循序写入模式储存数据的数据写入示意图。
图9是根据图8A所显示的全域混乱实体单元搜寻表。
图10是根据本发明范例实施例所显示的重新映射逻辑单元与实体单元的示意图。
图11是根据一范例所显示的全域混乱实体单元搜寻表。
图12是根据本发明范例实施例所显示的数据写入方法的流程图。
图13是根据本发明范例实施例所显示的数据写入方法的概要流程图。
图14是根据本发明范例实施例所显示的数据写入方法的详细流程图。
主要元件符号说明
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(0)-410(N):实体区块
506:系统区
502:数据区
504:闲置区
508:取代区
610(0)-610(K):实体单元
710(0)-710(H):逻辑单元
810(0)-810(4):根单元
902:第一栏位
904:第二栏位
S1201、S1203、S1205、S1207:在写入数据之前初始化可擦除非易失性存储器模组的步骤
S1301、S1303、S1305、S1307、S1309:将来自于主机系统的更新数据写入至可擦除非易失性存储器模组的步骤
S1401、S1403、S1405、S1407、S1409、S1411、S1413、S1415、S1417、S1419、S1421、S1423、S1425、S1427、S1429、S1431:数据写入方法的步骤
具体实施方式
一般而言,存储器储存装置(亦称,存储器储存系统)包括可擦除非易失性存储器模组与控制器(亦称,控制电路)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。
图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、记忆棒(memorystick)1316、CF卡1318或嵌入式储存装置1320(如图1C所示)。嵌入式储存装置1320包括嵌入式多媒体卡(Embedded MMC,eMMC)。值得一提的是,嵌入式多媒体卡是直接耦接于主机系统的基板上。
图2为图1A所示的存储器储存装置的概要方框图。
请参照图2,存储器储存装置100包括连接器102、存储器控制器104与可擦除非易失性存储器模组106。
在本范例实施例中,连接器102是相容于序列先进附件(SerialAdvanced Technology Attachment,SATA)标准。然而,必须了解的是,本发明不限于此,连接器102亦可以是符合电气和电子工程师协会(Institute of Electrical and Electronic Engineers,IEEE)1394标准、高速周边零件连接接口(Peripheral Component InterconnectExpress,PCI Express)标准、通用串行总线(Universal Serial Bus,USB)标准、安全数位(Secure Digital,SD)接口标准、记忆棒(Memory Stick,MS)接口标准、多媒体储存卡(Multi Media Card,MMC)接口标准、小型快速(Compact Flash,CF)接口标准、整合式驱动电子接口(IntegratedDevice Electronics,IDE)标准或其他适合的标准。
存储器控制器104用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统1000的指令在可擦除非易失性存储器模组106中进行数据的写入、读取与抹除等运作。
可擦除非易失性存储器模组106是耦接至存储器控制器104,并且用以储存主机系统1000所写入的数据。可擦除非易失性存储器模组106具有实体区块410(0)-410(N)。例如,实体区块410(0)-410(N)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体区块分别具有复数个实体页面,并且每一实体页面具有至少一实体扇区,其中属于同一个实体区块的实体页面可被独立地写入且被同时地抹除。例如,每一实体区块是由128个实体页面所组成,并且每一实体页面具有8个实体扇区(sector)。也就是说,在每一实体扇区为512位元组(byte)的例子中,每一实体页面的容量为4千位元组(Kilobyte,K)。然而,必须了解的是,本发明不限于此,每一实体区块是可由64个实体页面、256个实体页面或其他任意个实体页面所组成。
更详细来说,实体区块为抹除的最小单位。亦即,每一实体区块含有最小数目之一并被抹除的记忆胞。实体页面为程式化的最小单元。即,实体页面为写入数据的最小单元。然而,必须了解的是,在本发明另一范例实施例中,写入数据的最小单位亦可以是实体扇区或其他大小。每一实体页面通常包括数据位元区与冗余位元区。数据位元区用以储存使用者的数据,而冗余位元区用以储存系统的数据(例如,错误检查与校正码)。
在本范例实施例中,可擦除非易失性存储器模组106为多层记忆胞(Multi Level Cell,MLC)NAND快速存储器模组。然而,本发明不限于此,可擦除非易失性存储器模组106亦可是单层记忆胞(Single LevelCell,SLC)NAND快速存储器模组、其他快速存储器模组或其他具有相同特性的存储器模组。
图3是根据本发明范例实施例所显示的存储器控制器的概要方框图。
请参照图3,存储器控制器104包括存储器管理电路202、主机接口204与存储器接口206。
存储器管理电路202用以控制存储器控制器104的整体运作。具体来说,存储器管理电路202具有多个控制指令,并且在存储器储存装置100运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。
在本范例实施例中,存储器管理电路202的控制指令是以固件型式来实作。例如,存储器管理电路202具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置100运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。
在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以程序码型式储存于可擦除非易失性存储器模组106的特定区域(例如,存储器模组中专用于存放系统数据的系统区)中。此外,存储器管理电路202具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制器104被致能时,微处理器单元会先执行此驱动码段来将储存于可擦除非易失性存储器模组106中的控制指令载入至存储器管理电路202的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,存储器管理电路202的控制指令亦可以一硬件型式来实作。
主机接口204是耦接至存储器管理电路202并且用以接收与识别主机系统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。缓冲存储器252是耦接至存储器管理电路202并且用以暂存来自于主机系统1000的数据与指令或来自于可擦除非易失性存储器模组106的数据。
在本发明一范例实施例中,存储器控制器104还包括电源管理电路254。电源管理电路254是耦接至存储器管理电路202并且用以控制存储器储存装置100的电源。
在本发明一范例实施例中,存储器控制器104还包括错误检查与校正电路256。错误检查与校正电路256是耦接至存储器管理电路202并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路202从主机系统1000中接收到写入指令时,错误检查与校正电路256会为对应此写入指令的数据产生对应的错误检查与校正码(Error Checking and Correcting Code,ECC Code),并且存储器管理电路202会将对应此写入指令的数据与对应的错误检查与校正码写入至可擦除非易失性存储器模组106中。之后,当存储器管理电路202从可擦除非易失性存储器模组106中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路256会依据此错误检查与校正码对所读取的数据执行错误检查与校正程序。
图4A与图4B是根据本发明范例实施例所显示的管理实体区块的范例示意图。
请参照图4A,存储器控制器104的存储器管理电路202会将实体区块410(0)-410-(N)逻辑地分组为数据区502、闲置区504、系统区506与取代区508。
逻辑上属于数据区502与闲置区504的实体区块是用以储存来自于主机系统1000的数据。具体来说,数据区502的实体区块是被视为已储存数据的实体区块,而闲置区504的实体区块是用以替换数据区502的实体区块。也就是说,当从主机系统1000接收到写入指令与欲写入的数据时,存储器管理电路202会从闲置区504中提取实体区块,并且将数据写入至所提取的实体区块中,以替换数据区502的实体区块。
逻辑上属于系统区506的实体区块是用以记录系统数据。例如,系统数据包括关于可擦除非易失性存储器模组的制造商与型号、可擦除非易失性存储器模组的实体区块数、每一实体区块的实体页面数等。
逻辑上属于取代区508中的实体区块是用于坏实体区块取代程序,以取代损坏的实体区块。具体来说,倘若取代区508中仍存有正常的实体区块并且数据区502的实体区块损坏时,存储器管理电路202会从取代区508中提取正常的实体单元来更换损坏的实体区块。
请参照图4B,存储器管理电路202会将数据区502与闲置区504的实体区块410(0)-410(S-1)分组为实体单元610(0)-610(K),并且以实体单元为单位来管理实体区块。在本范例实施例中,每一实体单元是由1个实体区块所组成。然而,必须了解的是,本发明不限于此。在另一范例实施例中,每一实体单元亦可由属于同一存储器子模组或属于不同存储器子模组中的至少2个实体区块所组成。
此外,存储器管理电路202会配置逻辑单元710(0)-710(H)以映射数据区502的实体单元,其中每一逻辑单元具有多个逻辑页面以依序地映射对应的实体单元的实体页面。在本范例实施例中,每一实体单元是由1个实体区块所组成,每一逻辑页面是映射1个实体页面(即,每一逻辑页面的容量为1个实体页面的容量)。然而,在每一实体单元是由多个实体区块所组成的例子中,每一逻辑页面亦可映射多个实体页面(即,每一逻辑页面的容量为多个实体页面的容量)。
在本范例实施例中,存储器管理电路202会维护逻辑单元-实体单元映射表(logical unit-physical unit mapping table)以记录逻辑单元710(0)-710(H)与数据区502的实体单元的映射关系。例如,当主机系统1000欲存取某一逻辑存取地址时,存储器管理电路202可将主机系统1000所存取的逻辑存取地址转换为以对应的逻辑单元、逻辑页面与逻辑扇区所构成的地址,并且通过逻辑单元-实体单元映射表于对应的实体单元的实体页面中存取数据。
在本范例实施例中,存储器管理电路202会从闲置区504中提取实体单元作为全域混乱实体单元,并且将包含于来自主机系统1000的写入指令中的数据(亦称为更新数据)写入至全域混乱实体单元中。在本范例实施例中,全域混乱实体单元为用以将分别对应于不同逻辑单元的数据储存在至少同一实体区块的单元。
具体来说,当存储器储存装置100从主机系统1000接收到写入指令时,来自于主机系统1000的写入指令中的数据可被依序地写入至全域混乱实体单元中。并且,当此全域混乱实体单元已被写满时,存储器管理电路202会再从闲置区504中提取实体单元作为另一个全域混乱实体单元,以继续写入对应来自于主机系统1000的写入指令的更新数据。直到作为全域混乱实体单元的实体单元的数目已到达一上限值时,存储器管理电路202会执行数据合并程序,以使储存于全域混乱实体单元中的数据成为无效数据,并且之后将所储存的数据皆为无效数据的全域混乱实体单元关联回闲置区504。
图5A-5G是根据本发明范例实施例所显示写入数据的范例示意图。
为方便说明,在此假设数据区502具有5个实体单元,闲置区504具有4个实体单元,每一实体单元具有实3个实体页面,欲写入至每一实体单元的数据必须依照实体页面的顺序来被写入,并且作为全域混乱实体单元的实体单元数的上限值为3。
请参照图5A,在存储器储存装置100的初始状态中,逻辑单元710(0)-710(4)的逻辑页面可依序地映射数据区502的实体单元610(0)-610(4)的实体页面,并且闲置区504具有实体单元610(5)-610(8)。也就是说,存储器管理电路202会在逻辑单元-实体单元映射表中记录逻辑单元710(0)-710(4)与实体单元610(0)-610(4)之间的映射关系,并且将实体单元610(0)-610(4)的实体页面视为已储存属于逻辑单元710(0)-710(4)的逻辑页面的数据(即,初始数据ID1-ID15)。必须了解的是,在存储器储存装置100刚出厂时,初始数据ID1-ID15可能为空数据。此外,存储器管理电路202会记录闲置区504中可用的实体单元610(5)-610(8)。
请参照图5B,假设欲程序化更新数据UD1并且更新数据UD1是属于逻辑单元710(0)的第1个逻辑页面时,存储器管理电路202会从闲置区504中提取实体单元610(5)作为全域混乱实体单元并且下达程序化指令以将此更新数据UD1写入至实体单元610(5)的第0个实体页面。
请参照图5C,接续图5B,假设欲再程序化更新数据UD2并且更新数据UD2是属于逻辑单元710(1)的第0个逻辑页面时,存储器管理电路202会下达程序化指令以将此更新数据UD2写入至实体单元610(5)的第1个实体页面。
请参照图5D,接续图5C,假设欲再程序化更新数据UD3并且更新数据UD3是属于逻辑单元710(2)的第1个逻辑页面时,存储器管理电路202会下达程序化指令以将此更新数据UD3写入至实体单元610(5)的第2个实体页面。
请参照图5E,接续图5D,假设欲再程序化更新数据UD4并且更新数据UD4是属于逻辑单元710(3)的第0个逻辑页面时,由于全域混乱实体单元610(5)已无储存空间,因此,存储器管理电路202会从闲置区504中提取实体单元610(6)作为全域混乱实体单元并且下达程序化指令以将此更新数据UD4写入至实体单元610(6)的第0个实体页面。
请参照图5F,接续图5E,假设欲再程序化更新数据UD5并且更新数据UD5是属于逻辑单元710(3)的第1个逻辑页面时,存储器管理电路202会下达程序化指令以将此更新数据UD5写入至实体单元610(6)的第1个实体页面。
请参照图5G,接续图5F,假设欲再程序化更新数据UD6并且更新数据UD6是属于逻辑单元710(0)的第2个逻辑页面时,存储器管理电路202会下达程序化指令以将此更新数据UD6写入至实体单元610(6)的第2个实体页面。
为了能够识别储存于全域混乱实体单元中的数据是属于那个逻辑页面,在本范例实施例中,存储器管理电路202会建立全域混乱实体单元搜寻表,以利有效数据的搜寻。在此全域混乱搜寻表中,存储器管理电路202会建立多个根单元并且为每一根单元配置一登录链结。特别是,存储器管理电路202会将逻辑单元的逻辑页面分组来分别地对应至其中一个根单元,并且将逻辑页面的更新信息记录在对应的根单元的登录链结上。基此,当欲在全域混乱实体单元中搜寻特定逻辑单元的更新数据时,仅需搜寻对应的根单元的登录链结。
例如,在本范例实施例中,存储器管理电路202会每一逻辑单元的逻辑页面分别地对应至同一个根单元。也就是,同一个逻辑单元的逻辑页面是对应同一个根单元。必须了解的是,本发明不限于此,例如,在本发明另一范例实施中,亦可将一个逻辑单元的一部份逻辑页面分组至一个根单元并且将此逻辑单元的另一部分逻辑页面分组至另一根单元。
此外,存储器管理电路202会为每一根单元分别地配置一个登录链结并且每当执行写入指令时,存储器管理电路202会在对应的登录链结上建立登录以记录关于此写入指令的更新信息。例如,每一登录包括第一栏位(例如,图6的栏位902)与第二栏位(例如,图6的栏位904),其中第一栏位记录已更新逻辑页面的地址,并且第二栏位用以记录储存此已更新逻辑页面的更新数据的实体地址。
图6是根据图5G所显示的全域混乱实体单元搜寻表。
请参照图6,全域混乱实体单元搜寻表800包括根单元810(0)-810(4),其中逻辑单元710(0)的逻辑页面是对应根单元810(0),逻辑单元710(1)的逻辑页面是对应根单元810(1),逻辑单元710(2)的逻辑页面是对应根单元810(2),逻辑单元710(3)的逻辑页面是对应根单元810(3),并且逻辑单元710(4)的逻辑页面是对应根单元810(4)。
在根单元810(0)的登录链结中包含2个有效登录,以记录逻辑单元710(0)的第1个逻辑页面(即,信息″710(0)-1″)与第2个逻辑页面(即,信息″710(0)-2″)已被更新,其中逻辑单元710(0)的第1个逻辑页面的更新数据被写入至实体单元610(5)的第0个实体页面(即,信息″610(5)-0″)中并且逻辑单元710(0)的第2个逻辑页面的更新数据被写入至实体单元610(6)的第2个实体页面(即,信息″610(6)-2″)中。
在根单元810(1)的登录链结中包含1个有效登录,以记录逻辑单元710(1)的第0个逻辑页面(即,信息″710(1)-0″)已被更新,其中逻辑单元710(1)的第0个逻辑页面的更新数据被写入至实体单元610(5)的第1个实体页面(即,信息″610(5)-1″)中。
在根单元810(2)的登录链结中包含1个有效登录,以记录逻辑单元710(2)的第1个逻辑页面(即,信息″710(2)-1″)已被更新,其中逻辑单元710(2)的第1个逻辑页面的更新数据被写入至实体单元610(5)的第2个实体页面(即,信息″610(5)-2″)中。
在根单元810(3)的登录链结中包含2个有效登录,以记录逻辑单元710(3)的第0个逻辑页面(即,信息″710(3)-0″)与第1个逻辑页面(即,信息″710(3)-1″)已被更新,其中逻辑单元710(3)的第0个逻辑页面的更新数据被写入至实体单元610(6)的第0个实体页面(即,信息″610(6)-0″)中并且逻辑单元710(3)的第1个逻辑页面的更新数据被写入至实体单元610(6)的第1个实体页面(即,信息″610(6)-1″)中。
此外,在根单元810(0)-810(4)的登录链结中分别地会包含1个空的登录(亦称为无效登录),以表示登录链结的结束。例如,倘若欲在全域混乱实体单元中搜寻属于逻辑单元710(4)的数据时,存储器管理单元202可根据根单元810(4)的登录链结仅有空的登录,而识别出全域混乱实体单元中未储存属于逻辑单元710(4)的数据,由此可直接依据逻辑单元-实体单元映射表的信息从对应的实体单元的实体页面中读取数据。
以此类推,存储器管理电路202会依序地将主机系统1000欲储存的数据写入至作为全域混乱实体单元的实体单元中。特别是,当全域混乱实体单元的实体单元的数目达到3时,存储器管理电路202会在执行写入指令时一并执行数据合并程序,以防止闲置区的实体单元被用尽。
图7A与7B是根据本发明范例实施例所显示写入数据与执行数据合并程序的范例示意图。
请参照图7A,接续图5G,假设欲再程序化更新数据UD7并且更新数据UD7是属于逻辑单元710(2)的第0个逻辑页面时,由于全域混乱实体单元610(6)已无储存空间,因此,存储器管理电路202会从闲置区504中提取实体单元610(7)作为全域混乱实体单元并且下达程序化指令以将此更新数据UD 7写入至实体单元610(7)的第0个实体页面。特别是,由于作为全域混乱实体单元的实体单元的数目已达到3,因此,存储器管理电路202在执行图7B所示的写入运作后会执行数据合并程序。也就是说,在此例子中,在执行此次写入指令期间,存储器管理电路202会一并执行数据合并程序。
请参照图7B,假设存储器管理电路202选择逻辑单元710(0)来进行数据合并时,存储器管理电路202会识别逻辑单元710(0)是映射实体单元610(0),从闲置区504提取实体单元610(8),并且将实体单元610(0)以及全域混乱实体单元中属于逻辑单元710(0)的有效数据复制到实体单元610(8)中。具体来说,存储器管理电路202会依序地将实体单元610(0)中的数据ID1、实体单元610(5)中的UD1与实体单元610(6)中的数据UD 6写入至实体单元610(8)的第0-2个实体页面中,并且将实体单元610(5)的第1个实体页面与实体单元610(6)的第2个实体页面标示为无效(如斜线所示)。之后,存储器管理电路202会对实体单元610(0)执行抹除运作,在逻辑单元-实体单元映射表中将逻辑单元710(0)重新映射至实体单元610(8),并且将实体单元610(0)关联至闲置区504。
例如,当执行下一个写入指令时,存储器管理电路202会对逻辑单元710(1)执行数据合并程序,并且之后再执行下一个写入指令时,存储器管理电路202会对逻辑单元710(2)执行数据合并程序。因此,在实体单元610(7)的储存空间被填满时,实体单元610(5)中的数据皆会成为无效数据。基此,存储器管理电路202可对实体单元610(5)执行抹除运作并将抹除后的实体单元610(5)关联回闲置区504。
或者,例如,当执行下一个写入指令时,存储器管理电路202会对逻辑单元710(3)执行数据合并程序。因此,在实体单元610(7)的储存空间被填满之前,实体单元610(6)中的数据皆会成为无效数据。基此,存储器管理电路202可对实体单元610(6)执行抹除运作并将抹除后的实体单元610(6)关联回闲置区504。
基此,根据上述运作,存储器管理电路202可持续将以储存无效数据的实体单元关联回闲置区504并且从闲置区504中提取实体单元作为全域混乱实体单元。
在本发明范例实施例中,存储器管理电路202会判断主机系统1000欲写入的更新数据是否为循序数据。具体来说,主机系统1000写入数据的行为可被区分为循序写入模式(Sequential writing mode)与混乱写入模式(random writing mode)。在循序写入模式中,主机系统1000会依序地写入多笔数据至连续的多个逻辑页面中。而在混乱写入模式中,主机系统1000是于非连续的逻辑页面中写入数据,例如,首先将第一笔更新数据被写入第5个逻辑页面,然后将第二笔更新数据写入至第3个逻辑页面。在此,将主机系统1000以循序写入模式写入的数据称为循序数据,并且将主机系统1000以混乱写入模式写入的数据称为混乱数据。
特别是,在更新数据为循序数据时,存储器管理电路202会在写入每笔更新数据至全域混乱实体单元的实体页面之前判断欲写入的更新数据所对应的逻辑页面是否为任一个逻辑单元的起始逻辑页面。在此,所谓起始逻辑页面就是一个逻辑单元的第0逻辑页面。并且,当欲写入的更新数据所对应的逻辑页面为起始逻辑页面时,存储器管理电路202会从闲置区504中提取一个空的实体单元,将此笔更新数据写入至所提取的实体单元的第0实体页面中并且将所提取的实体单元作为目前全域混乱实体单元以写入后续的更新数据。在此,所谓目前全域混乱实体单元定义为正用于写入来自于主机系统1000的更新数据的全域混乱实体单元。
图8A-8D是根据本发明范例实施例所显示的主机系统以循序写入模式储存数据的数据写入示意图。在此范例中,其假设在图5B的储存状态下,主机系统1000将更新数据UD8、更新数据UD9、更新数据UD10与更新数据UD11依序地写入至逻辑单元710(1)的第2个逻辑页面、逻辑单元710(2)的第0-2个逻辑页面的范例。在此范例中,存储器管理电路202会根据主机系统1000所下达的写入指令来识别更新数据为循序数据。例如,第一标识会初始地记录在缓冲存储器252中,其中当更新数据为循序数据时,存储器管理电路202会将第一标识标记为″1″,并且,当更新数据为混乱数据时,存储器管理电路202会将第一标识反标记为″0″。然而,必须了解的是,第一标识的记录方式不限于此,任何可区别主机系统1000是否以循序写入模式储存数据的符号皆可应用于本发明。
之后,存储器管理电路202会开始将更新数据UD8、更新数据UD9、更新数据UD10与更新数据UD11写入至全域混乱实体单元的实体页面。特别是,在第一标识被标记的状态下,存储器管理电路202会在写入更新数据之前会判断更新数据所对应的逻辑页面是否为起始逻辑页面。
首先,请参照图8A,存储器管理电路202会识别更新数据UD 8所对应的逻辑页面非为起始逻辑页面。此时,存储器管理电路202会依序地将更新数据UD8写入至目前全域混乱实体单元的实体页面(即,实体单元610(5)的第1个实体页面)中,并且更新全域混乱实体单元搜寻表800以记录对应逻辑单元710(1)的第2个逻辑页面的更新信息(如图9所示)。在此,正作为目前全域混乱实体单元的实体单元亦可称为第一全域混乱实体单元。
接着,请参照图8B,存储器管理电路202会识别更新数据UD9所对应的逻辑页面为起始逻辑页面。例如,第二标识会初始地记录在缓冲存储器252中,其中当第一标识被标记为″1″并且欲写入的更新数据所对应的逻辑页面为起始逻辑页面时,存储器管理电路202会将第二标识标记为″1″,并且当第一标识被反标记为″0″时存储器管理电路202会同时将第二标识反标记为″0″。然而,必须了解的是,第二标识的记录方式不限于此。
此时,存储器管理电路202会从闲置区504提取空的实体区块610(6)作为第二全域混乱实体单元,并且依序地将更新数据UD9写入至实体单元610(6)的第0个实体页面。之后,存储器管理电路202会将此第二全域混乱实体单元设定为目前全域混乱实体单元。特别是,存储器管理电路202不会更新全域混乱实体单元搜寻表800。也就是说,对应逻辑单元710(2)的第0个逻辑页面的更新信息不会被记录至全域混乱实体单元搜寻表800中。具体来说,存储器管理电路202是根据第二标识而来判断是否更新全域混乱实体单元搜寻表800,其中当第二标识被标记为″1″时,存储器管理电路202不会更新全域混乱实体单元搜寻表800,并且当第二标识被反标记为″0″时,存储器管理电路202会更新全域混乱实体单元搜寻表800。
接着,请参照图8C,存储器管理电路202会识别更新数据UD10所对应的逻辑页面非为起始逻辑页面。此时,存储器管理电路202会依序地将更新数据UD10写入至目前全域混乱实体单元的实体页面(即,实体单元610(6)的第1个实体页面)中。特别是,由于第二标识已被标记为″1″,因此存储器管理电路不会将对应逻辑单元710(2)的第1个逻辑页面的更新信息记录至全域混乱实体单元搜寻表800中。
接着,请参照图8D,存储器管理电路202会识别更新数据UD11所对应的逻辑页面非为起始逻辑页面。此时,存储器管理电路202会依序地将更新数据UD11写入至目前全域混乱实体单元的实体页面(即,实体单元610(6)的第2个实体页面)中。特别是,由于第二标识已被标记为″1″,因此存储器管理电路不会将对应逻辑单元710(2)的第2个逻辑页面的更新信息记录至全域混乱实体单元搜寻表800中。
在本范例实施例中,写入更新数据之后,存储器管理电路202会判断目前全域混乱实体单元是否已储存某一个逻辑单元的完整有效数据。例如,在更新数据UD11的写入之后,存储器管理电路202会判断实体单元610(6)是否已储存逻辑单元710(2)的完整有效数据。特别是,当实体单元610(6)已储存逻辑单元710(2)的完整有效数据时,存储器管理电路202会在逻辑单元-实体单元映射表中将逻辑单元710(2)重新映射至实体单元610(6),将储存于原先映射逻辑单元710(2)的实体单元610(2)中的数据抹除并且将抹除后的实体单元关联至闲置区504(如图10所示)。更详细来说,在图8A~8D所述的范例中,存储器管理电路202会将以循序写入模式储存的多笔更新数据之中属于同一个逻辑单元的更新数据写入至同一个全域混乱实体单元中。因此当一个全域混乱实体单元所储存的更新数据为某一个逻辑单元的全部有效数据时,逻辑单元与实体单元的映射关系可直接地被更新,无需进行上述数据合并程序,因此可大幅提升存储器储存装置100的效能。
值得一提的是,在本范例实施例中,倘若在主机系统1000仅依序地写入更新数据UD8、更新数据UD9与更新数据UD10写入至逻辑单元710(1)的第2个逻辑页面、逻辑单元710(2)的第0-1个逻辑页面时,由于全域混乱实体单元(即,实体单元610(6))未储存逻辑单元710(2)的完整有效数据。因此,在完成更新数据UD10的写入之后,存储器管理电路202会将对应逻辑单元710(2)的第0与1个逻辑页面的更新信息补记录至全域混乱实体单元搜寻表800中(如图11所示)。
此外,在主机系统1000仅依序地写入更新数据UD8、更新数据UD9与更新数据UD10写入至逻辑单元710(1)的第2个逻辑页面、逻辑单元710(2)的第0-1个逻辑页面的例子中,在本发明另一范例实施例中,存储器管理电路202亦可将储存于原始映射逻辑单元710(2)的实体单元610(2)的有效数据(例如,数据ID9)复制至实体单元610(6)后直接地更新逻辑单元与实体单元的映射关系。
图12是根据本发明范例实施例所显示的数据写入方法的流程图,其显示在写入数据之前初始化可擦除非易失性存储器模组的步骤。
请参照图12,在步骤S1201中,存储器管理电路202会将可擦除非易失性存储器模组106的实体区块分组为数据区502、闲置区504、系统区506与取代区508。然后,在步骤S1203中,存储器管理电路202会将数据区502与闲置区504的实体区块分组为实体单元。
在步骤S1205中,存储器管理电路202会配置多个逻辑单元以映射数据区502的实体单元,并且在步骤S1207中存储器管理电路202会从闲置区504中提取实体单元作为全域混乱实体单元,其中属于已更新逻辑页面的数据会被写入至全域混乱实体单元的实体页面中。
图13是根据本发明范例实施例所显示的数据写入方法的概要流程图,其显示将来自于主机系统的更新数据写入至可擦除非易失性存储器模组的步骤。
请参照图13,在步骤S1301中,存储器管理电路202会判断更新数据是否为循序数据并且判断此更新数据对应的逻辑页面是否为起始逻辑页面。
倘若更新数据为循序数据并且此更新数据对应的逻辑页面为起始逻辑页面时,在步骤S1303中,存储器管理电路202会从闲置区504中提取一个实体单元作为新全域混乱实体单元,将此更新数据写入至此新全域混乱实体单元中并且将此新全域混乱实体单元作为目前全域混乱实体单元(如图8B所示)。
倘若更新数据非为循序数据或者此更新数据对应的逻辑页面非为起始逻辑页面时,在步骤S1305中,存储器管理电路202会将此更新数据写入至目前全域混乱实体单元中。
然后,在步骤S1307中,存储器管理电路202会判断是否有任何一个全域混乱实体单元储存属于某一个逻辑单元的完整有效数据。
倘若有任一个全域混乱实体单元储存属于某一个逻辑单元的完整有效数据时,在步骤S1309中,将此逻辑单元重新映射至此全域混乱实体单元。
图14是根据本发明范例实施例所显示的数据写入方法的详细流程图,其中闲置区504的其中一个实体单元(例如,图8A的实体单元610(5))已被提取作为目前全域混乱实体单元。
请参照图14,在步骤S1401中,存储器管理电路202会从主机系统1000接收一个或多个写入指令以及与对应的多笔更新数据。在此,每一更新数据是对应其中一个逻辑页面(如图8A-8D的范例)。
在步骤S1403中,存储器管理电路202会判断更新数据是否为循序数据(即,主机系统1000是否以循序写入模式储存此些更新数据)。
倘若更新数据为循序数据时,在步骤S1405中,存储器管理电路202会标记第一标识(例如,第一标识的值会被记录为″1″)。倘若更新数据非为循序数据时,在步骤S1407中,存储器管理电路202会反标记第一标识与第二标识(例如,第一标识与第二标识的值会被记录为″0″)。
然后,在步骤S1409中,存储器管理电路202会根据此些更新数据所对应的逻辑页面顺序选择未被写入的一个更新数据。并且,步骤S1411中,存储器管理电路202会判断第一标识是否已被标记。
倘若第一标识未被标记时,在步骤S1413中,存储器管理电路202会将此更新数据依序地写入至目前全域混乱实体单元中并且将关于此更新数据对应的逻辑页面的更新信息记录至全域混乱实体单元搜寻表中。
倘若第一标识已被标记时,在步骤S1415中,存储器管理电路202会判断第二标识示是否已被标记。
倘若第二标识未被标记时,在步骤S1417中,存储器管理电路202会判断此更新数据对应的逻辑页面是否为起始逻辑页面。
倘若此更新数据对应的逻辑页面为起始逻辑页面时,在步骤S1419中,存储器管理电路202会从闲置区504提取一个空的实体单元(例如,图8B的实体单元610(6)),将此更新数据依序地写入至所提取的实体单元中,将此实体单元作为目前全域混乱实体单元并且标记第二标识(例如,第二标识的值会被记录为″1″)。
倘若此更新数据对应的逻辑页面非为起始逻辑页面时,存储器管理电路202会执行步骤S1413。
倘若第二标识已被标记时,在步骤S1421中,存储器管理电路202会将此更新数据依序地写入至目前全域混乱实体单元中并且不将关于此更新数据对应的逻辑页面的更新信息记录至全域混乱实体单元搜寻表中。
之后,在步骤S1423中,存储器管理电路202会判断目前全域混乱实体单元是否已被写满。
倘若目前全域混乱实体单元已被写满时,在步骤S1425中,存储器管理电路202会判断第二标记是否已被标记。并且倘若第二标记已被标记时,在步骤S1427中,存储器管理电路202会将此更新数据对应的逻辑单元重新映射至目前全域混乱实体单元并且将此更新数据对应的逻辑单元原先映射的实体单元关联至闲置区504。
之后,在步骤S1429中,存储器管理电路202会从闲置区504提取一个空的实体单元作为目前全域混乱实体单元。
然后,在步骤S1431中,存储器管理电路202会判断是否已将所有更新数据写入至可擦除非易失性存储器中。
倘若未将所有更新数据写入至可擦除非易失性存储器中时,存储器管理电路202会执行步骤S1409。倘若已将所有更新数据写入至可擦除非易失性存储器中时,图14的流程会被结束。
基于上述,存储器管理电路202会依据图14的步骤执行主机系统1000所下达的写入指令。特别是,在主机系统1000以循序写入模式储存数据之后,存储器管理电路202会判断下一个写入指令所对应的逻辑页面是否接续前一个写入指令所对应的逻辑页面。倘若下一个写入指令所对应的逻辑页面是非接续前一个写入指令所对应的逻辑页面,存储器管理电路202会反标记第一标识与第二标识并且将未记录的更新信息记录至全域混乱实体单元搜寻表中。
综上所述,本发明范例实施例的数据写入方法与使用此方法的存储器控制器与存储器储存装置能够在主机系统写入大量循序数据时,快速地将逻辑单元重新映射至全域混乱实体单元,以减少数据合并。此外,由于逻辑单元可直接地重新映射至全域混乱实体单元,因此,可减少记录更新信息的步骤。基此,存储器储存装置的效能可被大幅地提升。
虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中的普通技术人员,当可作些许的更动与润饰,而不脱离本发明的精神和范围。
Claims (17)
1.一种数据写入方法,用于将来自于一主机系统的一更新数据写入至一可擦除非易失性存储器模组,其中该可擦除非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些实体区块被分组为多个实体单元,该闲置区的该些实体单元用以替换该数据区的该些实体单元以写入数据,该数据写入方法包括:
配置多个逻辑单元以映射该数据区的该些实体单元,其中每一该些逻辑单元具有多个逻辑页面并且该更新数据是属于该些逻辑页面的其中一个逻辑页面;
从该闲置区中提取至少一实体单元作为一第一全域混乱实体单元;
判断该更新数据是否为一循序数据并且判断该其中一个逻辑页面是否为该些逻辑单元之中的其中一个逻辑单元的一起始逻辑页面;
倘若该更新数据为该循序数据并且该其中一个逻辑页面为该起始逻辑页面时,从该闲置区的该些实体单元中提取一个实体单元作为一第二全域混乱实体单元并且将该更新数据写入至该第二全域混乱实体单元,
其中该循序数据包括该主机系统依序地写入至该些逻辑页面之中连续的多个逻辑页面中的多笔数据。
2.根据权利要求1所述的数据写入方法,其中还包括:
判断该第二全域混乱实体单元中是否储存属于该其中一个逻辑单元的完整有效数据;以及
倘若该第二全域混乱实体单元中储存属于该其中一个逻辑单元的完整有效数据时,将该其中一个逻辑单元重新映射至该第二全域混乱实体单元。
3.根据权利要求2所述的数据写入方法,还包括:
维护一全域混乱实体单元搜寻表来记录对应该些已更新逻辑页面的多个更新信息。
4.根据权利要求3所述的数据写入方法,还包括:
在将该更新数据写入至该第二全域混乱实体单元之后,不将对应该其中一个逻辑页面的一更新信息记录至该全域混乱实体单元搜寻表中。
5.根据权利要求4所述的数据写入方法,还包括:
倘若该第二全域混乱实体单元中储存非属于该其中一个逻辑单元的完整有效数据时,将对应该其中一个逻辑页面的该更新信息记录至该全域混乱实体单元搜寻表中。
6.根据权利要求1所述的数据写入方法,还包括:
倘若该更新数据非为该循序数据时,将该更新数据写入至该第一全域混乱实体单元中。
7.一种数据写入系统,用于将来自于一主机系统的一更新数据写入至一可擦除非易失性存储器模组,其中该可擦除非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些实体区块被分组为多个实体单元,该闲置区的该些实体单元用以替换该数据区的该些实体单元以写入数据,该数据写入系统包括:
一第一模块,用以配置多个逻辑单元以映射该数据区的该些实体单元,其中每一该些逻辑单元具有多个逻辑页面并且该更新数据是属于该些逻辑页面的其中一个逻辑页面;
一第二模块,用以从该闲置区中提取至少一实体单元作为一第一全域混乱实体单元;
一第三模块,用以判断该更新数据是否为一循序数据并且判断该其中一个逻辑页面是否为该些逻辑单元之中的其中一个逻辑单元的一起始逻辑页面;以及
一第四模块,用以倘若该更新数据为该循序数据并且该其中一个逻辑页面为该起始逻辑页面时,从该闲置区的该些实体单元中提取一个实体单元作为一第二全域混乱实体单元并且将该更新数据写入至该第二全域混乱实体单元
其中该循序数据包括该主机系统依序地写入至该些逻辑页面之中连续的多个逻辑页面中的多笔数据。
8.根据权利要求7所述的数据写入系统,还包括:
一第五模块,用以判断该第二全域混乱实体单元中是否储存属于该其中一个逻辑单元的完整有效数据,
一第六模块,用以倘若该第二全域混乱实体单元中储存属于该其中一个逻辑单元的完整有效数据时,将该其中一个逻辑单元重新映射至该第二全域混乱实体单元。
9.根据权利要求8所述的数据写入系统,还包括:
一第七模块,用以维护一全域混乱实体单元搜寻表来记录对应该些已更新逻辑页面的多个更新信息。
10.根据权利要求9所述的数据写入系统,还包括:
一第八模块,用以在将该更新数据写入至该第二全域混乱实体单元之后,不将对应该其中一个逻辑页面的一更新信息记录至该全域混乱实体单元搜寻表中。
11.根据权利要求10所述的数据写入系统,还包括:
一第九模块,用以倘若该第二全域混乱实体单元中储存非属于该其中一个逻辑单元的完整有效数据时,将对应该其中一个逻辑页面的该更新信息记录至该全域混乱实体单元搜寻表中。
12.根据权利要求7所述的数据写入系统,还包括:
一第十模块,用以倘若该更新数据非为该循序数据时,将该更新数据写入至该第一全域混乱实体单元中。
13.一种数据写入方法,用于一可擦除非易失性存储器,其中该可擦除非易失性存储器模组具有多个实体区块,每一该些实体区块具有多个实体页面,该些实体区块至少分组为一数据区与一闲置区,属于该数据区与该闲置区的该些实体区块被分组为多个实体单元,该数据区的该些实体单元映射多个逻辑单元,每一该些逻辑单元具有多个逻辑页面,该闲置区的该些实体单元之中的一第一实体单元被用作为一目前全域混乱实体单元来写入数据,该数据写入方法包括:
a、从一主机系统接收至少一写入指令与对应该至少一写入指令的多笔更新数据,其中每一该些更新数据对应该些逻辑页面之中的其中一个逻辑页面;
b、判断该些更新数据是否为一循序数据,其中倘若该些更新数据为该循序数据时标记一第一标识;
c、根据该些更新数据对应的该些逻辑页面依序地选择该些更新数据之中未被写入的其中一个更新数据并且执行步骤d;
d、判断该第一标识是否已被标记,其中倘若该第一标识未被标记时执行步骤h并且倘若该第一标识已被标记时执行步骤e;
e、判断一第二标识是否已被标记,其中倘若该第二标识未被标记时执行步骤f并且倘若该第二标识已被标记时执行步骤i;
f、判断该其中一个更新数据对应的一逻辑页面是否为一起始逻辑页面,其中倘若该其中一个更新数据对应的该逻辑页面为该起始逻辑页面时执行步骤g并且倘若该其中一个更新数据对应的该逻辑页面非为该起始逻辑页面时执行步骤h;
g、从该闲置区的该些实体单元之中提取一第二实体单元,将该其中一个更新数据依序地写入至该第二实体单元中,将该第二实体单元作为该目前全域混乱实体单元,标记该第二标识并且之后执行步骤j;
h、将该其中一个更新数据依序地写入至该目前全域混乱实体单元中,将关于该其中一个更新数据对应的该逻辑页面的一更新信息记录至该全域混乱实体单元搜寻表中并且之后执行步骤j;
i、将该其中一个更新数据依序地写入至该目前全域混乱实体单元中,不将关于该其中一个更新数据对应的该逻辑页面的该更新信息记录至该全域混乱实体单元搜寻表中并且之后执行步骤j;以及
j、判断是否已将所有该些更新数据写入至该可擦除非易失性存储器中,其中倘若未将所有该些更新数据写入至该可擦除非易失性存储器中时,执行步骤c,
其中该循序数据包括该主机系统依序地写入至该些逻辑页面之中连续的多个逻辑页面中的多笔数据。
14.根据权利要求13所述的数据写入方法,还包括:
判断该目前全域混乱实体单元是否已被写满;以及
倘若该目前全域混乱实体单元已被写满时,从该闲置区的该些实体单元之中提取一第三实体单元作为该目前全域混乱实体单元。
15.根据权利要求14所述的数据写入方法,还包括:
倘若该目前全域混乱实体单元已被写满时,判断该第二标识是否已被标记,
其中倘若该第二标识已被标记时,将该些逻辑单元之中的其中一个逻辑单元重新映射至该目前全域混乱实体单元并且将该其中一个逻辑单元原先映射的一实体单元关联至该闲置区,其中储存于该目前全域混乱实体单元中的该些更新数据是属于该其中一个逻辑单元。
16.根据权利要求15所述的数据写入方法,还包括:
从该主机系统接收至少一其他写入指令与对应该至少一其他写入指令的多笔其他更新数据,其中每一该些其他更新数据对应该些逻辑页面之中的其中一个逻辑页面;以及
根据上述步骤e、上述步骤f、上述步骤g、上述步骤h、上述步骤i与上述步骤j分别地将该些其他更新数据写入至该些全域混乱实体单元中。
17.根据权利要求16所述的数据写入方法,还包括:
判断对应该些其他更新数据的该些逻辑页面是否接续于对应该些更新数据的该些逻辑页面,
其中倘若对应该些其他更新数据的该些逻辑页面非接续于对应该些更新数据的该些逻辑页面时,反标记该第一标识与该第二标识并且将该些更新数据所对应的该些逻辑页面的该些更新信息之中至少一未记录更新信息记录至该全域混乱实体单元搜寻表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609112.9A CN102543183B (zh) | 2010-12-21 | 2010-12-21 | 数据写入方法、存储器控制器与储存装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010609112.9A CN102543183B (zh) | 2010-12-21 | 2010-12-21 | 数据写入方法、存储器控制器与储存装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102543183A CN102543183A (zh) | 2012-07-04 |
CN102543183B true CN102543183B (zh) | 2015-05-20 |
Family
ID=46349877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010609112.9A Active CN102543183B (zh) | 2010-12-21 | 2010-12-21 | 数据写入方法、存储器控制器与储存装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102543183B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102819494B (zh) * | 2012-07-18 | 2015-09-02 | 山东华芯半导体有限公司 | 一种闪存顺序写入时的优化方法 |
CN104238956A (zh) * | 2013-06-24 | 2014-12-24 | 群联电子股份有限公司 | 数据写入方法、存储器控制器与存储器存储装置 |
CN109189337B (zh) * | 2018-08-21 | 2021-12-17 | 浪潮电子信息产业股份有限公司 | 一种选择数据块的方法、装置、设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7159068B2 (en) * | 2003-12-22 | 2007-01-02 | Phison Electronics Corp. | Method of optimizing performance of a flash memory |
TWI385519B (zh) * | 2008-04-18 | 2013-02-11 | Phison Electronics Corp | 資料寫入方法及使用此方法的快閃儲存系統與其控制器 |
KR101028929B1 (ko) * | 2008-12-31 | 2011-04-12 | 성균관대학교산학협력단 | 실시간 시스템을 위한 로그 블록 연관성 분산 방법 및 이를수행하는 플래시 메모리 장치 |
-
2010
- 2010-12-21 CN CN201010609112.9A patent/CN102543183B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102543183A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180260317A1 (en) | Method for managing the copying and storing of data in garbage collection, memory storage device and memory control circuit unit using the same | |
US9639475B2 (en) | Buffer memory management method, memory control circuit unit and memory storage device | |
US9021218B2 (en) | Data writing method for writing updated data into rewritable non-volatile memory module, and memory controller, and memory storage apparatus using the same | |
US20120110243A1 (en) | Data writing method, memory controller, and memory storage apparatus | |
CN102890655B (zh) | 存储器储存装置、其存储器控制器与有效数据识别方法 | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
CN104765569A (zh) | 数据写入方法、存储器控制电路单元与存储器储存装置 | |
CN103514096A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102592670B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN102902626B (zh) | 区块管理方法、存储器控制器与存储器储存装置 | |
CN103593296A (zh) | 数据储存方法、存储器控制器与存储器储存装置 | |
CN102567221B (zh) | 数据管理方法、存储器控制器与存储器储存装置 | |
CN103678162B (zh) | 系统数据储存方法、存储器控制器与存储器储存装置 | |
CN103136111A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
US8943289B2 (en) | Data moving method for flash memory module, and memory controller and memory storage apparatus using the same | |
CN104978149A (zh) | 数据写入方法、存储器控制电路单元与存储器存储装置 | |
CN102446137B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
TWI463495B (zh) | 資料寫入方法、記憶體控制器與儲存裝置 | |
CN102968385A (zh) | 数据写入方法、存储器控制器与储存装置 | |
CN103106148B (zh) | 区块管理方法、存储器控制器与存储器存储装置 | |
CN102543183B (zh) | 数据写入方法、存储器控制器与储存装置 | |
US9312011B1 (en) | Data writing method, memory storage device and memory control circuit unit | |
CN102890653A (zh) | 指令执行方法、存储器控制器与存储器储存装置 | |
CN103577344A (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN103714008A (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 |