数据储存装置与数据处理方法转让专利

申请号 : CN201811357826.8

文献号 : CN110874187B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 林文生

申请人 : 慧荣科技股份有限公司

摘要 :

本发明涉及一种数据储存装置与数据处理方法。该数据储存装置包括一存储器装置以及一存储器控制器。存储器装置包括一目前使用的存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置。适应于存储器控制器检测到存储器装置上电前发生过非预期断电,存储器控制器藉由扫描目前使用的存储器区块的多个数据页以找出一最后有效数据页以及最后有效数据页所对应的一最后有效字元线,并且根据目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用最后有效数据页所属的一字元线群组所包含之一或多个空白数据页。

权利要求 :

1.一种数据储存装置,包括:

一存储器装置,包括多个存储器区块,该多个存储器区块包括一目前使用的存储器区块;以及

一存储器控制器,耦接该存储器装置,用以存取该存储器装置,其中响应于该存储器控制器检测到该存储器装置上电前发生过非预期断电,该存储器控制器藉由扫描该目前使用的存储器区块之多个数据页以找出一最后有效数据页以及该最后有效数据页所对应之一最后有效字元线,并且根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效数据页所属的一字元线群组所包含之一或多个空白数据页。

2.如权利要求1所述的数据储存装置,其特征在于,当该读取计数值的一加权值以及该抹除计数值的一加权值之和小于或等于一第一临界值时,该存储器控制器决定继续使用该字元线群组所包含的该一或多个空白数据页。

3.如权利要求1所述的数据储存装置,其特征在于,当该读取计数值的一加权值以及该抹除计数值的一加权值之和大于一第二临界值时,该存储器控制器决定不继续使用该字元线群组所包含的该一或多个空白数据页。

4.如权利要求1所述的数据储存装置,其特征在于,当该读取计数值的一加权值以及该抹除计数值的一加权值之和大于一第一临界值并且小于或等于一第二临界值时,该存储器控制器决定执行一辅助判断程序,用以决定是否继续使用该字元线群组所包含的该一或多个空白数据页。

5.如权利要求4所述的数据储存装置,其特征在于,于该辅助判断程序,该存储器控制器进一步解码该字元线群组所包含之一或多个已编程数据页所储存的内容,以取得各已编程数据页所发生的错误位元的数量,其中当任一个已编程数据页所发生的错误位元的数量大于一错误位元临界值时,该存储器控制器决定不继续使用该字元线群组所包含的该一或多个空白数据页。

6.如权利要求4所述的数据储存装置,其特征在于,于该辅助判断程序,该存储器控制器进一步解码该字元线群组所包含之一或多个已编程数据页所储存的内容,以决定出用以成功解码各已编程数据页所储存的内容的一错误更正再试档位,其中当任一个已编程数据页所对应的该错误更正再试档位高于一再试档位临界值时,该存储器控制器决定不继续使用该字元线群组所包含的该一或多个空白数据页。

7.如权利要求1所述的数据储存装置,其特征在于,当该存储器控制器决定不继续使用该字元线群组所包含的该一或多个空白数据页时,该存储器控制器虚拟编程该一或多个空白数据页直到该字元线群组所包含的之最后一个空白数据页为止。

8.如权利要求1所述的数据储存装置,其特征在于,当该存储器控制器决定继续使用该字元线群组所包含的该一或多个空白数据页时,该存储器控制器仅虚拟编程与该最后有效字元线相邻的一字元线所对应的多个数据页。

9.一种数据处理方法,适用于一数据储存装置,该数据储存装置包括一存储器装置以及一存储器控制器,该存储器装置包括多个存储器区块,该多个存储器区块包括一目前使用的存储器区块,该存储器控制器耦接该存储器装置,用以存取该存储器装置,该方法包括:当检测到该存储器装置上电前发生过非预期断电,藉由扫描该目前使用的存储器区块的多个数据页找出一最后有效数据页以及该最后有效数据页所对应的一最后有效字元线;

以及

根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效数据页所属的一字元线群组所包含之一或多个空白数据页。

10.如权利要求9所述的数据处理方法,其特征在于,根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效字元线所属的一字元线群组所包含之一或多个空白数据页的步骤还包括:当该读取计数值的一加权值以及该抹除计数值的一加权值之和小于或等于一第一临界值时,决定继续使用该字元线群组所包含的该一或多个空白数据页。

11.如权利要求9所述的数据处理方法,其特征在于,根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效字元线所属的一字元线群组所包含之一或多个空白数据页的步骤还包括:当该读取计数值的一加权值以及该抹除计数值的一加权值之和大于一第二临界值时,决定不继续使用该字元线群组所包含的该一或多个空白数据页。

12.如权利要求9所述的数据处理方法,其特征在于,根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效字元线所属的一字元线群组所包含之一或多个空白数据页的步骤还包括:当该读取计数值的一加权值以及该抹除计数值的一加权值之和大于一第一临界值并且小于或等于一第二临界值时,执行一辅助判断程序,用以决定是否继续使用该字元线群组所包含的该一或多个空白数据页。

13.如权利要求12所述的数据处理方法,其特征在于,执行该辅助判断程序的步骤还包括:

解码该字元线群组所包含之一或多个已编程数据页所储存的内容,以取得各已编程数据页所发生的错误位元的数量;以及当任一个已编程数据页所发生的错误位元的数量大于一错误位元临界值时,决定不继续使用该字元线群组所包含的该一或多个空白数据页。

14.如权利要求12所述的数据处理方法,其特征在于,执行该辅助判断程序的步骤还包括:

解码该字元线群组所包含之一或多个已编程数据页所储存的内容,以决定出用以成功解码各已编程数据页所储存的内容的一错误更正再试档位;以及当任一个已编程数据页所对应的该错误更正再试档位高于一再试档位临界值时,决定不继续使用该字元线群组所包含的该一或多个空白数据页。

15.如权利要求9所述的数据处理方法,其特征在于,还包括:

当决定不继续使用该字元线群组所包含的该一或多个空白数据页时,虚拟编程该一或多个空白数据页直到该字元线群组所包含的最后一个空白数据页为止;以及当决定继续使用该字元线群组所包含的该一或多个空白数据页时,仅虚拟编程与该最后有效字元线相邻的一字元线所对应的多个数据页。

说明书 :

数据储存装置与数据处理方法

技术领域

[0001] 本发明有关于适用于一数据储存装置的一种数据处理方法,可于数据储存装置遭遇非预期断电后的一回复程序中有效减少需被检查的数据页数量、需被虚拟编程的数据页数量以及需被搬移的数据页数量,以加速回复程序的操作。

背景技术

[0002] 随着数据储存装置的科技在近几年快速地成长,许多数据储存装置,如符合SD/MMC规格、CF规格、MS规格与XD规格的记忆卡、固态硬碟、嵌入式多媒体记忆卡(embedded Multi Media Card,缩写为eMMC)以及通用快闪存储器储存(Universal Flash Storage,缩写为UFS)已经广泛地被应用在多种用途上。因此,在这些数据储存装置上,有效率的存取控制也变成一个重要的议题。
[0003] 一般而言,若在编程快闪存储器时遭遇非预期断电(Sudden Power Off,缩写为SPO),正在写入的数据或已写入的数据可能会被破坏。举例来说,当快闪存储器在编程某个区块(即,目前用以接收数据的存储器区块,以下称之为目前使用的存储器区块(Current block))的过程时突然发生断电时,将可能导致目前使用的存储器区块产生毁损。因此,于快闪存储器重新上电后,通常会执行对应的一回复程序,例如,一非预期断电回复(Sudden Power Off Recovery,SPOR)程序,于回复程序中逐页扫描并检查目前使用的存储器区块中各数据页的内容,用以搜寻出最后的有效数据页及可能被或已被损毁的数据页的所在位置,并且尝试针对已被损毁的数据页进行修复。
[0004] 然而,有时非预期断电攻击可能会进一步波及到属于相同字元线群组的其他数据页。如此一来,于后续的编程操作中是否应继续使用该字元线群组的判断将变得困难。
[0005] 有鉴于此,本发明提出一种数据处理方法,可有效判断是否继续使用字元线群组以及采用何种方式进行数据修复,如此可有效减少需被检查的数据页数量、需被虚拟编程的数据页数量以及需被搬移的数据页数量,以加速回复程序的操作。

发明内容

[0006] 本发明揭示一种数据储存装置,包括一存储器装置以及一存储器控制器。存储器装置包括一目前使用的存储器区块。存储器控制器耦接存储器装置,用以存取存储器装置。适应于存储器控制器检测到存储器装置上电前发生过非预期断电,存储器控制器藉由扫描目前使用的存储器区块的多个数据页以找出一最后有效数据页以及最后有效数据页所对应的一最后有效字元线,并且根据目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用最后有效数据页所属的一字元线群组所包含之一或多个空白数据页。
[0007] 本发明揭示一种数据处理方法,适用于一数据储存装置,数据储存装置包括一存储器装置以及一存储器控制器,存储器装置包括一目前使用的存储器区块,存储器控制器耦接存储器装置,用以存取存储器装置,此方法包括:当检测到该存储器装置上电前发生过非预期断电,藉由扫描该目前使用的存储器区块的多个数据页找出一最后有效数据页以及该最后有效数据页所对应的一最后有效字元线;以及根据该目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用该最后有效数据页所属的一字元线群组所包含之一或多个空白数据页。

附图说明

[0008] 图1是显示根据本发明的一实施例所述的存储器装置的示意图。
[0009] 图2是显示根据本发明的一实施例所述的存储器装置中一存储器区块的示意图。
[0010] 图3是显示根据本发明的一实施例所述的数据处理方法流程图。
[0011] 图4A是显示出一字元线群组范例用以说明根据本发明的一实施例所述的第一种数据修复方法。
[0012] 图4B是显示出一字元线群组范例用以说明根据本发明的一实施例所述的第三种数据修复方法。
[0013] 图5A是显示出一字元线群组范例用以说明根据本发明的一实施例所述的第二种数据修复方法。
[0014] 图5B是显示出一字元线群组范例用以说明根据本发明的一实施例所述的第四种数据修复方法。
[0015] 符号说明
[0016] 100‑数据储存装置;
[0017] 110‑存储器控制器;
[0018] 112‑微处理器;
[0019] 112M‑只读存储器;
[0020] 112C‑程序码;
[0021] 114‑控制逻辑;
[0022] 116‑缓冲存储器;
[0023] 118‑接口逻辑;
[0024] 120‑存储器装置;
[0025] 130‑主机装置;
[0026] 132‑编码器;
[0027] 134‑解码器;
[0028] 136‑累计电路;
[0029] 200‑存储器区块;
[0030] 202‑浮动闸极晶体管;
[0031] BL1、BL2、BL3‑位元线;
[0032] LP、UP‑数据页;
[0033] SB0、SB1、SB2、SB3、SB4、SB5、SB6、SB7、WL0、WL1、WL2、WL4、WL5、WL6‑字元线。

具体实施方式

[0034] 为让本发明的目的、特征和优点能更明显易懂,下文特举出本发明的具体实施例,并配合附图,作详细说明如下。目的在于说明本发明的精神而非用以限定本发明的保护范围,应理解下列实施例可经由软件、硬件、固件、或上述任意组合来实现。
[0035] 图1是显示根据本发明的一实施例所述的数据储存装置100的示意图。数据储存装置100包括一存储器装置120,例如,一快闪存储器(Flash Memory)模组,以及一存储器控制器110,且存储器控制器110用来存取(Access)存储器装置120。根据本发明一实施例,存储器控制器110包含一微处理器112、一只读存储器(Read Only Memory,ROM)112M、一控制逻辑114、一缓冲存储器116、与一接口逻辑118。只读存储器112M是用来储存一程序码112C,而微处理器112则用来执行程序码112C以控制对存储器装置120的存取。控制逻辑114包含了一编码器132、一解码器134以及一累计电路136。编码器132用来对写入到存储器装置120中的数据进行编码以产生对应的校验码(或称,错误更正码(Error Correction Code),ECC)。解码器134用来对从存储器装置120所读出的数据进行解码。累计电路136用来计算数据页所包含的一特定位元的数量,例如,位元'0'或位元'1'的数量(以下将作更详细的介绍),用以作为一些特定判断的依据。
[0036] 于典型状况下,存储器装置120包含了多个快闪存储器芯片,而每一个快闪存储器芯片包含多个存储器区块(Block),而该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行抹除数据运作是以区块为单位来进行。另外,一存储器区块可记录(包含)特定数量的数据页(Page),其中该控制器(例如,透过微处理器112执行程序码112C的存储器控制器110)对存储器装置120进行写入数据的运作是以数据页为单位来进行写入。
[0037] 实作上,透过微处理器112执行程序码112C的存储器控制器110可利用其本身内部的元件来进行诸多控制运作,例如:利用控制逻辑114来控制存储器装置120的存取运作(尤其是对至少一区块或至少一数据页的存取运作)、利用缓冲存储器116进行所需的缓冲处理、以及利用接口逻辑118来与一主机装置(Host Device)130沟通。缓冲存储器116是以随机存取存储器(Random Access Memory,RAM)来实施。例如,缓冲存储器116可以是静态随机存取存储器(Static RAM,SRAM),但本发明不限于此。
[0038] 在一实施例中,数据储存装置100可以是可携式存储器装置(例如:符合SD/MMC、CF、MS、XD标准的记忆卡),且主机装置130为一可与数据储存装置连接的电子装置,例如手机、笔记型电脑、桌上型电脑…等等。而在另一实施例中,数据储存装置100可以是固态硬碟或符合通用快闪存储器储存(Universal Flash Storage,UFS)或嵌入式多媒体记忆卡(Embedded Multi Media Card,EMMC)规格的嵌入式储存装置,以设置在一电子装置中,例如设置在手机、笔记型电脑、桌上型电脑之中,而此时主机装置130可以是该电子装置的一处理器。
[0039] 主机装置130可对数据储存装置100发出指令,例如,读取指令或写入指令,用以存取存储器装置120所储存的数据,或者进一步控制、管理数据储存装置100。
[0040] 根据本发明的一实施例,存储器装置120所包含的多个存储器区块中可包含单层式储存(Single‑Level Cell,SLC)存储器区块、多层式储存(Multiple‑Level Cell,MLC)存储器区块以及/或是三层式储存(Triple‑Level Cell,TLC)存储器区块。SLC存储器区块的每个存储器单元中储存一个位元数据,MLC存储器区块的每个存储器单元中储存两个位元数据,TLC存储器区块的每个存储器单元中储存三个位元数据。
[0041] 根据本发明的一实施例,各存储器区块包括一既定数量的数据页。其中,所述的数据页可以是一逻辑数据页,因此,SLC存储器区块、MLC存储器区块以及TLC存储器区块所对应的既定数量可能为不同。例如,MLC存储器区块所包含的逻辑数据页数量可为SLC存储器区块的两倍,TLC存储器区块所包含的逻辑数据页数量可为SLC存储器区块的三倍。
[0042] 图2是显示根据本发明的一实施例所述的存储器装置中一存储器区块的示意图,其中于此实施例,存储器装置120为立体NAND型快闪存储器。如图2所示,存储器区块200包含了多个记忆单元(例如图示的浮动闸极晶体管202或是其他的电荷捕捉(charge trap)元件),其透过多条位元线(图示仅绘示了BL1~BL3)及多条字元线(例如图示WL0~WL2、WL4~WL6)来构成立体NAND型快闪存储器架构。在图2中,以最上面的一个平面为例,字元线WL0上的所有浮动闸极晶体管构成了至少一数据页,字元线WL1上的所有浮动闸极晶体管构成了另至少一数据页,而字元线WL2的所有浮动闸极晶体管构成了再另至少一数据页…以此类堆。此外,根据快闪存储器写入方式的不同,字元线WL0与数据页(逻辑数据页)之间的定义也会有所不同,详细来说,当使用单层式储存(Single‑Level Cell,SLC)的方式写入时,字元线WL0上的所有浮动闸极晶体管仅对应到单一逻辑数据页;当使用多层式储存(Multi‑Level Cell,MLC)的方式写入时,字元线WL0上的所有浮动闸极晶体管对应到两个逻辑数据页;当使用三层式储存(Triple‑Level Cell,TLC)的方式写入时,字元线WL0上的所有浮动闸极晶体管对应到三个逻辑数据页;以及当使用四层式储存(Quad‑Level Cell,QLC)的方式写入时,字元线WL0上的所有浮动闸极晶体管对应到四个逻辑数据页。由于本技术领域中具有通常知识者应能了解立体NAND型快闪存储器的结构以及字元线及数据页之间的关系,故相关的细节在此不予赘述。
[0043] 在图2所示的架构中,会将多条字元线定义为一字元线群组,而该字元线群组会共同具有部分的控制电路,进而导致当数据写入到该字元线群组的一条字元线上的浮动闸极晶体管发生失败时(例如发生非预期断电而造成写入失败),可能会连带导致该字元线群组的其他字元线上的浮动闸极晶体管的数据发生错误。在一实施例中,位于同一个平面上的字元线会被设定为一字元线群组,参考图2,假设同一个平面上有四个位元线,则字元线WL0~WL3会被归于第一字元线群组,而字元线WL4~WL7会被归于第二字元线群组…以此类推。假设快闪存储器控制器110将数据写入到第一字元线群组的数据页中时是循序将数据写入到字元线WL0、WL1、WL2、WL3中的浮动闸极晶体管202,而假设字元线WL0、WL1、WL2上的数据都成功写入,但是当数据写入字元线WL3时发生写入错误,则可能会连带使得字元线WL0、WL1、WL2上原本写入成功的数据也发生错误。此外,假设快闪存储器控制器110将数据写入到第二字元线群组的数据页中时是循序将数据写入到字元线WL4、WL5、WL6、WL7中的浮动闸极晶体管202,而假设字元线WL4上在写入数据的时候发生错误,则也会连带使得字元线WL5、WL6、WL7不稳定而不适合再继续写入数据。
[0044] 如上述,若在编程快闪存储器时遭遇非预期断电(SPO),正在写入的数据或已写入的数据可能会被破坏,有时甚至可能进一步波及到与被攻击的数据页属于相同字元线群组的其他数据页。如此一来,于后续的编程操作中是否应继续使用该字元线群组剩余的空白数据页的判断将变得困难。
[0045] 为解决上述问题,本发明提出一种数据处理方法,可有效判断是否继续使用同一字元线群组剩余的空白数据页,并且可根据数据页受损程度不同,而采用不同的方式进行数据修复。藉由本发明所提出的方法,可有效减少需被检查的数据页数量、需被虚拟编程的数据页数量以及需被搬移的数据页数量,以加速回复程序的操作。
[0046] 根据本发明的一实施例,当数据储存装置100上电时,存储器控制器110可自存储器装置120读取一些变数值(例如,非预期断电旗标或SPO计数值),以判断是否发生过非预期断电。其中,SPO计数值用于累计发生非预期断电的次数,当SPO计数值增加,则代表存储器装置120的上次关机是非预期断电造成的。此外,非预期断电旗标用于指出数据储存装置100上一次的关机是否是非预期断电造成的,例如:当非预期断电旗标的值为1时,代表发生非预期断电,当非预期断电旗标的值为0时,代表正常关机。于每次数据储存装置100上电时,存储器控制器110可将非预期断电旗标设定为1并储存于存储器装置120,而当存储器装置120正常关机时,存储器控制器110可将非预期断电旗标设定为0并储存于存储器装置
120,因此若发生非预期断电后时再次上电时,非预期断电旗标仍会保持在数值1。
[0047] 当存储器控制器110检测到或判断出上电前发生过非预期断电时,存储器控制器110可执行对应的一回复程序,例如,一非预期断电回复(SPOR)程序,于回复程序中逐页扫描并检查目前使用的存储器区块(current block)中各数据页的内容,用以搜寻出最后有效数据页及可能被或已被损毁的数据页的所在位置。举例而言,存储器控制器110可根据所搜寻的数据页的一备用区域(spare region)或数据区域(data region)的内容判断所搜寻的数据页是否为空白数据页。例如,存储器控制器110可以根据备用区域是否记载相关的元数据(metadata)来判断数据页是否是空白数据页。若备用区域所记载的内容为一预设值,例如,为全1(0XFFFFFFFF)的一数值,则判断该数据页为空白数据页。
[0048] 由于在数据储存装置100的操作中,存储器控制器110是依序(即,数据页序号递增的方向)将数据写入至目前使用的存储器区块中,因此,待找到第一个空白页后,存储器控制器110可由第一个空白数据页往前(即,数据页序号递减的方向)依序读取以决定出最后有效数据页,其中,于本发明的实施例中,所述的有效页为不包含解码器134无法更正的错误的数据页(即,所述的有效页为非UECC数据页)。值得注意的是,数据储存装置100亦可采用其他方式找出最后有效数据页,因此,确认最后有效数据页的方法并不限于上述的方式。
[0049] 根据本发明的一实施例,存储器控制器110可根据目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定是否继续使用最后有效数据页所对应的一字元线群组所包含之一或多个剩余的空白数据页,其中,一字元线群组可包含多个条字元线,而各字元线可构成一或多个数据页。字元线群组所包含的字元线的数量取决于存储器装置120所采用的制程,不同制程可能会有不同的设计。
[0050] 此外,根据本发明的一实施例,存储器控制器110可进一步根据数据页受损程度不同(例如,是否检测到UECC数据页),决定采用何种方式进行数据修复。此外,根据本发明的一实施例,当存储器控制器110判断数据页为相对安全时,便不再进行额外的检查、虚拟编程及数据搬移,或仅进行少量的虚拟编程及数据搬移,如此一来,可大幅加速回复程序的操作。
[0051] 图3是显示根据本发明的一实施例所述的数据处理方法流程图。首先,当检测到存储器装置120于上电前发生过非预期断电,存储器控制器110可藉由扫描目前使用的存储器区块的多个数据页找出一最后有效数据页以及其所对应的一最后有效字元线(步骤S302),其中,扫描的操作包含读取数据页的内容,并且对于已编辑数据页进行错误检查与更正。接着,存储器控制器110取得目前使用的存储器区块所对应的一读取计数值与一抹除计数值(步骤S304)。根据本发明的一实施例,各存储器区块所对应的读取计数值与抹除计数值可被记录于存储器装置120所储存的一既定表格内。于数据储存装置100/存储器装置120上电/开机时,既定表格的内容可被读出并暂存于缓冲存储器116。当存储器装置120被存取时,既定表格的内容可被对应地更新,并且于数据储存装置100关机时,既定表格的内容可再被储存回存储器装置120。
[0052] 接着,存储器控制器110可根据目前使用的存储器区块所对应的一读取计数值与一抹除计数值决定于后续的编程操作中,是否将继续使用最后有效数据页所属的一字元线群组所包含之一或多个空白数据页(步骤S306)。值得注意的是,于步骤S306中,存储器控制器110亦可再执行一辅助判断程序,用以辅助决定是否继续使用该字元线群组所包含的该一或多个空白数据页。
[0053] 若决定续用剩余的空白数据页,则存储器控制器110进一步判断目前使用的存储器区块是否包含至少一数据页,其所储存的数据包含解码器134无法更正的错误(即,无法藉由错误更正码更正的错误(Uncorrectable ECC Error,缩写为UECC Error)(步骤S308)。
[0054] 若目前使用的存储器区块包含至少一UECC数据页,则存储器控制器110决定采用第一种方式进行数据修复(步骤S310)。根据本发明的一实施例,第一种方式包含了虚拟编程(dummy programming)字元线群组中与最后有效字元线相邻的一字元线所对应的多个数据页(例如,UECC数据页与其配对页),并且续用剩余的空白数据页(若有)。举例而言,存储器控制器110可藉由写入一虚拟数据、无效数据或一预定图样以虚拟编程一数据页。
[0055] 若目前使用的存储器区块不包含UECC数据页,则存储器控制器110决定采用第二种方式进行数据修复(步骤S312)。根据本发明的一实施例,第二种方式包含了虚拟编程字元线群组中与最后有效字元线相邻的一字元线所对应的多个数据页(例如,与最后有效字元线相邻的次一条字元线所对应的数据页),并且续用剩余的空白数据页(若有)。
[0056] 另一方面,若决定不续用剩余的空白数据页,则存储器控制器110亦进一步判断目前使用的存储器区块是否包含至少一UECC数据页(步骤S314)。
[0057] 若目前使用的存储器区块包含至少一UECC数据页,则存储器控制器110决定采用第三种方式进行数据修复(步骤S316)。根据本发明的一实施例,第三种方式包含了自UECC数据页与其配对页开始虚拟编程数据页,直至字元线群组所包含的最后一个空白数据页为止(即,字元线群组中剩余的空白数据页(若有)同样会被虚拟编程)。
[0058] 若目前使用的存储器区块不包含UECC数据页,则存储器控制器110决定采用第四种方式进行数据修复(步骤S318)。根据本发明的一实施例,第四种方式包含了自最后有效数据页与其配对页开始虚拟编程数据页,直至字元线群组所包含的最后一个空白数据页为止(即,字元线群组中剩余的空白数据页(若有)同样会被虚拟编程)。
[0059] 以下段落将结合附图,进一步说明本发明所提出的决定是否续用剩余的空白数据页判断方式(包含辅助判断程序),以及上述的四种数据修复方法。
[0060] 根据本发明的一实施例,存储器控制器110可根据读取计数值(Read_Count)的一加权值以及抹除计数值(Erase_Count)的一加权值之和决定是否续用剩余的空白数据页或者要进一步藉由执行辅助判断程序判断是否续用剩余的空白数据页。存储器控制器110可采取以下策略进行判断:
[0061] 当读取计数值的加权值(例如,Read_Count*y)以及抹除计数值的加权值(例如,Erase_Count*x)之和小于或等于一第一临界值TH_1时(参考以下条件式(1)),存储器控制器110可直接决定继续使用字元线群组所包含之一或多个空白数据页(若有)。
[0062] (Erase_Count*x+Read_Count*y)<=TH_1   条件式(1)
[0063] 即,当条件式(1)满足时,存储器控制器110判断字元线群组所包含的已编程数据页与空白数据页为相对安全的,因此,存储器控制器110可决定采取第一种方式(当有检测到UECC数据页)进行数据修复或者采取第二种方式(当无检测到UECC数据页)进行数据修复。
[0064] 当读取计数值的加权值(例如,Read_Count*y)以及抹除计数值的加权值(例如,Erase_Count*x)之和大于一第二临界值TH_2时(参考以下条件式(2)),存储器控制器110可直接决定不继续使用字元线群组所包含之一或多个空白数据页(若有)。
[0065] (Erase_Count*x+Read_Count*y)>TH_2   条件式(2)
[0066] 即,当条件式(2)满足时,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对危险的,因此,存储器控制器110可决定采取第三种方式(当有检测到UECC数据页)进行数据修复或者采取第四种方式(当无检测到UECC数据页)进行数据修复。
[0067] 其中,加权值x与y、临界值TH_1与TH_2的数值可考虑存储器装置的物理特性、所采用的制程等因素而被设计。
[0068] 当读取计数值的加权值(例如,Read_Count*y)以及抹除计数值的加权值(例如,Erase_Count*x)之和大于第一临界值TH_1并且小于或等于第二临界值TH_2时(参考以下条件式(3)),存储器控制器110可决定再执行一辅助判断程序,用以决定是否继续使用字元线群组所包含之一或多个空白数据页(若有)。
[0069] TH_1<(Erase_Count*x+Read_Count*y)<=TH_2   条件式(3)
[0070] 于辅助判断程序中,存储器控制器110将检查字元线群组所包含的已编程数据页(若有)所储存的内容,以及/或检查字元线群组所包含的空白数据页(若有)所储存的内容。
[0071] 根据本发明的一实施例,于辅助判断程序中,存储器控制器110可进一步解码/检查同一字元线群组所包含之一或多个已编程数据页所储存的内容,以取得各已编程数据页所发生的错误位元的数量。当任一个已编程数据页所发生的错误位元的数量大于一错误位元临界值时,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对危险的,因此,存储器控制器110可决定不继续使用此字元线群组所包含之一或多个空白数据页(若有)。
[0072] 反之,若各已编程数据页所发生的错误位元之数量均未大于错误位元临界值,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对安全的,因此,存储器控制器110可决定继续使用此字元线群组所包含之一或多个空白数据页(若有)。
[0073] 根据本发明的另一实施例,于辅助判断程序中,存储器控制器110可进一步解码/检查同一字元线群组所包含之一或多个已编程数据页所储存的内容,以决定出可用以成功解码各已编程数据页所储存的内容的一错误更正再试档位(retry level),其中,再试档位用以代表存储器控制器110提供给对应之字元线用以读取数据的电压档位或解码器134所使用的错误更正码参数档位。一般而言,再试档位越高,所需付出的解码/更正错误的努力(例如,运算的负担或调整的范围)也越大。当任一个已编程数据页所对应的错误更正再试档位高于一再试档位临界值时,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对危险的,因此,存储器控制器110可决定不继续使用该字元线群组所包含的该一或多个空白数据页。
[0074] 反之,若各已编程数据页所对应的错误更正再试档位均不高于再试档位临界值,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对安全的,因此,存储器控制器110可决定继续使用此字元线群组所包含之一或多个空白数据页(若有)。
[0075] 除检查已编程数据页以外,于辅助判断程序中,存储器控制器110亦可进一步检查同一字元线群组所包含的空白数据页所储存的内容是否与预期相符。举例而言,存储器控制器110可自最后有效字元线的次两条(例如,字元线序号+2)(举例而言,图4A与4B所示范例的字元线SB4,图5A与5B所示范例的字元线SB5)开始检查各空白数据页所储存的内容,直到同一字元线群组的最后一个空白数据页。假设空白数据页所储存的内容应为全1(0XFFFF)的一数值,则存储器控制器110可透过累计电路136累计各数据页包含位元'0'的数量为何。当任一个空白数据页包含位元'0'的数量大于一累计临界值时,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对危险的,因此,存储器控制器110可决定不继续使用该字元线群组所包含的该一或多个空白数据页。反之,若各空白数据页包含位元'0'的数量均不大于累计临界值时,存储器控制器110可判断字元线群组所包含的已编程数据页与空白数据页为相对安全的,因此,存储器控制器110可决定继续使用此字元线群组所包含之一或多个空白数据页(若有)。
[0076] 于辅助判断程序中,若依任一个条件判断出字元线群组所包含的已编程数据页与空白数据页为相对危险的,存储器控制器110可决定不继续使用该字元线群组所包含的该一或多个空白数据页。
[0077] 如上述,当存储器控制器110于步骤S306中根据以上策略决定出是否继续使用此字元线群组所包含之一或多个空白数据页后,可再根据目前使用的存储器区块是否包含至少一UECC数据页决定采用哪种修复方法。
[0078] 值得注意的是,于本发明的实施例中,若此字元线群组已无空白数据页(例如,UECC数据页或者最后有效数据页为该字元线群组包含的最后一个数据页或对应于该字元线群组的最后一条字元线),则无需考虑是否继续使用此字元线群组所包含之一或多个空白数据页,存储器控制器110仅需决定采用哪种修复方法进行修复。
[0079] 图4A为一存储器区块范例,显示出字元线群组及其所包含的多个字元线与多个数据页,用以说明步骤S310所采用的第一种数据修复方法,其中,SB0~SB7为字元线,UP与LP为各字元线所对应的数据页,一字元线群组可包含8条字元线,因此,一个字元线群组可包含连续的16个数据页。例如,每行(row)数据页归属于(对应于)同一字元线群组,每列(column)数据页归属于(对应于)不同字元线群组,因此,于此范例中,数据页16~31对应于同一字元线群组。
[0080] 于此实施例中,假设数据页23为存储器控制器110检测到的UECC数据页,因此,数据页21为最后有效数据页,SB2为最后有效字元线,数据页16~22为数据页23之前的已编程数据页,数据页24~31为数据页23之后的空白数据页。
[0081] 根据本发明的一实施例,当存储器控制器110检测到目前使用的存储器区块包含UECC数据页,并且已透过上述策略判断字元线群组所包含的已编程数据页与空白数据页为相对安全的而决定出继续使用此字元线群组所包含之一或多个空白数据页时,采用第一种数据修复方法。于第一种数据修复方法,存储器控制器110仅放弃UECC数据页及其配对页。因此,于此范例中,存储器控制器110仅虚拟编程数据页22与23(亦为与最后有效字元线SB2相邻的次一字元线SB3所对应的数据页)。
[0082] 值得注意的是,虽图4A的范例是显示使用多层式储存(MLC)的方式写入的存储器区块,本发明并不限于此,本发明所提出的数据处理方法亦可应用于使用三层式储存(TLC)、四层式储存(QLC)等其他的方式写入的存储器区块。
[0083] 图4B为另一存储器区块范例,显示出字元线群组及其所包含的多个字元线与多个数据页,用以说明步骤S316所采用的第三种数据修复方法。于此实施例中,假设数据页23为存储器控制器110检测到的UECC数据页,因此,数据页21为最后有效数据页,SB2为最后有效字元线,数据页16~22为数据页23之前的已编程数据页,数据页24~31为数据页23之后的空白数据页。
[0084] 根据本发明的一实施例,当存储器控制器110检测到目前使用的存储器区块包含UECC数据页,并且已透过上述策略判断字元线群组所包含的已编程数据页与空白数据页为相对危险的而决定不继续使用此字元线群组所包含之一或多个空白数据页时,采用第三种数据修复方法。于第三种数据修复方法,存储器控制器110决定放弃UECC数据页与其配对页,并且不再使用此字元线群组所包含其他空白数据页。因此,于此范例中,存储器控制器110自数据页22开始执行虚拟编程,直到字元线群组所包含的最后一个空白数据页31。
[0085] 此外,存储器控制器110还进一步将此字元线群组所包含的已编程数据页所储存的数据搬移至次一字元线群组的数据页。更具体的说,存储器控制器110更进一步读出数据页16~21所储存的数据,对读出的数据进行错误检查与更正,并且将经过错误检查与更正后的数据依序重新写入数据页32~37中。
[0086] 值得注意的是,于此实施例中,若存储器控制器110检测到的UECC数据页为数据页30或31,存储器控制器110仅需对数据页30与31执行虚拟编程,以及将此字元线群组所包含的已编程数据页所储存的数据搬移至次一字元线群组的数据页。
[0087] 此外,值得注意的是,虽图4B的范例是显示使用多层式储存(MLC)的方式写入的存储器区块,本发明并不限于此,本发明所提出的数据处理方法亦可应用于使用三层式储存(TLC)、四层式储存(QLC)等其他的方式写入的存储器区块。
[0088] 图5A为另一存储器区块范例,显示出字元线群组及其所包含的多个字元线与多个数据页,用以说明步骤S312所采用的第二种数据修复方法。于此实施例中,存储器控制器110并未检测到目前使用的存储器区块包含UECC数据页,因此,数据页23为最后有效数据页,字元线SB3为最后有效字元线,数据页16~22为数据页23之前的已编程数据页,数据页
24~31为数据页23之后的空白数据页。
[0089] 根据本发明的一实施例,当存储器控制器110并未检测到目前使用的存储器区块包含UECC数据页,并且已透过上述策略判断字元线群组所包含的已编程数据页与空白数据页为相对安全的而决定出继续使用此字元线群组所包含之一或多个空白数据页时,采用第二种数据修复方法。于第二种数据修复方法中,由于存储器控制器110无法确定字元线SB3与SB4的何者受到非其断电攻击,因此,存储器控制器110决定将最后有效字元线SB3所对应的数据页所储存的数据搬移至其他空白数据页,并且放弃字元线SB4所对应的数据页。更具体的说,存储器控制器110虚拟编程与最后有效字元线SB3相邻的次一字元线SB4所对应的数据页24与25,并且进一步读出数据页22与23所储存的数据,对读出的数据进行错误检查与更正,以及将经过错误检查与更正后的数据依序重新写入数据页26与27中。
[0090] 值得注意的是,于此实施例中,若最后有效数据页为数据页30或31,存储器控制器110仅需将最后有效字元线SB7所对应的数据页所储存的数据搬移至次一字元线群组的空白数据页。
[0091] 此外,值得注意的是,虽图5A的范例是显示使用多层式储存(MLC)的方式写入的存储器区块,本发明并不限于此,本发明所提出的数据处理方法亦可应用于使用三层式储存(TLC)、四层式储存(QLC)等其他的方式写入的存储器区块。
[0092] 图5B为另一存储器区块范例,显示出字元线群组及其所包含的多个字元线与多个数据页,用以说明步骤S318所采用的第四种数据修复方法。于此实施例中,存储器控制器110并未检测到目前使用的存储器区块包含UECC数据页,因此,数据页23为最后有效数据页,SB3为最后有效字元线,数据页16~22为数据页23之前的已编程数据页,数据页24~31为数据页23之后的空白数据页。
[0093] 根据本发明的一实施例,当存储器控制器110并未检测到目前使用的存储器区块包含UECC数据页,并且已透过上述策略判断字元线群组所包含的已编程数据页与空白数据页为相对危险的而决定不继续使用此字元线群组所包含之一或多个空白数据页时,采用第四种数据修复方法。于第四种数据修复方法,由于存储器控制器110无法确定字元线SB3与SB4的何者受到非其断电攻击,因此,存储器控制器110决定放弃字元线SB4所对应的数据页以及此字元线群组所包含其他空白数据页,并且将目前已编程数据页所储存的数据搬移至次一字元线群组的数据页。
[0094] 更具体的说,于此范例中,存储器控制器110自数据页24开始执行虚拟编程,直到相同字元线群组所包含的最后一个空白数据页31。存储器控制器110更进一步读出数据页16~23所储存的数据,对读出的数据进行错误检查与更正,并且将经过错误检查与更正后的数据依序重新写入数据页32~39中。
[0095] 值得注意的是,于此实施例中,若最后有效数据页为数据页30或31,存储器控制器110仅需将目前已编程数据页所储存的数据搬移至次一字元线群组的空白数据页。
[0096] 此外,值得注意的是,虽图5B的范例是显示使用多层式储存(MLC)的方式写入的存储器区块,本发明并不限于此,本发明所提出的数据处理方法亦可应用于使用三层式储存(TLC)、四层式储存(QLC)等其他的方式写入的存储器区块。
[0097] 于传统技术中,一旦发生非预期断电,与被攻击或可能被攻击的数据页属于同一字元线群组中的数据页都必须一律放弃。然而,于本发明中,当存储器区块的读取计数值与抹除计数值相对低时,仍可决定继续使用同一字元线群组内剩余的空白数据页(若有)。因此,相较于传统技术,本发明所提出的数据处理方法可有效避免过度浪费存储器装置的剩余空间,并且可有效减少因决定放弃而需被虚拟编程的数据页数量以及需被搬移的数据页数量。
[0098] 此外,于本发明所提出的数据处理方法中,藉由参考存储器区块的读取计数值与抹除计数值,便可初步判断是否继续使用字元线群组剩余的空白数据页,因此可有效减少需被检查的数据页数量。更具体的说,于本发明步骤S306中,若条件式(1)或(2)满足,则无需执行辅助判断程序,如此一来,可简化判断流程,并且可有效减少需被检查的数据页数量,以加速回复程序的操作。
[0099] 此外,于本发明所提出的数据处理方法中,存储器控制器110更根据数据页受损程度弹性地决定后续采用的数据修复方法,以及需被虚拟编程的数据页及/或需被搬移的数据页的范围,如此一来,不仅可依数据页受损程度选择出最适当的数据修复方法,更可以将需被虚拟编程的数据页及/或需被搬移的数据页的范围最小化,以加速回复程序的操作。
[0100] 申请文件中用以修饰元件的"第一"、"第二"等序数词的使用本身未暗示任何优先权、优先次序、各元件之间的先后次序、或方法所执行的步骤的次序,而仅用作标识来区分具有相同名称(具有不同序数词)的不同元件。
[0101] 虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何熟悉本技术领域者,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当由权利要求书界定为准。