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

文档序号:11707306阅读:189来源:国知局
本发明涉及一种数据写入方法,尤其涉及用于可复写式非易失性内存模块的数据写入方法、内存控制电路单元与内存储存装置。
背景技术
::数字相机、手机与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型闪存中,若要确保一条字符在线的数据可稳定的被储存,必须对此字符线完成三次程序化。例如,对第一条字符在线的记忆胞进行第一程序化后,第一条字符在线的记忆胞会处于第一状态(firststate)。而在对第二条字符在线的记忆胞进行的同时第一条字符在线的记忆胞会再次被程序化。此时,第一条字符在线的记忆胞会处于模糊状态(foggystate)。然后,在对第三条字符在线的记忆胞进行的同时第一条字符、第二条字符在线的记忆胞会再次被程序化,此时,第一条字符在线的记忆胞会处于良好状态(finestate)。再者,在对第四条字符在线的记忆胞进行的同时第二条字符、第三条字符在线的记忆胞会再次被程序化,此时,第二条字符在线的记忆胞会处于良好状态,由此第一条字符在线的记忆胞中的数据才能被确保是稳定的储存。基于上述原理,当主机系统下达清仓指令(flushcommand)时,为了能够确保数据已稳定储存至tlcnand型闪存,内存控制器还需对接续的另外三条字符线进行程序化。而每条字符在线上包括三个实体程序化单元,因此,内存控制电路需写入虚拟数据至9个实体程序化单元,由此将造成过多个冗余写入,降低内存储存装置的储存效率,缩短内存储存装置的寿命。技术实现要素:本发明提供一种数据写入方法、内存控制电路单元与内存储存装置,其能够根据执行清仓指令的频率来调整实体抹除单元的写入模式,由此减少虚拟数据的写入。本发明的一范例实施例提出一种用于可复写式非易失性内存模块的数据写入方法,其中此可复写式非易失性内存模块具有多个实体抹除单元,每一实体抹除单元具有多个下实体程序化单元与多个上实体程序化单元。此数据写入方法包括记录清仓指令计数。本数据写入方法还包括从此些实体抹除单元之中提取第一实体抹除单元作为作动实体单元,并且判断清仓指令计数是否大于清仓指令计数门槛值。本数据写入方法亦包括,倘若清仓指令计数门槛值大于清仓指令计数门槛值时,将作动实体单元的写入模式设定为第一写入模式,其中在该第一写入模式中,构成作动实体单元的各记忆胞储存第一数目的位数据。本数据写入方法还包括,倘若清仓指令计数门槛值非大于清仓指令计数门槛值时,将作动实体单元的写入模式设定为第二写入模式,其中在第二写入模式中,构成作动实体单元的各记忆胞储存第二数目的位数据,其中第一数目小于第二数目。在本发明的一范例实施例中,上述记录清仓指令计数的步骤包括:每当从主机系统中接收到清仓指令时,更新清仓指令计数。在本发明的一范例实施例中,上述记录清仓指令计数的步骤还包括:在设定作动实体单元的写入模式设定后,重置清仓指令计数。在本发明的一范例实施例中,上述更新清仓指令计数的步骤包括将清仓指令计数加1,并且上述重置清仓指令计数的步骤包括将清仓指令计数设定为0。在本发明的一范例实施例中,上述从实体抹除单元之中提取第一实体抹除单元作为作动实体单元的步骤包括:从实体抹除单元之中提取由第一实体抹除单元与至少一另一实体抹除单元所构成的超实体单元作为作动实体单元。此外,上述记录清仓指令计数的步骤还包括:在此超实体单元被写满后,重置清仓指令计数。在本发明的一范例实施例中,上述的数据写入方法还包括从主机系统接收写入指令及对应写入指令的写入数据;以及根据作动实体单元的写入模式,将写入数据程序化至作动实体单元。在本发明的一范例实施例中,上述的数据写入方法还包括将该实体抹除单元逻辑地至少分组为数据区与闲置区,其中上述从实体抹除单元之中提取第一实体抹除单元作为作动实体单元的步骤包括:从闲置区中提取第一实体抹除单元作为作动实体单元。在本发明的一范例实施例中,每一实体抹除单元更具有多个中实体程序化单元。在本发明的一范例实施例中,上述数据写入方法还包括:根据主机写入数据量与实际程序化数据量动态地调整清仓指令计数门槛值。在本发明的一范例实施例中,上述根据主机写入数据量与实际程序化数据量动态地调整清仓指令计数门槛值的步骤包括:当实际程序化数据量除以主机写入数据量所获得的值增加时,降低清仓指令计数门槛值。本发明的一范例实施例提出一种用于控制可复写式非易失性内存模块的内存控制电路单元,其包括主机接口、内存接口与内存管理电路。主机接口用以电性连接至主机系统。内存接口用以电性连接至可复写式非易失性内存模块,其中此可复写式非易失性内存模块具有多个实体抹除单元,每一实体抹除单元具有多个下实体程序化单元与多个上实体程序化单元。内存管理电路电性连接至主机接口与内存接口,并且用以记录清仓指令计数。此外,内存管理电路更用以从此些实体抹除单元之中提取第一实体抹除单元作为作动实体单元,且判断清仓指令计数是否大于清仓指令计数门槛值。倘若清仓指令计数门槛值大于清仓指令计数门槛值时,内存管理电路将作动实体单元的写入模式设定为第一写入模式,其中在第一写入模式中,构成作动实体单元的各记忆胞储存第一数目的位数据。倘若清仓指令计数门槛值非大于清仓指令计数门槛值时,内存管理电路将作动实体单元的写入模式设定为第二写入模式,其中在第二写入模式中,构成作动实体单元的各记忆胞储存第二数目的位数据,其中第一数目小于第二数目。在本发明的一范例实施例中,在上述记录清仓指令计数的运作中,每当从主机系统中接收到清仓指令时,内存管理电路更新清仓指令计数。在本发明的一范例实施例中,在上述记录清仓指令计数的运作中,内存管理电路更用以在设定作动实体单元的写入模式设定后,重置清仓指令计数。在本发明的一范例实施例中,在更新清仓指令计数的运作中,内存管理电路将清仓指令计数加1,并且在重置清仓指令计数的运作中,内存管理电路将该清仓指令计数设定为0。在本发明的一范例实施例中,在从实体抹除单元之中提取第一实体抹除单元作为作动实体单元的运作中,内存管理电路从实体抹除单元之中提取由第一实体抹除单元与至少一另一实体抹除单元所构成的超实体单元作为作动实体单元。此外,在记录清仓指令计数的运作中,内存管理电路在此超实体单元被写满后,重置清仓指令计数。在本发明的一范例实施例中,内存管理电路更用以从主机系统接收写入指令及对应此写入指令的写入数据,并且根据作动实体单元的写入模式,下达一序列指令以将此写入数据程序化至作动实体单元。在本发明的一范例实施例中,内存管理电路更用以将实体抹除单元逻辑地至少分组为数据区与闲置区。其中在从此些实体抹除单元之中提取第一实体抹除单元作为作动实体单元的运作中,内存管理电路从闲置区中提取第一实体抹除单元作为作动实体单元。在本发明的一范例实施例中,内存管理电路更用以根据主机写入数据量与实际程序化数据量动态地调整清仓指令计数门槛值。在本发明的一范例实施例中,当实际程序化数据量除以主机写入数据量所获得的值增加时,内存管理电路降低清仓指令计数门槛值。本发明的一范例实施例提出一种内存储存装置,其包括连接接口单元、可复写式非易失性内存模块与内存控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性内存模块具有多个实体抹除单元,每一实体抹除单元具有多个下实体程序化单元与多个上实体程序化单元。内存控制电路单元电性连接至连接接口单元与可复写式非易失性内存模块,并且用以记录清仓指令计数。此外,内存控制电路单元更用以从此些实体抹除单元之中提取第一实体抹除单元作为作动实体单元,且判断清仓指令计数是否大于清仓指令计数门槛值。倘若清仓指令计数门槛值大于清仓指令计数门槛值时,内存控制电路单元将作动实体单元的写入模式设定为第一写入模式,其中在第一写入模式中,构成作动实体单元的各记忆胞储存第一数目的位数据。倘若清仓指令计数门槛值非大于清仓指令计数门槛值时,内存控制电路单元将作动实体单元的写入模式设定为第二写入模式,其中在第二写入模式中,构成作动实体单元的各记忆胞储存第二数目的位数据,其中第一数目小于第二数目。在本发明的一范例实施例中,内存控制电路单元更用以从主机系统接收写入指令及对应此写入指令的写入数据,并且根据作动实体单元的写入模式,下达一序列指令以将此写入数据程序化至作动实体单元。在本发明的一范例实施例中,在上述记录清仓指令计数的运作中,每当从主机系统中接收到清仓指令时,内存控制电路单元更新清仓指令计数。在本发明的一范例实施例中,在上述记录清仓指令计数的运作中,内存控制电路单元更用以在设定作动实体单元的写入模式设定后,重置清仓指令计数。在本发明的一范例实施例中,在更新清仓指令计数的运作中,内存控制电路单元将清仓指令计数加1,并且在重置清仓指令计数的运作中,内存控制电路单元将该清仓指令计数设定为0。在本发明的一范例实施例中,在从实体抹除单元之中提取第一实体抹除单元作为作动实体单元的运作中,内存控制电路单元从实体抹除单元之中提取由第一实体抹除单元与至少一另一实体抹除单元所构成的超实体单元作为作动实体单元。此外,在记录清仓指令计数的运作中,内存控制电路单元在此超实体单元被写满后,重置清仓指令计数。在本发明的一范例实施例中,内存控制电路单元更用以将实体抹除单元逻辑地至少分组为数据区与闲置区。其中在从此些实体抹除单元之中提取第一实体抹除单元作为作动实体单元的运作中,内存控制电路单元从闲置区中提取第一实体抹除单元作为作动实体单元。在本发明的一范例实施例中,内存控制电路单元更用以根据主机写入数据量与实际程序化数据量动态地调整清仓指令计数门槛值。在本发明的一范例实施例中,当实际程序化数据量除以主机写入数据量所获得的值增加时,内存控制电路单元降低清仓指令计数门槛值。基于上述,本发明范例实施例的数据写入方法、内存控制电路单元与内存储存装置能够有效地降低执行清仓指令而写入的虚拟数据的数据量,由此延长可复写式非易失性内存的寿命。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;图2是根据另一范例实施例所显示的主机系统、内存储存装置及输入/输出(i/o)装置的示意图;图3是根据本发明范例实施例所显示的主机系统与内存储存装置的示意图;图4是根据一范例实施例所显示的主机系统与内存储存装置的概要方框图;图5a与图5b是根据一范例实施例所显示的记忆胞储存架构与实体抹除单元的示意图;图6是根据一范例实施例所显示的内存控制电路单元的概要方框图;图7与图8是根据一范例实施例所显示的管理实体抹除单元的范例示意图;图9a与9b是根据一范例实施例所显示的资料写入方法的流程图。附图标记: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):逻辑区域s901:建立清仓指令计数并将其设定为0的步骤s903:每当从主机系统中接收到清仓指令时,更新清仓指令计数的步骤s905:从主机系统中接收到写入指令与对应的写入数据的步骤s907:判断作动实体单元是否有足够的空间写入此写入数据的步骤s909:根据作动实体单元的写入模式下达序列指令以将此写入数据程序化至作动实体单元并且更新逻辑地址-实体地址映像表的步骤s911:提取一个实体抹除单元(以下称为第一实体抹除单元)作为新的作动实体单元的步骤s913:判断清仓指令计数是否大于清仓指令计数门槛值的步骤s915:将第一实体抹除单元的写入模式设定为第二写入模式的步骤s917:将第一实体抹除单元的写入模式设定为第一写入模式的步骤s919:将清仓指令计数重置为0的步骤具体实施方式一般而言,内存储存装置(亦称,内存储存系统)包括可复写式非易失性内存模块与控制器(亦称,控制电路单元)。通常内存储存装置是与主机系统一起使用,以使主机系统可将数据写入至内存储存装置或从内存储存装置中读取数据。图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个实体程序化单元会被视为一个实体程序化单元组,并且以此类推其他实体程序化单元亦是依据此方式被区分为多个实体程序化单元组。图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中提取空的实体抹除单元作为作动实体单元,以继续写入对应来自于主机系统11的写入指令的更新数据。此外,当闲置区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会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。在本范例实施例中,内存控制电路单元404(或内存管理电路502)会记录一个清仓指令(flushcommand)计数,并每当从主机系统11接收到清仓指令时,内存控制电路单元404(或内存管理电路502)会更新此清仓指令计数。例如,内存控制电路单元404(或内存管理电路502)会将目前清仓指令计数的数值加1作为更新后的清仓指令计数。特别是,每当一个作动实体单元存满数据并从闲置区604中提取另一个实体抹除单元作为新的作动实体单元时,内存控制电路单元404(或内存管理电路502)会判断清仓指令计数是否大于清仓指令计数门槛值。倘若清仓指令计数大于清仓指令计数门槛值时,内存控制电路单元404(或内存管理电路502)会将目前作动实体单元的写入模式设定为第一写入模式;并且倘若清仓指令计数非大于清仓指令计数门槛值时,内存控制电路单元404(或内存管理电路502)会将目前作动实体单元的写入模式设定为第二写入模式。在设定好目前作动实体单元的写入模式之后,内存控制电路单元404(或内存管理电路502)会重置清仓指令计数。例如,内存控制电路单元404(或内存管理电路502)会将清仓指令计数的数值重新设定为0。也就是说,在本范例实施例中,每当更换新的作动实体单元时,内存控制电路单元404(或内存管理电路502)会根据目前的清仓指令计数来决定目前作动实体单元的写入模式。在此,所谓第一写入模式是指,一个记忆胞储存一个位数据的程序化模式。例如,在第一写入模式中,内存控制电路单元404(或内存管理电路502)会以单层记忆胞(singlelayermemorycell,slc)模式、下实体程序化(lowerphysicalprogramming)模式、混合程序化(mixtureprogramming)模式或少层记忆胞(lesslayermemorycell)模式来对构成作动实体单元的记忆胞进行程序化。也就是说,在第一写入模式中,内存控制电路单元404(或内存管理电路502)仅会对下实体程序化单元进行数据的写入运作。因此,一个以第一写入模式来程序化的实体抹除单元仅有三分之一的容量会被使用。所谓第二写入模式是指,一个记忆胞储存多个位的程序化模式。例如,在第二写入模式中,内存控制电路单元404(或内存管理电路502)会以多阶记忆胞(mlc)程序化模式、复数阶(tlc)记忆胞程序化模式或类似模式来对构成作动实体单元的记忆胞进行程序化。也就是说,当使用第二写入模式来写入数据时,内存控制电路单元404(或内存管理电路502)会对一个实体程序化单元组。值得一提的,相较于以第一写入模式来操作的实体抹除单元,以第二写入模式来操作的实体抹除单元的使用寿命较短。具体来说,每个实体抹除单元能够被写入或抹除的次数是有限的,当一个实体抹除单元被写入的次数超过一个临界值时,此实体抹除单元可能就会损坏而无法再被写入数据,其中对应以第二写入模式来操作的实体抹除单元的临界值会低于对应以第一写入模式来操作的实体抹除单元的临界值。如上所述,在本范例实施例中,当清仓指令计数大于清仓指令计数门槛值时,内存控制电路单元404(或内存管理电路502)会将新的作动实体单元的写入模式设定为第一写入模式,由此在后续接收到清仓指令时,内存控制电路单元404(或内存管理电路502)仅将虚拟数据写入至下三条字符在线的下实体程序化单元,可大幅降低程序化至可复写式非易失性内存模块406的虚拟数据的数据量。图9a与图9b是根据一范例实施例所显示的资料写入方法的流程图。请参照图9a,在步骤s901中,当内存储存装置100上电后,内存控制电路单元404(或内存管理电路502)会建立清仓指令计数并将其设定为0,并在步骤s903中,每当从主机系统11中接收到清仓指令时,内存控制电路单元404(或内存管理电路502)会更新清仓指令计数(例如,将清仓指令计数的值加1)。请参照图9b,在步骤s905中,内存控制电路单元404(或内存管理电路502)从主机系统11中接收到写入指令与对应的写入数据。在步骤s907中,内存控制电路单元404(或内存管理电路502)会判断作动实体单元是否有足够的空间写入此写入数据。倘若作动实体单元有足够的空间写入此写入数据时,在步骤s909中,内存控制电路单元404(或内存管理电路502)会根据作动实体单元的写入模式下达序列指令以将此写入数据程序化至作动实体单元并且更新逻辑地址-实体地址映像表。倘若作动实体单元无足够的空间写入此写入数据时,在步骤s911中,内存控制电路单元404(或内存管理电路502)会从闲置区604中提取一个实体抹除单元(以下称为第一实体抹除单元)作为新的作动实体单元。之后,在步骤s913中,内存控制电路单元404(或内存管理电路502)会判断清仓指令计数是否大于清仓指令计数门槛值。倘若清仓指令计数非大于清仓指令计数门槛值时,在步骤s915中,内存控制电路单元404(或内存管理电路502)会将第一实体抹除单元的写入模式设定为第二写入模式。倘若清仓指令计数大于清仓指令计数门槛值时,在步骤s917中,内存控制电路单元404(或内存管理电路502)会将第一实体抹除单元的写入模式设定为第一写入模式。之后,在步骤s919中,内存控制电路单元404(或内存管理电路502)会将清仓指令计数重置为0。然后,步骤s909会被执行,以程序化数据。值得一提的是,在本范例实施例中,清仓指令计数门槛值是固定值,并且在设定作动实体单元的写入模式后,内存控制电路单元404(或内存管理电路502)会重置清仓指令计数,以在每使用完一个实体抹除单元后就重新计算接收到的清仓指令数量,以判断在下一个作动实体单元中使用第一写入模式或第二写入模式。然而,本发明不限于此,在另一范例实施例中,内存控制电路单元404(或内存管理电路502)在不重置清仓指令计数下,持续计数清仓指令计数,并且在清仓指令计数达到一预定数值的倍数时,调整作动实体单元的写入模式。值得一提的是,在本范例实施例中,清仓指令计数门槛值是预先计算的固定值。例如,在一个实体抹除单元的容量为384兆字节(megabyte,mb)且每条字符在线的记忆胞的容量为3mb的例子中,一个作动实体单元的程序化过程中,写入的虚拟数据的数据量为清仓指令计数乘上3mb,并且主机写入数据量为作动实体单元的容量(即,实际程序化数据量)减写入的虚拟数据的数据量。而实际程序化数据量除以主机写入数据量所得到的值(亦称为写入扩大(writeamplification))可衡量可复写式非易失性内存模块406是否有过多的冗余写入。当写入扩大的值月大时代表冗余写入越多可复写式非易失性内存模块406的寿命越短。倘若使用者设定可容忍的写入扩大值为1.2时,内存控制电路单元404(或内存管理电路502)会计算出清仓指令计数必须小于7(即,1.2<(384mb/(384mb-清仓指令计数×9mb)。因此,内存控制电路单元404(或内存管理电路502)会将清仓指令计数门槛值固定地设定为7。然而必须了解的是,在本范例实施例中,清仓指令计数门槛值亦可以是在内存储存装置100运作时,动态地来决定。例如,内存控制电路单元404(或内存管理电路502)可实际地测量在一段时间内从主机系统11接收到的写入数据的量以及实际写入至可复写式非易失性内存模块406的数据量,由此计算出目前的写入扩大值。特别是,倘若目前的写入扩大值大于可容忍的写入扩大值时,内存控制电路单元404(或内存管理电路502)会降低清仓指令计数门槛(例如,将目前的清仓指令计数门槛减1),由此减少执行清仓指令所写入的虚拟数据。在上述范例实施例中,内存控制电路单元404(或内存管理电路502)是以实体抹除单元为单位来进行写入操作。然而,必须了解的是,本发明不限于此。在另一范例实施例中,内存控制电路单元404(或内存管理电路502)将实体抹除单元分组为多个超实体单元来管理,并且每一个超实体单元会包括至少两个实体抹除单元。例如,当主机系统下达写入指令时,内存控制电路单元404(或内存管理电路502)会使用一个超实体单元来程序化数据。例如,一个超实体单元中的至少两个实体抹除单元是属于不同的操作单元,例如属于不同的平面或晶粒,使其可以同时或交错地被程序化。在此范例中,内存控制电路单元404(或内存管理电路502)会使用一个超实体单元来作为作动实体单元,并且在此作为作动实体单元的超实体单元被写满后,内存控制电路单元404(或内存管理电路502)才会重置清仓指令计数。也就是说,内存控制电路单元404(或内存管理电路502)会计算写满一个超实体单元期间所接收到的清仓指令数目,由此决定在对下一个超实体单元执行写入操作时的写入模式。综上所述,本发明范例实施例的数据写入方法、内存控制电路单元与内存储存装置能够依据执行清仓指令的频率来调整实体抹除单元的写入模式而减少写入至可复写式非发性内存模块的虚拟数据的数据量,由此延长可复写式非发性内存模块的寿命。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中普通技术人员,在不脱离本发明的精神和范围内,当可作些许的改动与润饰,故本发明的保护范围当视所附权利要求界定范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1