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

文档序号:18985671发布日期:2019-10-29 04:22阅读:122来源:国知局
本发明涉及一种存储器管理方法,尤其涉及一种适用于配置有可复写式非易失性存储器模块的存储装置的存储器管理方法以及存储控制器。
背景技术
::一般来说,配置有可复写式非易失性存储器模块的存储装置的控制器会利用特定的存储器管理操作(如,耗损均衡操作)来使可复写式非易失性存储器模块的多个物理单元各自的抹除次数值的差异变小,进而使可复写式非易失性存储器模块整体的所述多个物理单元的寿命可以平均地老化。一般传统作法在启动耗损均衡操作的时机点例如是依据识别是否所述多个物理单元中具有抹除次数值超过另一门槛值的物理单元,以对超过该另一门槛值的物理单元进行耗损均衡操作。然而,在一些情况下,若一物理单元的抹除次数值较高,并不一定表示此物理单元的老化程度较高。即,此物理单元并不一定需要被执行耗损均衡操作。也就是说,传统的“依据抹除次数值来判断启动耗损均衡操作等存储器管理操作”的方式,不一定可以真正地针对已老化的物理单元来进行管理。换言之,传统的作法会忽略掉已老化但抹除次数值低的物理单元,而使得可复写式非易失性存储器模块的使用空间/寿命降低。基此,如何使用其他方式来作为判断执行耗损均衡操作或其他类似的存储器管理操作的基准,以改善传统作法的缺陷,进而提升可复写式非易失性存储器模块整体的寿命,是本领域人员研究的课题之一。技术实现要素:本发明提供一种存储器管理方法与存储控制器,可在不利用抹除次数值的情况下判断应执行存储器管理操作的特定物理单元。本发明的一实施例提供适用于配置有可复写式非易失性存储器模块的存储装置的一种存储器管理方法,其中所述可复写式非易失性存储器模块具有多个物理单元,并且所述多个物理单元中的每一个物理单元具有多个字线。所述方法包括根据一特定事件的发生,对所述多个物理单元中的目标物理单元执行第一检查操作;以及根据对应所述目标物理单元的所述检查结果来判断是否需要对所述目标物理单元的有效数据执行第一操作。所执行的第一检查操作包括根据所述特定事件,识别所述目标物理单元的多个目标字线中的第一目标字线;识别所述第一目标字线的第一最佳化读取电压组以及第一预设读取电压组,其中所述第一最佳化读取电压组;识别第一预定门槛值,其中所述第一预定门槛值是根据所述存储装置的一错误校正能力所获得;以及判断所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值是否大于所述第一预定门槛值,其中若所述第一电压偏离值大于所述第一预定门槛值,判定对应所述目标物理单元的检查结果为失败,其中若所述第一电压偏离值不大于所述第一预定门槛值,判定对应所述目标物理单元的所述检查结果为成功。本发明的一实施例提供用于控制配置有可复写式非易失性存储器模块的存储装置的一种存储控制器。所述存储控制器包括:连接接口电路、存储器接口控制电路、读取电压管理电路单元以及处理器。连接接口电路用以电性连接至主机系统。存储器接口控制电路用以电性连接至所述可复写式非易失性存储器模块,其中所述可复写式非易失性存储器模块具有多个字线。处理器电性连接至所述连接接口电路、所述存储器接口控制电路及所述读取电压管理电路单元。所述处理器用以根据特定事件的发生,对所述多个物理单元中的一目标物理单元执行第一检查操作,其中在所执行的所述第一检查操作中,所述处理器根据所述特定事件,识别所述目标物理单元的多个目标字线中的第一目标字线;所述处理器经由所述读取电压管理电路单元识别所述第一目标字线的一第一最佳化读取电压组以及第一预设读取电压组,其中所述第一最佳化读取电压组;所述处理器识别一第一预定门槛值,其中所述第一预定门槛值是根据所述存储装置的一错误校正能力所获得;以及所述处理器判断所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值是否大于所述第一预定门槛值,其中若所述第一电压偏离值大于所述第一预定门槛值,所述处理器判定对应所述目标物理单元的检查结果为失败,其中若所述第一电压偏离值不大于所述第一预定门槛值,所述处理器判定对应所述目标物理单元的所述检查结果为成功;以及所述处理器还用以根据对应所述目标物理单元的所述检查结果来判断是否需要对所述目标物理单元的有效数据执行第一操作。基于上述,本发明实施例所提供的存储器管理方法以及存储控制器,可在特定事件发生时,对物理单元执行检查操作,以通过所述物理单元最佳化读取电压组与预设读取电压组之间的电压偏离值或通过物理单元的葛雷码计数偏离值总和来判断是否需要执行存储器管理操作,以更准确地对实质上需要执行存储器管理操作的物理单元来执行存储器管理操作,进而增进了可复写式非易失性存储器模块的寿命并且增进了所存储的数据的安全性。为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。附图说明图1是根据本发明的一实施例所示出的主机系统及存储装置的方块示意图。图2是根据本发明的一实施例所示出的存储器管理方法的流程图。图3为根据本发明的一实施例所示出的两个不同的读取电压组及其中的电压偏离值的示意图。图4为根据本发明的一实施例所示出的经由第一预设读取电压组所读取的对应n个葛雷码的比特值的多个存储单元的临界电压分布及对应的多个葛雷码计数的示意图。附图标记说明10:主机系统;20:存储装置;110、211:处理器;120:主机存储器;130:数据传输接口电路;210:存储控制器;212:数据管理电路;213:存储器接口控制电路;214:错误检查与校正电路;215:读取电压管理电路单元;2151:葛雷码计数电路;2152:读取电压最佳化电路;216:缓冲存储器;217:电源管理电路;220:可复写式非易失性存储器模块;230:连接接口电路;s21、s211~s216、s23:存储器管理方法的流程步骤;voffset1~voffset7:电压偏离值;v(1)、v(2):读取电压组;v(1)1~v(1)7、v(2)1~v(2)7:读取电压;c(1)1~c(1)7:葛雷码计数;g1~g8:葛雷码;l:下物理页面的比特值;m:中物理页面的比特值;u:上物理页面的比特值。具体实施方式在本实施例中,存储装置包括可复写式非易失性存储器模块(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。应注意的是,存储控制器210各部件所执行的操作也可视为存储控制器210所执行的操作。其中,数据管理电路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具有多个字线,其中所述多个字线的每一个字线包括多个存储单元。同一条字线上的多个存储单元会组成一或多个物理程序化单元(物理页面)。此外,多个物理程序化单元可组成一个物理单元(物理区块或物理抹除单元)。在本实施例中,以三阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块做例子来说明,即,在下述的实施例中,会将一个可存储3个比特值的存储单元作为一个物理程序化单元(即,在每次程序化操作中,会对一个物理程序化单元接着一个物理程序化单元来施加程序化电压以程序化数据),其中每一个存储单元可区分为各自可存储一个比特值的下物理页面(lowerphysicalpage)、中物理页面(middlephysicalpage)与上物理页面(upperphysicalpage)。在本实施例中,是以存储单元作为写入(程序化)数据的最小单位。物理单元为抹除的最小单位,即,每一物理单元含有最小数目的一并被抹除的存储单元。每一物理单元会具有多个存储单元。在以下实施例中,是以一个物理区块作为一个物理单元的范例。然而,在另一实施例中,一个物理单元也可以是指任意数目的存储单元组成,视实务上的需求而定。此外,必须了解的是,当处理器211对可复写式非易失性存储器模块220中的存储单元(或物理单元)进行分组以执行对应的管理操作时,此些存储单元(或物理单元)是被逻辑地分组,而其实际位置并未更动。应注意的是,在本实施例中,用以记录一物理单元的信息的系统数据可利用该物理单元中的一或多个存储单元来记录,或是利用一个系统区中用以记录所有系统数据的特定物理单元的一或多个存储单元来记录。在本实施例中,所述对应一物理单元的系统数据包括该物理单元的抹除次数值(programerasecycle,pec)、数据存放时间戳记(dataretentiontimestamp,drt)、读取次数值(readcountervalue)等信息。更详细来说,每当处理器211对一物理单元进行抹除操作时,在完成所述抹除操作后,处理器211会对当前对应该物理单元的抹除次数值加1(如,抹除次数值会随着每次的抹除操作而从0开始累加)。即,抹除次数值可反映出其所对应的物理单元的被抹除的次数的总和。所述数据存放时间戳记用以指示存储于对应的物理单元中的数据的存放时间。时间戳记的大小(数值差异)可用来表示时间的先后顺序。本发明并不限定所述时间戳记的详细格式。每对所述物理单元执行写入操作时,处理器211会更新所述物理单元的数据存放时间戳记为所述物理单元执行所述写入操作的存储装置的当前时间。即,对应一物理单元的数据存放时间戳记用以表示所述物理单元最后一次被执行写入操作的时间(如,完成最后一次写入操作的本地时间)。所述写入操作例如是程序化数据至所述物理单元的一或多个存储单元,或例如是程序化数据至所述物理单元的其他型态的物理地址。接着,处理器211可经由数据存放时间戳记来计算物理单元中的数据距离前一次的写入已存放了多长的时间。举例来说,在本实施例中,处理器211还可利用存储装置的当前时间(currenttime)与一个物理单元的数据存放时间戳记来计算所述物理单元的存放时间值。所述存放时间值用以表示从所述物理单元最后一次被写入数据的时间至当前时间之间的时间长度。即,一物理单元的存放时间值越大,所述物理单元所存储的数据被存放地越久,并且在此存放时间内此笔数据都未被存取/更新。所述读取次数值用以统计对应的物理单元被读取的次数,并且所述读取次数值会在对应的物理单元被抹除时而被清空。在本实施例中,处理器211可根据该可复写式非易失性存储器模块220的多个物理单元的统计值划分所述多个物理单元至多个物理单元组。所述统计值包括前述的抹除次数值、数据存放时间戳记、读取次数值等信息的其中之一或其组合。被划分至同一物理单元组的多个物理单元会具有较接近的物理特性。处理器211可对划分至同一个物理单元组的物理单元经由同一组读取电压组来进行数据的读取(如,使用相同的读取电压组来下达读取指令序列,以对属于相同物理单元组的物理单元来进行读取操作)。此外,处理器211还可对于被划分至同一物理单元组的多个物理单元进行同一种存储器管理操作(如,耗损均衡操作、垃圾回收操作、数据合并操作等)。例如,在本实施例中,是以数据存放时间戳记作为基准来所述多个物理单元来划分群组,因此,被划分至同一个物理单元组中的多个物理单元会具有相近的数据存放时间戳记。在此情况下,若处理器211判定一物理单元组中的一物理单元需要被执行一存储器管理操作,如,耗损均衡操作,则此物理单元组中的其他多个物理单元也可能需要被执行相同的存储器管理操作。在其他实施例中,处理器211可根据该可复写式非易失性存储器模块220的多个字线的统计值划分所述多个字线至多个字线组(处理器211可统计每个字线的上述统计值),并且被划分至同一字线组的多个字线会具有较接近的物理特性。应注意的是,以下的实施例是在根据数据存放时间戳记将多个物理单元划分为多个物理单元组的情境下所做的说明。存储控制器210会配置多个逻辑单元给可复写式非易失性存储器模块220。主机系统10是通过所配置的逻辑单元来存取存储在多个物理单元中的使用者数据。在此,每一个逻辑单元可以是由一或多个逻辑地址组成。例如,逻辑单元可以是逻辑区块(logicalblock)、逻辑页面(logicalpage)或是逻辑扇区(logicalsector)。一个逻辑单元可以是映射至一或多个物理单元,其中物理单元可以是一或多个物理地址、一或多个物理扇、一或多个物理程序化单元或者一或多个物理抹除单元。在本实施例中,逻辑单元为逻辑区块,并且逻辑子单元为逻辑页面。每一逻辑单元具有多个逻辑子单元。此外,存储控制器210会建立逻辑转物理地址映射表(logicaltophysicaladdressmappingtable)与物理转逻辑地址映射表(physicaltologicaladdressmappingtable),以记录配置给可复写式非易失性存储器模块220的逻辑单元(如,逻辑区块、逻辑页面或逻辑扇区)与物理单元(如,物理抹除单元、物理程序化单元、物理扇区)之间的映射关系。换言之,存储控制器210可通过逻辑转物理地址映射表来查找一逻辑单元所映射的物理单元,并且存储控制器210可通过物理转逻辑地址映射表来查找一物理单元所映射的逻辑单元。然而,上述有关逻辑单元与物理单元映射的技术概念为本领域技术人员的惯用技术手段,不再赘述于此。在本实施例中,错误检查与校正电路214是电性连接至处理器211并且用以执行错误检查与校正程序以确保数据的正确性。具体来说,当处理器211从主机系统10中接收到写入指令时,错误检查与校正电路214会为对应此写入指令的数据产生对应的错误更正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且处理器211会将对应此写入指令的数据与对应的错误更正码和/或错误检查码写入至可复写式非易失性存储器模块220中。之后,当处理器211从可复写式非易失性存储器模块220中读取数据时会同时读取此数据对应的错误更正码和/或错误检查码,并且错误检查与校正电路214会依据此错误更正码和/或错误检查码对所读取的数据执行错误检查与校正程序。此外,在错误检查与校正程序后,若成功解码所读取的数据,错误检查与校正电路214可回传对应所述所读取的数据的错误比特值数目给处理器211。处理器211可经由所述所读取的数据的错误比特值数目了解用以存储所述所读取的数据的物理单元的不稳定程度(老化程度)。在一实施例中,存储控制器210还包括缓冲存储器216与电源管理电路217。缓冲存储器是电性连接至处理器211并且用以暂存来自于主机系统10的数据与指令、来自于可复写式非易失性存储器模块220的数据或其他用以管理存储装置20的系统数据,以让处理器211可快速地从缓冲存储器216中存取所述数据、指令或系统数据。电源管理电路217是电性连接至处理器211并且用以控制存储装置20的电源。在本实施例中,读取电压管理电路单元215包括葛雷码计数电路2151与读取电压最佳化电路2152。所述读取电压管理电路单元215用以执行对多个物理单元或/及多个字线的读取电压进行管理。更具体来说,处理器211可在特定的时间点来选择可复写式非易失性存储器模块220的多个物理单元中的一个物理单元来执行对应该物理单元的读取电压最佳化操作。举例来说,处理器211可在(1)存储装置20闲暇(即,存储装置20闲置超过一预定时间门槛值)时;(2)存储装置开电时;或(3)从一物理单元所读取的数据的错误比特数超过一错误比特数门槛值时,来从所有物理单元中选择一目标物理单元进行读取电压最佳化操作。此外,处理器211也可根据错误检查与校正电路214所回传的错误比特数,来选择目标物理单元。具体来说,当从一物理单元所读取的数据的错误比特数超过一错误比特数门槛值时,其中该物理单元被设定为该目标物理单元。应注意的是,被选择的目标物理单元存储有数据,即,已被程序化数据。此外,若对应一目标物理单元的读取电压最佳化操作已经完成且获得对应该目标物理单元的最佳化读取电压组,读取电压管理电路单元215可记录对应该目标物理单元的最佳化读取电压组。在一实施例中,处理器211可对一个字线进行读取电压最佳化操作,并且记录对应该字线的最佳化读取电压组。以下会配合多个附图来详细说明本实施例所提供的存储器管理方法的细节。图2是根据本发明的一实施例所示出的存储器管理方法的流程图。请同时参照图1与图2,在步骤s21中,处理器211根据特定事件的发生,对多个物理单元中的目标物理单元执行第一检查操作。具体来说,本实施例会使用两种检查操作(即,利用最佳化读取电压组与预设读取电压组之间的电压偏离值的第一检查操作与利用第二检查操作)来对目标物理单元进行检查,以通过对应的检查结果来判断是否要对该目标物理单元执行存储器管理操作(也称,第一操作)。在本实施例中,所述特定事件至少包括下列事件(1)~(3)。事件(1):经由对应所述目标字线或所述目标物理单元的读取电压最佳化操作被执行完毕以获得所述第一最佳化读取电压组,其中反应于所获得的所述第一最佳化读取电压组,执行所述第一检查操作。具体来说,在本实施例中,在获得一最佳化读取电压组后,会顺便执行利用该最佳化读取电压组的第一检查操作,以判断是否要对所述最佳化读取电压组所对应的物理单元/字线执行第一操作。事件(2):所述多个物理单元中的一物理单元的一存放时间值大于一存放时间门槛值,其中所述物理单元被设定为所述目标物理单元,所述物理单元的存放时间值是根据所述存储装置的当前时间与所述物理单元的一时间戳记或一检查时间戳记来计算的。具体来说,如上所述,每个物理单元的存放时间值可根据所述存储装置的当前时间与所述物理单元的数据存放时间戳记来计算,并且所计算后的存放时间值可用以表示所属的物理单元的所存储的数据已经存放且未被存取的时间。在本实施例中,所假设的情境是当一物理单元中的数据被存储且未被存取的时间越长,越会发生久存错误的现象(也称,久存现象)。若一存储有数据的物理单元/字线发生了久存现象,则此物理单元/字线的多个存储单元的临界电压分布会发生偏移,进而导致了所述多个存储单元所存储的比特值不能经由使用预设的读取电压组来正确地读取出来,即,此物理单元/字线所存储的数据的错误比特数会变得很高,甚至可能会超过错误检查与校正电路214的错误校正能力。所述错误校正能力用以指示错误检查与校正电路214可校正的一最大错误比特数。也就是说,若存储在一物理单元中的数据的存放时间值很长,可能会导致此数据的错误比特数超过错误检查与校正电路214的错误校正能力,则错误检查与校正电路214无法对此数据进行错误校正,进而导致读取此数据时会发生错误。因此,当处理器211发现一物理单元的存放时间值长于一特定时间(如,存放时间门槛值)时,处理器211会判定事件(2)发生,并且将该物理单元设定为要执行检查操作的目标物理单元,以通过检查操作的结果来判断该目标物理单元是否需执行相应的存储器管理操作。事件(3):当所述存储装置的一计数器值(countervalue)被累计到一检查计数值时,其中所述计数器值会随着所述存储装置的操作时间而被累加,其中反应于所述计数器值被累计到所述检查计数值,归零所述计数器值,并且选择具有最大的所述存放时间值的一物理单元来作为所述目标物理单元以执行所述第一检查操作。具体来说,在本实施例中,处理器211会通过存储控制器210的计数器来周期性地执行检查操作。也就是说,所述计数器会随着时间来累计计数器值,并且当所累计的计数器值到达对应一周期的检查计数值时,便会通知处理器211执行检查操作,并且清空所累计的计数器值。当处理器211周期性地执行对应事件(3)的检查操作时,处理器211会根据存放时间值从所有物理单元中选择具有最大的存放时间值的物理单元作为目标物理单元,或根据存放时间值,选择具有较大存放时间值的多个物理单元作为目标物理单元。本发明并不限于利用累加的计数器或是倒数的计数器。以下利用图2所示出的步骤s211~s216来说明第一检查操作的细节。请参照图2,在步骤s211中,处理器211根据所述特定事件,识别所述目标物理单元的多个目标字线中的第一目标字线。具体来说,如上所述,处理器211会根据特定事件的不同,而使用不同的条件来选择目标物理单元,以对此目标物理单元执行第一检查操作。此外,处理器211会先从目标物理单元的多个字线(也称,目标字线)中选择一或多个字线作为第一目标字线。在本实施例中,处理器211会选择目标物理单元中最先被写入数据的字线作为第一目标字线。在本实施例中,第一目标字线的存储有数据。具体来说,每个字线的多个存储单元用以被程序化以存储对应不同的多个葛雷码(greycode)的其中之一的比特值,并且所述葛雷码的总数为n。应注意的是,根据可复写式非易失性存储器模块220的种类,n可为大于2的预定正整数(也称,第一预定正整数)。例如,若可复写式非易失性存储器模块220为mlc,则n=4;若可复写式非易失性存储器模块220为slc,则n=2;若可复写式非易失性存储器模块220为qlc,则n=16。换言之,第一目标字线的多个存储单元可存储有分别对应不同葛雷码的比特值。其他相关的葛雷码的细节会配合之后的图4来做说明。接着,在步骤s212中,处理器211识别所述第一目标字线的第一最佳化读取电压组以及第一预设读取电压组,其中所述第一最佳化读取电压组。具体来说,在出厂时,厂商会先设定一组预设读取电压组,并且处理器211可利用预设读取电压组来执行读取操作,以从可复写式非易失性存储器模块220的物理单元中读取数据。然而,随着时间的经过,原本应用于一物理单元的预设读取电压组可能会不再适用,并且处理器211可指示读取电压管理电路单元215对该物理单元(或字线)执行读取电压最佳化操作,以获得最佳化读取电压组,并且记录于读取电压管理电路单元215。也就是说,处理器211可经由读取电压管理电路单元215读取所记录的对应该第一目标字线的第一最佳化读取电压组。接着,在步骤s213中,处理器211识别第一预定门槛值,其中所述第一预定门槛值是根据所述存储装置的错误校正能力所获得。具体来说,处理器211可根据所述最大错误比特数计算一测试范围,其中所述测试范围的上限值例如为所述最大错误比特数乘以第一参数(例如:0.55)加上第二参数(如:0.05乘以最大错误比特数的积),并且所述测试范围的下限值为所述最大错误比特数乘以第二参数(例如:0.5)。所述第一、第二参数为小于1且大于零的数值,并且第二参数小于第一参数。所述测试范围会小于所述最大错误比特数的范围。接着,处理器211可设定不同的多个测试读取电压组,并且分别利用所述多个测试读取电压组来从一测试字线中读取一测试数据,以获得多个已读取测试数据。所述测试字线为处理器211判定为物理条件良好的特定字线(例如,经由预设读取电压组所获得的错误比特数极少)。所述多个测试读取电压组的每一个读取电压组彼此的读取电压的态样/大小会不同。以下利用图3来进行说明。图3为根据本发明的一实施例所示出的两个不同的读取电压组及其中的电压偏离值的示意图。举例来说,请参照图3,假设第一测试读取电压组v(1)为所述多个测试读取电压组的第一个测试读取电压组(如,预设的读取电压组),并且第二测试读取电压组v(2)为所述多个测试读取电压组的第二个测试读取电压组。此两个读取电压组之间排序相同的读取电压的电压偏离值不一定会相同。例如,第二测试读取电压组的第一个测试读取电压v(2)1与对应的第一测试读取电压组的第一个测试读取电压v(1)1之间的电压偏离值voffset1不一定会等于第二测试读取电压组的第二个测试读取电压v(2)2与对应的第一测试读取电压组的第二个测试读取电压v(1)2之间的电压偏离值voffset2。换言之,厂商可预先设计出用来进行测试的多个测试读取电压组,其中每个测试读取电压组的多个读取电压的分布态样/大小会不同。应注意的是,在一实施例中两个排序对应的读取电压的电压偏离值可经由下列公式计算:voffseti=|v(2)i-v(1)i|,i=1~7其中i表示读取电压在其所属的读取电压组中的排序,v(2)与v(1)表示用以计算电压偏离值的两个读取电压组。简单来说,对应两个读取电压的电压偏离值即为两个读取电压之间的电压差值的绝对值。处理器211还识别所述多个已读取测试数据的多个测试错误比特数(利用不同的测试读取电压组读取相同的数据时,在对所读取的数据解码后,便可获得对应的不同的错误比特数),以利用所述多个测试错误比特数与测试范围来找出第一预定门槛值。详细来说,处理器211识别所述多个测试错误比特数中于所述测试范围内的一第一测试错误比特数,其中所述第一测试错误比特数是经由所述多个测试读取电压组中的一第一测试读取电压组所读取的第一已读取测试数据所获得的。即,处理器211会利用错误比特数在测试范围内的测试读取电压组作基准。接着,将所述第一测试读取电压组的多个第一测试读取电压与所述测试字线的预设读取电压组(也称,第二预设读取电压组)中对应的多个预设读取电压(也称,第二预设读取电压)之间的多个电压偏离值的总和作为所述第一预定门槛值。所述第二预设读取电压组可等于上述的第一预设读取电压组。举例来说,请参照图3,假设读取电压组v(2)为第二预设读取电压组,并且读取电压组v(1)为第一测试读取电压组。处理器211会计算第二预设读取电压组v(2)与第一测试读取电压组v(1)中排序相同的读取电压之间的多个电压偏离值voffset1~voffset7,并且计算所述电压偏离值voffset1~voffset7的总和以作为所述第一预定门槛值。此外,在一实施例中,处理器211还可将所述第一测试读取电压组的所述多个第一测试读取电压与所述测试字线的第二预设读取电压组中对应的所述多个第二预设读取电压之间的所述多个电压偏离值的平均值作为所述第二预定门槛值。接续上述的例子,第二预定门槛值可为第一预定门槛值除以7(如,n-1)(因为,第一预定门槛值为7个电压偏离值voffset1~voffset7的总和)。换句话说,本实施例中,计算第一预定门槛值/第二预定门槛值的概念是利用相较于预设读取电压组偏离一定程度电压偏离值的读取电压组来读取临界电压分布是配合预设读取电压组的字线,以获得测试范围内的错误比特数,进而可反推:若一字线的最佳化读取电压组相较于原本的该字线的预设读取电压组也偏离了所述一定程度的电压偏离值,则表示若在继续利用预设读取电压组来读取所述字线,可预期会得到测试范围内错误比特数。也就是说,厂商可基于错误校正能力来设计小于错误校正能力的所述测试范围及设定对应的第一、第二预定门槛值,以提早预防目标物理单元/目标字线的错误比特数超过错误校正能力。请再回到图2。接着,在步骤s214中,处理器211判断所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值是否大于所述第一预定门槛值。所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值为所述第一最佳化读取电压组中的所述多个第一最佳化读取电压与所述第一预设读取电压组中的多个分别对应该些第一最佳化读取电压的该些第一预设读取电压之间的多个电压偏离值的总和。若所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值大于所述第一预定门槛值,接续至步骤s215,处理器211判定对应所述目标物理单元的检查结果为失败。若所述第一最佳化读取电压组与所述第一预设读取电压组之间的第一电压偏离值不大于所述第一预定门槛值,接续至步骤s216,处理器211判定对应所述目标物理单元的检查结果为成功。判断完检查结果后,便完成所述第一检查操作的执行。接着,在步骤s23中,处理器211根据对应所述目标物理单元的所述检查结果来判断是否需要对所述目标物理单元的有效数据执行第一操作。具体来说,反应于被判定为成功的所述检查结果,判定不需要对所述目标物理单元的所述有效数据执行所述第一操作,并且记录所述目标物理单元的对应所述检查操作的一检查时间戳记。在本实施例中,若一物理单元具有检查时间戳记,则计算该物理单元的存放时间值时,会利用当前时间与检查时间戳记反之,反应于被判定为失败的所述检查结果,判定需要对所述目标物理单元的有效数据执行所述第一操作,并且执行所述第一操作。此外,在另一实施例中,还会设定一条件来避免频繁地进行第一操作。具体来说,在处理器211根据对应所述目标物理单元的所述检查结果来判断是否需要对所述目标物理单元的有效数据执行第一操作的运作中,反应于被判定为失败的检查结果,处理器211还判断目标物理单元的有效数据数目是否大于有效数据门槛值。所述有效数据数目用表示所述目标物理单元中的有效数据的大小。通过比较有效数据数目与有效数据门槛值,可判断出目标物理单元中的有效数据与目标物理单元的整体空间/无效数据的比例。接着,若所述有效数据数目不大于所述有效数据门槛值,处理器211判定需要对所述目标物理单元的所述有效数据执行所述第一操作。反之,若有效数据数目大于有效数据门槛值,处理器211判定不需要对该目标物理单元的所述有效数据执行第一操作,并且使用一第三预定门槛值来取代该第一预定门槛值于下次对该目标物理单元所执行的该第一检查操作中,其中该第三预定门槛值大于该第一预定门槛值。具体来说,若有效数据数目大于有效数据门槛值(表示目标物理单元的有效数据的大小大于一个程度),则处理器211会认为这个目标物理单元可以先不需要进行第一操作,并且对此现象作记录,以让下一次对同样的目标物理单元进行第一检查时,若此时的最佳化读取电压组与预设读取电压组的第一电压偏离值大于更大的第三门槛值,则处理器211才判定检查结果为失败。上述的技术概念在于,在一些特定的情况下,如,存储装置存储数据后,一年后才开机,大部分物理单元的存放时间值都会很大(最佳化读取电压也会相较于预设读取电压组很远),而导致过多的第一操作会被触发,进而使系统的存取效率因为第一操作的触发而下降。因此,本发明更将有效数据数纳入考量来作为是否执行第一操作的条件。值得一提的是,在一些情况下,若一物理单元尚未执行过读取电压最佳化操作(处理器211没有识别该物理单元的最佳化读取电压组)。此时,处理器211会利用第二检查操作来取代第一检查操作。所述第二检查操作包括下列步骤(1)~(3)。步骤(1):利用所述第一预设读取电压组来读取所述第一目标字线,以获得一葛雷码偏离值总和。具体来说,处理器211会指示读取电压管理电路单元215来读取所述第一目标字线以获得多个读取比特值,并且通过葛雷码计数电路2151来计算对应所读取数据的分别对应多个葛雷码的葛雷码计数。图4为根据本发明的一实施例所示出的经由第一预设读取电压组所读取的对应n个葛雷码的比特值的多个存储单元的临界电压分布及对应的多个葛雷码计数的示意图。由于本实施例是以三阶存储单元nand型快闪存储器模块做例子来说明,其中n等于8(即,23,次方数为三阶存储单元的“三”)。三阶存储单元nand型快闪存储器模块的每一存储单元具有三个物理页面来分别存储比特数据,所述每一存储单元包括各自可存储一个比特值的下物理页面(lowerphysicalpage,l)、中物理页面(middlephysicalpage,m)与上物理页面(upperphysicalpage,u)。假设读取电压管理电路单元215(或葛雷码计数电路2151)经由第一预设读取电压组v(1)的多个读取电压v(1)1~v(1)7读取三阶存储单元nand型快闪存储器模块的目标字线的多个存储单元(多个目标存储单元),并且藉此识别出所述多个存储单元所存储的不同比特值(分别对应不同葛雷码的比特值)。每一存储单元中的栅极电压可依据第一预设读取电压组中的读取电压v(1)1~v(1)7而区分为8种葛雷码,如“l:1m:1u:1”、“l:0m:1u:1”、“l:0m:0u:1”、“l:0m:0u:0”、“l:0m:1u:0”、“l:1m:1u:1”、“l:1m:0u:0”与“l:1m:0u:1”的8种葛雷码(“l:”表示下物理页面的比特值;“m:”表示中物理页面的比特值;“u:”表示上物理页面的比特值)。所述8种葛雷码也可表示为“111”、“011”、“001”、“000”、“010”、“111”、“100”与“101”,8种比特值组合,其中每个比特值组合中的比特值的先后排序是依据下、中、上物理页面的顺序。也就是说,经由分别施加第一预设读取电压组v(1)的不同电压值的读取电压v(1)1~v(1)7至第一目标字线的一个存储单元上,读取电压管理电路单元215(或葛雷码计数电路2151)可根据判断该存储单元的通道是否导通而分别判定出该存储单元所存储的比特值(也称,比特数据或读取比特值)对应不同的多个葛雷码(“111”、“011”、“001”、“000”、“010”、“111”、“100”或“101”)的其中之一(即,经由使用第一预设读取电压组v(1)来从第一目标字线的一个存储单元读取出读取比特值)。例如,读取电压v(1)1可区分葛雷码“111”与葛雷码“011”(读取电压v(1)1的左方是对应葛雷码“111”的临界电压分布;读取电压v(1)1的右方是对应葛雷码“011”的临界电压分布)。应注意的是,于可复写式非易失性存储器模块220的存储单元可具有的多个葛雷码的数目(在此例子中,为8),每个读取电压组的所述多个读取电压的数目为所述多个葛雷码的数目减一(在此例子,为7,即,n-1=8-1=7)。在获得第一目标字线的所有葛雷码计数后,读取电压管理电路单元215(或葛雷码计数电路2151)将所有葛雷码计数各自减一葛雷码计数标准值,以获得8个差值,并且将所述8个差值作为对应所述第一预设读取电压组的8个葛雷码计数偏离值。在本实施例中,所述葛雷码计数标准值可根据所读取的多个目标存储单元的总数量(也称,读取存储单元数量,readmemorycellsamount)来被设定。例如,所读取的多个目标存储单元的总数量为18592*8(在此例子下,此些被读取的目标存储单元中包括用以存储为16千比特组大小的使用者数据的多个存储单元及用以存储为2208比特组大小的系统数据的多个存储单元)。所述“18592”*8中的“18592”的值,也可被称为葛雷码计数标准值(可用cstd表示)或葛雷码计数平均值(可用cavg表示)。换句话说,葛雷码计数标准值为读取存储单元数量的值除以n,所述n的值如上所述会根据存储器的物理规格而被预先设定,如,mlc:n=4;tlc:n=8;qlc:n=16。在获得对应所述第i个读取电压组的n个葛雷码计数偏离值后,读取电压管理电路单元215(或葛雷码计数电路2151)计算全部葛雷码计数偏离值的总和,并且将该总和作为对应所述第一预设读取电压组的葛雷码计数偏离值总和。步骤(2):识别一偏离门槛值,其中所述偏离门槛值是根据所述存储装置的所述错误校正能力所获得。具体来说,相似上述设定第一/第二预定门槛值的概念,处理器211也可利用测试范围来获取第一测试读取电压组的葛雷码计数偏离值总和,以将之作为偏离门槛值。步骤(3):判断所述葛雷码偏离值总和是否大于所述偏离门槛值,其中若所述葛雷码偏离值总和大于所述偏离门槛值,判定对应所述目标物理单元的所述检查结果为失败,其中若该葛雷码偏离值总和不大于该偏离门槛值,判定对应该目标物理单元的该检查结果为成功。如此一来,处理器211可通过执行第二检查操作所获得的检查结果来判断是否要对目标物理单元执行第一操作。应注意的是,在其他实施例中,处理器211也可直接先经由第二检查操作来判断是否要对目标物理单元执行第一操作。应注意的是,本发明的精神在于提供相异于传统作法的存储器管理方法,其利用一物理单元的最佳化读取电压组与预设读取电压组之间的电压偏离值或葛雷码偏离值总和来作为参考标准,以判断存储在该物理单元中的数据需要被执行存储器管理操作(也称,数据管理操作)。在此过程中,在不参考该物理单元的抹除次数值或错误比特数的情况下,又可准确地识别出需要进行存储器管理的物理单元。综上所述,本发明实施例所提供的存储器管理方法以及存储控制器,可在特定事件发生时,对物理单元执行检查操作,以通过所述物理单元最佳化读取电压组与预设读取电压组之间的电压偏离值或通过物理单元的葛雷码计数偏离值总和来判断是否需要执行存储器管理操作,以更准确地对实质上需要执行存储器管理操作的物理单元来执行存储器管理操作,进而增进了可复写式非易失性存储器模块的寿命并且增进了所存储的数据的安全性。虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何所属
技术领域
:中技术人员,在不脱离本发明的精神和范围内,当可作些许的更改与润饰,故本发明的保护范围当视权利要求所界定者为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1