存储器控制方法、存储器存储装置及存储器控制电路单元与流程

文档序号:24254511发布日期:2021-03-12 13:49阅读:342来源:国知局
本发明涉及一种存储器控制技术,尤其涉及一种存储器控制方法、存储器存储装置及存储器控制电路单元。
背景技术
::数码相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。一般来说,来自主机系统的数据会先被缓存在缓冲存储器中。当缓冲存储器中待存储的数据量符合一个基本写入数据单位所对应的数据量时,缓冲存储器中待存储的数据可基于此基本写入数据单位被存储至可复写式非易失性存储器模块中。例如,假设此基本写入数据单位所对应的数据量为16千字节(kb),则表示对于可复写式非易失性存储器模块的每一次的数据写入都是以16kb为单位。然而,在某些情况下,可能因为突然的断电而导致缓冲存储器中尚未满足写入条件的数据意外遗失。特别是,针对支援多分流写入的存储器存储装置而言,早期接收的数据可能因为迟迟无法满足写入条件而导致最终因断电而意外遗失,甚至使得遗失的总数据量超过预期。技术实现要素:本发明提供一种存储器控制方法、存储器存储装置及存储器控制电路单元,可改善上述问题并提高对于缓存数据的管理效率。本发明的范例实施例提供一种存储器控制方法,其用于存储器存储装置。所述存储器存储装置包括缓冲存储器与可复写式非易失性存储器模块。所述存储器控制方法包括:将第一类数据缓存于所述缓冲存储器中的第一存储空间,其中所述第一类数据默认是以第一编程模式存储至所述可复写式非易失性存储器模块;在所述第一类数据缓存于所述缓冲存储器的状态下,将第二类数据缓存于所述缓冲存储器中的第二存储空间,其中所述第二类数据默认是以第二编程模式存储至所述可复写式非易失性存储器模块,且所述第一编程模式不同于所述第二编程模式;以及在所述缓冲存储器中的所述第一类数据的数据量未达第一门槛值的状态下,若所述缓冲存储器中的所述第二类数据的数据量达到第二门槛值,将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中,其中所述第一门槛值小于所述第二门槛值。在本发明的一范例实施例中,所述的存储器控制方法还包括:从主机系统接收写入指令,其中所述写入指令指示存储属于特定逻辑单元的数据;以及根据所述特定逻辑单元决定所述数据属于所述第一类数据或所述第二类数据。在本发明的一范例实施例中,所述的存储器控制方法还包括:根据所述缓冲存储器的容量决定所述第二门槛值。在本发明的一范例实施例中,所述的存储器控制方法还包括:在所述缓冲存储器中的所述第一类数据的所述数据量未达所述第一门槛值的所述状态下,若所述缓冲存储器中的所述第二类数据的所述数据量未达所述第二门槛值,将所述第一类数据保存于所述缓冲存储器且不将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。在本发明的一范例实施例中,所述的存储器控制方法还包括:若所述缓冲存储器中的所述第一类数据的所述数据量达到所述第一门槛值,将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。本发明的范例实施例另提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块及存储器控制电路单元。所述连接接口单元用以连接至主机系统。所述存储器控制电路单元连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以将第一类数据缓存于缓冲存储器中的第一存储空间,且所述第一类数据默认是以第一编程模式存储至所述可复写式非易失性存储器模块。在所述第一类数据缓存于所述缓冲存储器的状态下,所述存储器控制电路单元还用以将第二类数据缓存于所述缓冲存储器中的第二存储空间,其中所述第二类数据默认是以第二编程模式存储至所述可复写式非易失性存储器模块,且所述第一编程模式不同于所述第二编程模式。在所述缓冲存储器中的所述第一类数据的数据量未达第一门槛值的状态下,若所述缓冲存储器中的所述第二类数据的数据量达到第二门槛值,所述存储器控制电路单元还用以发送写入指令序列以将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中,其中所述第一门槛值小于所述第二门槛值。在本发明的一范例实施例中,所述存储器控制电路单元还用以从所述主机系统接收写入指令。所述写入指令指示存储属于特定逻辑单元的数据。所述存储器控制电路单元还用以根据所述特定逻辑单元决定所述数据属于所述第一类数据或所述第二类数据。在本发明的一范例实施例中,所述存储器控制电路单元还用以根据所述缓冲存储器的容量决定所述第二门槛值。在本发明的一范例实施例中,在所述缓冲存储器中的所述第一类数据的所述数据量未达所述第一门槛值的所述状态下,若所述缓冲存储器中的所述第二类数据的所述数据量未达所述第二门槛值,所述存储器控制电路单元还用以将所述第一类数据保存于所述缓冲存储器且不将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。在本发明的一范例实施例中,若所述缓冲存储器中的所述第一类数据的所述数据量达到所述第一门槛值,所述存储器控制电路单元还用以发送另一写入指令序列以将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。本发明的范例实施例另提供一种存储器控制电路单元,其用于控制可复写式非易失性存储器模块。所述存储器控制电路单元包括主机接口、存储器接口、缓冲存储器及存储器管理电路。所述主机接口用以连接至主机系统。所述存储器接口用以连接至所述可复写式非易失性存储器模块。所述存储器管理电路连接至所述主机接口、所述存储器接口及所述缓冲存储器。所述存储器管理电路用以将第一类数据缓存于所述缓冲存储器中的第一存储空间,且所述第一类数据默认是以第一编程模式存储至所述可复写式非易失性存储器模块。在所述第一类数据缓存于所述缓冲存储器的状态下,所述存储器管理电路还用以将第二类数据缓存于所述缓冲存储器中的第二存储空间,其中所述第二类数据默认是以第二编程模式存储至所述可复写式非易失性存储器模块,且所述第一编程模式不同于所述第二编程模式。在所述缓冲存储器中的所述第一类数据的数据量未达第一门槛值的状态下,若所述缓冲存储器中的所述第二类数据的数据量达到第二门槛值,所述存储器管理电路还用以发送写入指令序列以将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中,其中所述第一门槛值小于所述第二门槛值。在本发明的一范例实施例中,所述存储器管理电路还用以从所述主机系统接收写入指令。所述写入指令指示存储属于特定逻辑单元的数据。所述存储器管理电路还用以根据所述特定逻辑单元决定所述数据属于所述第一类数据或所述第二类数据。在本发明的一范例实施例中,所述第一编程模式是用以将p个比特存储于所述可复写式非易失性存储器模块中的单一个存储单元,所述第二编程模式是用以将q个比特存储于所述可复写式非易失性存储器模块中的单一个存储单元,p与q皆为正整数,且p不等于q。在本发明的一范例实施例中,p小于q。在本发明的一范例实施例中,所述存储器管理电路还用以根据所述缓冲存储器的容量决定所述第二门槛值。在本发明的一范例实施例中,所述第一门槛值对应所述可复写式非易失性存储器模块的基本写入数据单位。在本发明的一范例实施例中,在所述缓冲存储器中的所述第一类数据的所述数据量未达所述第一门槛值的所述状态下,若所述缓冲存储器中的所述第二类数据的所述数据量未达所述第二门槛值,所述存储器管理电路还用以将所述第一类数据保存于所述缓冲存储器且不将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。在本发明的一范例实施例中,若所述缓冲存储器中的所述第一类数据的所述数据量达到所述第一门槛值,所述存储器管理电路还用以发送另一写入指令序列以将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中。基于上述,第一类数据默认是以第一编程模式存储至所述可复写式非易失性存储器模块。第二类数据默认是以第二编程模式存储至所述可复写式非易失性存储器模块。第一编程模式不同于第二编程模式。在第一类数据与第二类数据同时缓存于缓冲存储器中的状态下,若第一类数据的数据量未达第一门槛值且第二类数据的数据量达到第二门槛值,缓冲存储器中的第一类数据可(直接)被存储至可复写式非易失性存储器模块中,其中所述第一门槛值小于所述第二门槛值。藉此,可减少缓冲存储器中早期接收的数据意外遗失的机率和/或降低非预期断电时可能会遗失的总数据量,从而提高对于缓存数据的管理效率。附图说明图1是根据本发明的一范例实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图;图2是根据本发明的另一范例实施例所示出的主机系统、存储器存储装置及i/o装置的示意图;图3是根据本发明的另一范例实施例所示出的主机系统与存储器存储装置的示意图;图4是根据本发明的一范例实施例所示出的存储器存储装置的概要框图;图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要框图;图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图;图7是根据本发明的一范例实施例所示出的根据数据所属的逻辑范围决定以特定编程模式来存储数据的示意图;图8是根据本发明的一范例实施例所示出的基于数据量来决定是否编程数据的示意图;图9与图10是根据本发明的一范例实施例所示出的管理缓冲存储器中的数据的示意图;图11是根据本发明的一范例实施例所示出的管理缓冲存储器中的数据的示意图;图12是根据本发明的一范例实施例所示出的存储器控制方法的流程图。具体实施方式现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在附图和描述中用来表示相同或相似部分。一般而言,存储器存储装置(亦称,存储器存储系统)包括可复写式非易失性存储器模块(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可例如是u盘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可为其所使用的安全数位(securedigital,sd)卡32、小型快闪(compactflash,cf)卡33或嵌入式存储装置34等各式非易失性存储器存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmultimediacard,emmc)341和/或嵌入式多芯片封装(embeddedmultichippackage,emcp)存储装置342等各类型将存储器模块直接连接于主机系统的基板上的嵌入式存储装置。图4是根据本发明的一范例实施例所示出的存储器存储装置的概要框图。请参照图4,存储器存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。连接接口单元402用以将存储器存储装置10连接至主机系统11。存储器存储装置10可通过连接接口单元402与主机系统11通信。在本范例实施例中,连接接口单元402是相容于串行高级技术附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402亦可以是符合并行高级技术附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、存储棒(memorystick,ms)接口标准、mcp接口标准、mmc接口标准、emmc接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与擦除等运作。可复写式非易失性存储器模块406是连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(quadlevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下亦称为阈值电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制门(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制门,可以改变电荷补捉层的电子量,进而改变存储单元的阈值电压。此改变存储单元的阈值电压的操作亦称为“把数据写入至存储单元”或“编程(programming)存储单元”。随着阈值电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。在本范例实施例中,可复写式非易失性存储器模块406的存储单元可构成多个物理编程单元,并且此些物理编程单元可构成多个物理擦除单元。具体来说,同一条字线上的存储单元可组成一或多个物理编程单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的物理编程单元可至少可被分类为下物理编程单元与上物理编程单元。例如,一存储单元的最低有效比特(leastsignificantbit,lsb)是属于下物理编程单元,并且一存储单元的最高有效比特(mostsignificantbit,msb)是属于上物理编程单元。一般来说,在mlcnand型快闪存储器中,下物理编程单元的写入速度会大于上物理编程单元的写入速度,和/或下物理编程单元的可靠度是高于上物理编程单元的可靠度。在本范例实施例中,物理编程单元为编程的最小单元。即,物理编程单元为写入数据的最小单元。例如,物理编程单元可为物理页面(page)或是物理扇(sector)。若物理编程单元为物理页面,则此些物理编程单元可包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个物理扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,纠错码等管理数据)。在本范例实施例中,数据比特区包含32个物理扇,且一个物理扇的大小为512字节(byte,b)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的物理扇,并且每一个物理扇的大小也可以是更大或更小。另一方面,物理擦除单元为擦除的最小单位。亦即,每一物理擦除单元含有最小数目的一并被擦除的存储单元。例如,物理擦除单元为物理块(block)。图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要框图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器存储装置10运作时,此些控制指令会被执行以进行数据的写入、读取与擦除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与擦除等运作。在另一范例实施例中,存储器管理电路502的控制指令亦可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与擦除等运作。此外,在另一范例实施例中,存储器管理电路502的控制指令亦可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器擦除电路与数据处理电路是连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或存储单元群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器擦除电路用以对可复写式非易失性存储器模块406下达擦除指令序列以将数据从可复写式非易失性存储器模块406中擦除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及擦除指令序列可各别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及擦除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。主机接口504是连接至存储器管理电路502。存储器管理电路502可通过主机接口504与主机系统11通信。主机接口504可用以接收与识别主机系统11所传送的指令与数据。例如,主机系统11所传送的指令与数据可通过主机接口504来传送至存储器管理电路502。此外,存储器管理电路502可通过主机接口504将数据传送至主机系统11。在本范例实施例中,主机接口504是相容于sata标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是相容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。存储器接口506是连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会通过存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示擦除数据的擦除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。在一范例实施例中,存储器控制电路单元404还包括差错校验电路508、缓冲存储器510与电源管理电路512。差错校验电路508是连接至存储器管理电路502并且用以执行差错校验操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,差错校验电路508会为对应此写入指令的数据产生对应的纠错码(errorcorrectingcode,ecc)和/或检错码(errordetectingcode,edc),并且存储器管理电路502会将对应此写入指令的数据与对应的纠错码和/或检错码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的纠错码和/或检错码,并且差错校验电路508会依据此纠错码和/或检错码对所读取的数据执行差错校验操作。缓冲存储器510是连接至存储器管理电路502并且用以缓存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是连接至存储器管理电路502并且用以控制存储器存储装置10的电源。在一范例实施例中,图4的可复写式非易失性存储器模块406亦称为快闪(flash)存储器模块,存储器控制电路单元404亦称为用于控制快闪存储器模块的快闪存储器控制器,和/或图5的存储器管理电路502亦称为快闪存储器管理电路。图6是根据本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。请参照图6,存储器管理电路502会将可复写式非易失性存储器模块406的物理单元610(0)~610(b)逻辑地分组至存储区601与替换区602。存储区601中的物理单元610(0)~610(a)是用以存储数据,而替换区602中的物理单元610(a+1)~610(b)则是用以替换存储区601中损坏的物理单元。例如,若从某一个物理单元中读取的数据所包含的错误过多而无法被更正时,此物理单元会被视为是损坏的物理单元。须注意的是,若替换区602中没有可用的物理擦除单元,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(writeprotect)状态,而无法再写入数据。在本范例实施例中,每一个物理单元是指一个物理编程单元。然而,在另一范例实施例中,一个物理单元亦可以是指一个物理地址、一个物理擦除单元或由多个连续或不连续的物理地址组成。存储器管理电路502会配置逻辑单元612(0)~612(c)以映射存储区601中的物理单元610(0)~610(a)。在本范例实施例中,每一个逻辑单元是指一个逻辑地址。然而,在另一范例实施例中,一个逻辑单元也可以是指一个逻辑编程单元、一个逻辑擦除单元或者由多个连续或不连续的逻辑地址组成。此外,逻辑单元612(0)~612(c)中的每一者可被映射至一或多个物理单元。在一范例实施例中,存储器管理电路502可将逻辑单元与物理单元之间的映射关系(亦称为逻辑-物理地址映射关系)记录于至少一逻辑-物理地址映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-物理地址映射表来执行对于存储器存储装置10的数据存取操作。在一范例实施例中,存储器管理电路502可从主机系统11接收写入指令。此写入指令可指示存储属于某一逻辑单元的数据。存储器管理电路502可获得此待存储数据的类型并将此数据缓存于缓冲存储器510。须注意的是,缓存于缓冲存储器510中的数据可包括第一类数据与第二类数据。在一范例实施例中,存储器管理电路502可根据某一待存储数据所属的逻辑单元而决定此数据是属于第一类数据或第二类数据。例如,假设某一待存储数据所属的逻辑单元落于某一逻辑范围(亦称为第一逻辑范围),存储器管理电路502可判定此数据是属于第一类数据。或者,假设某一待存储数据所属的逻辑单元落于另一逻辑范围(亦称为第二逻辑范围),存储器管理电路502可判定此数据是属于第二类数据。第一逻辑范围可不同于第二逻辑范围。在一范例实施例中,第一类数据是指默认是以某一编程模式(亦称为第一编程模式)存储至可复写式非易失性存储器模块406的数据。第二类数据是指默认是以另一编程模式(亦称为第二编程模式)存储至可复写式非易失性存储器模块406的数据。第一编程模式不同于第二编程模式。在一范例实施例中,第一编程模式是用以将p个比特存储于可复写式非易失性存储器模块406中的单一个存储单元,而第二编程模式是用以将q个比特存储于可复写式非易失性存储器模块406中的单一个存储单元。p与q皆为正整数,且p不等于q。在一范例实施例中,第一编程模式是指slc编程模式、虚拟(pseudo)slc编程模式、下物理编程(lowerphysicalprogramming)模式、混合编程(mixtureprogramming)模式及少层存储单元(lesslayermemorycell)模式的其中之一。在slc编程模式与虚拟slc编程模式中,一个存储单元只存储一个比特的数据。在下物理编程模式中,只有下物理编程单元会被编程,而此下物理编程单元所对应的上物理编程单元可不被编程。在混合编程模式中,有效数据(或真实数据)会被编程于下物理编程单元中,而同时虚拟数据(dummydata)会被编程至存储有效数据的下物理编程单元所对应的上物理编程单元中。在少层存储单元模式中,一个存储单元存储一第一数目的比特的数据。例如,此第一数目可设为“1”。在一范例实施例中,第二编程模式是指mlc编程模式、tlc编程模式、qlc编程模式或类似模式。在第二编程模式中,一个存储单元可存储有一第二数目的比特的数据,其中此第二数目等于或大于“2”。例如,此第二数目可设为“2”、“3”或“4”。在另一范例实施例中,上述第一编程模式中的第一数目与第二编程模式中的第二数目皆可以是其他数目,只要满足第二数目大于第一数目即可。在一范例实施例中,p小于q。例如,p可为“1”,而q可为“2”、“3”或“4”。图7是根据本发明的一范例实施例所示出的根据数据所属的逻辑范围决定以特定编程模式来存储数据的示意图。请参照图7,假设将所有逻辑单元(例如图6的逻辑单元612(0)~612(c))所涵盖的逻辑范围划分为逻辑范围0~l(1)及l(1)~l(2)。逻辑范围0~l(1)可视为第一逻辑范围。逻辑范围l(1)~l(2)可视为第二逻辑范围。在一范例实施例中,以1tb的总逻辑范围为例,逻辑范围0~l(1)可以是指0~100gb之间的逻辑范围,而逻辑范围l(1)~l(2)可以是指100gb~1tb之间的逻辑范围。然而,在另一范例实施例中,逻辑范围的划分可视实务需求调整。在一范例实施例中,若某一待存储数据所属的逻辑单元位于逻辑范围0~l(1)中,则存储器管理电路502可判定此数据是属于第一类数据并且后续将以第一编程模式来编程此数据。或者,在一范例实施例中,若某一待存储数据所属的逻辑单元位于逻辑范围l(1)~l(2)中,则存储器管理电路502可判定此数据是属于第二类数据并且后续将以第二编程模式来编程此数据。在一范例实施例中,存储器管理电路502可持续判断缓冲存储器510中的第一类数据或第二类数据的数据量是否达到某一门槛值(亦称为第一门槛值)。此第一门槛值对应于可复写式非易失性存储器模块406的一个基本写入数据单位。例如,假设此基本写入数据单位规范单次的数据写入是以16kb为单位,则此第一门槛值可为16kb。在一范例实施例中,一个基本写入数据单位可对应一个物理单元(例如一个物理编程单元)的容量。在一范例实施例中,若缓冲存储器510中的第一类数据的数据量达到第一门槛值,存储器管理电路502可发送写入指令序列至可复写式非易失性存储器模块406以指示可复写式非易失性存储器模块406基于第一编程模式来存储缓冲存储器510中数据量达到第一门槛值的第一类数据。或者,在一范例实施例中,若缓冲存储器510中的第二类数据的数据量达到第一门槛值,存储器管理电路502可发送写入指令序列至可复写式非易失性存储器模块406以指示可复写式非易失性存储器模块406基于第二编程模式来存储缓冲存储器510中数据量达到第一门槛值的第二类数据。在一范例实施例中,若缓冲存储器510中的第一类数据的数据量未达第一门槛值,则存储器管理电路502可暂时将第一类数据保存于缓冲存储器510中且暂不将缓冲存储器510中的第一类数据存储至可复写式非易失性存储器模块406。或者,在一范例实施例中,若缓冲存储器510中的第二类数据的数据量未达第一门槛值,则存储器管理电路502可暂时将第二类数据保存于缓冲存储器510中且暂不将缓冲存储器510中的第二类数据存储至可复写式非易失性存储器模块406。图8是根据本发明的一范例实施例所示出的基于数据量来决定是否编程数据的示意图。请参照图8,假设第一门槛值为16kb。若缓冲存储器510中的数据801(可为第一类数据或第二类数据)的数据量达到16kb,则数据801可被编程至可复写式非易失性存储器模块406。然而,若另一数据(可为第一类数据或第二类数据)中的一部分数据802的数据量达到16kb但另一部分的数据803的数据量(例如4kb)未达16kb,则仅数据802可被编程,数据803须暂时保存于缓冲存储器510中而不被编程。须注意的是,在前述范例实施例中关于数据量是否大于第一门槛值的判断,是以缓冲存储器510中相同类型的数据的总数据量来与第一门槛值进行比较,而不是以混合类型的数据的总数据量来与第一门槛值进行比较。也就是说,在一范例实施例中,假设缓冲存储器510中的第一类数据的数据量为8kb且第二类数据的数据量为12kb。虽然第一类数据的数据量与第二类数据的数据量的总和(例如20kb)大于第一门槛值(例如16kb),但由于第一类数据的数据量与第二类数据的数据量皆未达到第一门槛值,故缓冲存储器510中的第一类数据与第二类数据皆不会被编程至可复写式非易失性存储器模块406。在一范例实施例中,存储器管理电路502可将第一类数据缓存于缓冲存储器510中的特定存储空间(亦称为第一存储空间)。在第一类数据缓存于缓冲存储器510的状态下,存储器管理电路502可将第二类数据同时缓存于缓冲存储器510中的另一存储空间(亦称为第二存储空间)并将缓冲存储器510中达到第一门槛值的第二类数据存储至可复写式非易失性存储器模块406。例如,缓冲存储器510中数据量大于第一门槛值的第二类数据可持续基于第二编程模式而编程可复写式非易失性存储器模块406中。须注意的是,第一存储空间与第二存储空间彼此不重叠。因此,缓冲存储器510中的第一类数据与第二类数据可同时存在且不彼此覆写。在一范例实施例中,在缓冲存储器510中的第一类数据的数据量未达第一门槛值的状态下,若缓冲存储器510中的第二类数据的数据量达到另一门槛值(亦称为第二门槛值),存储器管理电路502可将缓冲存储器510中的第一类数据存储至可复写式非易失性存储器模块406中。换言之,在一范例实施例中,即便缓冲存储器510中的第一类数据的数据量未达第一门槛值,只要缓冲存储器510中的第二类数据的数据量达到第二门槛值,存储器管理电路502即可直接基于第一编程模式将缓冲存储器510中的第一类数据编程至可复写式非易失性存储器模块406中。第二门槛值大于第一门槛值。图9与图10是根据本发明的一范例实施例所示出的管理缓冲存储器中的数据的示意图。请参照图9,假设第一类数据d(1)先被存储至缓冲存储器510且第一类数据d(1)的数据量(例如4kb)未达第一门槛值th(1)。之后,第二类数据d(2)开始被接收并且也存储于缓冲存储器510中。在接收第二类数据d(2)的同时,符合写入条件(即数据量大于第一门槛值th(1)的条件)的第二类数据可持续被存储至可复写式非易失性存储器模块406。在某一时间点,缓冲存储器510中的第二类数据d(2)的数据量(例如2mb)达到第二门槛值th(2)。响应于第二类数据d(2)的数据量达到第二门槛值th(2),对于第一类数据d(1)的数据整理可被触发。响应于第一类数据d(1)的数据整理被触发,缓冲存储器510中的第一类数据d(1)可直接被存储至可复写式非易失性存储器模块406,如图10所示。此时,所存储的第一类数据d(1)可不符合默认的写入条件(即数据量大于第一门槛值th(1)的条件)。在图9与图10的范例实施例中,当缓冲存储器510中累积一定量的第二类数据d(2)(而非写满缓冲存储器510)时即触发对于第一类数据d(1)的数据整理,可减少因突然的断电而导致较早接收到的第一类数据d(1)意外遗失的机率。在一范例实施例中,在触发对于第一类数据d(1)的数据整理后,直到缓冲存储器510中的第一类数据d(1)被完整存储至可复写式非易失性存储器模块406之前,新的第二类数据d(2)可持续被缓存至缓冲存储器510中的未使用空间。但是,在触发对于第一类数据d(1)的数据整理后,直到缓冲存储器510中的第一类数据d(1)被完整存储至可复写式非易失性存储器模块406之前,第二类数据d(2)可被暂停存储至可复写式非易失性存储器模块406中,以避免干扰第一类数据d(1)的存储和/或加速对于第一类数据d(1)的存储。在一范例实施例中,存储器管理电路502可根据缓冲存储器510的容量(即总容量)决定第二门槛值。例如,存储器管理电路502可根据缓冲存储器510的容量的一半或者其他比例值来决定第二门槛值。以图9为例,假设缓冲存储器510的容量为4mb,则存储器管理电路502可根据缓冲存储器510的容量的一半将第二门槛值th(2)决定为2mb。在图9的范例实施例中,在缓冲存储器510中的第一类数据d(1)的数据量未达第一门槛值th(1)的状态下,若缓冲存储器510中的第二类数据d(2)的数据量也未达第二门槛值th(2)(即在触发对第一类数据d(1)的数据整理之前),则存储器管理电路502可将第一类数据d(1)保存于缓冲存储器510且不将缓冲存储器510中的第一类数据d(1)存储至可复写式非易失性存储器模块406中。但是,若缓冲存储器510中的第一类数据d(1)的数据量达到第一门槛值th(1),则存储器管理电路502即可将缓冲存储器510中的第一类数据d(1)存储至可复写式非易失性存储器模块406中。图11是根据本发明的一范例实施例所示出的管理缓冲存储器中的数据的示意图。请参照图11,在一范例实施例中,在缓冲存储器510中同时保存了第一类数据d(1)与第二类数据d(2)的状态下,若第一类数据d(1)的累积数据量(即总数据量)达到第一门槛值th(1)(例如16kb),则存储器管理电路502可将缓冲存储器510中的第一类数据d(1)存储至可复写式非易失性存储器模块406中。此时,缓冲存储器510中的第二类数据d(2)的数据量可能未达到第二门槛值th(2)。须注意的是,在前述范例实施例中,响应于缓冲存储器510中的第一类数据d(1)本身的数据量达到第一门槛值th(1),缓冲存储器510中的第一类数据d(1)可被存储至可复写式非易失性存储器模块406。此外,响应于缓冲存储器510中的第二类数据d(2)的数据量达到第二门槛值th(2),第一类数据d(1)的数据整理也可被触发,以将缓冲存储器510中的第一类数据d(1)存储至可复写式非易失性存储器模块406。藉此,可有效减少因突然的断电而导致较早接收到的第一类数据d(1)意外遗失的机率。在一范例实施例中,在采用前述范例实施例所提出的数据管理机制后,当存储器存储装置10发生无预警断电时,无论缓冲存储器510中的第一类数据d(1)是否已被存储至可复写式非易失性存储器模块406,缓冲存储器510中可能会遗失的数据的总数据量可以被控制在合理范围,从而提高后续错误处理或电源恢复的执行效率。图12是根据本发明的一范例实施例所示出的存储器控制方法的流程图。请参照图12,在步骤s1201中,将第一类数据缓存于所述缓冲存储器中的第一存储空间,其中所述第一类数据默认是以第一编程模式存储至可复写式非易失性存储器模块。在步骤s1202中,在所述第一类数据缓存于所述缓冲存储器的状态下,将第二类数据缓存于所述缓冲存储器中的第二存储空间,其中所述第二类数据默认是以第二编程模式存储至所述可复写式非易失性存储器模块,且所述第一编程模式不同于所述第二编程模式。在步骤s1203中,判断第一类数据的数据量是否达到第一门槛值。若第一类数据的数据量达到第一门槛值,在步骤s1204中,将第一类数据存储至可复写式非易失性存储器模块。若第一类数据的数据量未达到第一门槛值,在步骤s1205中,判断第二类数据的数据量是否达到第二门槛值。若第二类数据的数据量达到第二门槛值,在步骤s1206中,将所述缓冲存储器中的所述第一类数据存储至所述可复写式非易失性存储器模块中,其中所述第一门槛值小于所述第二门槛值。此外,若第二类数据的数据量未达到第二门槛值,可回到步骤s1201(或s1202)。然而,图12中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图12中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图12的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,在多种编程模式(例如slc与qlc)并存的多分流写入的存储器存储装置中,通过监控缓冲存储器中第二类数据的数据量来额外触发对于第一类数据的数据整理,可减少缓冲存储器中早期接收的数据意外遗失的机率和/或降低非预期断电时可能会遗失的总数据量。藉此,可有效提高对于缓存数据的管理效率。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1