数据写入方法、内存控制电路单元与内存储存装置与流程

文档序号:11434109阅读:202来源:国知局
本发明涉及一种应用于可复写式非易失性内存的数据写入方法、内存控制电路单元与内存储存装置。
背景技术
::数码相机、手机与mp3在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性内存(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于可携式电子产品,例如笔记本电脑。固态硬盘就是一种以闪存模块作为储存媒体的内存储存装置。因此,近年闪存产业成为电子产业中相当热门的一环。在反及(nand)型闪存模块中,实体程序化单元是由排列在同一条字符在线的多个记忆胞所组成。依据每个记忆胞可储存的位数,nand型闪存模块可区分为单阶储存单元(singlelevelcell,slc)nand型闪存模块、多阶储存单元(multilevelcell,mlc)nand型闪存模块与三阶储存单元(trinarylevelcell,tlc)nand型闪存模块,其中slcnand型闪存模块的每个记忆胞可储存1个位的数据(即,“1”与“0”),mlcnand型闪存模块的每个记忆胞可储存2个位的数据并且tlcnand型闪存模块的每个记忆胞可储存3个位的数据。由于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型闪存模块中,若要确保一条字符在线的数据可稳定的被储存,必须对此字符线完成三次程序化。例如,对第一条字符在线的记忆胞进行第一次的程序化后,第一条字符在线的记忆胞会处于第一状态(firststate)。而在对第二条字符在线的记忆胞进行程序化的同时第一条字符在线的记忆胞会再次被程序化。此时,第一条字符在线的记忆胞会处于模糊状态(foggystate)。然后,在对第三条字符在线的记忆胞进行程序化的同时第一条字符、第二条字符在线的记忆胞会再次被程序化,此时,第一条字符在线的记忆胞会处于良好状态(finestate)。再者,在对第四条字符在线的记忆胞进行程序化的同时第二条字符、第三条字符在线的记忆胞会再次被程序化。此时,第二条字符在线的记忆胞会处于良好状态,由此第一条字符在线的记忆胞中的数据才能被确保是稳定的储存。在一情形下,当主机系统下达终止指令(suspendcommand)以将主机系统关机时,会伴随着下达清仓指令(flushcommand)以将暂存在缓冲存储器中的暂存数据写入至闪存中,以避免暂存数据因断电后而遗失。而基于上述tlcnand型闪存模块的硬件限制,为了能够确保缓冲存储器中的暂存数据已被稳定地储存至tlcnand型闪存模块,内存控制电路单元在将缓冲存储器中的暂存数据写入至tlcnand型闪存模块的一作动实体抹除单元后,会使用虚拟数据(dummydata)对接续的另外三条字符线进行程序化,以确保来自缓冲存储器中的暂存数据已被稳定地储存至tlcnand型闪存模块中。然而,闪存模块的写入或抹除次数是有限的,写入无效数据会缩短tlcnand型闪存模块的使用寿命。技术实现要素:本发明提供一种数据写入方法、内存控制电路单元与内存储存装置,能够在当主机系统下达默认指令时,将缓冲存储器的数据写入至闪存模块并且执行有效数据的搬移,避免储存无效数据,延长闪存模块的使用寿命。本发明的一范例实施例提供一种数据写入方法,用于一内存储存装置的可复写式非易失性内存模块,其中内存储存装置具有缓冲存储器,可复写式非易失性内存模块具有多个实体抹除单元,此些实体抹除单元之中的每一个具有多个实体程序化单元。本方法包括:判断是否从主机系统中接收到默认指令。本方法还包括:当从主机系统中接收到默认指令时,将缓冲存储器中的暂存数据写入至实体抹除单元之中的第一实体抹除单元,并从实体抹除单元中选择第二实体抹除单元。本方法还包括:将第二实体抹除单元中的有效数据写入至第一实体抹除单元。在本发明的一实施例中,在将第二实体抹除单元中的有效数据写入至第一实体抹除单元的步骤包括以有效数据填满第一实体抹除单元的可用储存空间。在本发明的一实施例中,其中默认指令为清仓指令或终止指令。在本发明的一实施例中,上述的数据写入方法还包括:判断暂存数据的数量是否小于默认门槛值;当暂存数据的数量小于默认门槛值时,将虚拟数据写入第一实体抹除单元中;以及仅当暂存数据的数量非小于默认门槛值时,执行上述从实体抹除单元中选择第二实体抹除单元,并且将第二实体抹除单元中的有效数据写入至第一实体抹除单元的步骤。在本发明的一实施例中,上述的数据写入方法还包括对第二实体抹除单元进行抹除操作。在本发明的一实施例中,其中所述实体程序化单元包括多个下实体程序化单元、多个中实体程序化单元与多个上实体程序化单元。本发明一范例实施例提供一种用于控制可复写式非易失性内存模块的内存控制电路单元。此内存控制电路单元包括:用以电性连接至主机系统的主机接口;用以电性连接至可复写式非易失性内存模块的内存接口,其中可复写式非易失性内存模块具有多个实体抹除单元,此些实体抹除单元之中的每一个具有多个实体程序化单元;电性连接至主机接口及内存接口的缓冲存储器,此缓冲存储器用以储存暂存数据;以及电性连接至主机接口、内存接口与缓冲存储器的内存管理电路。内存管理电路用以判断是否从该主机系统中接收到一默认指令。当从主机系统中接收到默认指令时,内存管理电路更用以下达第一指令序列以将缓冲存储器中的暂存数据写入至实体抹除单元之中的第一实体抹除单元,并从实体抹除单元中选择第二实体抹除单元。内存管理电路更用以下达第二指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元。在本发明的一实施例中,在将第二实体抹除单元中的有效数据写入至第一实体抹除单元的运作包括内存管理电路以有效数据填满第一实体抹除单元的可用储存空间。在本发明的一实施例中,其中默认指令为清仓指令或终止指令。在本发明的一实施例中,内存管理电路更用以判断暂存数据的数量是否小于默认门槛值,当暂存数据的数量小于默认门槛值时,内存管理电路更用以下达第三指令序列以将虚拟数据写入第一实体抹除单元中,仅当暂存数据的数量非小于默认门槛值时,内存管理电路用以执行上述从实体抹除单元中选择第二实体抹除单元,并且下达第二指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元的运作。在本发明的一实施例中,内存管理电路更用以下达第四指令序列以对第二实体抹除单元进行抹除操作。在本发明的一实施例中,其中实体程序化单元包括多个下实体程序化单元、多个中实体程序化单元与多个上实体程序化单元。本发明一范例实施例提供一种内存储存装置。其包括:用以电性连接至主机系统的连接接口单元、可复写式非易失性内存模块以及电性连接至连接接口单元与可复写式非易失性内存模块的内存控制电路单元。其中可复写式非易失性内存具有多个实体抹除单元,此些实体抹除单元之中的每一个具有多个实体程序化单元。其中内存控制电路单元包括缓冲存储器,缓冲存储器用以储存暂存数据。内存控制电路单元用以判断是否从主机系统中接收到默认指令。当从主机系统中接收到默认指令时,内存控制电路单元更用以下达第一指令序列以将缓冲存储器中的暂存数据写入至实体抹除单元之中的第一实体抹除单元,并从实体抹除单元中选择第二实体抹除单元。内存控制电路单元更用以下达第二指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元。在本发明的一实施例中,在将第二实体抹除单元中的有效数据写入至第一实体抹除单元的运作包括内存控制电路单元以有效数据填满第一实体抹除单元的可用储存空间。在本发明的一实施例中,其中默认指令为清仓指令或终止指令在本发明的一实施例中,内存控制电路单元更用以判断暂存数据的数量是否小于默认门槛值,当暂存数据的数量小于默认门槛值时,内存控制电路单元更用以下达第三指令序列以将虚拟数据写入第一实体抹除单元中,仅当暂存数据的数量非小于默认门槛值时,内存控制 电路单元用以执行上述从实体抹除单元中选择第二实体抹除单元,并且下达第二指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元的运作内存控制电路单元。在本发明的一实施例中,其中内存控制电路单元更用以下达第四指令序列以对第二实体抹除单元进行抹除操作。在本发明的一实施例中,其中实体程序化单元包括多个下实体程序化单元、多个中实体程序化单元与多个上实体程序化单元。基于上述,本发明的数据写入方法可以在收到主机系统下达的默认指令时,将缓冲存储器的暂存数据储存至可复写式非易失性内存中的实体抹除单元中,并且将其他实体抹除单元中的有效数据写入至此实体抹除单元,藉此可以有效地提升可复写式非易失性内存的使用效率,延长可复写式非易失性内存的寿命。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;图2是根据另一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;图3是根据本发明范例实施例所显示的主机系统与内存储存装置的示意图;图4是根据一范例实施例所显示的主机系统与内存储存装置的概要方框图;图5a与图5b是根据一范例实施例所显示的记忆胞储存架构与实体抹除单元的示意图;图6是根据一范例实施例所显示的内存控制电路单元的概要方框图;图7与图8是根据一范例实施例所显示的管理实体抹除单元的范例示意图;图9a~图9c是根据一范例实施例所显示的数据写入的范例示意图;图10是根据一范例实施例所显示的数据写入方法的流程图。附图标记:10:内存储存装置11:主机系统12:输入/输出(i/o)装置110:系统总线111:处理器112:随机存取内存(ram)113:只读存储器(rom)114:数据传输接口20:主板201:随身碟202:记忆卡203:固态硬盘:204:无线内存储存装置205:全球定位系统模块206:网络适配器207:无线传输装置208:键盘209:屏幕210:喇叭30:内存储存装置31:主机系统32:sd卡33:cf卡34:嵌入式储存装置341:嵌入式多媒体卡342:嵌入式多芯片封装储存装置402:连接接口单元404:内存控制电路单元406:可复写式非易失性内存模块410(0)~410(n):实体抹除单元502:内存管理电路504:主机接口506:内存接口508:缓冲存储器510:电源管理电路512:错误检查与校正电路602:数据区604:闲置区606:系统区608:取代区lba(0)~lba(h):逻辑地址lz(0)~lz(m):逻辑区域d0(0)~d0(41)、d1(0)~d1(41)、d2(0)~d2(85):有效数据bd(1)、bd(2):暂存数据s1001:判断是否从主机系统中接收到默认指令的步骤s1003:当从主机系统中接收到默认指令时,将缓冲存储器中的暂存数据写入至实体抹除单元之中的第一实体抹除单元的步骤s1005:判断暂存数据的数量是否小于默认门槛值的步骤s1007:将虚拟数据写入第一实体抹除单元中的步骤s1009:从实体抹除单元中选择第二实体抹除单元的步骤s1011:将第二实体抹除单元中的有效数据写入至第一实体抹除单元的步骤具体实施方式一般而言,内存储存装置(亦称,内存储存系统)包括可复写式非易失性内存模块与控制器(亦称,控制电路单元)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。图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可例如是近距离无线通信(nearfieldcommunicationstorage,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)标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、安全数字(securedigital,sd)接口标准、记忆棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体储存卡(multimediacard,mmc)接口标准、嵌入式多媒体储存卡(embeddedmultimediacard,emmc)接口标准、通用闪存(universalflashstorage,ufs)接口标准、嵌入式多芯片封装(embeddedmultichippackage,emcp)接口标准、小型快闪(compactflash,cf)接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。在本范例实施例中,连接接口单元402可与内存控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含内存控制电路单元的芯片外。内存控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令,并且根据主机系统11的指令在可复写式非易失性内存模块406中进行数据的写入、读取与抹除等运作。可复写式非易失性内存模块406是电性连接至内存控制电路单元404,并且用以储存主机系统11所写入的数据。可复写式非易失性内存模块406具有实体抹除单元410(0)~410(n)。例如,实体抹除单元410(0)~410(n)可属于同一个内存晶粒(die)或者属于不同的内存晶粒。每一实体抹除单元分别具有多个实体程序化单元,其中属于同一个实体抹除单元的实体程序化单元可被独立地写入且被同时地抹除。然而,必须了解的是,本发明不限于此,每一实体抹除单元是可由64个实体程序化单元、256个实体程序化单元或其他任意个实体程序化单元所组成。更详细来说,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目之一并被抹除的记忆胞。实体程序化单元为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。每一实体程序化单元通常包括数据位区与冗余位区。数据位区包含多个实体存取地址用以储存用户的数据,而冗余位区用以储存系统的数据(例如,控制信息与错误更正码)。在本范例实施例中,每一个实体程序化单元的数据位区中会包含8个实体存取地址,且一个实体存取地址的大小为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个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元亦是依据此方式被区分为多个实体程序化单元组。也就是说,在图5b的范例实施例中,实体抹除单元总共有258个实体程序化单元,且由于排列在同一条字符在线的多个记忆胞所组成的下实体程序化单元、中实体程序化单元与上实体程序化单元会组成一个实体程序化单元组,故图5b的实体抹除单元总共可以分成86个实体程序化单元组。然而需注意的是,本发明并不用于限定实体抹除单元中的实体程序化单元或实体程序化单元组的个数。图6是根据一范例实施例所显示的内存控制电路单元的概要方框图。请参照图6,内存控制电路单元404包括内存管理电路502、主机接口504与内存接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。内存管理电路502用以控制内存控制电路单元404的整体运作。具体来说,内存管理电路502具有多个控制指令,并且在内存储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。在本范例实施例中,内存管理电路502的控制指令是以固件型式来实作。例如,内存管理电路502具有微处理器单元(未显示)与只读存储器(未显示),并且此些控制指令是被刻录至此只读存储器中。当内存储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。图7与图8是根据一范例实施例所显示之管理实体抹除单元的范例示意图。必须了解的是,在此描述可复写式非易失性内存模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性内存模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性内存模块的实体抹除单元进行操作。请参照图7,内存控制电路单元404(或内存管理电路502)会将实体抹除单元410(0)~410(n)逻辑地分组为数据区602、闲置区604、系统区606与取代区608。逻辑上属于数据区602与闲置区604的实体抹除单元是用以储存来自于主机系统11的数据。具体来说,数据区602的实体抹除单元是被视为已储存数据的实体抹除单元,而闲置区 604的实体抹除单元是用以替换数据区602的实体抹除单元。也就是说,当从主机系统11接收到写入指令与欲写入的数据时,内存管理电路502会使用从闲置区604中提取实体抹除单元来写入数据,以替换数据区602的实体抹除单元。逻辑上属于系统区606的实体抹除单元是用以记录系统数据。例如,系统数据包括关于可复写式非易失性内存模块的制造商与型号、可复写式非易失性内存模块的实体抹除单元数、每一实体抹除单元的实体程序化单元数等。逻辑上属于取代区608中的实体抹除单元是用于坏实体抹除单元取代程序,以取代损坏的实体抹除单元。具体来说,倘若取代区608中仍存有正常的实体抹除单元并且数据区602的实体抹除单元损坏时,内存管理电路502会从取代区608中提取正常的实体抹除单元来更换损坏的实体抹除单元。特别是,数据区602、闲置区604、系统区606与取代区608的实体抹除单元的数量会根据不同的内存规格而有所不同。此外,必须了解的是,在内存储存装置10的运作中,实体抹除单元关联至数据区602、闲置区604、系统区606与取代区608的分组关系会动态地变动。例如,当闲置区604中的实体抹除单元损坏而被取代区608的实体抹除单元取代时,则原本取代区608的实体抹除单元会被关联至闲置区604。请参照图8,内存控制电路单元404(或内存管理电路502)会配置逻辑地址lba(0)~lba(h)以映像数据区602的实体抹除单元,其中每一逻辑地址具有多个逻辑单元以映像对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑地址或更新储存于逻辑地址中的数据时,内存控制电路单元404(或内存管理电路502)会从闲置区604中提取一个实体抹除单元作为作动实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。并且,当此作为作动实体抹除单元的实体抹除单元被写满时,内存控制电路单元404(或内存管理电路502)会再从闲置区504中提取空的实体抹除单元作为作动实体抹除单元,以继续写入对应来自于主机系统1000的写入指令的更新数据。此外,当闲置区604中可用的实体抹除单元的数目小于默认值时,内存控制电路单元404(或内存管理电路502)会执行有效数据合并程序(亦称为,垃圾搜集(garbagecollecting)程序来整理数据区602中的有效数据,以将数据区602中无储存有效数据的实体抹除单元重新关联至闲置区604。为了识别每个逻辑地址的数据被储存在哪个实体抹除单元,在本范例实施例中,内存控制电路单元404(或内存管理电路502)会记录逻辑地址与实体抹除单元之间的映像。例如,在本范例实施例中,内存控制电路单元404(或内存管理电路502)会在可复写式非易失性内存模块406中储存逻辑地址-实体地址映像表来记录每一逻辑地址所映像的实体抹除单元。当欲存取数据时内存控制电路单元404(或内存管理电路502)会将逻辑地址-实体地址映像表加载至缓冲存储器508来维护,并且依据逻辑地址-实体地址映像表来写入或读取数据。值得一提的是,由于缓冲存储器508的容量有限无法储存记录所有逻辑地址的映像关系的映像表,因此,在本范例实施例中,内存控制电路单元404(或内存管理电路502)会将逻辑地址lba(0)~lba(h)分组为多个逻辑区域lz(0)~lz(m),并且为每一逻辑区域配置一个逻辑地址-实体地址映像表。特别是,当内存控制电路单元404(或内存管理电路502)欲更新某个逻辑地址的映像时,对应此逻辑地址所属的逻辑区域的逻辑地址-实体地址映像表会被加载至缓冲存储器508来被更新。在本发明另一范例实施例中,内存管理电路502的控制指令亦可以程序代码型式储存于 可复写式非易失性内存模块406的特定区域(例如,内存模块中专用于存放系统数据的系统区)中。此外,内存管理电路502具有微处理器单元(未显示)、只读存储器(未显示)及随机存取内存(未显示)。特别是,此只读存储器具有驱动码,并且当内存控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性内存模块406中之控制指令加载至内存管理电路502的随机存取内存中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。此外,在本发明另一范例实施例中,内存管理电路502的控制指令亦可以一硬件型式来实作。例如,内存管理电路502包括微控制器、记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路。记忆胞管理电路、内存写入电路、内存读取电路、内存抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性内存模块406的实体抹除单元;内存写入电路用以对可复写式非易失性内存模块406下达写入指令以将数据写入至可复写式非易失性内存模块406中;内存读取电路用以对可复写式非易失性内存模块406下达读取指令以从可复写式非易失性内存模块406中读取数据;内存抹除电路用以对可复写式非易失性内存模块406下达抹除指令以将数据从可复写式非易失性内存模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性内存模块406的数据以及从可复写式非易失性内存模块406中读取的数据。请再参照图6,主机接口504是电性连接至内存管理电路502并且用以电性连接至连接接口单元402,以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至内存管理电路502。在本范例实施例中,主机接口504是兼容于sata标准。然而,必须了解的是本发明不限于此,主机接口504亦可以是兼容于pata标准、ieee1394标准、pciexpress标准、usb标准、uhs-i接口标准、uhs-ii接口标准、sd标准、ms标准、mmc标准、cf标准、ide标准或其他适合的数据传输标准。内存接口506是电性连接至内存管理电路502并且用以存取可复写式非易失性内存模块406。也就是说,欲写入至可复写式非易失性内存模块406的数据会经由内存接口506转换为可复写式非易失性内存模块406所能接受的格式。缓冲存储器508是电性连接至内存管理电路502并且用以暂存来自于主机系统11的暂存数据与指令或来自于可复写式非易失性内存模块406的数据。电源管理电路510是电性连接至内存管理电路502并且用以控制内存储存装置10的电源。错误检查与校正电路512是电性连接至内存管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当内存管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路512会为对应此写入指令的数据产生对应的错误检查与校正码(errorcheckingandcorrectingcode,ecccode),并且内存管理电路502会将对应此写入指令的数据与对应的错误检查与校正码写入至可复写式非易失性内存模块406中。之后,当内存管理电路502从可复写式非易失性内存模块406中读取数据时会同时读取此数据对应的错误检查与校正码,并且错误检查与校正电路512会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。在本范例实施例中,当主机系统11下达终止指令(suspendcommand)以将主机系统11关机时,主机系统11亦会伴随着下达清仓指令(flushcommand)以将暂存在缓冲存储器中的暂存数据写入至可复写式非易失性内存模块406中,以避免暂存数据因断电后而遗失。而在另一 范例实施例中,当主机系统11下达终止指令以将主机系统11关机时,内存控制电路单元404(或内存管理电路502)会自动地执行清仓操作(flushoperation)以将暂存在缓冲存储器中的暂存数据写入至可复写式非易失性内存模块406中。接着,内存控制电路单元404(或内存管理电路502)会判断是否从主机系统11中接收到默认指令,其中默认指令例如是上述的清仓指令或终止指令。假设当内存控制电路单元404(或内存管理电路502)从主机系统11中接收到上述的默认指令时,内存控制电路单元404(或内存管理电路502)会执行本发明的数据写入方法。具体来说,当内存控制电路单元404(或内存管理电路502)从主机系统11接收到默认指令时,内存控制电路单元404(或内存管理电路502)会下达指令序列以将缓冲存储器508中的暂存数据写入至可复写式非易失性内存模块406的实体抹除单元410(0)~410(n)之中的作动实体抹除单元(以下亦可参考为第一实体除单元)中,以避免暂存数据因断电后而遗失。在本范例实施例中,内存控制电路单元404(或内存管理电路502)是从闲置区604中的实体抹除单元410(f)~410(s-1)的其中之一选取第一实体抹除单元。需注意的是,当内存控制电路单元404(或内存管理电路502)将缓冲存储器508中的暂存数据写入至第一实体抹除单元中后,倘若此时第一实体抹除单元仍有可用储存空间(即,第一实体抹除单元未被缓冲存储器508的暂存数据填满)时,则内存控制电路单元404(或内存管理电路502)会从可复写式非易失性内存模块406的其他实体抹除单元中写入有效数据至第一实体抹除单元。例如,在本范例实施例中,内存控制电路单元404(或内存管理电路502)会从数据区602的实体抹除单元410(0)~410(f-1)选取存有有效数据的实体抹除单元(以下称为第二实体抹除单元)。之后,内存控制电路单元404(或内存管理电路502)会下达指令序列以将此些第二实体抹除单元中的有效数据写入至第一实体抹除单元,并以此些有效数据填满第一实体抹除单元中的可用储存空间。特别是,倘若第二实体抹除单元中的有效数据皆已写入至第一实体抹除单元时,第二实体抹除单元中的数据皆会变成无效数据。特别是,在第二实体抹除单元中的数据皆会变成无效数据下,内存控制电路单元404(或内存管理电路502)可对第二实体抹除单元进行抹除操作,并且将第二实体抹除单元分组至闲置区602,以释放可复写式非易失性内存模块406可用的储存空间。需注意的是,在本发明的一范例实施例中,内存控制电路单元404(或内存管理电路502)在将缓冲存储器508中的暂存数据写入至第一实体抹除单元的运作之后且在内存控制电路单元404(或内存管理电路502)选取第二实体抹除单元的运作之前,内存控制电路单元404(或内存管理电路502)还可以判断暂存数据的数量是否小于默认门槛值。当暂存数据的数量小于默认门槛值时,内存控制电路单元404(或内存管理电路502)会下达指令序列以将至少一个虚拟数据写入第一实体抹除单元中。而仅当暂存数据的数量非小于默认门槛值时,内存控制电路单元404(或内存管理电路502)才会执行上述从实体抹除单元410(0)~410(n)中选择第二实体抹除单元,并且下达指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元的运作。为了更请楚地了解本发明的数据写入方法,图9a~图9c是根据一范例实施例所显示之数据写入的范例示意图。为方便说明,在此假设可复写式非易失性内存模块406中的数据区602具有3个实体抹除单元分别为实体抹除单元410(0)~410(2),闲置区604具有2个实体抹除单元分别为实体抹除单元410(3)~410(4)。特别是,在图9a~图9c的范例实施例中,可复写式非易失性内存模块 406是tlcnand型闪存模块,也就是说,每一个实体抹除单元410(0)~410(4)所拥有的实体程序化单元包括多个下实体程序化单元、多个中实体程序化单元以及多个上实体程序化单元。基于tlcnand型闪存模块中每一条字符在线的记忆胞皆必须完成三次程序化才能确保记忆胞的数据被稳定地储存的特性,在图9a~图9c的范例中假设数据是以一个“实体程序化单元组”为单位被写入,且每一实体抹除单元具有86个实体程序化单元组。其中关于tlcnand型闪存模块的实体程序化单元组的具体描述已详述于先前的图5a与图5b的范例实施例中,在此便不再赘述。而需注意的是,本发明不限于此,在其他范例实施例中,数据的写入亦可以是以一个实体程序化单元为单位或是更小的单位进行写入。请参照图9a,假设在图9a的内存储存装置10的状态中,数据区602的实体抹除单元410(0)的第0~41个实体程序化单元组分别储存了有效数据d0(0)~d0(41),实体抹除单元410(1)的第0~41个实体程序化单元组分别储存了有效数据d1(0)~d1(41),且实体抹除单元410(2)的第0~85个实体程序化单元组分别储存了有效数据d2(0)~d2(85)。其中,实体抹除单元410(0)的第42~85个实体程序化单元组中所储存的数据以及实体抹除单元410(1)的第42~85个实体程序化单元组中所储存的数据分别被内存控制电路单元404(或内存管理电路502)识别为无效的数据。假设在图9a的状态中,主机系统11下达终止指令以将主机系统11关机,并且主机系统11伴随着下达清仓指令以将暂存在缓冲存储器中的暂存数据写入至可复写式非易失性内存模块406中。此时,当内存控制电路单元404(或内存管理电路502)收到来自主机系统11所下达的终止指令或清仓指令后,内存控制电路单元404(或内存管理电路502)会从闲置区604中选择例如实体抹除单元410(3)(以下参考为,第一实体抹除单元),用以储存缓冲存储器508中的暂存数据。在本范例实施例中,假设缓冲存储器508中的暂存数据分别为暂存数据bd(1)~bd(2),则内存控制电路单元404(或内存管理电路502)会下达指令序列以将缓冲存储器508中的暂存数据bd(1)~bd(2)分别写入至实体抹除单元410(3)的第1~2个实体程序化单元组中。需注意的是,在本发明一实施例中,内存控制电路单元404(或内存管理电路502)在将缓冲存储器508中的暂存数据bd(1)~bd(2)分别写入至实体抹除单元410(3)的第1~2个实体程序化单元组中的运作之后,内存控制电路单元404(或内存管理电路502)还可以判断暂存数据bd(1)~bd(2)的数量是否小于默认门槛值。在一范例实施例中,默认门槛值可以例如被设为43。当暂存数据bd(1)~bd(2)的数量小于默认门槛值时,内存控制电路单元404(或内存管理电路502)会下达指令序列以使用至少一个虚拟数据填满实体抹除单元410(3)在储存了暂存数据bd(1)~bd(2)后剩余的可用储存空间。而在另一范例实施例中,基于一条字符在线的记忆胞须被进行三次程序化之后才能确保此字符在线的记忆胞中的数据被稳定地储存的特性,当暂存数据bd(1)~bd(2)的数量小于默认门槛值时,内存控制电路单元404(或内存管理电路502)也可以使用至少一个虚拟数据写入实体抹除单元410(3)在储存了暂存数据bd(1)~bd(2)后剩余的“部分的”可用储存空间,其中用于写入实体抹除单元410(3)的虚拟数据的数目刚好可以使得暂存数据bd(1)~bd(2)被稳定地储存在实体抹除单元410(3)中。也就是说,在此范例实施例中,写入实体抹除单元410(3)的虚拟数据可以不需要填满实体抹除单元410(3)在储存了暂存数据bd(1)~bd(2)后剩余的可用储存空间,内存控制电路单元404(或内存管理电路502)可以只写入一特定或非特定数量 的虚拟数据使得暂存数据bd(1)~bd(2)可以被稳定地储存在实体抹除单元410(3)中即可。然而须了解的是,本发明并不用于限定默认门槛值的数值,在其他范例实施例中,默认门槛值也可以是其他适当的数值。此外,本发明也不用于限定用于写入实体抹除单元410(3)的虚拟数据的数量。在本范例实施例中,如图9a~图9c所示,假设默认门槛值被设为1。由于此时暂存数据bd(1)~bd(2)的数量非小于默认门槛值,内存控制电路单元404(或内存管理电路502)会从实体抹除单元410(0)~410(n)中选择第二实体抹除单元,并下达指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元。具体来说,由于实体抹除单元410(3)中可用储存空间尚未被缓冲存储器508的暂存数据bd(1)~bd(2)填满(亦即,实体抹除单元410(3)中尚有未储存数据的第2~85个实体程序化单元组),内存控制电路单元404(或内存管理电路502)会从数据区602的实体抹除单元410(0)~410(2)中选择例如实体抹除单元410(0)以及实体抹除单元410(1)(以下参考为,第二实体抹除单元)用于执行有效数据合并程序,并下达指令序列以将实体抹除单元410(0)以及实体抹除单元410(1)的有效数据分别写入到实体抹除单元410(3)中,并且填满实体抹除单元410(3)的储存空间。在本范例实施例中,内存控制电路单元404(或内存管理电路502)所选择的实体抹除单元410(0)与实体抹除单元410(1)的有效数据的总数据量刚好可以填满实体抹除单元410(3)在储存了暂存数据bd(1)~bd(2)后所剩余的储存空间,即实体抹除单元410(3)中的第2~85个实体程序化单元组。然而,需注意的是,在其他范例实施例中,内存控制电路单元404(或内存管理电路502)所选择的第二实体抹除单元的有效数据的总数据量也可能会多于可以填满第一实体抹除单元在储存了缓冲存储器的暂存数据后所剩余的可用储存空间。此时,内存控制电路单元404(或内存管理电路502)可以从第二实体抹除单元中仅写入部分的有效数据,以使此些有效数据刚好可以填满第一实体抹除单元的可用储存空间。接着,请同时参照图9a与图9b,内存控制电路单元404(或内存管理电路502)会将实体抹除单元410(0)的有效数据d0(0)~d0(41)分别写入至实体抹除单元410(3)的第2~43个实体程序化单元组,并且将实体抹除单元410(1)的有效数据d1(0)~d1(41)分别写入至实体抹除单元410(3)的第44~85个实体程序化单元组,以填满实体抹除单元410(3)中第2~85个实体程序化单元组的可用储存空间。接着,请同时参照图9b与图9c,在本范例实施例中,由于实体抹除单元410(0)以及实体抹除单元410(1)中的有效数据皆已写入至实体抹除单元410(3),内存控制电路单元404(或内存管理电路502)会将实体抹除单元410(0)以及实体抹除单元410(1)中所储存的数据皆视为无效数据,内存控制电路单元404(或内存管理电路502)会下达指令序列对实体抹除单元410(0)以及实体抹除单元410(1)进行抹除操作,并将实体抹除单元410(0)以及实体抹除单元410(1)关联至闲置区604,以释放可复写式非易失性内存模块406的储存空间并增加闲置区604中闲置的实体抹除单元的数量。此外,内存控制电路单元404(或内存管理电路502)会将实体抹除单元410(3)关联至数据区602中。图10是根据另一范例实施例所显示的数据写入方法的流程图。请参照图10,在步骤s1001中,内存控制电路单元404(或内存管理电路502)判断是否从主机系统11接收到默认指令。当内存控制电路单元404(或内存管理电路502)没有从主机系统11接收到默认指令,则重复执行步骤s1001。当内存控制电路单元404(或内存管理 电路502)从主机系统11接收默认指令时,在步骤s1003中,内存控制电路单元404(或内存管理电路502)会下达指令序列以将缓冲存储器508中的暂存数据写入可复写式非易失性内存模块406的实体抹除单元410(0)~410(n)之中的第一实体抹除单元。之后,在步骤s1005中,内存控制电路单元404(或内存管理电路502)会判断暂存数据的数量是否小于默认门槛值。当内存控制电路单元404(或内存管理电路502)判断暂存数据的数量小于默认门槛值时,在步骤s1007中,内存控制电路单元404(或内存管理电路502)会下达指令序列以将虚拟数据写入第一实体抹除单元中。当内存控制电路单元404(或内存管理电路502)判断暂存数据的数量非小于默认门槛值时,在步骤s1009中,内存控制电路单元404(或内存管理电路502)会从可复写式非易失性内存模块406的实体抹除单元410(0)~410(n)中选择第二实体抹除单元。并且在步骤s1011中,内存控制电路单元404(或内存管理电路502)下达指令序列以将第二实体抹除单元中的有效数据写入至第一实体抹除单元。综上所述,本发明的数据写入方法可以在收到主机系统下达的默认指令时,将缓冲存储器的暂存数据储存至可复写式非易失性内存中的第一实体抹除单元中,并且将第二实体抹除单元中的有效数据写入至第一实体抹除单元,藉此可以有效地提升可复写式非易失性内存的使用效率,以避免储存过多的无效数据并延长可复写式非易失性内存的使用寿命。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1