数据管理方法、存储器控制电路单元以及存储器存储装置与流程

文档序号:24350232发布日期:2021-03-19 12:35阅读:94来源:国知局
本发明涉及一种数据管理方法、存储器控制电路单元以及存储器存储装置。
背景技术
::数字相机、手机与mp3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。依据每个存储单元可存储的比特数,反及(nand)型快闪存储器可区分为单阶存储单元(singlelevelcell,slc)nand型快闪存储器、多阶存储单元(multilevelcell,mlc)nand型快闪存储器与三阶存储单元(trinarylevelcell,tlc)nand型快闪存储器,其中slcnand型快闪存储器的每个存储单元可存储1个比特的数据(即,“1”与“0”),mlcnand型快闪存储器的每个存储单元可存储2个比特的数据,并且tlcnand型快闪存储器的每个存储单元可存储3个比特的数据。在nand型快闪存储器中,实体程序化单元是由排列在同一条字线上的数个存储单元所组成。由于slcnand型快闪存储器的每个存储单元可存储1个比特的数据,因此,在slcnand型快闪存储器中,排列在同一条字线上的数个存储单元是对应一个实体程序化单元。相对于slcnand型快闪存储器来说,mlcnand型快闪存储器的每个存储单元的浮动栅存储层可存储2个比特的数据,其中每一个存储状态(即,“11”、“10”、“01”与“00”)包括最低有效位(leastsignificantbit,lsb)以及最高有效位(mostsignificantbit,msb)。例如,存储状态中从左侧算起的第1个比特的值为lsb,而从左侧算起的第2个比特的值为msb。因此,排列在同一条字线上的数个存储单元可组成2个实体程序化单元,其中由此些存储单元的lsb所组成的实体程序化单元称为下实体程序化单元(lowphysicalprogrammingunit),并且由此些存储单元的msb所组成的实体程序化单元称为上实体程序化单元(upperphysicalprogrammingunit)。特别是,下实体程序化单元的写入速度会快于上实体程序化单元的写入速度,并且当程序化上实体程序化单元发生错误时,下实体程序化单元所存储的数据亦可能因此遗失。类似地,在tlcnand型快闪存储器中,的每个存储单元可存储3个比特的数据,其中每一个存储状态(即,“111”、“110”、“101”、“100”、“011”、“010”、“001”与“000”)包括左侧算起的第1个比特的lsb、从左侧算起的第2个比特的中间有效位(centersignificantbit,csb)以及从左侧算起的第3个比特的msb。因此,排列在同一条字线上的数个存储单元可组成3个实体程序化单元,其中由此些存储单元的lsb所组成的实体程序化单元称为下实体程序化单元,由此些存储单元的csb所组成的实体程序化单元称为中实体程序化单元,并且由此些存储单元的msb所组成的实体程序化单元称为上实体程序化单元。特别是,对排列在同一条字线上的数个存储单元进行程序化时,仅能选择仅程序化下实体程序化单元或者同时程序化下实体程序化单元、中实体程序化单元与上实体程序化单元,否则所存储的数据可能会遗失。一般而言,使用tlcnand型快闪存储器的存储器模块,会将其中的部分实体抹除单元分组为使用只操作于下实体程序化单元的一单页程序化模式来模拟slcnand型快闪存储器的运作,藉此提高写入的速度。之后,当要执行有效数据合并操作时,存储器管理电路才会从用以模拟slcnand型快闪存储器的实体抹除单元中挑选多个来源实体抹除单元,并从此些来源实体抹除单元中搜集以单页程序化模式写入的多个数据,最后将此些数据以多页程序化模式写入一实体抹除单元中以让此些数据存储于此实体抹除单元中的下实体程序化单元、中实体程序化单元以及上实体程序化单元。然而需注意的是,在执行有效数据合并操作时,基于来源实体抹除单元的挑选规则(例如,基于有效数据计数或抹除次数的规则),所挑选出来源实体抹除单元中的数据未必为连续。因此当执行有效数据合并操作后,若为了数据存取效率而需将多个连续的数据存储在同一个实体抹除单元中时,通常还需要再执行额外的数据合并操作以从多个实体抹除单元中找出连续的数据再将此些连续的数据合并存储至同一个实体抹除单元中。然而,由于前述情况需执行大量的数据合并操作,会大量地降低可复写式非易失性存储器的运作效能。基于上述,如何避免执行大量的数据合并并且可以在执行数据合并时让连续的多个数据存储在同一个实体抹除单元中是此领域技术人员所致力的目标。技术实现要素:本发明提供一种数据管理方法、存储器控制电路单元以及存储器存储装置,可以避免执行大量的数据合并并且在执行数据合并时让连续的多个数据存储在同一个实体抹除单元中。本发明提出一种数据管理方法,用于一可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元,所述数据管理方法包括:接收用以将第一数据写入至所述可复写式非易失性存储器模块的写入指令;当所述第一数据为连续数据时,分别将所述第一数据以一单页程序化模式写入所述多个实体抹除单元中的多个第一实体抹除单元,并记录对应于所述多个第一实体抹除单元的一第一管理信息;以及当所述第一数据非为连续数据时,分别将所述第一数据以所述单页程序化模式写入所述多个实体抹除单元中的多个第二实体抹除单元。在本发明的一实施例中,所述方法还包括:根据所述第一管理信息,从所述多个实体抹除单元中识别分别存储所述第一数据的所述多个第一实体抹除单元;以及从所述多个第一实体抹除单元复制所述第一数据,并以一多页程序化模式将所述第一数据写入至所述多个实体抹除单元中的一第三实体抹除单元中。在本发明的一实施例中,所述方法还包括:判断所述第一数据的逻辑地址是否为连续;当所述第一数据的所述逻辑地址为连续时,判断所述第一数据为连续数据;以及当所述第一数据的所述逻辑地址为不连续时,判断所述第一数据非为连续数据。在本发明的一实施例中,记录对应于所述多个第一实体抹除单元的所述第一管理信息的步骤包括:记录所述第一数据的顺序。在本发明的一实施例中,记录对应于所述多个第一实体抹除单元的所述第一管理信息的步骤包括:使用一第一旗标标记所述多个第一实体抹除单元。在本发明的一实施例中,记录对应于所述多个第一实体抹除单元的所述第一管理信息的步骤包括:将所述多个第一实体抹除单元的一绑定关系记录至一查找表中。本发明提出一种存储器控制电路单元,用于控制一可复写式非易失性存储器模块,所述存储器控制电路单元包括:主机接口、存储器接口与存储器管理电路。主机接口用以耦接至一主机系统。存储器接口用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个实体抹除单元。存储器管理电路耦接至所述主机接口以及所述存储器接口。所述存储器管理电路用以执行下述运作:接收用以将第一数据写入至所述可复写式非易失性存储器模块的写入指令;当所述第一数据为连续数据时,分别将所述第一数据以一单页程序化模式写入所述多个实体抹除单元中的多个第一实体抹除单元,并记录对应于所述多个第一实体抹除单元的一第一管理信息;以及当所述第一数据非为连续数据时,分别将所述第一数据以所述单页程序化模式写入所述多个实体抹除单元中的多个第二实体抹除单元。在本发明的一实施例中,所述存储器管理电路还用以执行下述运作:根据所述第一管理信息,从所述多个实体抹除单元中识别分别存储所述第一数据的所述多个第一实体抹除单元;以及从所述多个第一实体抹除单元复制所述第一数据,并以一多页程序化模式将所述第一数据写入至所述多个实体抹除单元中的一第三实体抹除单元中。在本发明的一实施例中,所述存储器管理电路还用以执行下述运作:判断所述第一数据的逻辑地址是否为连续;当所述第一数据的所述逻辑地址为连续时,判断所述第一数据为连续数据;以及当所述第一数据的所述逻辑地址为不连续时,判断所述第一数据非为连续数据。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,所述存储器管理电路还用以记录所述第一数据的顺序。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,所述存储器管理电路还用以使用一第一旗标标记所述多个第一实体抹除单元。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,所述存储器管理电路还用以将所述多个第一实体抹除单元的一绑定关系记录至一查找表中。本发明提出一种存储器存储装置,包括:连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以耦接至一主机系统。可复写式非易失性存储器模块具有多个实体抹除单元。存储器控制电路单元耦接至所述连接接口单元与所述可复写式非易失性存储器模块,并用以执行下述运作:接收用以将第一数据写入至所述可复写式非易失性存储器模块的写入指令;当所述第一数据为连续数据时,分别将所述第一数据以一单页程序化模式写入所述多个实体抹除单元中的多个第一实体抹除单元,并记录对应于所述多个第一实体抹除单元的一第一管理信息;以及当所述第一数据非为连续数据时,分别将所述第一数据以所述单页程序化模式写入所述多个实体抹除单元中的多个第二实体抹除单元。在本发明的一实施例中,存储器控制电路单元还用以执行下述运作:根据所述第一管理信息,从所述多个实体抹除单元中识别分别存储所述第一数据的所述多个第一实体抹除单元;以及从所述多个第一实体抹除单元复制所述第一数据,并以一多页程序化模式将所述第一数据写入至所述多个实体抹除单元中的一第三实体抹除单元中。在本发明的一实施例中,存储器控制电路单元还用以执行下述运作:判断所述第一数据的逻辑地址是否为连续;当所述第一数据的所述逻辑地址为连续时,判断所述第一数据为连续数据;以及当所述第一数据的所述逻辑地址为不连续时,判断所述第一数据非为连续数据。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,存储器控制电路单元还用以记录所述第一数据的顺序。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,存储器控制电路单元还用以使用一第一旗标标记所述多个第一实体抹除单元。在本发明的一实施例中,在记录对应于所述多个第一实体抹除单元的所述第一管理信息的运作中,所述存储器控制电路单元还用以将所述多个第一实体抹除单元的一绑定关系记录至一查找表中。基于上述,本发明的数据管理方法、存储器控制电路单元以及存储器存储装置可以确保可复写式非易失性存储器模块在执行有效数据合并操作后,存储在同一个实体抹除单元中的多个数据彼此间为相互连续,进而避免现有技术中需执行大量的数据合并操作而造成的可复写式非易失性存储器模块的运作效能降低的问题。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图;图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图;图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图;图5a与图5b是根据本范例实施例所示出的存储单元存储架构与实体抹除单元的范例示意图;图6a是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;图6b是根据本发明的一范例实施例所示出的多框架编码的示意图;图7与图8是根据一范例实施例所示出的管理实体抹除单元的范例示意图;图9是根据一范例所示出的使用单页程序化模式将数据写入可复写式非易失性存储器模块的示意图;图10是根据一范例所示出的使用多页程序化模式对以单页程序化模式写入的数据进行有效数据合并操作的示意图;图11是根据一范例所示出的数据管理方法的流程图。附图标号说明:10:存储器存储装置11:主机系统110:系统总线111:处理器112:随机存取存储器113:只读存储器114:数据传输接口12:输入/输出(i/o)装置20:主机板201:随身盘202:存储卡203:固态硬盘204:无线存储器存储装置205:全球定位系统模块206:网络接口卡207:无线传输装置208:键盘209:屏幕210:喇叭32:sd卡33:cf卡34:嵌入式存储装置341:嵌入式多媒体卡342:嵌入式多芯片封装存储装置402:连接接口单元404:存储器控制电路单元406:可复写式非易失性存储器模块702:存储器管理电路704:主机接口706:存储器接口708:错误检查与校正电路710:缓冲存储器712:电源管理电路801(1)~801(r):位置820:编码数据810(0)~810(e):实体程序化单元502:数据区504:闲置区506:暂存区508:取代区510(0)~510(n):实体抹除单元lba(0)~lba(h):逻辑单元lz(0)~lz(m):逻辑区域步骤s1101:接收用以将第一数据写入至可复写式非易失性存储器模块的写入指令的步骤步骤s1103:判断第一数据是否为连续数据的步骤步骤s1105:当第一数据为连续数据时,分别将第一数据以单页程序化模式写入多个第一实体抹除单元,并记录对应于此些第一实体抹除单元的第一管理信息的步骤步骤s1107:当第一数据非为连续数据时,分别将第一数据以单页程序化模式写入多个第二实体抹除单元的步骤具体实施方式一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(亦称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆耦接至系统总线(systembus)110。在本范例实施例中,主机系统11是通过数据传输接口114与存储器存储装置10耦接。例如,主机系统11可经由数据传输接口114将数据存储至存储器存储装置10或从存储器存储装置10中读取数据。此外,主机系统11是通过系统总线110与i/o装置12耦接。例如,主机系统11可经由系统总线110将输出信号传送至i/o装置12或从i/o装置12接收输入信号。在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式耦接至存储器存储装置10。存储器存储装置10可例如是随身盘201、存储卡202、固态硬盘(solidstatedrive,ssd)203或无线存储器存储装置204。无线存储器存储装置204可例如是近距离无线通讯(nearfieldcommunication,nfc)存储器存储装置、无线传真(wifi)存储器存储装置、蓝牙(bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,ibeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板20也可以通过系统总线110耦接至全球定位系统(globalpositioningsystem,gps)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式i/o装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储器存储装置204。在一范例实施例中,所提及的主机系统为可实质地与存储器存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来作说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储器存储装置30可为其所使用的sd卡32、cf卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmmc,emmc)341和/或嵌入式多芯片封装存储装置(embeddedmultichippackage,emcp)342等各类型将存储器模块直接耦接于主机系统的基板上的嵌入式存储装置。图4是根据本发明的一范例实施例所示出的存储器存储装置的概要方块图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。在本范例实施例中,连接接口单元402是相容于串行高级技术附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并行高级技术附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、安全数字(securedigital,sd)接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、存储棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体存储卡(multimediacard,mmc)接口标准、嵌入式多媒体存储卡(embeddedmultimediacard,emmc)接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、嵌入式多芯片封装(embeddedmultichippackage,emcp)接口标准、小型快闪(compactflash,cf)接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取、抹除与合并等运作。可复写式非易失性存储器模块406是耦接至存储器控制电路单元404,并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406具有实体抹除单元510(0)~510(n)。例如,实体抹除单元510(0)~510(n)可属于同一个存储器晶粒(die)或者属于不同的存储器晶粒。每一实体抹除单元分别具有多个实体程序化单元,例如本发明的范例实施例中,每一个实体抹除单元包含258个实体程序化单元,而其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。更详细来说,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据比特区与冗余比特区。数据比特区包含多个实体存取地址用以存储使用者的数据,而冗余比特区用以存储系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据比特区中会包含4个实体存取地址,且一个实体存取地址的大小为512字节(byte)。然而,在其他范例实施例中,数据比特区中也可包含数目更多或更少的实体存取地址,本发明并不限制实体存取地址的大小以及个数。在本发明的范例实施例中,可复写式非易失性存储器模块406为复数阶存储单元(trinarylevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个比特数据的快闪存储器模块)。然而,本发明不限于此,可复写式非易失性存储器模块406亦可是多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。图5a与图5b是根据本范例实施例所示出的存储单元存储架构与实体抹除单元的范例示意图。请参照图5a,可复写式非易失性存储器模块406的每个存储单元的存储状态可被识别为“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”(如图5a所示),其中左侧算起的第1个比特为lsb、从左侧算起的第2个比特为csb以及从左侧算起的第3个比特为msb。此外,排列在同一条字线上的数个存储单元可组成3个实体程序化单元,其中由此些存储单元的lsb所组成的实体程序化单元称为下实体程序化单元,由此些存储单元的csb所组成的实体程序化单元称为中实体程序化单元,并且由此些存储单元的msb所组成的实体程序化单元称为上实体程序化单元。请参照图5b,一个实体抹除单元是由多个实体程序化单元组所组成,其中每个实体程序化单元组包括由排列在同一条字线上的数个存储单元所组成的下实体程序化单元、中实体程序化单元与上实体程序化单元。例如,在实体抹除单元中,属于下实体程序化单元的第0个实体程序化单元、属于中实体程序化单元的第1个实体程序化单元和属于上实体程序化单元的第2个实体程序化单元会被视为一个实体程序化单元组。类似地,第3、4、5个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元亦是依据此方式被区分为多个实体程序化单元组。图6a是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图6a,存储器控制电路单元404包括存储器管理电路702、主机接口704、存储器接口706及错误检查与校正电路708。存储器管理电路702用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路702具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路702或任何包含于存储器控制电路单元404中的电路元件的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路702的控制指令是以固件型式来实作。例如,存储器管理电路702具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,存储器管理电路702的控制指令亦可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路702具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路702的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,存储器管理电路702的控制指令亦可以一硬件型式来实作。例如,存储器管理电路702包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是耦接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路702还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。主机接口704是耦接至存储器管理电路702并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口704来传送至存储器管理电路702。在本范例实施例中,主机接口704是相容于sata标准。然而,必须了解的是本发明不限于此,主机接口704亦可以是相容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。存储器接口706是耦接至存储器管理电路702并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口706转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路702要存取可复写式非易失性存储器模块406,存储器接口706会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路702产生并且通过存储器接口706传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。错误检查与校正电路708是耦接至存储器管理电路702并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路702从主机系统11中接收到写入指令时,错误检查与校正电路708会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且存储器管理电路702会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路702从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路708会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。在一范例实施例中,存储器控制电路单元404还包括缓冲存储器710与电源管理电路712。缓冲存储器710是耦接至存储器管理电路702并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路712是耦接至存储器管理电路702并且用以控制存储器存储装置10的电源。在本范例实施例中,错误检查与校正电路708可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。单框架编码与多框架编码可以分别采用低密度奇偶检查校正码(lowdensityparitycode,ldpc)、bch码、回旋码(convolutionalcode)或涡轮码(turbocode)等编码算法的至少其中之一。或者,在一范例实施例中,多框架编码还可以采用里德-所罗门码(reed-solomoncodes,rscodes)算法或互斥或(xor)算法。此外,在另一范例实施例中,更多未列于上的编码算法也可以被采用,在此便不赘述。根据所采用的编码算法,错误检查与校正电路708可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。图6b是根据本发明的一范例实施例所示出的多框架编码的示意图。请参照图6b,以编码实体程序化单元810(0)~810(e)所存储的数据来产生相对应的编码数据820为例,实体程序化单元810(0)~810(e)中的每一者所存储的至少部分数据可视为一个框架。在多框架编码中,是以每一个比特(或,字节)所在的位置为依据来对实体程序化单元810(0)~810(e)中的数据进行编码。例如,位于位置801(1)的比特b11、b21、…、bp1会被编码为编码数据820中的比特bo1,位于位置801(2)的比特b12、b22、…、bp2会被编码为编码数据820中的比特bo2;以此类推,位于位置801(r)的比特b1r、b2r、…、bpr会被编码为编码数据820中的比特bor。然后,根据编码数据820即可对从实体程序化单元810(0)~810(e)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。此外,在图6b的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(e)所存储的数据中的数据比特(databits)所对应的冗余比特(redundancybits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于实体程序化单元810(0)中的数据比特进行单框架编码而产生的。在本范例实施例中,假设在读取实体程序化单元810(0)中的数据时,从实体程序化单元810(0)中读取出的数据可以先使用实体程序化单元810(0)中的冗余比特(例如,单框架编码的编码数据)来解码以进行错误检测与更正。然而,当使用实体程序化单元810(0)中的冗余比特进行解码发生失败(例如,解码后实体程序化单元810(0)中所存储的数据的错误比特数大于一门槛值)时,可以使用重新读取(retry-read)机制尝试从实体程序化单元810(0)中读取出正确的数据。关于重新读取机制的细节于后详述。而当无法通过重新读取(retry-read)机制从实体程序化单元810(0)中读取出正确的数据时,可以读取编码数据820以及实体程序化单元810(1)~810(e)的数据,并根据编码数据820以及实体程序化单元810(1)~810(e)的数据进行解码,以尝试更正实体程序化单元810(0)中所存储的数据中存在的错误。也就是说,在本范例实施例中,当使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取(retry-read)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。图7与图8是根据一范例实施例所示出的管理实体抹除单元的范例示意图。请参照图7,可复写式非易失性存储器模块406具有实体抹除单元510(0)~510(n),并且存储器管理电路702会逻辑地分割(partition)为数据区502、闲置区504、暂存区506与取代区508。逻辑上属于数据区502与闲置区504的实体抹除单元是用以存储来自于主机系统11的数据。具体来说,数据区502的实体抹除单元是被视为已存储数据的实体抹除单元,而闲置区504的实体抹除单元是用以替换数据区502的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,存储器管理电路702会从闲置区504中提取实体抹除单元,并且将数据写入至所提取的实体抹除单元中,以替换数据区502的实体抹除单元。逻辑上属于暂存区506的实体抹除单元是用以记录系统数据。例如,系统数据包括逻辑转实体地址映射表、关于可复写式非易失性存储器模块的制造商与型号、可复写式非易失性存储器模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。逻辑上属于取代区508中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区508中仍存有正常的实体抹除单元并且数据区502的实体抹除单元损坏时,存储器管理电路302会从取代区508中提取正常的实体抹除单元来更换损坏的实体抹除单元。特别是,数据区502、闲置区504、暂存区506与取代区508的实体抹除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,实体抹除单元关联至数据区502、闲置区504、暂存区506与取代区508的分组关系会动态地变动。例如,当闲置区504中的实体抹除单元损坏而被取代区508的实体抹除单元取代时,则原本取代区508的实体抹除单元会被关联至闲置区504。请参照图8,存储器管理电路702会配置逻辑单元lba(0)~lba(h)以映射数据区502的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新存储于逻辑单元中的数据时,存储器管理电路702会从闲置区504中提取一个实体抹除单元来写入数据,以轮替数据区502的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。为了识别数据每个逻辑单元的数据被存储在那个实体抹除单元,在本范例实施例中,存储器管理电路702会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器管理电路702会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器管理电路702会在可复写式非易失性存储器模块406中存储逻辑转实体地址映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器管理电路702会将逻辑转实体地址映射表载入至缓冲存储器710来维护。值得一提的是,由于缓冲存储器710的容量有限无法存储记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器管理电路702会将逻辑单元lba(0)~lba(h)分组为多个逻辑区域lz(0)~lz(m),并且为每一逻辑区域配置一个逻辑转实体地址映射表。特别是,当存储器管理电路702欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑转实体地址映射表会被载入至缓冲存储器710来被更新。需说明的是,在存储器管理电路702可以使用单页程序化模式或多页程序化模式对可复写式非易失性存储器模块406进行写入。特别是,在本实施例中,当存储器管理电路702从主机系统11接收用以将多个数据(亦称为,第一数据)写入至可复写式非易失性存储器模块406的多个写入指令时,存储器管理电路702会先判断前述的多个第一数据是否为连续数据。例如,当前述多个第一数据的逻辑地址为连续时,存储器管理电路702会判断此些第一数据为连续数据。当前述多个第一数据的逻辑地址为不连续时,存储器管理电路702会判断此些第一数据非为连续数据。当前述多个第一数据为连续数据时,存储器管理电路702会分别将前述多个第一数据以单页程序化模式写入多个实体抹除单元(亦称为,第一实体抹除单元),并记录对应于此些第一实体抹除单元的一管理信息(亦称为,第一管理信息)。在一实施例中,第一管理信息可以用于记录第一数据彼此间的顺序。在另一实施例中,在记录第一管理信息的运作中,存储器管理电路702还会使用一第一旗标(例如,比特数值“1”)标记此些第一实体抹除单元以表示此些第一实体抹除单元中存储连续的第一数据。然而本发明不限于此,在其他实施例中,存储器管理电路702也可以将前述多个第一实体抹除单元的绑定关系记录至一查找表中。当前述多个第一数据非为连续数据时,存储器管理电路702会分别将前述多个第一数据以单页程序化模式写入多个实体抹除单元(亦称为,第二实体抹除单元)。在一实施例中,存储器管理电路702可以不记录对应于第二实体抹除单元的管理信息。或者,在其他实施例中,存储器管理电路702也可以使用一第二旗标(例如,比特数值“0”)标记此些第二实体抹除单元以表示此些第二实体抹除单元中存储非连续的数据。以下以一范例描述将多个连续的数据写入可复写式非易失性存储器模块406的详细过程。图9是根据一范例所示出的使用单页程序化模式将数据写入可复写式非易失性存储器模块的示意图。请参照图9,当存储器存储装置10从主机系统11中接收到指示将更新数据存储至逻辑单元lba(0)的第0~257个逻辑子单元的多个写入指令(亦称为,第一写入指令)时,存储器管理电路702会判断此些第一写入指令的更新数据的逻辑地址为连续。假设于本范例实施例中,存储器管理电路702会从闲置区504中提取3个实体抹除单元510(f+1)、510(f+2)、510(f+3)(亦即,前述的第一实体抹除单元)分别作为对应于上述第一写入指令的多个动作实体抹除单元。假设存储器管理电路702是使用单页程序化模式进行写入,则存储器管理电路702会依据第一指令序列而将第一写入指令的数据从缓冲存储器710中写入至实体抹除单元510(f+1)、510(f+2)以及510(f+3)的实体程序化单元中。在此,由于实体抹除单元510(f+1)、510(f+2)以及510(f+3)的实体程序化单元是以单页程序化模式来程序化,因此,如上所述,构成实体抹除单元510(f+1)、510(f+2)以及510(f+3)的实体程序化单元的实体程序化单元的存储单元会被程序化以存储1个比特数据。也就是说,在单页程序化模式下,实体抹除单元510(f+1)、510(f+2)以及510(f+3)的下实体程序化单元会被使用来写入数据且实体抹除单元510(f+1)、510(f+2)以及510(f+3)的中实体程序化单元与上实体程序化单元不会被用来写入数据。详细来说,如图9所示,存储器管理电路702会将欲存储至逻辑单元lba(0)的第0~257个逻辑子单元的数据依序地写入至实体抹除单元510(f+1)、510(f+2)以及510(f+3)的下实体程序化单元。也就是说,存储器管理电路702使用单页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块406中实体抹除单元510(f+1)、510(f+2)以及510(f+3)的下实体程序化单元中且实体抹除单元510(f+1)、510(f+2)以及510(f+3)的中实体程序化单元与上实体程序化单元不会被用来写入数据。在使用单页程序化模式将对应第一写入指令的数据从缓冲存储器710中写入至可复写式非易失性存储器模块406中的实体抹除单元510(f+1)、510(f+2)以及510(f+3)的下实体程序化单元之后,存储器管理电路702会将实体抹除单元510(f+1)、510(f+2)以及510(f+3)关联至数据区502,并且回复写入完成信息至主机系统11以回应主机系统11所下达的第一写入指令。特别是,在本实施例中,由于写入至实体抹除单元510(f+1)、510(f+2)以及510(f+3)的数据为连续数据,存储器管理电路702还会记录对应于实体抹除单元510(f+1)、510(f+2)以及510(f+3)的一管理信息(即,前述的第一管理信息)。在一实施例中,第一管理信息可以用于记录实体抹除单元510(f+1)、510(f+2)以及510(f+3)所存储的数据彼此间的顺序。在另一实施例中,存储器管理电路702还会使用第一旗标标记实体抹除单元510(f+1)、510(f+2)以及510(f+3)以表示此些实体抹除单元中存储连续数据。然而本发明不限于此,在其他实施例中,存储器管理电路702也可以将前述实体抹除单元510(f+1)、510(f+2)以及510(f+3)的绑定关系记录至一查找表中。图10是根据一范例所示出的使用多页程序化模式对以单页程序化模式写入的数据进行有效数据合并操作的示意图。假设对应逻辑单元lba(0)的实体抹除单元510(f+1)、实体抹除单元510(f+2)与实体抹除单元510(f+3)已存储逻辑单元lba(0)的所有逻辑子单元的有效数据(如图9所示),且当存储器存储装置10处于一背景执行模式时,例如存储器存储装置10属于闲置状态一段时间(例如,30秒未从主机系统11中接收到指令(例如,写入指令、读取指令、清仓指令、整理指令(trimcommand)等))或者是当闲置区504中空的实体抹除单元的数目小于预设门槛值时,存储器管理电路702会执行有效数据合并操作。详细来说,当存储器存储装置10因闲置而30秒未从主机系统11中接收到指令,或者是当闲置区504中空的实体抹除单元的数目小于预设门槛值时,存储器管理电路702会执行有效数据合并操作。请参照图10,在存储器管理电路702执行有效数据合并操作时,存储器管理电路702会例如从闲置区604中提取一个实体抹除单元作为用于轮替的实体抹除单元510(f+4)(以下参考为,第三实体抹除单元)。具体来说,存储器管理电路702会从闲置区604中选择一个空的实体抹除单元或者所存储的数据为无效数据的实体抹除单元。特别是,倘若所提取的实体抹除单元是存储无效数据的实体抹除单元时,存储器管理电路702会先对此实体抹除单元执行抹除操作。也就是说,实体抹除单元上的无效数据必须先被抹除。之后,存储器管理电路702会根据先前在执行写入操作时所记录的“第一管理信息”识别用以存储连续数据的实体抹除单元(例如,实体抹除单元510(f+1)、510(f+2)、510(f+3))。以存储连续数据的实体抹除单元510(f+1)、510(f+2)、510(f+3)为例,存储器管理电路702使用多页程序化模式将实体抹除单元510(f+1)、实体抹除单元510(f+2)与实体抹除单元510(f+3)中的多个有效数据复制至可复写式非易失性存储器模块406中的实体抹除单元510(f+4)中的实体程序化单元中。在此,由于实体抹除单元510(f+4)是以多页程序化模式来程序化,因此,如上所述,构成实体抹除单元510(f+4)的实体程序化单元的存储单元会被程序化以存储多个比特数据。也就是说,在多页程序化模式下,实体抹除单元510(f+4)的下实体程序化单元、中实体程序化单元和上实体程序化单元会被用来写入数据。详细来说,存储器管理电路702会从实体抹除单元510(f+1)的下实体程序化单元中将属于逻辑单元lba(0)的第0~85逻辑子单元的有效数据写入(或复制)至实体抹除单元510(f+4)的对应页面(例如,第0~85实体程序化单元)。接着,存储器管理电路702会从暂存实体抹除单元510(f+2)的下实体程序化单元中将属于逻辑单元lba(0)的第86~171逻辑子单元的有效数据复制至实体抹除单元510(f+4)的对应页面(例如,第86~171个实体程序化单元)。最后,存储器管理电路702会从暂存实体抹除单元510(f+3)的下实体程序化单元中将属于逻辑单元lba(0)的第172~257逻辑子单元的有效数据复制至实体抹除单元510(f+4)的对应页面(例如,第172~257个实体程序化单元)。也就是说,在多页程序化模式下,实体抹除单元510(f+4)的第0~257实体程序化单元皆会被用来写入数据。也就是说,在执行有效数据合并操作时,欲被关联至数据区502的实体抹除单元是以多页程序化模式来操作,因此,写入至实体抹除单元510(f+4)是以实体程序化单元组为单位来同时或阶段性地程序化。具体来说,在一范例实施例中,实体抹除单元510(f+4)的第0、1、2个实体程序化单元会同时地被程序化以写入属于逻辑单元lba(0)的第0、1、2个逻辑子单元的数据;实体抹除单元510(f+4)的第3、4、5个实体程序化单元会同时地被程序化以写入属于逻辑单元lba(0)的第3、4、5个逻辑子单元的数据;并且以此类推其他逻辑子单元的数据皆是以实体程序化单元组为单位被写入至实体抹除单元510(f+4)中。最后,存储器管理电路702会在逻辑-实体映射表中将逻辑单元lba(0)映射至实体抹除单元510(f+4)并且将实体抹除单元510(f+1)~510(f+3)执行抹除操作并将实体抹除单元510(f+1)~510(f+3)重新关联至闲置区504。也就是说,在执行之后的写入指令时,已被抹除的实体抹除单元510(f+1)~510(f+3)就可再被选择作为欲写入的逻辑单元的动作实体抹除单元。图11是根据一范例所示出的数据管理方法的流程图。请参照图11,在步骤s1101中,存储器管理电路702接收用以将第一数据写入至可复写式非易失性存储器模块406的写入指令。在步骤s1103中,存储器管理电路702判断第一数据是否为连续数据。当第一数据为连续数据时,在步骤s1105中,存储器管理电路702分别将第一数据以单页程序化模式写入多个第一实体抹除单元,并记录对应于此些第一实体抹除单元的第一管理信息。当第一数据非为连续数据时,在步骤s1107中,存储器管理电路702,分别将第一数据以单页程序化模式写入多个第二实体抹除单元。综上所述,本发明的数据管理方法、存储器控制电路单元以及存储器存储装置可以确保可复写式非易失性存储器模块在执行有效数据合并操作后,存储在同一个实体抹除单元中的多个数据彼此间为相互连续,进而避免现有技术中需执行大量的数据合并操作而造成的可复写式非易失性存储器模块的运作效能降低的问题。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中的技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1