存储器管理方法以及存储控制器与流程

文档序号:19942643发布日期:2020-02-14 23:22阅读:132来源:国知局
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
::一般来说,为了延长可复写式非易失性存储器模块的寿命,会尽可能平均地使用可复写式非易失性存储器模块中的物理抹除单元(物理区块)。传统的耗损平均操作(wearlevelingoperation,wloperation)的方法是在可复写式非易失性存储器模块每执行一段固定的时间后,以闲置的物理抹除单元替换存储数据的物理抹除单元,以期让在耗损较低(如,抹除次数值较低)的物理抹除单元可成为闲置物理抹除单元以供使用。此外,当数据经由耗损平均操作从原本的物理抹除单元被搬移至闲置物理抹除单元后,此闲置物理抹除单元会被归类至数据区成为新的数据物理抹除单元,并且所述数据会成为“新鲜”的数据。此外,读取此“新鲜”的数据所获得的错误比特数目会较低。也就是说,在读取新的数据物理抹除单元时,比较不会因为高的错误比特数目而导致读取重试操作的执行。基于上述现象,如何有效地的在不使用抹除次数值、写入次数值或读取次数值的情况下,来选择用以被执行耗损平均操作的对象,同时降低存储装置执行读取重试的次数,从而提升可复写式非易失性存储器模块的存取效率与所存储数据的稳定,是此领域技术人员所致力的目标。技术实现要素:本发明提供一种存储器管理方法,可经由所执行过的多个读取重试操作,对应调整特定的物理区块的读取操作,并且选择用以执行耗损平均操作的对象来执行耗损平均操作,进而降低读取重试操作且维持所存储数据的稳定。本发明的一实施例提供一种存储器管理方法,适用于配置有可复写式非易失性存储器模块的存储装置,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被分组为多个区块串。所述方法包括:对所述多个区块串中的一目标区块串执行读取重试操作,并且识别所述目标区块串的一读取重试记录表,其中所述读取重试记录表记录多个栏位,其中所述多个栏位记录分别对应多个已完成的读取重试操作的多个读取重试索引值与多个读取重试权重值;反应于所述目标区块串的所述读取重试记录表具有尚未被选择的一或多个第一读取重试索引值,根据所述一或多个第一读取重试索引值的读取重试权重值从所述一或多个第一读取重试索引值中选择一目标读取重试索引值:使用对应所述目标读取重试索引值的目标读取重试选项来对所述目标区块串执行读取操作;反应于判定所述读取操作成功,判定所述读取重试操作完成,并且根据所述目标读取重试索引值来更新所述读取重试记录表;以及根据最新的所述读取重试记录表来判断是否对所述目标区块串执行耗损平均操作。本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、区块串管理电路单元以及处理器。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个物理区块,其中所述多个物理区块被分组为多个区块串。所述处理器耦接至所述连接接口电路、所述存储器接口控制电路与所述区块串管理电路单元,并且用以指示所述区块串管理电路单元对所述多个区块串中的一目标区块串执行读取重试操作。所述区块串管理电路单元用以识别所述目标区块串的一读取重试记录表,其中所述读取重试记录表记录多个栏位,其中所述多个栏位记录分别对应多个已完成的读取重试操作的多个读取重试索引值与多个读取重试权重值。此外,反应于所述目标区块串的所述读取重试记录表具有尚未被选择的一或多个第一读取重试索引值,所述区块串管理电路单元还用以根据所述一或多个第一读取重试索引值的读取重试权重值从所述一或多个第一读取重试索引值中选择一目标读取重试索引值。所述处理器还用以使用对应所述目标读取重试索引值的目标读取重试选项来对所述目标区块串执行读取操作。反应于判定所述读取操作成功,所述区块串管理电路单元还用以判定所述读取重试操作完成,并且根据所述目标读取重试索引值来更新所述读取重试记录表,其中所述区块串管理电路单元还用以根据最新的所述读取重试记录表来判断是否对所述目标区块串执行耗损平均操作。基于上述,本发明实施例所提供的存储器管理方法与存储控制器,可在不利用传统上现有的抹除次数、写入次数或读取次数等统计值的情况下,通过用以记录多个区块串所执行的多个读取重试操作的信息的多个读取重试记录表来判断较适合的读取重试选项,并且可根据多个读取重试记录表来判断应执行耗损平均操作的区块串,以增进读取重试操作的效率且经由所执行的耗损平衡操作维持数据的稳定度,从而提升可复写式非易失性存储器模块的存取效率与可靠度。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。图2是根据本发明的一实施例所示出的存储器管理方法的流程图。图3为根据本发明的一实施例所示出可复写式非易失性存储器模块的多个区块串的示意图。图4为根据本发明的一实施例所示出的读取重试记录表的示意图。图5是根据本发明的一实施例所示出的图2的步骤s207的流程图。图6是根据本发明的一实施例所示出的图2的步骤s208的流程图。图7a与图7b是根据本发明的一实施例所示出的更新读取重试记录表的示意图。附图标记说明10:主机系统20:存储装置110、211:处理器120:主机存储器130:数据传输接口电路210:存储控制器212:数据管理电路213:存储器接口控制电路214:错误检查与校正电路215:区块串管理电路单元2151:重新读取管理电路2152:耗损平均触发电路216:缓冲存储器217:电源管理电路220:可复写式非易失性存储器模块230:连接接口电路d1:封装lun1:逻辑数p1(1)~p1(6)、p1(m-1)、p1(m-1)、p2(1)~p2(6)、p2(m-1)、p2(m)、p3(1)~p3(6)、p3(m-1)、p3(m)、p4(1)~p4(6)、p4(m-1)、p4(m):物理区块p1~p4:平面bs(1)~bs(6)、bs(m-1)、bs(m):区块串d701、d702、d703:虚框s201、s202、s203、s204、s205、s206、s207、s208、s209、s210、s211、s212:存储器管理方法的流程步骤s2071、s2072、s2073、s2074、s2075、s2076、s2077:步骤s207的流程步骤s2081、s2082、s2083、s2084、s2085、s2086、s2087、s2088:步骤s208的流程步骤f1~f4:栏位400、700~706:读取重试记录表rri、rri(1)~rri(4)、rri(x):读取重试索引值rrw、rrw(1)~rrw(4)、rrw(x):读取重试权重值具体实施方式在本实施例中,存储装置包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与存储装置控制器(也称,存储控制器或存储控制电路)。此外,存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。请参照图1,主机系统(hostsystem)10包括处理器(processor)110、主机存储器(hostmemory)120及数据传输接口电路(datatransferinterfacecircuit)130。在本实施例中,数据传输接口电路130耦接(也称,电性连接)至处理器110与主机存储器120。在另一实施例中,处理器110、主机存储器120与数据传输接口电路130之间利用系统总线(systembus)彼此耦接。存储装置20包括存储控制器(storagecontroller)210、可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)220及连接接口电路(connectioninterfacecircuit)230。其中,存储控制器210包括处理器211、数据管理电路(datamanagementcircuit)212与存储器接口控制电路(memoryinterfacecontrolcircuit)213。在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是u盘、存储卡、固态硬盘(solidstatedrive,ssd)或无线存储器存储装置。无线存储器存储装置可例如是近距离无线通讯(nearfieldcommunication,nfc)存储器存储装置、无线传真(wifi)存储器存储装置、蓝牙(bluetooth)存储器存储装置或低功耗蓝牙存储器存储装置(例如,ibeacon)等以各式无线通讯技术为基础的存储器存储装置。此外,主机板也可以通过系统总线耦接至全球定位系统(globalpositioningsystem,gps)模块、网络接口卡、无线传输装置、键盘、屏幕、喇叭等各式i/o装置。在本实施例中,数据传输接口电路130与连接接口电路230是相容于高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准的接口电路。并且,数据传输接口电路130与连接接口电路230之间是利用快速非易失性存储器接口标准(non-volatilememoryexpress,nvme)通讯协定来进行数据的传输。然而,必须了解的是,本发明不限于此,数据传输接口电路130与连接接口电路230也可以是符合并行高级技术附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、串行高级技术附件(serialadvancedtechnologyattachment,sata)标准、通用串行总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、存储棒(memorystick,ms)接口标准、多芯片封装(multi-chippackage)接口标准、多媒体存储卡(multimediacard,mmc)接口标准、emmc接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。此外,在另一实施例中,连接接口电路230可与存储控制器210封装在一个芯片中,或者连接接口电路230是布设于一包含存储控制器210的芯片外。在本实施例中,主机存储器120用以暂存处理器110所执行的指令或数据。例如,在本范例实施例中,主机存储器120可以是动态随机存取存储器(dynamicrandomaccessmemory,dram)、静态随机存取存储器(staticrandomaccessmemory,sram)等。然而,必须了解的是,本发明不限于此,主机存储器120也可以是其他适合的存储器。存储控制器210用以执行以硬件型式或固件型式实作的多个逻辑门或控制指令并且根据主机系统10的指令在可复写式非易失性存储器模块220中进行数据的写入、读取与抹除等运作。更详细来说,存储控制器210中的处理器211为具备运算能力的硬件,其用以控制存储控制器210的整体运作。具体来说,处理器211具有多个控制指令,并且在存储装置20运作时,此些控制指令会被执行以进行数据的写入、读取与抹除等运作。值得一提的是,在本实施例中,处理器110与处理器211例如是中央处理单元(centralprocessingunit,cpu)、微处理器(micro-processor)、或是其他可程序化的处理单元(microprocessor)、数字信号处理器(digitalsignalprocessor,dsp)、可程序化控制器、特殊应用集成电路(applicationspecificintegratedcircuits,asic)、可程序化逻辑装置(programmablelogicdevice,pld)或其他类似电路元件,本发明并不限于此。在一实施例中,存储控制器210还具有只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储控制器210被致能时,处理器211会先执行此开机码来将存储于可复写式非易失性存储器模块220中的控制指令载入至存储控制器210的随机存取存储器中。之后,处理器211会运转此些控制指令以进行数据的写入、读取与抹除等运作。在另一实施例中,处理器211的控制指令也可以程序码型式存储于可复写式非易失性存储器模块220的特定区域,例如,可复写式非易失性存储器模块220中专用于存放系统数据的物理存储单元中。在本实施例中,如上所述,存储控制器210还包括数据管理电路212与存储器接口控制电路213。应注意的是,存储控制器220各部件所执行的操作也可视为存储控制器220所执行的操作。其中,数据管理电路212耦接至处理器211、存储器接口控制电路213与连接接口电路230。数据管理电路212用以接受处理器211的指示来进行数据的传输。例如,经由连接接口电路230从主机系统10(如,主机存储器120)读取数据,并且将所读取的数据经由存储器接口控制电路213写入至可复写式非易失性存储器模块220中(如,根据来自主机系统10的写入指令来进行写入操作)。又例如,经由存储器接口控制电路213从可复写式非易失性存储器模块220的一或多个物理单元中读取数据(数据可读取自一或多个物理单元中的一或多个存储单元),并且将所读取的数据经由连接接口电路230写入至主机系统10(如,主机存储器120)中(如,根据来自主机系统10的读取指令来进行读取操作)。在另一实施例中,数据管理电路212也可整合至处理器211中。存储器接口控制电路213用以接受处理器211的指示,配合数据管理电路212来进行对于可复写式非易失性存储器模块220的写入(也称,程序化,programming)操作、读取操作或抹除操作。举例来说,处理器211可执行写入指令序列,以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列,以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个物理单元(也称,目标物理单元)中读取数据;处理器211可执行抹除指令序列,以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变预设读取电压组的多个预设读取电压值以进行读取操作,或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、四阶存储单元(quadruplelevelcell,qlc)nand型快闪存储器模块(即,一个存储单元中可存储4个比特的快闪存储器模块)、三维nand型快闪存储器模块(3dnandflashmemorymodule)或垂直nand型快闪存储器模块(verticalnandflashmemorymodule)等其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块220中的存储单元是以阵列的方式设置。在本实施例中,可复写式非易失性存储器模块220具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个物理程序化单元(物理页面)。此外,多个物理程序化单元可组成一个物理单元(物理区块或物理抹除单元)。在本实施例中,是以一个物理页面作为写入(程序化)数据的最小单位。物理单元为抹除的最小单位,即,每一物理单元含有最小数目之一并被抹除的存储单元。此外,每个物理页面的地址也可称为物理地址。应注意的是,在本实施例中,用以记录一物理单元的信息的系统数据可利用该物理单元中的一或多个存储单元来记录,或是利用一个系统区中用以记录所有系统数据的特定物理单元的一或多个存储单元来记录。此外,必须了解的是,当处理器211对可复写式非易失性存储器模块220中的存储单元(或物理区块)进行分组以执行对应的管理操作时,此些存储单元(或物理区块)是被逻辑地分组,而其实际位置并未更改。存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个物理单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logicalblock)、逻辑页面(logicalpage)或是逻辑扇区(logicalsector)。一个逻辑单元可以是映射至一或多个物理单元,其中物理单元可以是一或多个物理地址、一或多个物理扇、一或多个物理程序化单元或者一或多个物理抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。在本实施例中,逻辑子单元的地址也称为逻辑地址。此外,存储控制器210会建立逻辑转物理地址映射表(logicaltophysicaladdressmappingtable)与物理转逻辑地址映射表(physicaltologicaladdressmappingtable),以记录配置给可复写式非易失性存储器模块220的逻辑地址与物理地址之间的映射关系。换言之,存储控制器210可通过逻辑转物理地址映射表来查找一逻辑地址所映射的物理地址,并且存储控制器210可通过物理转逻辑地址映射表来查找一物理地址所映射的逻辑地址。然而,上述有关逻辑地址与物理地址之间的映射关系的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。在存储控制器的一般运作中,所述逻辑转物理地址映射表与物理转逻辑地址映射表可被维护于缓冲存储器216中。在本实施例中,错误检查与校正电路214是耦接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传错误比特数(errorbitsvalue)给处理器211。在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器216是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是耦接至处理器211并且用以控制存储装置20的电源。在本实施例中,区块串管理电路单元215包括重新读取管理电路2151与耗损平均触发电路2152。所述区块串管理电路单元215用以管理可复写式非易失性存储器模块220的多个区块串,其中所述区块串管理电路单元215可监控所述多个区块串的运作状况与对应的信息。例如,所述区块串管理电路单元215可识别欲执行重新读取操作的区块串、识别所述区块串所执行的重新读取操作的次数与对应的重新读取选项/索引值、识别所述区块串的多个区块的位置。所述区块串管理电路单元215还判断应执行耗损平均操作的特定的物理区块或区块串。应注意的是,在一实施例中,上述区块串管理电路单元215也可整合至处理器211中,以使处理器211可实行本实施例所提供的存储器管理方法。或,在另一实施例中,上述区块串管理电路单元215可以软件或固件的方式实作为区块串管理程序码模块,以使执行此区块串管理程序码模块的处理器可以实现本发明所提供的存储器管理方法。在本实施例中,区块串管理电路单元215是以一或多个区块串作为执行耗损平均操作的目标。以下会利用图3来说明区块串的概念。图3为根据本发明的一实施例所示出可复写式非易失性存储器模块的多个区块串的示意图。请参照图3,在本实施例中,可复写式非易失性存储器模块220可具有多个封装(pakage),每个封装可具有多个物理区块,所述多个物理区块可被划分至n个平面,并且部分或全部的平面可逻辑地划分为一个逻辑数(logicalunitnumber,lun)。为了简便说明,假设可复写式非易失性存储器模块220具有一个封装d1,并且封装d1具有多个物理区块。所述多个物理区块被划分(被分组)为4个平面(plane)p1~p4中(n等于4),其中所述4个平面被划分为一个逻辑数lun1。此外,每个平面具有依据第一顺序排列的m个物理单元,如,平面p1具有m个物理区块p1(1)~p1(m);平面p2具有m个物理区块p2(1)~p2(m);平面p3具有m个物理区块p3(1)~p3(m);平面p4具有m个物理区块p4(1)~p4(m)。在本实施例中,每个平面中排列顺序相同的物理区块会被组成一个区块串(blockstripe)。例如,区块串bs(1)包括物理区块p1(1)、物理区块p2(1)、物理区块p3(1)与物理区块p4(1)。也就是说,上述4个平面中的所有物理区块可组成依据第一顺序排列的m个区块串bs(1)~bs(m)。在本实施例中,存储控制器210是依据区块串的顺序来循序写入数据至多个区块串中,并且在同一个区块串中,会依据平面p1~p4的顺序来写入数据。假设所有区块串皆为空白,为了写入一笔可填满4个物理区块的写入数据,存储控制器210会依据第一顺序从第一个空白的区块串(在此例子为区块串bs(1)),来将所述写入数据存储至所述第一个空白的区块串的所有物理区块中(如,物理区块p1(1)、物理区块p2(1)、物理区块p3(1)与物理区块p4(1)中)。又例如,假设区块串bs(1)的物理区块p1(1)不可用来存储所述数据,并且其他物理区块皆可用来存储所述写入数据,则存储控制器210会将所述写入数据存储至区块串bs(1)的物理区块p2(1)、物理区块p3(1)与物理区块p4(1)以及区块串bs(2)的物理区块p1(2)中。在本实施例中,区块串管理电路单元215会记录每个区块串的读取重试记录表(readretryrecodingtable)与读取重试计数值。当完成对一个区块串的读取重试操作时,所述一个区块串的读取重试记录表的信息会依据对应所完成的读取重试操作的信息(如,对应的读取重试选项(readretryoption)或对应的读取重试索引值(readretryindexvalue))而被更新。以下会配合多个附图来详细说明本发明的实施例所提供的存储器管理方法的细节,以及对应所述存储器管理方法的存储控制器210与区块串管理电路单元215的功能。图2是根据本发明的一实施例所示出的存储器管理方法的流程图。请同时参照图1与图2,在步骤s201中,处理器211指示区块串管理电路单元215(或重新读取管理电路2151)对多个区块串中的目标区块串执行读取重试操作,并且区块串管理电路单元215(或重新读取管理电路2151)识别所述目标区块串的读取重试记录表。具体来说,处理器211可在一些特定事件发生时,判定需对区块串中的一或多个区块,或区块串的一个区块的一或多个物理页面/字线)执行读取重试操作。所述区块串也可称为目标区块串。所述特定事件例如是:(1)读取操作失败;以及(2)错误比特数大于一错误比特数门槛值。本发明并不限定于触发读取重试操作的所述特定事件的类型。在本实施例中,反应于处理器211指示区块串管理电路单元215(或重新读取管理电路2151)对目标区块串执行读取重试操作,会识别所述目标区块串的读取重试记录表。以下会先以图4来说明本发明所提供的读取重试记录表的细节。图4为根据本发明的一实施例所示出的读取重试记录表的示意图。请参照图4,读取重试记录表400包括多个栏位。所述多个栏位的数目(即,x)可依据厂商需求而被预先设定。读取重试记录表400的每个栏位会记录两笔信息,包括读取重试索引值(readretryindexvalue,rri)与对应的读取重试权重值(readretryweightingvalue,rrw)。例如,x个栏位中的第一个栏位会记录读取重试索引值rri(1)与对应的读取重试权重值rrw(1)。所述多个栏位所记录的多个读取重试索引值rri(1)~rri(x)的数值皆不同。所述读取重试索引值可被用来识别对应的读取重试选项,即,不同的读取重试选项有不同的读取重试索引值。所述读取重试权重值rrw(1)~rrw(x)用以表示对应的读取重试索引值的可靠度,即,越高的所述读取重试权重值可表是所对应的读取重试索引值越常被使用于读取操作且所述读取操作的读取结果也是成功的。请再回到图2,在步骤s202中,区块串管理电路单元215(或重新读取管理电路2151)判断所述目标区块串的读取重试记录表是否具有尚未被选择的一或多个第一读取重试索引值。具体来说,会先从对应目标区块串的读取重试记录表中来选择适当的读取重试索引值,以使用对应所选择的读取重试索引值的读取重试选项来重新对目标区块串执行读取操作。反应于判定读取重试记录表具有尚未被选择的一或多个第一读取重试索引值,接续至步骤s203,区块串管理电路单元215(或重新读取管理电路2151)根据所述一或多个第一读取重试索引值的读取重试权重值从所述一或多个第一读取重试索引值中选择目标读取重试索引值。具体来说,区块串管理电路单元215(或重新读取管理电路2151)识别所述一或多个第一读取重试索引值所对应的所述一或多个读取重试权重值,并且识别所述一或多个读取重试权重值的大小。接着,区块串管理电路单元215(或重新读取管理电路2151)将所述一或多个读取重试权重值中最大的读取重试权重值作为目标读取重试权重值,并且从所述一或多个第一读取重试索引值中选择对应所述目标读取重试权重值的第一读取重试索引值作为所述目标读取重试索引值。简单来说,在多个尚未被选择的读取重试索引值中,区块串管理电路单元215(或重新读取管理电路2151)会先选择具有最大读取重试权重值的一个读取重试索引值。被选择的读取重试索引值会被传送给处理器211。接着,在步骤s204中,处理器211使用对应所述目标读取重试索引值的目标读取重试选项来对所述目标区块串执行读取操作。一般来说,可复写式非易失性存储器模块220的厂商会预先设定用以执行读取重试操作的多个读取重试选项。所述多个读取重试选项各自具有预先设定的读取电压组。处理器211会使用对应所述目标读取重试索引值的目标读取重试选项的读取电压组来对所述目标区块串执行读取操作。接着,在步骤s205中,处理器211判断所述读取操作是否成功。本发明并不限定判断所述读取操作是否成功的方式。举例来说,处理器211使用对应所述目标读取重试索引值的目标读取重试选项的读取电压组来对所述目标区块串执行读取操作,并且对所读取的数据执行解码操作以获得对应的错误比特数。处理器211可进一步根据判断错误比特数是否大于错误比特数门槛值来判断所述读取操作是否成功。例如,若判定错误比特数大于错误比特数门槛值,则处理器211判定所述读取操作失败(解码操作失败)。反之,若判定错误比特数不大于错误比特数门槛值,则处理器211判定所述读取操作成功(解码操作成功)反应于判定所述读取操作成功,接续至步骤s206,区块串管理电路单元215(或重新读取管理电路2151)判定所述读取重试操作完成。接着,在步骤s207中,区块串管理电路单元215(或重新读取管理电路2151)根据所述目标读取重试索引值来更新所述读取重试记录表。具体来说,当所使用的读取重试选项可以正确地读取目标区块串后,区块串管理电路单元215(或重新读取管理电路2151)会判定本次的读取重试操作已经完成,并且进一步去根据对应此读取重试选项的信息来更新读取重试记录表(以下会利用图5来详细说明更新读取重试记录表的细节)。反之,反应于判定所述读取操作不成功(失败),整体流程会回到步骤s202,以尝试在读取重试记录表的剩余的未被选择的一或多个第一读取重试索引值中选择新的目标读取重试索引值。若读取重试记录表中的所有读取重试索引值皆已被选择(反应于判定所述目标区块串的读取重试记录表不具有尚未被选择的一或多个第一读取重试索引值),接续至步骤s209,区块串管理电路单元215(或重新读取管理电路2151)识别不被记录在所述读取重试记录表的多个第二读取重试索引值。接着,在步骤s210中,区块串管理电路单元215(或重新读取管理电路2151)判断所述多个第二读取重试索引值是否皆已被选择。反应于判定所述多个第二读取重试索引值非皆已被选择,接续至步骤s211,区块串管理电路单元215(或重新读取管理电路2151)从于所述多个第二读取重试索引值中尚未被选择的一或多个第三读取重试索引值中选择一个第三读取重试索引值作为新的目标读取重试索引值。也就是说,若在读取重试记录表之外的所有第二读取重试索引值中具有尚未被选择的多个第三读取重试索引值,区块串管理电路单元215(或重新读取管理电路2151)会选择其中之一来作为新的目标读取重试索引值,以执行步骤s204。然而,反应于判定所述多个第二读取重试索引值皆已被选择(即,所有第二读取重试索引值皆被选择过来作为目标读取重试索引值以执行步骤s204),接续至步骤s212,区块串管理电路单元215(或重新读取管理电路2151)判定所述读取重试操作失败,并且回应读取错误信息。也就是说,对应所有读取重试索引值的读取重试选项皆已经被使用过来读取目标区块串,并且皆没有读取成功。此时,区块串管理电路单元215(或重新读取管理电路2151)判定所述读取重试操作失败,并且回应读取错误信息。图5是根据本发明的一实施例所示出的图2的步骤s207(根据所述目标读取重试索引值来更新所述读取重试记录表)的流程图。请参照图5,在步骤s2071中,区块串管理电路单元215(或重新读取管理电路2151)判断所述读取重试记录表的多个栏位中是否具有对应所述目标读取重试索引值的目标栏位。具体来说,在对应目标读取重试索引值的读取操作成功后,区块串管理电路单元215(或重新读取管理电路2151)会判断读取重试记录表中是否已经记录所述目标读取重试索引值。反应于判定所述读取重试记录表的多个栏位中不具有对应所述目标读取重试索引值的目标栏位,接续至步骤s2072,区块串管理电路单元215(或重新读取管理电路2151)判断所述读取重试记录表中是否具有空白栏位。反应于判定所述读取重试记录表中具有空白栏位,接续至步骤s2073,区块串管理电路单元215(或重新读取管理电路2151)设定所述空白栏位为所述目标栏位。接着,在步骤s2074,区块串管理电路单元215(或重新读取管理电路2151)记录所述目标读取重试索引值至所述目标栏位,其中所述目标栏位所记录的目标读取重试权重值为预定权重值。在本实施例中,预定权重值为正整数(即,y),其大于或等于读取重试记录表的所有栏位的总数(即,x)减1(即,y≥(x-1))。x为大于1的正整数。以下以图7a与图7b来做例子。图7a与图7b是根据本发明的一实施例所示出的更新读取重试记录表的示意图。请先参照图7a,举例来说,假设目标区块串的读取重试记录表预设是空白的,x等于4,y等于4。此外,第一次的读取重试操作成功,并且其中第一读取重试选项被使用(即,对应的目标读取重试索引值为“1”)。区块串管理电路单元215(或重新读取管理电路2151)欲执行步骤s207来更新目标读取重试索引值至目标区块串的读取重试记录表。一开始,由于读取重试记录表700预设是空白的,即,没有对应目标读取重试索引值的目标栏位(步骤s2071→否),区块串管理电路单元215(或重新读取管理电路2151)会将四个栏位f1~f4中的一个栏位设定为目标栏位以存储目标读取重试索引值。例如,第一栏位f1被设定为目标栏位(步骤s2072→是)。接着,区块串管理电路单元215(或重新读取管理电路2151)根据目标读取重试索引值“1”来记录第一栏位f1,其中第一栏位f1的读取重试索引值rri(1)被记录为“1”,并且第一栏位f1的读取重试权重值rrw(1)被记录为“4”(步骤s2074)。请再回到图5,接着,在步骤s2075中,区块串管理电路单元215(或重新读取管理电路2151)对所述读取重试记录表中的所述目标栏位之外的多个其他栏位所记录的多个其他读取重试权重值减一。具体来说,除了目标读取重试权重值会被更新之外,其他已记录信息的栏位中的读取重试权重值也会被更新,即,减去1。也就是说,其他非目标读取重试索引值的对应的读取重试权重值会减少。应注意的是,在执行完步骤s2075后,步骤s207的整体流程就完成了,即,读取重试记录表的更新已完成。例如,请参照图7a,接续上述图7a的读取重试记录表700的例子,假设第二次的读取重试操作成功,并且其中第三读取重试选项被使用(即,对应的目标读取重试索引值为“3”)。区块串管理电路单元215(或重新读取管理电路2151)基于设定空白的第二栏位f2为目标栏位。区块串管理电路单元215(或重新读取管理电路2151)根据目标读取重试索引值“3”来记录目标栏位(即,第二栏位f2),其中第二栏位f2的读取重试索引值rri(2)被记录为“3”,并且第二栏位f2的读取重试权重值rrw(2)被记录为“4”(步骤s2074)。此外,区块串管理电路单元215(或重新读取管理电路2151)将第二栏位f2以外的第一栏位f1中的读取重试权重值rrw(1)减一(即,成为“3”)(步骤s2075)。也就是说,在第二次读取重试操作完成后,读取重试记录表700被更新至读取重试记录表701。请再回到图5,若在步骤s2071中,区块串管理电路单元215(或重新读取管理电路2151)判定所述读取重试记录表的多个栏位中具有对应所述目标读取重试索引值的目标栏位,接续至步骤s2076,区块串管理电路单元215将所述目标栏位所记录的目标读取重试权重值加上所述预定权重值。也就是说,若读取重试记录表已经具有所述目标读取重试索引值,区块串管理电路单元215(或重新读取管理电路2151)直接对所述目标读取重试索引值的目标读取重试权重值加上所述预定权重值,以增强此目标读取重试索引值的权重。举例来说,请参照图7a,接续上述图7a的读取重试记录表702的例子,假设第四次的读取重试操作成功,并且其中第一读取重试选项被使用(即,对应的目标读取重试索引值为“1”)。区块串管理电路单元215(或重新读取管理电路2151)会判定读取重试记录表702已经具有对应目标读取重试索引值“1”的目标栏位(即,第一栏位f1),并且将第一栏位f1的读取重试权重值rrw(1)“2”加上4(预定权重值),即,成为“6”(步骤s2076)(如,虚框d701所示)。此外,区块串管理电路单元215再将第一栏位f1以外的栏位f2、f3中的读取重试权重值rrw(2)、rrw(3)减一(即,读取重试权重值rrw(2)从“3”成为“2”,读取重试权重值rrw(2))从“4”成为“3”)(步骤s2075)。也就是说,在第四次读取重试操作完成后,读取重试记录表702被更新至读取重试记录表703。又例如,请参照图7b,接续图7b的读取重试记录表705的例子,假设第七次的读取重试操作成功,并且其中第一读取重试选项被使用(即,对应的目标读取重试索引值为“1”)。区块串管理电路单元215(或重新读取管理电路2151)会判定读取重试记录表705已经具有对应目标读取重试索引值“1”的目标栏位(即,第一栏位f1),并且将第一栏位f1的读取重试权重值rrw(1)“4”加上4(预定权重值),即,成为“8”(步骤s2076)(如,虚框d703所示)。此外,区块串管理电路单元215再将第一栏位f1以外的栏位f2、f3中的读取重试权重值rrw(2)、rrw(3)、rrw(4)减一(即,读取重试权重值rrw(2)从“4”成为“3”;读取重试权重值rrw(3)从“1”成为“0”;读取重试权重值rrw(4)从“3”成为“2”)(步骤s2075)。也就是说,在第七次读取重试操作完成后,读取重试记录表705被更新至读取重试记录表706。请再回到图5,若在步骤s2072中,区块串管理电路单元215(或重新读取管理电路2151)判定所述读取重试记录表中不具有空白栏位,接续至步骤s2077,区块串管理电路单元215(或重新读取管理电路2151)设定所述读取重试记录表中具有最小的读取重试权重值的栏位为所述目标栏位。接着,在后续的步骤s2074中,区块串管理电路单元215(或重新读取管理电路2151)再记录所述目标读取重试索引值至所述目标栏位。换言之,具有最小的读取重试权重值的栏位会被清空以成为用以记录对应目标读取重试索引值的信息的目标栏位,或是直接被对应目标读取重试索引值的信息覆写。举例来说,请参照图7b,接续图7b的读取重试记录表704的例子,假设第六次的读取重试操作成功,并且其中第四读取重试选项被使用(即,对应的目标读取重试索引值为“4”)。区块串管理电路单元215(或重新读取管理电路2151)会判定读取重试记录表704不具有对应目标读取重试索引值“4”的目标栏位(步骤s2071→否),并且判定读取重试记录表704不具有空白栏位(步骤s2072→否)。接着,区块串管理电路单元215识别读取重试记录表704中最小的读取重试权重值“1”,并且将对应的第二栏位f2设定为目标栏位。接着,目标读取重试索引值“4”与对应的预定权重值会被记录至第二栏位f2(步骤s2074)(如,虚框d702所示)。此外,区块串管理电路单元215(或重新读取管理电路2151)再将第二栏位f1以外的栏位f1、f3、f4中的读取重试权重值rrw(1)、rrw(3)、rrw(4)减一。也就是说,在第六次读取重试操作完成后,读取重试记录表704被更新至读取重试记录表705。图6是根据本发明的一实施例所示出的图2的步骤s208(根据最新的所述读取重试记录表来判断是否对所述目标区块串执行耗损平均操作)的流程图。请参照图6,在步骤s2081中,区块串管理电路单元215判断目标读取重试权重值是否大于权重门槛值。所述权重门槛值为预先设定的,本发明并不限于权重门槛值的具体数值。反应于判定目标读取重试权重值大于权重门槛值(s2081→是),接续至步骤s2082,区块串管理电路单元215(或重新读取管理电路2151)将对应所述目标读取重试选项的目标读取电压组替换至预设读取电压组。具体来说,若目标读取重试权重值大于权重门槛值,区块串管理电路单元215认为此目标读取重试索引值所对应的目标读取重试选项的可靠度很高。因此,区块串管理电路单元215利用对应的目标读取重试选项的读取电压组(也称,目标读取电压组)来取代原先用以读取目标区块串的预设读取电压组。也就是说,下次对目标区块串执行读取操作时,处理器211会直接使用目标读取电压组来读取目标区块串。接着,在步骤s2083中,区块串管理电路单元215(或耗损平均触发电路2152)判定不对所述目标区块串执行所述耗损平均操作。并且,区块串管理电路单元215完成本次所执行的步骤s208的整体运作。此外,反应于判定目标读取重试权重值不大于权重门槛值(步骤s2081→否),接续至步骤s2084,区块串管理电路单元215(或耗损平均触发电路2152)加一至所述目标区块串的读取重试计数值。具体来说,除非目标读取重试权重值大于权重门槛值,否则,在每次读取重试记录表被目标读取重试索引值及目标读取重试权重值更新时,区块串管理电路单元215(或耗损平均触发电路2152)会加一至所述目标区块串的读取重试计数值。换言之,大的读取重试计数值可反映出目标区块串执行读取重试操作的次数是多的。特别是,若目标读取重试选项时常更换(导致目标读取重试权重值不能大于权重门槛值),读取重试计数值的数值的增加会更多。接着,在步骤s2085中,区块串管理电路单元215(或耗损平均触发电路2152)判断所述读取重试计数值是否大于第一计数门槛值。反应于判定所述读取重试计数值大于第一计数门槛值(步骤s2085→是),接续至步骤s2086,区块串管理电路单元215(或耗损平均触发电路2152)判定对所述目标区块串执行所述耗损平均操作。并且,区块串管理电路单元215(或耗损平均触发电路2152)完成本次所执行的步骤s208的整体运作。例如,区块串管理电路单元215(或耗损平均触发电路2152)会通知处理器211目标区块串需执行耗损平均操作。反应于判定所述读取重试计数值不大于第一计数门槛值(步骤s2085→否),接续至步骤s2087,区块串管理电路单元215(或耗损平均触发电路2152)判断所述读取重试计数值是否大于第二计数门槛值。所述第二计数门槛值小于所述第一计数门槛值。反应于判定所述读取重试计数值大于第二计数门槛值,接续至步骤s2088,区块串管理电路单元215(或耗损平均触发电路2152)判断所述目标区块串的有效数据计数值是否大于有效数据计数门槛值。每个区块串的有效数据计数值为该区块串的所存储的所有有效数据的总量(总大小)除以一预定单位的大小所获得的商值。在本实施例中,该预定单位被设定为一个物理页面,但本发明不限于此。例如,在其他实施例中,该预定单位可被设定为两个以上的物理页面的大小。又例如,在其他实施例中,该预定单位可被设定一或多个码字、一或多个字线、多个扇区、一个物理区块。反应于判定所述目标区块串的有效数据计数值不大于有效数据计数门槛值,接续至步骤s2086,区块串管理电路单元215(或耗损平均触发电路2152)判定对所述目标区块串执行所述耗损平均操作。反之,反应于判定所述目标区块串的有效数据计数值大于有效数据计数门槛值,接续至步骤s2083,区块串管理电路单元215(或耗损平均触发电路2152)判定不对所述目标区块串执行所述耗损平均操作。也就是说,经由步骤s2087~s2088,区块串管理电路单元215(或耗损平均触发电路2152)可还利用所述目标区块串的有效数据计数值来判断存储在所述目标区块串的有效数据的数量,并且在有效数据数较大的时候(有效数据计数值大于有效数据计数门槛值),判定不对目标区块串执行耗损平均操作,以避免对较多的有效数据执行耗损平均操作所导致的较长的时间延迟。此外,反应于判定所述读取重试计数值不大于第二计数门槛值,接续至步骤s2083,区块串管理电路单元215(或耗损平均触发电路2152)判定不对所述目标区块串执行所述耗损平均操作。综上所述,本发明实施例所提供的存储器管理方法与存储控制器,可在不利用传统上现有的抹除次数、写入次数或读取次数等统计值的情况下,通过用以记录多个区块串所执行的多个读取重试操作的信息的多个读取重试记录表来判断较适合的读取重试选项,并且可根据多个读取重试记录表来判断应执行耗损平均操作的区块串,以增进读取重试操作的效率且经由所执行的耗损平衡操作维持数据的稳定度,从而提升可复写式非易失性存储器模块的存取效率与可靠度。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1