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

文档序号:17694665发布日期:2019-05-17 21:22阅读:186来源:国知局
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法与存储控制器。
背景技术
::一般来说,可复写式非易失性存储器模块具有多个实体区块,每一实体区块会具有多个存储单元(memorycells),并且所述多个存储单元可构成多个字符线(word-lines)(每个实体区块具有所述多个字符线)。可复写式非易失性存储器模块中的所述多个存储单元会随着使用次数等因素而导致损坏,进而导致一或多个实体区块不能再被使用。传统上,可复写式非易失性存储器模块的控制器会检测或是判定此些不可再被使用的实体区块为坏实体区块,并且不使用所述坏实体区块来存储数据。然而,每个被判定的坏实体区块中的多个字符线并非皆是损坏的。如此一来,会因为坏实体区块的判定而过度减少了可复写式非易失性存储器模块整体的可用空间。举例来说,假设一实体区块经由传统作法被判定/标记为坏实体区块而不可存储数据并且其存在有好的字符线(没有损坏的字符线,并且可适当地存储数据)。在此情况下,所述实体区块的好的字符线会因为所述实体区块已被判定/标记为坏实体区块而不能被使用,导致了所述实体区块的好的字符线不可被用于存储数据,进而浪费了位于所述坏实体区块中的对应所述好的字符线的可用空间。因此,如何有效地判定/识别每个实体区块中多个字符线是否损坏,以较细致地判定可复写式非易失性存储器模块的多个存储单元的损坏范围,进而提升可复写式非易失性存储器模块的可用空间的利用效率,是本领域人员研究的课题的一。技术实现要素:本发明提供一种存储器管理方法与存储控制器,可经由对可复写式非易失性存储器模块的多个实体区块的多个字符线中的一字符线进行解码操作,以判断是否标记所述字符线为坏字符线,藉此可有效率地识别可复写式非易失性存储器模块的所述多个字符线是否损坏。本发明的一实施例提供适用于可复写式非易失性存储器模块的一种存储器管理方法,其中所述非易失性存储器模块具有多个字符线,并且每一所述多个字符线由一或多个存储单元构成。所述存储器管理方法包括对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值;当判定所述第一型解码操作成功时,根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线;以及当判定所述第一型解码操作失败时,获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为该坏字符线。本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器,其中所述非易失性存储器模块具有多个字符线,并且每一所述多个字符线由一或多个存储单元构成。所述存储控制器包括连接接口电路、存储器接口控制电路、处理器、错误检查与校正电路。连接接口电路用以耦接至主机系统。存储器接口控制电路用以耦接至所述可复写式非易失性存储器模块。错误检查与校正电路用以进行解码操作。处理器,用以指示所述错误检查与校正电路对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作,以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值。当判定所述第一型解码操作成功时,所述处理器更用以根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线。当判定所述第一型解码操作失败时,所述处理器更用以获得相邻于所述第一字符线的第二字符线的第二错误值,根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为该坏字符线。基于上述,本发明实施例所提供的存储器管理方法以及存储控制器,可对可复写式非易失性存储器模块的多个字符线中的第一字符线所存储的数据所进行的解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线为坏字符线。此外,更可对相邻于所述第一字符线的第二字符线所存储的数据进行解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线与所述第二字符线为坏字符线。如此一来,可有效地判断可复写式非易失性存储器模块的多个字符线是否损坏,进而增进可复写式非易失性存储器模块的可用空间的利用效率。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一实施例所显示的主机系统及存储装置的方块示意图;图2是根据本发明的一实施例所显示的三维的实体区块的多个字符线的示意图;图3a、3b、3c、3d是分别根据本发明的一实施例所显示的不同实施方式的字符线短路的示意图;图4为根据本发明的第一实施例所显示的存储器管理方法的流程图;图5为根据本发明的第一实施例所显示的图4中的步骤s47的流程图;图6为根据本发明的第一实施例所显示的图4中的步骤s43的流程图;图7为根据本发明的第二实施例所显示的存储器管理方法的流程图;图8为根据本发明的第三实施例所显示的标记坏实体区块的流程图;图9为根据本发明的第四实施例所显示的执行写入指令的流程图。附图标号说明:10:主机系统20:存储装置110、211:处理器120:主机存储器130:数据传输接口电路210:存储控制器212:数据传输管理电路213:存储器接口控制电路214:错误检查与校正电路220:可复写式非易失性存储器模块230:连接接口电路b1:实体区块l1~l64:堆叠层w1~w256:字符线s41、s43、s45、s47:存储器管理方法的流程步骤s471、s473、s475:步骤s47的流程步骤s431、s433、s435、s437:步骤s43的流程步骤s71、s72、s73、s74、s75、s76、s77、s78:存储器管理方法的流程步骤s81、s83、s85、s87:标记坏实体区块的流程步骤s91、s93、s95、s97、s99:执行写入指令的流程步骤具体实施方式在本实施例中,存储装置包括可复写式非易失性存储器模块(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、数据管理电路(datatransfermanagementcircuit)212与存储器接口控制电路(memoryinterfacecontrolcircuit)213。在本实施例中,主机系统10是通过数据传输接口电路130与存储装置20的连接接口电路230耦接至存储装置20来进行数据的存取操作。例如,主机系统10可经由数据传输接口电路130将数据存储至存储装置20或从存储装置20中读取数据。在本实施例中,处理器110、主机存储器120及数据传输接口电路130可设置在主机系统10的主机板上。数据传输接口电路130的数目可以是一或多个。通过数据传输接口电路130,主机板可以经由有线或无线方式耦接至存储装置20。存储装置20可例如是随身盘、存储卡、固态硬盘(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可执行写入指令序列(或处理器211指示数据管理电路212发送写入指令序列至存储器接口控制电路213),以指示存储器接口控制电路213将数据写入至可复写式非易失性存储器模块220中;处理器211可执行读取指令序列(或处理器211指示数据管理电路212发送读取指令序列至存储器接口控制电路213),以指示存储器接口控制电路213从可复写式非易失性存储器模块220的对应读取指令的一或多个实体单元(也称,目标实体单元)中读取数据;处理器211可执行抹除指令序列(或处理器211指示数据管理电路212发送抹除指令序列至存储器接口控制电路213),以指示存储器接口控制电路213对可复写式非易失性存储器模块220进行抹除操作。写入指令序列、读取指令序列及抹除指令序列可各别包括一或多个程序码或指令码并且用以指示对可复写式非易失性存储器模块220执行相对应的写入、读取及抹除等操作。在一实施例中,处理器211还可以下达其他类型的指令序列给存储器接口控制电路213,以对可复写式非易失性存储器模块220执行相对应的操作。此外,欲写入至可复写式非易失性存储器模块220的数据会经由存储器接口控制电路213转换为可复写式非易失性存储器模块220所能接受的格式。具体来说,若处理器211要存取可复写式非易失性存储器模块220,处理器211会传送对应的指令序列给存储器接口控制电路213以指示存储器接口控制电路213执行对应的操作。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变预设读取电压组的多个预设读取电压值以进行读取操作,或执行垃圾回收程序等等)的相对应的指令序列。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。在本实施例中,错误检查与校正电路214用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统11中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc)(编码操作),并且存处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当存处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序(解码操作),以获得正确的读取的数据。在本实施例中,错误检查与校正电路214所使用的是低密度奇偶检查码(lowdensityparitycode,ldpc)演算法。在低密度奇偶检查校正码中,是用一个奇偶检查矩阵来定义有效的码字。对数据位元执行奇偶检查程序(例如,将数据位元所形成的码字与奇偶检查矩阵相乘)后,可判断该码字是否为有效的码字。若所产生的码字为有效的码字(将数据位元所形成的码字与奇偶检查矩阵相乘所获得的向量为零),表示解码成功;反之(将数据位元所形成的码字与奇偶检查矩阵相乘所获得的向量不为零),表示解码失败。其中,若奇偶检查矩阵与码字的相乘是零向量,表示码字为有效的码字。在本实施例中,码字可为正进行解码操作的所读取的数据(包含一或多个数据位元),并且在执行奇偶检查程序后,不论解码成功或是失败,皆可获得对应的校验子。在一实施例中,上述解码操作会包括叠代解码。具体来说,在对一读取数据(原始码字)执行每一次叠代解码过后,可计算出所产生的码字的每一个数据位元应该被解码为位元“1”或是“0”。接着,在对这些计算出的数据位元执行奇偶检查程序(例如,将数据位元所形成的码字与奇偶检查矩阵相乘)后,可判断所产生码字是否为有效的码字。若所产生的码字为有效的码字,表示对于读取数据(原始码字)的解码成功并且叠代解码会停止。然而,若所产生的码字不是有效的码字,则会进行下一次的叠代,并且累计对读取数据所执行的叠代解码的叠代次数。若对读取数据所执行的叠代解码的叠代次数达到一个预设值,则表示对应所述读取数据的解码操作失败并且叠代解码也会停止。在本实施例中,错误检查与校正电路214可以通过小幅度地调整用于读取存储单元的读取电压准位或执行几次的叠代解码操作即可有效纠错。举例来说,假设一开始可复写式非易失性存储器模块220中的多个存储单元的损耗程度很低(例如,此些存储单元的p/e计数很小)。若要读取此些存储单元中的至少一存储单元所存储的数据,处理器211会指示数据管理电路212发送一个读取指令序列至可复写式非易失性存储器模块220。根据此读取指令序列,存储器接口控制电路213会使用一个(预设的)读取电压准位来从可复写式非易失性存储器模块220读取此些存储单元并且将所获得的数据位元(读取数据)传送给处理器211。然而,随着可复写式非易失性存储器模块220的使用时间增加(例如,p/e计数增加)和/或操作环境改变,可复写式非易失性存储器模块220中的存储单元可能会发生性能衰退(degradation)。发生性能衰退后,若持续使用相同的读取电压准位来读取此些存储单元,则读取到的数据位元可能会包含许多错误。在本实施例中,若可复写式非易失性存储器模块220为三维堆叠架构的可复写式非易失性存储器模块(例如,三维nand型快闪存储器模块或垂直nand型快闪存储器模块),则其多个字符线中的两个或两个以上彼此相邻的字符线有机率会发生字符线短路(word-lineshort)现象。存储在发生字符线短路现象的字符线的数据会发生错误。以下会通过图2来说明三维堆叠架构的可复写式非易失性存储器模块;以及通过图3a~图3d来详细说明图2的三维堆叠架构的可复写式非易失性存储器模块的字符线短路现象。在一实施例中,错误检查与校正电路214会根据所获得的数据位元执行第一型解码操作(也称,硬位元(hardbits)解码操作),从而尝试快速地更正数据位元中的错误。硬位元解码操作是用于解码所读取的硬位元。然而,受限于硬位元解码操作的解码能力(或错误更正能力),即便使用再多的硬决策读取电压准位来读取存储单元并对应执行再多次的硬解码程序,可能都无法通过单次读取的硬位元来更正所有错误。此时,错误检查与校正电路214可根据所读取的数据执行第二型解码操作(也称,软位元(softbits)解码操作),从而尝试使用更多信息来检错。软位元解码操作是用于解码所读取的软位元。若软位元解码操作仍然不能解码出正确的读取数据,则错误检查与校正电路214可根据所读取的数据执行第三型解码操作(也称,冗余阵列(raid)解码操作),从而尝试使用已验证的信息来检错。上述硬位元解码操作、软位元解码操作与冗余阵列解码操作的细节为本领域现有技术,不赘述于此。应注意的是,错误检查与校正电路214可经由所执行的第一型解码操作、第二型解码操作以及第三行解码操作分别获得对应的校验子。此外,若第一型解码操作、第二型解码操作以及第三行解码操作被判定为成功,则可分别获得对应的错误位元数(numberoferrorbits),其可经由比较解码成功后的读取数据与解码前的读取数据之间的数据位元来获得。可复写式非易失性存储器模块220是耦接至存储控制器210(存储器接口控制电路213)并且用以存储主机系统10所写入的数据。可复写式非易失性存储器模块220可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个位元的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个位元的快闪存储器模块)、三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个位元的快闪存储器模块)、三维nand型快闪存储器模块(3dnandflashmemorymodule)或垂直nand型快闪存储器模块(verticalnandflashmemorymodule)等其他快闪存储器模块或其他具有相同特性的存储器模块。存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个实体单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logicalblock)、逻辑页面(logicalpage)或是逻辑扇区(logicalsector)。一个逻辑单元可以是映射至一或多个实体单元,其中实体单元可以是一或多个实体地址、一或多个实体扇、一或多个实体程序化单元或者一或多个实体抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。在本实施例中,是以存储单元作为写入(程序化)数据的最小单位。实体单元(实体区块)为抹除的最小单位,即,每一实体区块含有最小数目的一并被抹除的存储单元。在本实施例中,可复写式非易失性存储器模块220的多个存储单元会构成多个字符线,并且此些字符线会构成多个实体区块(也称,实体抹除单元或实体单元)。具体来说,同一条字符线上的存储单元可划分为一或多个实体程序化单元。如此一来,可复写式非易失性存储器模块220的多个存储单元便可构成多个实体区块(实体单元)。图2是根据本发明的一实施例所显示的三维的实体区块的多个字符线的示意图。请参照图2,举例来说,假设可复写式非易失性存储器模块220的实体区块b1具有多个由多个存储单元所构成的256个字符线w1~w256,并且每4个字符线会分组为一个堆叠层。即,实体区块b1具有64个堆叠层l1~l64。由于在存储器处理的形成实体区块b1的过程中,会在实体区块b1本身的有限空间中置入多个字符线。因此,两个彼此相邻的字符线有可能会大面积地接触彼此而产生字符线短路的现象(相邻的字符线彼此之间的间距太小)。图3a、图3b、图3c、图3d是分别根据本发明的一实施例所显示的不同实施方式的字符线短路的示意图。请先参照图3a,图3a的表格用以表示图2中的实体区块b1的多个字符线w1~w256的相对位置、对应的字符线的编号(如,“w1”,“w2”,…“w256”)以及每个堆叠层l1~l64。如上所述,彼此相邻的字符线因为互相接触而导致了字符线短路的现象。所述字符线短路的实施方式可为图3a所示的目标字符线(如,字符线w10)与其上下左右字符线w6、w9、w11、w14中的其中的一或其组合的字符线发生了字符线短路(发生字符线短路现象的字符线以灰底表示)。相似地,请参考图3b~图3c,字符线短路的实施方式也可能为图3b所示的目标字符线(如,字符线w10)与其对角线方向的字符线w5、w7、w13、w15中的其中的一或其组合的字符线发生了字符线短路;字符线短路的实施方式也可为图3c所示的目标字符线(如,字符线w10)与属于同个堆叠层(如,堆叠层l3)的字符线w9、w11、w12发生了字符线短路,或是目标字符线(如,字符线w10)与属于同个堆叠层(如,堆叠层l3)的字符线w11、w12发生了字符线短路;字符线短路的实施方式也可为图3d所示的目标字符线(如,字符线w10)与属于同个堆叠层(如,堆叠层l3)的字符线w9、w11、w12及上下堆叠层l2、l4中的字符线w5~w8、w13~w16中的部份或全部的字符线发生了字符线短路。即,上述的字符线w5~w16共12个字符线中,彼此相邻的多个字符线可区域性地发生字符线短路。例如,字符线w10、w9、w13、w14发生字符线短路。又例如,字符线w5~w12发生字符线短路。又例如,字符线w6~w7、w10~w11、w14~w15发生字符线短路。又例如,字符线w5~w7、w9~w11、w13~w15发生字符线短路。又例如,字符线w6~w8、w10~w11、w14发生字符线短路。甚至,在更严重的情况下,字符线短路的现象可扩散至大于三个堆叠层的范围。由于在程序化数据至发生字符线短路现象的多个字符线的其中一个字符线时,会使发生字符线短路现象的该些字符线的存储单元的临界电压被影响(因为短路而传递程序化电压至非被程序化的字符线)。因此,存储在发生字符线短路现象的多个字符线的数据会具有较高的错误位元数。此外,在更严重的情况下,存储在发生字符线短路现象的多个字符线的数据的错误不能经由错误检查与校正电路214而被校正,并且使存储在其中的数据永久遗失(可视为发生字符线短路现象的多个字符线已损坏)。在本实施例中,发生字符线短路现象的字符线会被标记为坏字符线。在本实施例中,用以记录一实体区块的信息的系统数据可利用所述实体区块中的一或多个存储单元来记录,或是利用一个系统区中用以记录所有系统数据的特定实体单元的一或多个存储单元来记录。在本实施例中,系统数据还可包括坏实体区块表、对应可复写式非易失性存储器模块220的多个字符线的字符线错误值表及坏字符线表。上述的系统数据可在存储装置开电时,被处理器211从可复写式非易失性存储器模块220读取至存储控制器的缓冲存储器来进行维护,并且可被即时地更新。此外,在存储装置关电(或其他时机)时,上述系统数据可被备份至可复写式非易失性存储器模块220中。所述字符线错误值表用以记录了对应每个字符线的多个历史错误值。所述字符线错误值表包括多个字符线与分别对应所述多个字符线的多个条目组,其中每一条目组包括一或多个条目,并且所述一或多个条目记录其所属的条目组所对应的字符线的错误值。换言之,处理器211可记录所获得的错误值于字符线错误值表中,以更新其中的对应的字符线的条目组中的条目。举例来说,对于每一个字符线,处理器211会存储对应所述每一个字符线的最近n个所获得/计算的错误值于所述字符线错误值表中(成为对应所述字符线的条目组的n个条目)。也就是说,若可复写式非易失性存储器模块220具有x个字符线(所述字符线错误值表会存在对应的x个条目组,并且每个条目组具有n个条目),则所述字符线错误值表会记录分别对应x个字符线的x*n个错误值(共x*n个条目)。所述坏字符线表用以记录x个字符线中被标记为坏字符线(badword-line)的字符线。在本实施例中,所述坏字符线表可记录被标记为坏字符线的字符线的索引值。举例来说,假设坏字符线表记录了索引值“b1.w1”,其可表示实体区块b1的字符线w1被标记为坏字符线。在另一实施例中,坏字符线表会依据所有字符线的所属的实体区块的识别码来排序所有的字符线的标记值,所述标记值用以表示对应的字符线是否为坏字符线。举例来说,假设实体区块b1的识别码为最小的识别码,实体区块b1排序在可复写式非易失性存储器模块220的所有实体区块的最前方,并且字符线w1会排序在实体区块b1的所有字符线的最前方(因为字符线w1的编号最小)。在此例子中,所述坏字符线表的第一个标记值为对应实体区块b1的字符线w1的标记值。所述标记值可为一个位元值(如,“0”或“1”),并且不同位元值用以表示是否损坏。例如,若对应实体区块b1的字符线w1的标记值为“1”,则此标记值表示实体区块b1的字符线w1为坏字符线。在一实施例中,存储控制器210还包括缓冲存储器与电源管理电路。缓冲存储器是耦接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器中存取所述数据、指令或系统数据。电源管理电路是耦接至处理器211并且用以控制存储装置20的电源。在本实施例中,处理器211可在特定时间点来选择可复写式非易失性存储器模块220的多个字符线中其中的一个字符线(也称,第一字符线)来进行坏字符线的检验/标记。所述特定时间点例如是下列时间点的其中的一或其组合:(1)从第一字符线读取数据时;(2)存储装置20闲置时。应注意的是,被选择的字符线是已存储数据的字符线。以下会配合多个附图来详细说明如何进行读取电压最佳化操作与对应的数据读取方法的细节。[第一实施例]图4为根据本发明的第一实施例所显示的存储器管理方法的流程图。请同时参照图1与图4,在步骤s41中,处理器211对存储于所述多个字符线中的第一字符线的第一数据进行第一型解码操作(硬位元解码操作),以判断所述第一型解码操作成功或失败,并且获得所述第一字符线的第一错误值。具体来说,在本实施例中,处理器211会主动地从所有字符线中选择一字符线(以下称,第一字符线)来进行检验(也称),以判断是否要将所选择的第一字符线标记为坏字符线(标记为损坏)。举例来说,处理器211可在存储装置闲暇时,或是存储装置开电时,来检验/检查每一个字符线。又例如,第一字符线可从可复写式非易失性存储器模块220的所有字符线中根据特定选择条件来被选择。所述特定选择条件包括(1)被选择的字符线所存储的数据中含有错误率高于一定门槛值者;或(2)被选择的字符线所存储的数据含有最高的位元错误数。在本实施例中,检验的方式为,处理器211会先读取存储在第一字符线的数据(第一数据),并且指示错误检查与校正电路214对所读取的数据执行第一型解码操作。处理器211可根据第一型解码操作的结果来判断所述第一型解码操作是否成功或是失败。此外,错误检查与校正电路214对第一数据执行第一型解码操作后,错误检查与校正电路214会将所产生的校验子传送给处理器211。处理器211会将此校验子作为第一字符线的(最新的)第一错误值。若判定所述第一型解码操作失败,接续至步骤s45,处理器211获得邻近于所述第一字符线的第二字符线的第二错误值。具体来说,当错误检查与校正电路214对第一数据所进行的第一型解码操作失败时,处理器211会开始去探寻相邻于第一字符线的字符线(也称,第二字符线)的错误值(也称,第二错误值),以获得第二错误值。如图3a~图3d所述,相邻于第一字符线的第二字符线可为紧邻于第一字符线的上下左右,或是对角线方向的字符线的其中的一(以xy平面为例)。在本实施例中,处理器211可根据字符线错误值表与第二字符线来查找对应第二字符线的最新的所记录的错误值,并且将的作为第二错误值。在另一实施例中,处理器211可例如使用步骤s41的方式,对存储在第二字符线中的数据执行第一型解码操作,以获得第二错误值。在获得第二错误值后,接续至步骤s47,处理器211根据所述第一错误值、所述第二错误值与第二门槛值来判断是否皆标记所述第一字符线与所述第二字符线为所述坏字符线。图5为根据本发明的第一实施例所显示的图4中的步骤s47的流程图。请参照图5,于步骤s471中,处理器211判断所述第一错误值与所述第二错误值的总和是否大于所述第二门槛值。若判定所述第一错误值与所述第二错误值的总和大于所述第二门槛值,在步骤s473中,处理器211标记所述第一字符线为所述坏字符线,并且标记所述第二字符线为所述坏字符线。也就是说,若所述第一错误值与所述第二错误值的总和大于一定值(第二门槛值),处理器211会认为第一字符线与第二字符线发生了字符线短路现象,并且处理器211会标记此两个字符线为坏字符线。如上所述,处理器211可利用坏字符线表来标记此第一字符线与第二字符线为坏字符线。相对地,若判定所述第一错误值与所述第二错误值的总和不大于所述第二门槛值,在步骤s475中,处理器211不标记所述第二字符线为所述坏字符线。接着,处理器211会执行步骤s43来判断第一字符线是否为坏字符线。应注意的是,若第二字符线的数目大于一个,处理器211可同时或是依序获得此些第二字符线的第二错误值。在获得多个第二错误值后,处理器211再分别利用所获得的多个第二错误值,一个一个地经由与第一错误值相加的总和来与第二门槛值比较,进而判断对应的第二字符线是否为坏字符线。若在步骤s41中,处理器211判定所述第一型解码操作成功,接续至步骤s43,处理器211根据所述第一错误值与第一门槛值来判断是否标记所述第一字符线为坏字符线。图6为根据本发明的第一实施例所显示的图4中的步骤s43的流程图。请参照图6,在步骤s431中,处理器211判断所述第一错误值是否大于所述第一门槛值。若判定所述第一错误值大于所述第一门槛值,在步骤s433中,处理器211标记所述第一字符线为所述坏字符线。也就是说,若所述第一错误值大于一定值(第一门槛值),处理器211会认为第一字符线为损坏的字符线(可能发生了字符线短路现象),进而处理器211会标记此第一字符线为坏字符线。如上所述,处理器211可利用坏字符线表来标记第一字符线为坏字符线。若判定所述第一错误值不大于所述第一门槛值,在步骤s435中,处理器211不标记所述第一字符线为所述坏字符线。接着,在步骤s437中,处理器211根据对应所述第一字符线的当前的所述第一错误值与已记录的旧的一或多个对应所述第一字符线的第三错误值计算对应所述第一字符线的第一平均错误值。具体来说,处理器211会经由字符线错误值表来查找对应的一字符线的一或多个错误值(也称,第三错误值),并且计算一或多个第三错误值与第一错误值的平均值(也称,第一平均错误值)。处理器211可再将第一错误值记录至字符线错误值表。在另一实施例中,当于步骤s41中获得第一错误值时,处理器211可将第一错误值直接记录至字符线错误值表(成为第三错误值的其中的一),以在步骤s437中,可直接对字符线错误值表中所记录的对应第一字符线的多个第三错误值计算平均值,并且将其作为对应第一字符线的第一平均错误值。然而,在一实施例中,如上所述,若错误值属于校验子,则可不执行步骤s437,即,处理器211可不计算对应第一字符线的第一平均错误值(如,完成步骤s435后,直接结束步骤s43的整体流程)。值得一提的是,上述第一门槛值小于第二门槛值。厂商可经由可复写式非易失性存储器模块220的特性来设定第一门槛值与第二门槛值的值。[第二实施例]图7为根据本发明的第二实施例所显示的存储器管理方法的流程图。第二实施例的存储控制器与其他硬件元件相同于第一实施例。在第二实施例中的所有错误值皆属于错误位元数。换言之,以下会着重在于当错误值并非第一实施例的校验子时,第二实施例的存储器管理方法(判断坏字符线的方法)相较于第一实施例的不同的处。应注意的是,由于错误值为错误位元数,所以在判定解码成功后,错误检查与校正电路214才可获得对应的错误位元数,以使处理器211将其作为对应的错误值。请参照图7,步骤s71、s72的细节分别相同于第一实施例中的步骤s41、s43,并且步骤s77、s78的细节分别相同于第一实施例中的步骤s45、s47,不再赘述于此。在本实施例中,若在步骤s71中,处理器211判定第一型解码操作失败,接续至步骤s73,处理器211对所述第一数据进行第二型解码操作,以判断所述第二型解码操作成功或失败,并且获得所述第一字符线的第四错误值。换句话说,当硬位元解码操作失败,处理器211会指示错误检查与校正电路214对第一数据执行软位元解码操作(也称,第二型解码操作),以继续尝试解码第一数据。同时,错误检查与校正电路214可判断第二型解码操作成功或失败。在对第一数据执行第二型解码操作后,若判定第二型解码操作成功,接续至步骤s74,处理器211将所述第四错误值作为对应所述第一字符线的所述第一错误值。具体来说,若判定第二型解码操作成功,则第一数据会被解码出正确的数据,并且错误检查与校正电路214可据此计算出错误位元数,即,第四错误值。处理器211会将此第四错误值作为对应第一字符线的第一错误值。反之,在对第一数据执行第二型解码操作后,若判定第二型解码操作不成功,接续至步骤s75,处理器211对所述第一数据进行第三型解码操作,以获得所述第一字符线的第五错误值,并且将获得的所述第五错误值作为对应所述第一字符线的所述第一错误值。具体来说,若判定第二型解码操作不成功,处理器211会指示错误检查与校正电路214执行冗余阵列解码操作(也称,第三型解码操作),以解码第一数据,并且根据经由第三型解码操作而获得的解码后第一数据来计算出错误位元数,即,第五错误值。处理器211会将此第五错误值作为对应第一字符线的第一错误值。在获得对应第一字符线的第一错误值后,在步骤s76中,判断所述第一错误值减去对应所述第一字符线的第一平均错误值的差值是否大于第三门槛值。具体来说,如上所述,处理器211可获得对应第一字符线的第一平均错误值。处理器211会进一步地比较此次在第一型解码操作失败后所获得的第一错误值大于的一平均错误值的程度,即,利用第三门槛值来比较所述第一字符线的第一平均错误值的差值。若所述第一错误值减去对应所述第一字符线的第一平均错误值的差值不大于第三门槛值,处理器211会执行步骤s72。若所述第一错误值减去对应所述第一字符线的第一平均错误值的差值大于第三门槛值,处理器211会执行步骤s77。也就是说,在第一型解码操作失败的情况下,处理器211会利用第二型解码操作或第三型解码操作来获得第一错误值,并且去比较此第一错误值的大小是否过高(即,第一错误值会大于的一平均错误值加上第三门槛值的总和)。若过高,则处理器211更去检查相邻于第一字符线的第二字符线。值得一提的是,上述第三门槛值小于第一门槛值。厂商可经由可复写式非易失性存储器模块220的特性来设定第三门槛值的值。应注意的是,在错误值为校验子的情况下,处理器211可不维护字符线错误值表。第一实施例与第二实施例分别使用校验子与错误位元数来作为错误值,以检查字符线是否为坏字符线。在其他实施例中,也可将解码操作所使用的叠代次数作为错误值来检查字符线。此外,下方会利用第三实施例与第四实施例分别说明在标记坏字符线后,如何利用所标记的坏字符线来进行其他的存储器管理方法。其中,第三实施例用以说明利用实体区块中的坏字符线的数目来判断坏实体区块的方法,并且第四实施例用以说明当执行写入操作以写入数据至字符线时,根据该字符线是否为坏字符线来对应调整所述数据被存储的字符线的位置。[第三实施例]图8为根据本发明的第三实施例所显示的标记坏实体区块的流程图。请参照图8,在步骤s81中,处理器211选择多个实体区块中的目标实体区块。具体来说,所述被选择的目标实体区块是可复写式非易失性存储器模块220的所有实体区块中处理器211所选择的用以判断是否为坏实体区块的实体区块。在步骤s83中,处理器211识别所述目标实体区块中被标记为所述坏字符线的一或多个字符线。具体来说,处理器211会根据坏字符线表来查找目标实体单元的所有字符线中是否有被标记为坏字符线的字符线。接着,在步骤s85中,处理器211判断所述目标实体区块中所述被标记的一或多个字符线的数目是否大于坏字符线门槛值。若判定所述目标实体区块中所述被标记的一或多个字符线的数目大于坏字符线门槛值,在步骤s87中,处理器211会标记所述目标实体区块为坏实体区块。也就是说,若所述目标实体区块中存在有多于一特定值(坏字符线门槛值)的坏字符线,处理器211会将此目标实体单元视为损坏的实体区块。反之,处理器211会不将此目标实体单元视为损坏的实体区块,即,不标记所述目标实体区块为坏实体区块。在使用上述方式来扫瞄可复写式非易失性存储器模块220的全部的实体区块后,处理器211可识别出可复写式非易失性存储器模块220的坏实体区块,并且将此结果记录于坏实体区块表中。[第四实施例]图9为根据本发明的第四实施例所显示的执行写入指令的流程图。请参照图9,在步骤s91中,处理器211选择用以执行写入指令的一或多个目标实体地址。具体来说,当处理器211执行写入指令以写入对应该写入指令的写入数据时,处理器211可获取预备存储所述写入数据的一或多个实体地址(也称,目标实体地址)。在一实施例中,所述目标实体地址可为开放实体区块的可用的(空白的)实体地址,并且其被选择用以存储写入数据,以执行写入指令。接着,在步骤s93中,处理器211判断所述一或多个目标实体地址所属的字符线是否被标记为所述坏字符线。具体来说,处理器211可根据坏字符线表进一步检查目标实体地址所属的字符线是否为坏字符线。若判定所述一或多个目标实体地址所属的字符线被标记为所述坏字符线,在步骤s95中,处理器211写入虚拟数据至所述一或多个目标实体地址。具体来说,若目标实体地址位于坏字符线中,则处理器211会选择其他的实体地址作为存储写入数据的实体地址。但,处理器211会先将虚拟数据写入至原本所选择的目标实体地址。接着,在步骤s97中,处理器211选择其他的一或多个实体地址作为所述一或多个目标实体地址,以取代之前所选择的所述一或多个目标实体地址。接着,处理器211再程序化写入数据至新的目标实体地址,以完成写入指令的执行。此外,若在步骤s93中,若处理器211判定所述一或多个目标实体地址所属的字符线不被标记为所述坏字符线(即,所述一或多个目标实体地址所属的字符线不为坏字符线),在步骤s99中,处理器211会直接执行写入指令,以将对应所述写入指令的写入数据写入至所述一或多个目标实体地址。如此一来,在执行一写入指令以将一写入数据写入至一或多个目标实体地址之前,处理器211可根据判断所述一或多个目标实体地址所属的字符线是否被标记为该坏字符线来写入所述写入数据。综上所述,本发明实施例所提供的存储器管理方法以及存储控制器,可对可复写式非易失性存储器模块的多个字符线中的第一字符线所存储的数据所进行的解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线为坏字符线。此外,更可对相邻于所述第一字符线的第二字符线所存储的数据进行解码操作,以根据所述解码操作的结果以及对应获得的错误值来判断是否标记所述第一字符线与所述第二字符线为坏字符线。如此一来,可有效地判断可复写式非易失性存储器模块的多个字符线是否损坏,进而增进可复写式非易失性存储器模块的可用空间的利用效率。此外,经由标记坏字符线,字符线短路现象所导致的无法校正的数据错误的问题也可进一步地被避免。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定的为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1