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

文档序号:17488183发布日期:2019-04-23 20:09阅读:156来源:国知局
存储器管理方法、存储器控制电路单元及存储器储存装置与流程

本发明涉及一种存储器管理方法,尤其涉及一种用于可复写式非易失性存储器模块的存储器管理方法、存储器控制电路单元及存储器储存装置。



背景技术:

数字相机、移动电话与mp3播放器在这几年来的成长十分迅速,使得消费者对储存媒体的需求也急速增加。由于可复写式非易失性存储器模块(例如,快闪存储器)具有数据非易失性、省电、体积小,以及无机械结构等特性,所以非常适合内建于上述所举例的各种可携式多媒体装置中。

一般来说,为了增加可复写式非易失性存储器的寿命,会尽可能平均地使用可复写式非易失性存储器中的实体抹除单元。例如,可复写式非易失性存储器的实体抹除单元会区分为数据区与闲置区,传统平均损耗(wearleveling)的方法是在可复写式非易失性存储器每执行一段固定的时间后或某个特定的时间点,将数据区中的实体抹除单元与闲置区中的实体抹除单元交换,以期让在数据区中抹除次数较少的实体抹除单元可被交换至闲置区以供程序化(或写入)使用。

在将数据区中抹除次数较少的实体抹除单元交换至闲置区时,通常会从闲置区中选择具有较高抹除次数的实体抹除单元交换至数据区,然而,在实体抹除单元会以多种程序化方式(例如,单层记忆胞(singlelayermemorycell,slc)程序化模式、复数阶记忆胞(trinarylevelcell,tlc)程序化模式)来写入数据的存储器储存装置中,具高抹除次数的实体抹除单元,其损耗未必是较高的。例如,在实体抹除单元上执行一次的tlc程序化的损耗会大于在实体抹除单元上执行一次的slc程序化的损耗。因此,如何有效地的衡量实体抹除单元的损耗程度以执行平均损耗操作,是此领域技术人员所致力的目标。



技术实现要素:

本发明提供一种存储器管理方法、存储器控制电路单元及存储器储存装置,可以有效地执行平均损耗操作,并延长记忆储存装置的寿命。

本发明的一范例实施例提出一种用于可复写式非易失性存储器模块的存储器管理方法,其中可复写式非易失性存储器模块具有多个实体抹除单元。此方法包括对其中一个实体抹除单元执行n次的单层抹除操作;对另一个实体抹除单元执行n次的复数层抹除操作;以及对此其中一个实体抹除单元与此另一个实体抹除单元执行平均损耗操作,其中此另一个实体抹除单元较此其中一个实体抹除单元优先执行平均损耗操作。

在本发明的一范例实施例中,此存储器管理方法包括为每一个实体抹除单元记录一损耗值;并且依据在所述多个实体抹除单元上执行的抹除操作的类型,更新实体抹除单元的损耗值;并且根据实体抹除单元的损耗值,执行平均损耗操作,其中在对第一实体抹除单元执行单层抹除操作时,对应第一实体抹除单元的损耗值是根据对应单层抹除操作的第一参数值来更新,并且在对第一实体抹除单元执行复数层抹除操作时,对应第一实体抹除单元的损耗值是根据对应复数层抹除操作的第二参数值来更新,且所述第二参数值是大于所述第一参数值。

在本发明的一范例实施例中,存储器管理方法还包括建立一损耗表,并在损耗表中记录实体抹除单元的损耗值。

在本发明的一范例实施例中,存储器管理方法还包括为每一个实体抹除单元记录单层抹除次数;以及为每一个实体抹除单元记录复数层抹除次数。

在本发明的一范例实施例中,其中依据在实体抹除单元上执行的抹除操作的类型更新实体抹除单元的损耗值的步骤包括:依据所述多个实体抹除单元的单层抹除次数与复数层抹除次数来计算所述多个实体抹除单元的损耗值,其中第一实体抹除单元的损耗值通过加总第一子损耗值与第二子损耗值所获得,所述第一子损耗值通过将第一实体抹除单元的单层抹除次数乘以第一参数值所获得,且第二子损耗值通过将第一实体抹除单元的复数层抹除次数乘以第二参数值所获得。

在本发明的一范例实施例中,上述存储器管理方法还包括依据所述实体抹除单元的抹除次数,动态地调整所述第二参数值与所述第一参数值的比值。

在本发明的一范例实施例中,上述存储器管理方法还包括将上述实体抹除单元至少分组为数据区与闲置区。

在本发明的一范例实施例中,其中根据实体抹除单元的损耗值执行平均损耗操作的步骤包括:从数据区的实体抹除单元中选择一第二实体抹除单元,从闲置区的实体抹除单元中选择一第三实体抹除单元,将第二实体抹除单元中的数据复制到第三实体抹除单元中,将第三实体抹除单元关联至数据区,并且将第二实体抹除单元关联至闲置区,其中第二实体抹除单元的损耗值小于数据区的实体抹除单元中的其他实体抹除单元的损耗值且第三实体抹除单元的损耗值大于闲置区的实体抹除单元中的其他实体抹除单元的损耗值。

本发明的一范例实施例提出一种用于可复写式非易失性存储器模块的存储器管理方法,其中可复写式非易失性存储器模块具有多个实体抹除单元。此存储器管理方法包括为每一个实体抹除单元记录一损耗值。此存储器管理方法还包括对第一实体抹除单元执行抹除操作,在第一实体单元储存单一个比特时,使用一第一参数值来更新对应第一实体抹除单元的损耗值,并且在第一实体单元储存复数个比特时,使用一第二参数值来更新对应第一实体抹除单元的损耗值。

在本发明的一范例实施例中,上述在第一实体单元储存单一个比特时,使用一第一参数值来更新对应第一实体抹除单元的损耗值,并且在第一实体单元储存复数个比特时,使用一第二参数值来更新对应第一实体抹除单元的损耗值的步骤包括:在对第一实体单元执行抹除操作后第一实体抹除单元储存单一个比特时,更新对应第一实体抹除单元的一单层抹除次数;在对第一实体单元执行抹除操作后第一实体抹除单元储存复数个比特时,更新对应第一实体抹除单元的复数层抹除次数;以及依据第一实体抹除单元的单层抹除次数与的复数层抹除次数来计算第一实体抹除单元的损耗值,其中第一实体抹除单元的损耗值通过加总第一子损耗值与第二子损耗值所获得,第一子损耗值通过将第一实体抹除单元的单层抹除次数乘以第一参数值所获得,且所述第二子损耗值通过将所述第一实体抹除单元的复数层抹除次数乘以所述第二参数值所获得。

本发明的一范例实施例提出一种用于控制可复写式非易失性存储器模块的存储器控制电路单元,其中可复写式非易失性存储器模块具有多个实体抹除单元。本存储器控制电路单元包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至可复写式非易失性存储器模块。存储器管理电路电性连接至主机接口与存储器接口。此存储器管理电路对其中一个实体抹除单元执行n次的单层抹除操作,对另一个实体抹除单元执行n次的复数层抹除操作,以及对此其中一个实体抹除单元与此另一个实体抹除单元执行平均损耗操作,其中此另一个实体抹除单元较此其中一个实体抹除单元优先执行平均损耗操作。

在本发明的一范例实施例中,此存储器管理电路用以为每一个实体抹除单元记录损耗值。此外,存储器管理电路还用以依据在实体抹除单元上执行的抹除操作的类型,更新实体抹除单元的损耗值,其中在对第一实体抹除单元执行单层抹除操作时,对应第一实体抹除单元的损耗值是根据对应单层抹除操作的第一参数值来更新,并且在对第一实体抹除单元执行复数层抹除操作时,对应第一实体抹除单元的损耗值是根据对应复数层抹除操作的第二参数值来更新,且第二参数值是大于第一参数值。再者,此外,存储器管理电路还用以根据实体抹除单元的损耗值,执行平均损耗操作。

在本发明的一范例实施例中,其中上述存储器管理电路还用以建立损耗表,并在损耗表中记录实体抹除单元的损耗值。

在本发明的一范例实施例中,上述存储器管理电路还用以为每一个实体抹除单元记录单层抹除次数,并且为每一个实体抹除单元记录复数层抹除次数。

在本发明的一范例实施例中,在依据在实体抹除单元上执行的抹除操作的类型更新实体抹除单元的损耗值的运作中,上述存储器管理电路依据实体抹除单元的单层抹除次数与复数层抹除次数来计算实体抹除单元的损耗值,其中第一实体抹除单元的损耗值是通过加总第一子损耗值与第二子损耗值所获得,第一子损耗值通过将第一实体抹除单元的单层抹除次数乘以第一参数值所获得,且第二子损耗值通过将第一实体抹除单元的复数层抹除次数乘以第二参数值所获得。

在本发明的一范例实施例中,上述存储器管理电路还用以依据实体抹除单元的抹除次数,动态地调整第二参数值与第一参数值的比值。

在本发明的一范例实施例中,上述存储器管理电路还用以将实体抹除单元至少分组为数据区与闲置区。

在本发明的一范例实施例中,在根据实体抹除单元的损耗值执行平均损耗操作的运作中,上述存储器管理电路从数据区的实体抹除单元中选择第二实体抹除单元,从数据区的实体抹除单元中选择第三实体抹除单元,将第二实体抹除单元中的数据复制到第三实体抹除单元中,将第三实体抹除单元关联至数据区,并且将第二实体抹除单元关联至闲置区,其中第二实体抹除单元的损耗值小于数据区的实体抹除单元中的其他实体抹除单元的损耗值且第三实体抹除单元的损耗值大于闲置区的实体抹除单元中的其他实体抹除单元的损耗值。

本发明的一范例实施例提出一种存储器储存装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个实体抹除单元。存储器控制电路单元电性连接至连接接口单元与可复写式非易失性存储器模块。此存储器控制电路单元对其中一个实体抹除单元执行n次的单层抹除操作,对另一个实体抹除单元执行n次的复数层抹除操作,以及对此其中一个实体抹除单元与此另一个实体抹除单元执行平均损耗操作,其中此另一个实体抹除单元较此其中一个实体抹除单元优先执行平均损耗操作。

在本发明的一范例实施例中,其中上述存储器控制电路单元还用以为每一个实体抹除单元记录损耗值。此外,存储器控制电路单元还用以依据在实体抹除单元上执行的抹除操作的类型,更新实体抹除单元的损耗值,其中在对第一实体抹除单元执行单层抹除操作时,对应第一实体抹除单元的损耗值是根据对应单层抹除操作的第一参数值来更新,并且在对第一实体抹除单元执行复数层抹除操作时,对应第一实体抹除单元的损耗值是根据对应复数层抹除操作的第二参数值来更新,且第二参数值是大于第一参数值。再者,此外,存储器控制电路单元还用以根据实体抹除单元的损耗值,执行平均损耗操作。

在本发明的一范例实施例中,其中上述存储器控制电路单元还用以建立损耗表,并在损耗表中记录实体抹除单元的损耗值。

在本发明的一范例实施例中,上述存储器控制电路单元还用以为每一个实体抹除单元记录单层抹除次数,并且为每一个实体抹除单元记录复数层抹除次数。

在本发明的一范例实施例中,在依据在实体抹除单元上执行的抹除操作的类型更新实体抹除单元的损耗值的运作中,上述存储器控制电路单元依据实体抹除单元的单层抹除次数与复数层抹除次数来计算实体抹除单元的损耗值,其中第一实体抹除单元的损耗值是通过加总第一子损耗值与第二子损耗值所获得,第一子损耗值通过将第一实体抹除单元的单层抹除次数乘以第一参数值所获得,且第二子损耗值通过将第一实体抹除单元的复数层抹除次数乘以第二参数值所获得。

在本发明的一范例实施例中,上述存储器控制电路单元还用以依据实体抹除单元的抹除次数,动态地调整第二参数值与第一参数值的比值。

在本发明的一范例实施例中,上述存储器控制电路单元还用以将实体抹除单元至少分组为数据区与闲置区。

在本发明的一范例实施例中,在根据实体抹除单元的损耗值执行平均损耗操作的运作中,上述存储器控制电路单元从数据区的实体抹除单元中选择第二实体抹除单元,从数据区的实体抹除单元中选择第三实体抹除单元,将第二实体抹除单元中的数据复制到第三实体抹除单元中,将第三实体抹除单元关联至数据区,并且将第二实体抹除单元关联至闲置区,其中第二实体抹除单元的损耗值小于数据区的实体抹除单元中的其他实体抹除单元的损耗值且第三实体抹除单元的损耗值大于闲置区的实体抹除单元中的其他实体抹除单元的损耗值。

基于上述,本范例实施例的存储器管理方法、存储器控制电路单元与存储器储存装置能够根据不同程序化模式对记忆胞的损耗来估算出实体抹除单元的损耗值,并且根据此估算的损耗值来进行平均损耗操作,由此,还平均每个实体抹除单元的使用,有效地提升存储器储存装置的寿命。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1是根据一范例实施例所示的主机系统、存储器储存装置及输入/输出(i/o)装置的示意图。

图2是根据另一范例实施例所示的主机系统、存储器储存装置及输入/输出(i/o)装置的示意图。

图3是根据另一范例实施例所示的主机系统与存储器储存装置的示意图。

图4是根据一范例实施例所示的主机系统与存储器储存装置的概要方块图。

图5是根据一范例实施例所示的存储器控制电路单元的概要方块图。

图6与图7是根据一范例实施例所示的管理实体抹除单元的范例示意图。

图8是根据一范例实施例所示的抹除次数表的示意图。

图9是根据一范例实施例所示的损耗表的示意图。

图10是根据一范例实施例所示的存储器管理方法的流程图。

图11是根据一范例实施例所示的执行平均损耗操作的流程图。

符号说明

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):逻辑区域;

800:抹除次数表;

900:损耗表;

s1001:为实体抹除单元分别地记录损耗值的步骤;

s1003:依据在实体抹除单元上执行的抹除操作的类型更新实体抹除单元的损耗值的步骤;

s1005:根据实体抹除单元的损耗值执行平均损耗操作的步骤;

s1101:持续判断是否启动平均损耗操作的步骤;

s1103:从数据区中依据损耗表选择一个具最低损耗值的实体抹除单元(以下可参考为第二实体抹除单元)的步骤;

s1105:从闲置区中依据损耗表选择一个具最高损耗值的实体抹除单元(以下可参考为第三实体抹除单元)的步骤;

s1107:将第二实体抹除单元上的有效数据复制到第三实体抹除单元,将第二实体抹除单元关联至闲置区,并且将第三实体抹除单元关联至数据区的步骤。

具体实施方式

一般而言,存储器储存装置(也称,存储器储存系统)包括可复写式非易失性存储器模块与控制器(也称,控制电路单元)。通常存储器储存装置是与主机系统一起使用,以使主机系统可将数据写入至存储器储存装置或从存储器储存装置中读取数据。

图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的每个记忆胞的储存状态可被识别为“111”、“110”、“101”、“100”、“011”、“010”、“001”或“000”,其中左侧算起的第1个比特为lsb、从左侧算起的第2个比特为csb以及从左侧算起的第3个比特为msb。此外,排列在同一条字元线上的数个记忆胞可组成3个实体程序化单元,其中由此些记忆胞的lsb所组成的实体程序化单元称为下实体程序化单元,由此些记忆胞的csb所组成的实体程序化单元称为中实体程序化单元,并且由此些记忆胞的msb所组成的实体程序化单元称为上实体程序化单元。而一个实体抹除单元是由多个包括由排列在同一条字元线上的数个记忆胞所组成的下实体程序化单元、中实体程序化单元与上实体程序化单元的实体程序化单元组所组成。

然而,本发明不限于此,可复写式非易失性存储器模块406也可是多阶记忆胞(multilevelcell,mlc)nand型快闪存储器模块(即,一个记忆胞中可储存2个数据比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。

图5是根据一范例实施例所示的存储器控制电路单元的概要方块图。

请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512。

存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储器储存装置10运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。

在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储器储存装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。

在本发明另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式储存于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有驱动码,并且当存储器控制电路单元404被致能时,微处理器单元会先执行此驱动码段来将储存于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转此些控制指令以进行数据的写入、读取与抹除等运作。

此外,在本发明另一范例实施例中,存储器管理电路502的控制指令也可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。记忆胞管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。其中,记忆胞管理电路用以管理可复写式非易失性存储器模块406的实体抹除单元;存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令以将数据写入至可复写式非易失性存储器模块406中;存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令以从可复写式非易失性存储器模块406中读取数据;存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令以将数据从可复写式非易失性存储器模块406中抹除;而数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。

主机接口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会根据此错误检查与校正码对所读取的数据执行错误检查与校正程序。

图6与图7是根据一范例实施例所示的管理实体抹除单元的范例示意图。

必须了解的是,在此描述可复写式非易失性存储器模块406的实体抹除单元的运作时,以“提取”、“分组”、“划分”、“关联”等词来操作实体抹除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的实体抹除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的实体抹除单元进行操作。

以下描述存储器管理电路502、主机接口504与存储器接口506、缓冲存储器508、电源管理电路510与错误检查与校正电路512所执行的操作,也可参考为由存储器控制电路单元404所执行。

请参照图6,存储器管理电路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。

请参照图7,存储器管理电路502会配置逻辑单元lba(0)~lba(h)以映射数据区602的实体抹除单元,其中每一逻辑单元具有多个逻辑子单元以映射对应的实体抹除单元的实体程序化单元。并且,当主机系统11欲写入数据至逻辑单元或更新储存于逻辑单元中的数据时,存储器管理电路502会从闲置区604中提取一个实体抹除单元来写入数据,以轮替数据区602的实体抹除单元。在本范例实施例中,逻辑子单元可以是逻辑页面或逻辑扇区。

为了识别每个逻辑单元的数据被储存在哪个实体抹除单元,在本范例实施例中,存储器管理电路502会记录逻辑单元与实体抹除单元之间的映射。并且,当主机系统11欲在逻辑子单元中存取数据时,存储器管理电路502会确认此逻辑子单元所属的逻辑单元,并且在此逻辑单元所映射的实体抹除单元中来存取数据。例如,在本范例实施例中,存储器管理电路502会在可复写式非易失性存储器模块406中储存逻辑-实体映射表来记录每一逻辑单元所映射的实体抹除单元,并且当欲存取数据时存储器管理电路502会将逻辑-实体映射表载入至缓冲存储器508来维护。

值得一提的是,由于缓冲存储器508的容量有限无法储存记录所有逻辑单元的映射关系的映射表,因此,在本范例实施例中,存储器管理电路502会将逻辑单元lba(0)~lba(h)分组为多个逻辑区域lz(0)~lz(m),并且为每一逻辑区域配置一个逻辑-实体映射表。特别是,当存储器管理电路502欲更新某个逻辑单元的映射时,对应此逻辑单元所属的逻辑区域的逻辑-实体映射表会被载入至缓冲存储器508来被更新。

在本范例实施例中,存储器管理电路502会使用第一模式或第二模式来程序化实体抹除单元。例如,倘若欲写入的数据是逻辑-实体映射表时,存储器管理电路502会使用对应第一程序化模式的单层抹除操作来抹除实体抹除单元并且使用第一程序化模式式来将逻辑-实体映射表写入至此实体抹除单元中。例如,倘若欲写入的数据是来自于主机系统11的使用者数据时,存储器管理电路502会使用对应第二程序化模式的复数层抹除操作来抹除实体抹除单元并且使用第二程序化模式来将使用者数据写入至此实体抹除单元中。

在此,所谓第一程序化模式是指,一个记忆胞储存一个比特数据的程序化模式。例如,在第一程序化模式中,存储器管理电路502会以单层记忆胞(singlelayermemorycell,slc)模式、下实体程序化(lowerphysicalprogramming)模式、混合程序化(mixtureprogramming)模式或少层记忆胞(lesslayermemorycell)模式来对实体抹除单元的记忆胞进行程序化。也就是说,在第一程序化模式中,存储器管理电路502仅会对下实体程序化单元进行数据的写入运作。因此,在本范例实施例中,一个以第一程序化模式来程序化的实体抹除单元仅有三分之一的容量会被使用。

所谓第二程序化模式是指,一个记忆胞储存多个比特的程序化模式。例如,在第二程序化模式中,存储器管理电路502会以多阶记忆胞(mlc)程序化模式、复数阶(tlc)记忆胞程序化模式或类似模式来对实体抹除单元的记忆胞进行程序化。也就是说,当使用第二程序化模式来写入数据时,存储器管理电路502会对一个实体程序化单元组来执行程序化。值得一提的,相较于以第一程序化模式来操作的实体抹除单元,以第二程序化模式来操作的实体抹除单元的使用寿命较短。具体来说,每个实体抹除单元能够被写入或抹除的次数是有限的,当一个实体抹除单元被写入的次数超过一个临界值时,此实体抹除单元可能就会损坏而无法再被写入数据,其中以第二程序化模式来操作的实体抹除单元的损耗会较高,而以第一程序化模式来操作的实体抹除单元的损耗会较低。

在本范例实施例中,当一个实体抹除单元中无存有有效数据(例如,所存有的数据皆已标记为无效数据)时,存储器管理电路502可对此实体抹除单元执行抹除操作以再次写入数据。在本范例实施例中,存储器管理电路502会为每一实体抹除单元410(0)~410(n)记录对应的抹除次数。例如,当可复写式非易失性存储器模块406中的一个实体抹除单元被抹除时,存储器管理电路502会将对应此实体抹除单元的抹除次数加1。在此,抹除次数可被记录于一抹除次数表中或者其所对应的实体抹除单元中。

除了抹除次数表之外,存储器管理电路502会为每一实体抹除单元410(0)~410(n)记录对应的损耗值。例如,在本范例实施例中,对应每一实体抹除单元410(0)~410(n)的损耗值会被初始地设定为0。当一个实体抹除单元被执行抹除操作时,存储器管理电路502会根据所执行的抹除操作的类型,来更新此实体抹除单元的损耗值。具体来说,当对一个实体抹除单元(以下也可参考为第一实体抹除单元)执行单层抹除操作时,存储器管理电路502会将第一实体抹除单元的损耗值加上第一参数值作为新的损耗值;并且当对第一实体抹除单元执行复数层抹除操作时,存储器管理电路502会将第一实体抹除单元的损耗值加上第二参数值作为新的损耗值。在此,第二参数值是大于第一参数值。例如,在本范例实施例中,第一参数值为1,且第二参数值为10。在本范例实施例中,存储器管理电路502会根据每一实体抹除单元410(0)~410(n)的损耗值来执行平均损耗操作。也就是说,当要执行平均损耗操作时,根据此损耗值,一个被执行n次复数层抹除操作的实体抹除单元会比一个被执行n次单层抹除操作实体抹除单元来的优先被执行平均损耗操作。

图8是根据一范例实施例所示的抹除次数表的示意图。

请参照图8,抹除次数表800包括实体抹除单元栏位、单层抹除次数栏位、复数层抹除次数栏位以及抹除次数栏位。在存储器储存装置10运作时,存储器管理电路502会依据每次的抹除操作更新抹除次数表800,以记录每个实体抹除单元的单层抹除次数、复数层抹除次数以及抹除次数。

图9是根据一范例实施例所示的损耗表的示意图。

请参照图9,耗损表900包括实体抹除单元栏位、单层抹除次数栏位、复数层抹除次数栏位以及损耗值栏位。在存储器储存装置10运作时,存储器管理电路502会依据每次的抹除操作行、第一参数值与第二参数值来更新损耗表900,以记录每个实体抹除单元的单层抹除次数、复数层抹除次数以及损耗值。例如,存储器管理电路502会将实体抹除单元的单层抹除次数乘上第一参数以获得一个值(也称为第一子损耗值),将实体抹除单元的复数层抹除次数乘上第二参数以获得一个值(也称为第二子损耗值),并且将此实体抹除单元的第一子耗损值加上第二子耗损值以获得对应此实体抹除单元的耗损值。

请同时参照图8与图9,在抹除次数表800中,抹除次数最高的是实体抹除单元410(0),而在损耗表900中损耗值最高的却是实体抹除单元410(100)。基此,根据实体抹除单元410(0)~410(n)的损耗值来执行平均损耗操作,能够平均可复写式非易失性存储器模块406的实体抹除单元410(0)~410(n)的使用。

必须了解的是,尽管在抹除次数表800中记录有单层抹除次数与复数层抹除次数,然而本发明不限于此,在另一范例实施例中,存储器管理电路502可根据抹除操作,直接计算与更新实体抹除单元410(0)~410(n)的抹除次数,而无需记录单层抹除次数与复数层抹除次数。类似地,尽管在损耗表900中记录有单层抹除次数与复数层抹除次数,然而本发明不限于此,在另一范例实施例中,存储器管理电路502可根据抹除操作的类型、第一参数值与第二参数值,直接计算与更新实体抹除单元410(0)~410(n)的损耗值,而无需记录单层抹除次数与复数层抹除次数。

图10是根据一范例实施例所示的存储器管理方法的流程图。

请参照图10,在步骤s1001中,存储器管理电路502会为实体抹除单元410(0)~410(n)分别地记录一损耗值。并且,在步骤s1003中,存储器管理电路502会依据在实体抹除单元410(0)~410(n)上执行的抹除操作的类型,更新实体抹除单元410(0)~410(n)的损耗值。实体抹除单元410(0)~410(n)的损耗值的计算与记录方式已描述如上,在此不再重复描述。

在步骤s1005中,存储器管理电路502会根据410(0)~410(n)的损耗值,执行平均损耗操作。

图11是根据一范例实施例所示的执行平均损耗操作的流程图。

请参照图11,在步骤s1101中,存储器管理电路502会持续判断是否启动平均损耗操作。例如,在存储器储存装置10运作超过一预定时间或者可复写式非易失性存储器模块406的实体抹除单元的总抹除次数大于一预定门槛值时,存储器管理电路502会启动平均损耗操作。

倘若启动平均损耗操作时,在步骤s1103中存储器管理电路502会从数据区602中依据损耗表900选择一个具最低损耗值的实体抹除单元(以下可参考为第二实体抹除单元)。例如,请参照图9,假设实体抹除单元410(0)~410(96)关联至数据区602,且实体抹除单元410(4)的损耗值为最低,基此,存储器管理电路502会从数据区602中选择实体抹除单元410(4)。

在步骤s1105中存储器管理电路502会从闲置区604中依据损耗表900选择一个具最高损耗值的实体抹除单元(以下可参考为第三实体抹除单元)。例如,请参照图9,假设实体抹除单元410(97)~410(100)关联至闲置区604,且实体抹除单元410(100)的损耗值为最高,基此,存储器管理电路502会从闲置区605中选择实体抹除单元410(100)。

在步骤s1107中,存储器管理电路502会将第二实体抹除单元上的有效数据复制到第三实体抹除单元,将第二实体抹除单元关联至闲置区604,并且将第三实体抹除单元关联至数据区。例如,在逻辑-实体映射表中,将原映射至实体抹除单元410(4)的逻辑单元更新为映射实体抹除单元410(100),以将实体抹除单元410(100)关联至数据区602,并且在闲置区伫列表中加入实体抹除单元410(4),以将实体抹除单元410(4)关联至闲置区604。

值得一提的是,在本范例实施例中,第一参数值与第二参数值的比值是固定的,例如,如上所述,第一参数值与第二参数值的比值为1:10。然而,本发明不限于此,在另一范例实施例中,存储器管理电路502可根据可复写式非易失性存储器模块406的实体抹除单元的总抹除次数来动态地调整第一参数值与第二参数值的比值。例如,在可复写式非易失性存储器模块406的实体抹除单元的平均抹除次数大于一个平均抹除门槛值(例如,500)后,第一参数值与第二参数值的比值会被调整为1:100。也就是说,第二参数值会被调整100。基此,实体抹除单元410(0)~410(n)的损耗可被更精准的衡量。

综上所述,本范例实施例的存储器管理方法、存储器控制电路单元与存储器储存装置是根据不同程序化模式对记忆胞的损耗来估算出实体抹除单元的损耗值,并且根据此估算的损耗值来进行平均损耗操作,由此,能够还平均每个实体抹除单元的使用,有效地提升存储器储存装置的寿命。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属技术领域中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视所附的权利要求所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1