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

文档序号:12595977阅读:351来源:国知局
本发明是有关于一种存储器管理机制,且特别是有关于一种存储器管理方法、存储器控制电路单元与存储器存储装置。
背景技术
::数码相机、手机与MP3在这几年来的成长十分迅速,使得消费者对存储媒体的需求也急速增加。由于可复写式非易失性存储器(rewritablenon-volatilememory)具有数据非易失性、省电、体积小、无机械结构、读写速度快等特性,最适于便携式电子产品,例如笔记本电脑。固态硬盘就是一种以快闪存储器作为存储媒体的存储器存储装置。因此,近年快闪存储器产业成为电子产业中相当热门的一环。一般来说,可复写式非易失性存储器存储装置每隔一段时间就会执行一次有效数据的搬移重组程序,而用来决定是否执行此有效数据的搬移重组程序的依据是在可复写式非易失性存储器存储装置出厂时就决定好的。然而,由于有效数据的搬移重组程序的执行效率时好时坏,往往导致可复写式非易失性存储器存储装置的数据存取速度跟着忽上忽下。有鉴于此,如何在执行有效数据的搬移重组程序与维持可复写式非易失性存储器存储装置的数据存取速度之间取得平衡实为本领域所致力的目标之一。技术实现要素:本发明提供一种存储器管理方法、存储器控制电路单元与存储器存储装置,可改善可复写式非易失性存储器存储装置因执行有效数据的搬移所导致的数据存取速度不稳定的问题。本发明的一范例实施例提供用于可复写式非易失性存储器模块的一种存储器管理方法,其中所述可复写式非易失性存储器模块包括多个物理擦除单 元。所述存储器管理方法包括接收第一写入指令并将所述第一写入指令所对应的数据写入至所述物理擦除单元中的第一闲置物理擦除单元;检测所述物理擦除单元中不包含所述第一闲置物理擦除单元的多个第二闲置物理擦除单元的数目;判断所述第二闲置物理擦除单元的数目是否小于门槛值;以及若所述第二闲置物理擦除单元的数目小于所述门槛值,执行第一程序,其中所述第一程序包括将所述物理擦除单元中的多笔有效数据搬移至所述物理擦除单元中的至少一第三闲置物理擦除单元中;以及将所述门槛值从第一门槛值调整为第二门槛值。在本发明的一范例实施例中,其中将所述门槛值从所述第一门槛值调整为所述第二门槛值的步骤包括记录存储有效数据的所述至少一第三闲置物理擦除单元的数目;以及根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值。在本发明的一范例实施例中,其中记录存储有效数据的所述至少一第三闲置物理擦除单元的数目的步骤包括:判断所述物理擦除单元中所存储的有效数据都已被搬移的多个第一非闲置物理擦除单元的一数目是否符合预设数目;以及若所述第一非闲置物理擦除单元的所述数目符合所述预设数目,记录存储有效数据的所述至少一第三闲置物理擦除单元的数目。在本发明的一范例实施例中,其中根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值的步骤包括根据对应于所述预设数目的参考值与存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第一门槛值与所述第二门槛值之间的差值,其中所述参考值为所述预设数目减一。在本发明的一范例实施例中,所述存储器管理方法还包括配置多个逻辑单元;以及根据所述物理擦除单元的总物理容量与所述逻辑单元的总逻辑容量来决定所述预设数目,其中所述总物理容量大于所述总逻辑容量。在本发明的一范例实施例中,其中所述第一程序还包括根据第一规则从所述物理擦除单元中选择所述第一非闲置物理擦除单元;以及在判定所述第一非闲置物理擦除单元的数目符合所述预设数目之后,根据第二规则从所述物理擦除单元中选择不包含所述第一非闲置物理擦除单元的至少一第二非闲置物理擦除单元,其中所述第一规则与所述第二规则不同。在本发明的一范例实施例中,所述存储器管理方法还包括在执行所述第一程序之后,接收第二写入指令;检测所述物理擦除单元中多个第四闲置物理擦除单元的数目;判断所述第四闲置物理擦除单元的数目是否大于所述第二门槛值;以及若所述第四闲置物理擦除单元的数目大于所述第二门槛值,停止执行所述第一程序并且将所述门槛值从所述第二门槛值调整为第三门槛值。在本发明的一范例实施例中,其中所述第三门槛值等于所述第一门槛值。本发明的一范例实施例提供用于控制可复写式非易失性存储器模块的一种存储器控制电路单元。所述存储器控制电路单元包括主机接口、存储器接口与存储器管理电路。主机接口用以电性连接至主机系统。存储器接口用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块包括多个物理擦除单元。存储器管理电路电性连接至所述主机接口与所述存储器接口。所述存储器管理电路用以接收第一写入指令并发送写入指令序列以指示将所述第一写入指令所对应的数据写入至所述物理擦除单元中的第一闲置物理擦除单元。所述存储器管理电路还用以检测所述物理擦除单元中不包含所述第一闲置物理擦除单元的多个第二闲置物理擦除单元的数目,并且判断所述第二闲置物理擦除单元的数目是否小于门槛值。若所述第二闲置物理擦除单元的数目小于所述门槛值,所述存储器管理电路还用以执行第一程序。所述第一程序包括将所述物理擦除单元中的多笔有效数据搬移至所述物理擦除单元中的至少一第三闲置物理擦除单元中;以及将所述门槛值从第一门槛值调整为第二门槛值。在本发明的一范例实施例中,其中所述存储器管理电路将所述门槛值从所述第一门槛值调整为所述第二门槛值的操作包括记录存储有效数据的所述至少一第三闲置物理擦除单元的数目;以及根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值。在本发明的一范例实施例中,其中所述存储器管理电路记录存储有效数据的所述至少一第三闲置物理擦除单元的数目的操作包括判断所述物理擦除单元中所存储的有效数据都已被搬移的多个第一非闲置物理擦除单元的数目是否符合预设数目;以及若所述第一非闲置物理擦除单元的所述数目符合所述预设数目,记录存储有效数据的所述至少一第三闲置物理擦除单元的数目。在本发明的一范例实施例中,其中所述存储器管理电路根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值的操作包括根据对应于所述预设数目的参考值与存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第一门槛值与所述第二门槛值之间的差值,其中所述参考值为所述预设数目减一。在本发明的一范例实施例中,其中所述存储器管理电路还用以配置多个逻辑单元,并且根据所述物理擦除单元的一总物理容量与所述逻辑单元的总逻辑容量来决定所述预设数目,其中所述总物理容量大于所述总逻辑容量。在本发明的一范例实施例中,其中所述存储器管理电路执行所述第一程序的操作还包括根据第一规则从所述物理擦除单元中选择所述第一非闲置物理擦除单元;以及在判定所述第一非闲置物理擦除单元的数目符合所述预设数目之后,根据第二规则从所述物理擦除单元中选择不包含所述第一非闲置物理擦除单元的至少一第二非闲置物理擦除单元,其中所述第一规则与所述第二规则不同。在本发明的一范例实施例中,在执行所述第一程序之后,所述存储器管理电路还用以接收第二写入指令。所述存储器管理电路还用以检测所述物理擦除单元中多个第四闲置物理擦除单元的数目,并且判断所述第四闲置物理擦除单元的数目是否大于所述第二门槛值。若所述第四闲置物理擦除单元的数目大于所述第二门槛值,所述存储器管理电路还用以停止执行所述第一程序并且将所述门槛值从所述第二门槛值调整为第三门槛值。本发明的一范例实施例提供一种存储器存储装置,其包括连接接口单元、可复写式非易失性存储器模块与存储器控制电路单元。连接接口单元用以电性连接至主机系统。可复写式非易失性存储器模块包括多个物理擦除单元。存储器控制电路单元电性连接至所述连接接口单元与所述可复写式非易失性存储器模块。所述存储器控制电路单元用以接收第一写入指令并发送写入指令序列以指示将所述第一写入指令所对应的数据写入至所述物理擦除单元中的第一闲置物理擦除单元。所述存储器控制电路单元还用以检测所述物理擦除单元中不包含所述第一闲置物理擦除单元的多个第二闲置物理擦除单元的数目,并且判断所述第二闲置物理擦除单元的数目是否小于门槛值。若所述第二闲置物理擦除单元的数目小于所述门槛值,所述存储器控制电路单元还 用以执行第一程序。所述第一程序包括将所述物理擦除单元中的多笔有效数据搬移至所述物理擦除单元中的至少一第三闲置物理擦除单元中;以及将所述门槛值从第一门槛值调整为第二门槛值。在本发明的一范例实施例中,其中所述存储器控制电路单元将所述门槛值从所述第一门槛值调整为所述第二门槛值的操作包括记录存储有效数据的所述至少一第三闲置物理擦除单元的数目;以及根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值。在本发明的一范例实施例中,其中所述存储器控制电路单元记录存储有效数据的所述至少一第三闲置物理擦除单元的数目的操作包括判断所述物理擦除单元中所存储的有效数据都已被搬移的多个第一非闲置物理擦除单元的数目是否符合预设数目;以及若所述第一非闲置物理擦除单元的数目符合所述预设数目,记录存储有效数据的所述至少一第三闲置物理擦除单元的数目。在本发明的一范例实施例中,其中所述存储器控制电路单元根据存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第二门槛值的操作包括根据对应于所述预设数目的参考值与存储有效数据的所述至少一第三闲置物理擦除单元的数目来决定所述第一门槛值与所述第二门槛值之间的差值,其中所述参考值为所述预设数目减一。在本发明的一范例实施例中,所述存储器控制电路单元还用以配置多个逻辑单元,并且根据所述物理擦除单元的总物理容量与所述逻辑单元的总逻辑容量来决定所述预设数目,其中所述总物理容量大于所述总逻辑容量。在本发明的一范例实施例中,其中所述存储器控制电路单元执行所述第一程序的操作还包括根据第一规则从所述物理擦除单元中选择所述第一非闲置物理擦除单元;以及在判定所述第一非闲置物理擦除单元的数目符合所述预设数目之后,根据第二规则从所述物理擦除单元中选择不包含所述第一非闲置物理擦除单元的至少一第二非闲置物理擦除单元,其中所述第一规则与所述第二规则不同。在本发明的一范例实施例中,在执行所述第一程序之后,所述存储器控制电路单元还用以接收第二写入指令,并且检测所述物理擦除单元中多个第四闲置物理擦除单元的数目。所述存储器控制电路单元还用以判断所述第四闲置物理擦除单元的数目是否大于所述第二门槛值。若所述第四闲置物理擦 除单元的数目大于所述第二门槛值,所述存储器控制电路单元还用以停止执行所述第一程序并且将所述门槛值从所述第二门槛值调整为第三门槛值。基于上述,本发明所提供的存储器管理方法、存储器控制电路单元与存储器存储装置,可动态地调整用来决定是否执行对于有效数据的搬移操作的门槛值。借此,通过对于触发有效数据的搬移操作的控制,可使得可复写式非易失性存储器模块的数据存取速度较为稳定。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图;图2是本发明的一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图;图3是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图;图4是示出图1所示的存储器存储装置的概要方块图;图5是本发明的一范例实施例所示出的存储器控制电路单元的概要方块图;图6是本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图;图7A与图7B是本发明的一范例实施例所示出的第一程序的示意图;图8是本发明的一范例实施例所示出的存储器管理方法的流程图。附图标记说明:10:存储器存储装置;11:主机系统;12:电脑;122:微处理器;124:随机存取存储器;126:系统总线;128:数据传输接口;13:输入/输出(I/O)装置;21:鼠标;22:键盘;23:显示器;24:打印机;25:随身碟;26:记忆卡;27:固态硬盘;31:数码相机;32:SD卡;33:MMC卡;34:记忆棒;35:CF卡;36:嵌入式存储装置;402:连接接口单元;404:存储器控制电路单元;406:可复写式非易失性存储器模块;502:存储器管理电路;504:主机接口;506:存储器接口;508:错误检查与校正电路;510:缓冲存储器;512:电源管理电路;600(0)~600(R):物理擦除单元;610(0)~610(D):逻辑单元;602:存储区;606:系统区;S801~S806:步骤。具体实施方式一般而言,存储器存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(也称,控制电路)。通常存储器存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储器存储装置或从存储器存储装置中读取数据。图1是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图。图2是本发明的一范例实施例所示出的电脑、输入/输出装置与存储器存储装置的示意图。请参照图1,主机系统11一般包括电脑12与输入/输出(input/output,简称:I/O)装置13。电脑12包括微处理器122、随机存取存储器(randomaccessmemory,简称:RAM)124、系统总线126与数据传输接口128。输入/输出装置13包括如图2的鼠标21、键盘22、显示器23与打印机24。必须了解的是,图2所示的装置非限制输入/输出装置13,输入/输出装置13可还包括其他装置。在一范例实施例中,存储器存储装置10是通过数据传输接口128与主机系统11的其他元件电性连接。通过微处理器122、随机存取存储器124与输入/输出装置13的运作可将数据写入至存储器存储装置10或从存储器存储装置10中读取数据。例如,存储器存储装置10可以是如图2所示的随身碟25、记忆卡26或固态硬盘(SolidStateDrive,简称:SSD)27等的可复写式非易失性存储器存储装置。图3是本发明的一范例实施例所示出的主机系统与存储器存储装置的示意图。一般而言,主机系统11为可实质地与存储器存储装置10配合以存储数据的任意系统。虽然在本范例实施例中,主机系统11是以电脑系统来作说明,然而,另一范例实施例中,主机系统11可以是数码相机、摄像机、通信装置、音频播放器或视频播放器等系统。例如,在主机系统为数码相机(摄像机)31时,可复写式非易失性存储器存储装置则为其所使用的SD卡32、MMC卡33、记忆棒(memorystick)34、CF卡35或嵌入式存储装置36(如图3所示)。嵌入式存储装置36包括嵌入式多媒体卡(EmbeddedMMC,简称:eMMC)。值得一提的是,嵌入式多媒体卡是直接电性连接于主机系统的基板上。图4是示出图1所示的存储器存储装置的概要方块图。请参照图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)接口标准、多媒体存储卡(MultiMediaCard,简称:MMC)接口标准、崁入式多媒体存储卡(EmbeddedMultimediaCard,eMMC)接口标准、通用快闪存储器(UniversalFlashStorage,简称:UFS)接口标准、小型快闪(CompactFlash,简称: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个比特数据的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存 储器模块。图5是本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504、存储器接口506及错误检查与校正电路508。存储器管理电路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执行相对应的写入、读取及擦除等操作。主机接口504是电性连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口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。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的辨识码、存储器地址等信息。错误检查与校正电路508是电性连接至存储器管理电路502并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应 此写入指令的数据产生对应的错误更正码(errorcorrectingcode,简称:ECC)和/或错误检查码(errordetectingcode,简称:EDC),并且存储器管理电路502会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路508会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510与电源管理电路512。缓冲存储器510是电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是电性连接至存储器管理电路502并且用以控制存储器存储装置10的电源。图6是本发明的一范例实施例所示出的管理可复写式非易失性存储器模块的示意图。必须了解的是,在此描述可复写式非易失性存储器模块406的物理擦除单元的运作时,以“选择”、“分组”、“划分”、“关联”等词来操作物理擦除单元是逻辑上的概念。也就是说,可复写式非易失性存储器模块的物理擦除单元的实际位置并未更动,而是逻辑上对可复写式非易失性存储器模块的物理擦除单元进行操作。可复写式非易失性存储器模块406的存储单元会构成多个物理编程单元,并且此些物理编程单元会构成多个物理擦除单元600(0)~600(R)。具体来说,同一条字元线上的存储单元会组成一或多个物理编程单元。若每一个存储单元可存储2个以上的比特,则同一条字元线上的物理编程单元至少可被分类为下物理编程单元与上物理编程单元。例如,在MLCNAND型快闪存储器中,一存储单元的最低有效比特(LeastSignificantBit,简称:LSB)是属于下物理编程单元,并且一存储单元的最高有效比特(MostSignificantBit,简称:MSB)是属于上物理编程单元。一般来说,下物理编程单元的写入速度会大于上物理编程单元的写入速度,或下物理编程单元的可靠度是高于上物理编程单元的可靠度。在本范例实施例中,物理编程单元为编程的最小单元。即,物理编程单元为写入数据的最小单元。例如,物理编程单元为物理页面或是物理扇 (sector)。若物理编程单元为物理页面,则每一个物理编程单元通常包括数据比特区与冗余比特区。数据比特区包含多个物理扇,用以存储使用者数据,而冗余比特区用以存储系统数据(例如,错误更正码)。在本范例实施例中,数据比特区包含32个物理扇,且一个物理扇的大小为512字节(byte,简称:B)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的物理扇,并且每一个物理扇的大小也可以是更大或更小。另一方面,物理擦除单元为擦除的最小单位。也即,每一物理擦除单元含有最小数目之一并被擦除的存储单元。例如,物理擦除单元为物理区块。请参照图6,存储器管理电路502可将可复写式非易失性存储器模块406的物理擦除单元600(0)~600(R)逻辑地划分为多个区域,例如为存储区602与系统区606。存储区602的物理擦除单元是用以存储来自主机系统11的数据。存储区602中会存储有效数据与无效数据。例如,当主机系统要删除一份有效数据时,被删除的数据可能还是存储在存储区602中,但会被标记为无效数据。在以下范例实施例中,没有存储有效数据的物理擦除单元也被称为闲置(spare)物理擦除单元。例如,被擦除以后的物理擦除单元便会成为闲置物理擦除单元。此外,在以下范例实施例中,有存储有效数据的物理擦除单元也被称为非闲置(non-spare)物理擦除单元。在一范例实施例中,若存储区602或系统区606中有物理擦除单元损坏时,存储区602中的物理擦除单元也可以用来替换损坏的物理擦除单元。倘若存储区602中没有可用的物理擦除单元来替换损坏的物理擦除单元时,则存储器管理电路502可能会将整个存储器存储装置10宣告为写入保护(writeprotect)状态,而无法再写入数据。系统区606的物理擦除单元是用以记录系统数据,其中此系统数据包括关于存储器芯片的制造商与型号、存储器芯片的物理擦除单元数、每一物理擦除单元的物理编程单元数等。在一范例实施例中,存储区602与系统区606的物理擦除单元的数量会依据不同的存储器规格而有所不同。此外,必须了解的是,在存储器存储装置10的运作中,物理擦除单元关联至存储区602与系统区606的分组关系可能会动态地变动。例如,当系统区606中的物理擦除单元损坏而被存储区602 的物理擦除单元取代时,则原本在存储区602的物理擦除单元会被关联至系统区606。在本范例实施例中,存储器管理电路502会配置逻辑单元610(0)~610(D)以映射至存储区602中的物理擦除单元600(0)~600(A)。例如,在本范例实施例中,主机系统11是通过逻辑地址来存取存储区602中的数据,因此,每一个逻辑单元610(0)~610(D)是指一个逻辑地址。此外,在一范例实施例中,每一个逻辑单元610(0)~610(D)也可以是指一个逻辑扇、一个逻辑编程单元、一个逻辑擦除单元或者由多个连续的逻辑地址组成。在本范例实施例中,每一个逻辑单元610(0)~610(D)是映射至一或多个物理单元。在本范例实施例中,一个物理单元是指一个物理擦除单元。然而,在另一范例实施例中,一个物理单元也可以是一个物理地址、一个物理扇、一个物理编程单元或者是由多个连续的物理地址组成,本发明不加以限制。存储器管理电路502会将逻辑单元与物理单元之间的映射关系记录于至少一逻辑-物理映射表。当主机系统11欲从存储器存储装置10读取数据或写入数据至存储器存储装置10时,存储器管理电路502可根据此逻辑-物理映射表来执行对于存储器存储装置10的数据存取。一般来说,在接收到来自主机系统11的写入指令之后,存储区602中的闲置物理擦除单元会被用来存储对应于此写入指令的数据。若存储区602中的闲置物理擦除单元不足,存储器管理电路502会指示可复写式非易失性存储器模块406执行一数据整并程序。在一范例实施例中,此数据整并程序也称为垃圾回收(garbagecollection)程序。在数据整并程序中,散布在存储区602的部分有效数据会被收集并且集中搬移到某些闲置物理擦除单元中,以释放存储无效数据的物理擦除单元。若某一笔原始标记为有效数据的数据被从某一个非闲置物理擦除单元搬移出去,则此数据会在此非闲置物理擦除单元中被标记为无效数据。若某一个非闲置物理擦除单元所存储的所有有效数据都已被搬移出去(即,此非闲置物理擦除单元所存储的所有数据都已标记为无效数据),则此非闲置物理擦除单元将可以被擦除而成为一个新的闲置物理擦除单元。另一方面,在数据整并程序中被用来存储所收集的有效数据的闲置物理擦除单元会成为一个新的非闲置物理擦除单元。在本范例实施例中,存储器管理电路502会接收来自主机系统11的一写入指令(以下也称为第一写入指令)并根据第一写入指令从存储区602中选择一个物理擦除单元。在本范例实施例中,所选择的物理擦除单元为闲置物理擦除单元(以下也称为第一闲置物理擦除单元)。然而,在另一范例实施例中,所选择的物理擦除单元也可能是已经存储有其他的写入数据的闲置物理擦除单元。存储器管理电路502会发送一写入指令序列至可复写式非易失性存储器模块406以指示将对应于此第一写入指令的数据(以下也称为第一数据)写入至此第一闲置物理擦除单元中。例如,此第一数据为此写入指令所指示需存储的数据。在选择第一闲置物理擦除单元之后,存储器管理电路502会检测存储区602中不包含第一闲置物理擦除单元的闲置物理擦除单元(以下也称为第二闲置物理擦除单元)的数目。例如,此第二闲置物理擦除单元的数目为在第一闲置物理擦除单元被选择之后存储区602中剩余的闲置物理擦除单元的总数。存储器管理电路502会判断第二闲置物理擦除单元的数目是否小于一门槛值。例如,判断第二闲置物理擦除单元的数目是否小于此门槛值的操作是反应于上述存储器管理电路502接收第一写入指令或选择第一闲置物理擦除单元而执行。此门槛值可作为判断存储区602中剩余的闲置物理擦除单元是否足够的依据。例如,在本范例实施例中,此门槛值可以是“6”。然而,在另一范例实施例中,此门槛值也可以是更大或更小的正整数。若第二闲置物理擦除单元的数目小于此门槛值,表示存储区602中剩余的闲置物理擦除单元即将不足,故存储器管理电路502会执行一个数据整并程序(以下也称为第一程序)来释放存有无效数据的物理擦除单元。然而,若第二闲置物理擦除单元的数目不小于此门槛值,表示存储区602中剩余的闲置物理擦除单元仍然足够,故存储器管理电路502可以选择不执行此第一程序。若决定执行第一程序,存储器管理电路502会从存储区602中选择另一个闲置物理擦除单元来存储第一程序中所收集的有效数据。在决定执行第一程序之后,对应于存储器管理电路502将一笔来自主机系统11的数据写入至第一闲置物理擦除单元中的一个物理编程单元,多笔数据(即,有效数据)会被从存储区602中的“N个”连续或不连续的物理编程单元中搬移到用来存储 第一程序中所收集的有效数据的闲置物理擦除单元中,直到第一程序被停止为止。此“N个”连续或不连续的物理编程单元可以是包含于一或多个物理擦除单元中。例如,若“N”为“2”,则在第一程序中,对应于将上述第一数据写入至第一闲置物理擦除单元中的某一个物理编程单元,“2笔”有效数据会被从存储区602中的“2个”连续或不连续的物理编程单元中搬移到用来存储所收集的有效数据的闲置物理擦除单元中。在第一程序被停止之前,若接收到更多的写入指令,则更多的来自主机系统11的数据会被存储至上述第一闲置物理擦除单元中并且更多来自存储区602的有效数据会被收集并且被集中至用来存储所收集的有效数据的闲置物理擦除单元中。若上述第一闲置物理擦除单元已经或者即将被写满,则更多的闲置物理擦除单元可以被选择来存储来自主机系统11的数据。在以下的范例实施例中,也可以将第一程序中被选择来存储来自主机系统11的数据的每一个闲置物理擦除单元都称为第一闲置物理擦除单元。在第一程序被停止之前,若目前被选择来存储所收集的有效数据的一或多个闲置物理擦除单元已被写满或即将被写满,则更多的闲置物理擦除单元也可以被选择并且被用来存储所收集的有效数据。在以下的范例实施例中,也可以将第一程序中预计被选择来存储所收集的有效数据的闲置物理擦除单元称为第三闲置物理擦除单元。在第一程序中,存储器管理电路502会从存储区602中选择多个闲置物理擦除单元(即,第三闲置物理擦除单元)并且指示可复写式非易失性存储器模块406将存储区602中的多个非闲置物理擦除单元所存储的有效数据搬移至此些第三闲置物理擦除单元中。例如,在一范例实施例中,第一程序是预设将所收集的有效数据写满“N个”闲置物理擦除单元(即,第三闲置物理擦除单元)以至少释放出“N+1个”新的可用来存储来自主机系统11的数据的物理擦除单元。其中,用来存储所收集的有效数据的每一个闲置物理擦除单元会成为一个非闲置物理擦除单元,而所存储的有效数据都已被搬移出去的每一个非闲置物理擦除单元会成为闲置物理擦除单元。在第一程序中,存储器管理电路502还会将上述用来判断是否执行第一程序的门槛值从目前的值(以下也称为第一门槛值)调整为另一个值(以下也称为第二门槛值)。在本范例实施例中,第二门槛值会大于第一门槛值。而在决 定停止第一程序之后,存储器管理电路502则会将此门槛值从第二门槛值调整为另一个值(以下也称为第三门槛值)。在一范例实施例中,第一门槛值、第二门槛值及第三门槛值都各别是一个预设值,其不会随着第一程序的执行状况而改变。然而,在本范例实施例中,第一门槛值是一个预设值,第二门槛值会随着第一程序的执行状况而即时地决定,并且第三门槛值等于第一门槛值。在本范例实施例中,在上述将有效数据搬移至第三闲置物理擦除单元的过程中,存储器管理电路502会判断所存储的有效数据都已被搬移出去的多个非闲置物理擦除单元(以下也称为第一非闲置物理擦除单元)的数目是否符合一预设数目。例如,此预设数目为“N+1”。其中,在将有效数据完整地从某一个第一非闲置物理擦除单元搬移出来之后,此第一非闲置物理擦除单元即成为一个被释放的闲置物理擦除单元。因此,在一范例实施例中,判断第一非闲置物理擦除单元的数目是否符合预设数目的操作也可视为判断在第一程序中被释放的闲置物理擦除单元的数目是否达到预设数目的操作。若判定第一非闲置物理擦除单元的数目符合预设数目,存储器管理电路502会将当下存储有在第一程序中被搬移的有效数据的至少一个物理擦除单元的数目记录下来。换言之,在某些范例实施例中,第三闲置物理擦除单元是指在第一程序中预设会用来存储所收集的有效数据的物理擦除单元,而当下存储有在第一程序中被搬移的有效数据的至少一个物理擦除单元的数目则是指此些第三闲置物理擦除单元中当前已经存储了所收集的有效数据的物理擦除单元的总数。存储器管理电路502会根据所记录的数目(即,当下存储有在第一程序中被搬移的有效数据的至少一个物理擦除单元的数目)来决定第二门槛值。图7A与图7B是本发明的一范例实施例所示出的第一程序的示意图。请参照图7A,在第一程序中,预定是要收集到可以写满“N个”闲置物理擦除单元(即,第三闲置物理擦除单元)的有效数据,才会释放出“N+1个”闲置物理擦除单元。请参照图7B,在本范例实施例中,若在第一程序中只收集到写入或写满“M个”物理擦除单元的有效数据就已经释放出“N+1个”物理擦除单元,则“M”这个值就会被记录下来。M可以是小于或等于N的正整数。在本范例实施例中,存储器管理电路502会根据对应于上述预设数目的一个参考值与所记录的数目(例如,“M”)来决定第一门槛值与第二门槛值之间的差值。尔后,存储器管理电路502会根据此差值来决定第二门槛值。例如,假设预设数目为“N+1”,则对应于预设数目的参考值可以被设定为“N”(即,预设数目减一),并且存储器管理电路502可将参考值“N”减去“M”而获得第一门槛值与第二门槛值之间的差值“E”(即,E=N-M)。尔后,存储器管理电路502可将当前的第一门槛值“T1”加上此差值“E”而获得第二门槛值“T2”(即,T2=T1+E)。值得一提的是,从上述范例实施例中可以观察到,第二门槛值与第一门槛值之间的差距会与第一程序中欲收集的有效数据在存储区602中的分布或第一程序的执行效率有关。例如,若在第一程序中欲收集的有效数据在存储区602中的分布较集中(即,只要从少数的非闲置物理擦除单元中收集有效数据就可以释放出符合预设数目的新的闲置物理擦除单元),则所记录的“M”可能较小,同时第二门槛值“T2”与第一门槛值“T1”之间的差距可能会较大;反之,若在第一程序中欲收集的有效数据在存储区602中的分布较分散(即,需要从许多的非闲置物理擦除单元中收集有效数据才可以释放出符合预设数目的新的闲置物理擦除单元),则所记录的“M”可能会较大(例如,M可能趋近于N),同时第二门槛值“T2”与第一门槛值“T1”之间的差距可能会较小。此外,须特别说明的是,在上述范例实施例中,用来计算第二门槛值“T2”的概念可以简化为:第二门槛值“T2”=第一门槛值“T1”+参考值“N”-所记录的“M”。然而,在另一范例实施例中,基于实务上的需求,此概念也可以搭配任何逻辑运算来实施。或者,在另一范例实施例中,也可以将第一门槛值“T1”、参考值“N”(或预设数目“N+1”)及所记录的“M”等参数输入至一预设算法或通过查表来获得第二门槛值“T2”。在一范例实施例中,存储器管理电路502还会根据存储区602中所有的物理擦除单元的一总容量(以下也称为总物理容量)与所配置的所有可用的逻辑单元的一总容量(以下也称为总逻辑容量)来决定所述预设数目(或所述参考值)。其中,总物理容量会大于总逻辑容量。例如,总逻辑容量会等于主机系统11或存储器管理电路502所设定的可以用来存储使用者数据的一最大容 量。例如,在图8的一范例实施例中,假设对应于可复写式非易失性存储器模块406的所有可用的逻辑单元610(0)~610(D)都可以或者已被用来存储有效数据且存储区602包括物理擦除单元600(0)~600(A),则所述预设数目“N+1”(或所述参考值“N”)可以根据逻辑单元610(0)~610(D)的总逻辑容量“L”与物理擦除单元600(0)~600(A)的总物理容量“P”来决定。例如,可根据:总逻辑容量“L”/(总物理容量“P”-总逻辑容量“L”)来获得参考值“N”。在本范例实施例中,若初步计算出的参考值“N”不为一正整数,则也可以将:总逻辑容量“L”/(总物理容量“P”-总逻辑容量“L”)的结果取小数点四舍五入、取小数点无条件进位、取高斯或者取某一最接近的有意义(例如为2的次方)的正整数等来获得参考值“N”。在另一范例实施例中,基于实务上的需求,上述获得参考值“N”的运算也可以搭配任何逻辑运算来实施。此外,在另一范例实施例中,也可以将总逻辑容量“L”与总物理容量“P”输入至一预设算法或通过查表来获得参考值“N”(或预设数目“N+1”)。在图8的另一范例实施例中,总物理容量“P”也可以包含系统区606中的至少一物理擦除单元的容量。在一范例实施例中,上述总物理容量也可以是以用来计算此总物理容量的多个物理单元(例如,物理擦除单元)的总数来取代,并且上述总逻辑容量也可以是以用来计算此总逻辑容量的多个逻辑单元的总数来取代。在一范例实施例中,所计算出来的“N”例如是“32”,但若存储器存储装置10的规格不同,则“N”也可能是更大或更小的正整数。在开始执行第一程序之后,若存储器管理电路502又接收到来自主机系统11的另一写入指令(以下也称为第二写入指令),则存储器管理电路502会检测存储区602中当前的闲置物理擦除单元(以下也称为第四闲置物理擦除单元)的数目。例如,此些第四闲置物理擦除单元的数目是指存储区602中当前的所有闲置物理擦除单元的总数,并且此些第四闲置物理擦除单元可能会包含在第一程序中被释放出来的闲置物理擦除单元。存储器管理电路502会判断此些第四闲置物理擦除单元的数目是否大于一个门槛值。值得一提的是,在本范例实施例中,门槛值已由第一门槛值调整为第二门槛值,故存储器管理电路502实际上是判断存储区602中第四闲置物理擦除单元的数目是否大于此第二门槛值。若第四闲置物理擦除单元的数目不大 于此第二门槛值,存储器管理电路502会持续执行第一程序。关于如何执行第一程序已于前述说明,故在此便不赘述。此外,若第四闲置物理擦除单元的数目大于此第二门槛值,则存储器管理电路502会停止执行第一程序。在本范例实施例中,若决定停止执行第一程序,则存储器管理电路502还会将用来判断是否执行第一程序的门槛值从此第二门槛值调整回预设的第一门槛值。借此,在停止执行第一程序之后,若又需要对应于来自主机系统11的某一个写入指令而判断剩余的闲置物理擦除单元是否足够,则存储器管理电路502会再次使用此第一门槛值来判断是否执行下一个第一程序。若决定执行下一个第一程序,则存储器管理电路502会再次根据此第一程序的执行状况来决定相对应的第二门槛值。尔后,存储器管理电路502可根据所决定的第二门槛值来判断是否停止执行所执行的第一程序并且对应于停止执行第一程序而再次调整门槛值(例如,将门槛值再次从第二门槛值调整回第一门槛值或其他值等等)。关于如何利用第一门槛值来判断是否执行第一程序、如何决定相对应的第二门槛值以及如何利用第二门槛值来决定是否停止第一程序等操作都已于上述范例实施例中说明,在此便不赘述。换言之,相对于一般用来判断是否开始执行数据整并程序以及欲来判断是否停止数据整并程序都是使用相同的门槛值,本发明可以根据每一次数据整并程序的执行状况来对应设定用以停止数据整并程序的门槛值。例如,在决定开始执行数据整并程序之后,随即可根据当前数据整并程序的执行状况将对应于停止此数据整并程序的门槛值调大,从而延长此数据整并程序的执行。在一范例实施例中,若检测到第一非闲置物理擦除单元的数目符合预设数目,则用来选择第一程序中欲提取有效数据的非闲置物理擦除单元的规则可能会改变。例如,在一范例实施例中,在检测到第一非闲置物理擦除单元的数目符合预设数目之前,存储器管理电路502会根据一个预设规则(以下也称为第一规则)从存储区602中选择第一程序中欲提取有效数据的非闲置物理擦除单元(即,第一非闲置物理擦除单元)。例如,此第一规则可以包括选择存储的有效数据少于一预设值或存储的无效数据多于此预设值等对于有效数据的搬移效率较佳的非闲置物理擦除单元。而在检测到第一非闲置物理擦除单元的数目符合预设数目之后,存储器管理电路502则是会根据另一个预设规 则(以下也称为第二规则)从存储区602中选择在第一程序中还需要被提取有效数据的至少一个非闲置物理擦除单元(以下也称为第二非闲置物理擦除单元)。其中,第二规则与第一规则不同。例如,此第二规则可以包括选择存储的有效数据多于上述预设值、存储的无效数据少于上述预设值、或随机选择等对于有效数据的搬移效率较不佳的非闲置物理擦除单元。以图7A与图7B的范例实施例为例,假设预定在第一程序中要收集可以写满“N”个闲置物理擦除单元(即,第三闲置物理擦除单元)的有效数据(如图7A所示),但是在收集到写满或写入“M”个物理擦除单元的有效数据时就已经释放出“N+1”个新的闲置物理擦除单元(如图7B所示)。在此情况下,先被写入至此“M”个物理擦除单元的有效数据例如是从根据第一规则所选择的多个非闲置物理擦除单元(即,第一非闲置物理擦除单元)中所提取的,而稍后被写入至其余“N-M”个或更多的闲置物理擦除单元的有效数据则例如是从根据第二规则所选择的非闲置物理擦除单元(即,第二非闲置物理擦除单元)中所提取的。换言之,相对于第二规则,第一规则对于非闲置物理擦除单元的筛选是较为严格的,且根据第一规则来选择非闲置物理擦除单元也相对于根据第二规则来选择非闲置物理擦除单元可能需要耗费更多的系统资源。因此,在一范例实施例中,在检测到已释放出符合预设数目的闲置物理擦除单元之后,通过使用第二规则来选择其余要被提取有效数据的非闲置物理擦除单元,将可节省耗费在寻找非闲置物理擦除单元的系统资源。此外,在另一范例实施例中,也可以维持使用第一规则或第二规则来在第一程序中选择要被提取有效数据的所有非闲置物理擦除单元,本发明不加以限制。图8是本发明的一范例实施例所示出的存储器管理方法的流程图。请参照图8,在步骤S801中,接收一写入指令并根据所述写入指令从可复写式非易失性存储器模块的多个物理擦除单元中选择一个闲置物理擦除单元来写入对应于此写入指令的数据。在步骤S802中,检测所述物理擦除单元中不包含步骤S801中所选择的闲置物理擦除单元的其余闲置物理擦除单元的数目。在步骤S803中,判断在步骤S802中所检测的闲置物理擦除单元的数目是否小于一门槛值。在此,此门槛值为第一门槛值。若所检测的闲置物理擦除单元的数目不小于所述第一门槛值,则步骤S801可被重复执行。若所述剩余的闲置物理擦除单元的数目小于所述第一门槛值,在步骤S804中,执行一数据整并程序(即,上述第一程序)以释放出新的闲置物理擦除单元。此外,在步骤S804中,根据第一程序的执行状况,用来判断是否执行第一程序的所述第一门槛值会被调整。在此,所述门槛值会被从第一门槛值调整为第二门槛值。关于如何执行第一程序以及如何调整门槛值已于前述范例实施例中说明,在此便不赘述。在步骤S805中,判断可复写式非易失性存储器模块中目前的闲置物理擦除单元的数目是否大于在步骤S804中所设定的第二门槛值。若步骤S805的判断结果为否,表示闲置物理擦除单元还是不足,故步骤S804会被重复执行以释放出更多的闲置物理擦除单元。若步骤S805的判断结果为是,则在步骤S806中,停止执行第一程序并再次调整门槛值。例如,将门槛值从目前的第二门槛值调整为第三门槛值。例如,此第二门槛值可以是第一门槛值或任意预设值。在步骤S806之后,步骤S801会被重复执行。值得一提的是,在步骤S804中,还可以判断当前使用中的门槛值是否是第一门槛值(或第二门槛值)。若当前使用中的门槛值是第一门槛值,则可以根据执行中的第一程序的执行状况来将此门槛值调整为第二门槛值。若当前使用中的门槛值不是第一门槛值,例如,当前使用中的门槛值已经是调整过的第二门槛值,则此门槛值将不会再次被调整。借此,可避免门槛值被重复调整。然而,图8中各步骤已详细说明如上,在此便不再赘述。值得注意的是,图8中各步骤可以实作为多个程序码或是电路,本发明不加以限制。此外,图8的方法可以搭配以上范例实施例使用,也可以单独使用,本发明不加以限制。综上所述,本发明所提供的存储器管理方法、存储器控制电路单元与存储器存储装置,可动态地调整用来决定是否执行对于有效数据的搬移操作(即,数据整并程序)的门槛值。特别是,当对于闲置物理擦除单元的释放效率很好时,可增加此门槛值的调整幅度;而当对于闲置物理擦除单元的释放效率不好时,则可降低此门槛值的调整幅度。借此,通过对于触发有效数据的搬移操作的控制,例如,延长所执行的有效数据的搬移操作,可使得可复写式非易失性存储器模块的数据存取速度较为稳定。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1