CN104217761B - 数据储存装置及其错误校正方法 - Google Patents

数据储存装置及其错误校正方法 Download PDF

Info

Publication number
CN104217761B
CN104217761B CN201410073801.0A CN201410073801A CN104217761B CN 104217761 B CN104217761 B CN 104217761B CN 201410073801 A CN201410073801 A CN 201410073801A CN 104217761 B CN104217761 B CN 104217761B
Authority
CN
China
Prior art keywords
mentioned
voltage
page
read
correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410073801.0A
Other languages
English (en)
Other versions
CN104217761A (zh
Inventor
陈俊仪
陈俊辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from TW102138403A external-priority patent/TWI515729B/zh
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN104217761A publication Critical patent/CN104217761A/zh
Application granted granted Critical
Publication of CN104217761B publication Critical patent/CN104217761B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/14Dummy cell management; Sense reference voltage generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种数据储存装置及其错误校正方法。数据储存装置包括一快闪存储器以及一控制器。控制器用以根据一主机的一读取命令对快闪存储器中相应于一第一字符线的一第一页面进行一第一次读取动作,并且当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,控制器更用以执行一校正电压分布程序,其中在校正电压分布程序中,控制器更用以对快闪存储器中相应于一第二字符线的一第二页面进行一校正读取动作。

Description

数据储存装置及其错误校正方法
技术领域
本发明关于一种存储器装置的错误校正方法;特别是关于一种校正电压分布的错误校正方法。
背景技术
快闪存储器为一种普遍的非挥发性数据储存装置,是以电性方式抹除与程序化。以与非门型的快闪存储器(即NAND FLASH)为例,常用作存储卡(memory card)、通用序列总线闪存装置(USB flash device)、固态硬盘(SSD)、嵌入式快闪存储器模块(eMMC)…等使用。
快闪存储器(如,NAND FLASH)的储存阵列包括多个区块(blocks)。各区块包括多个页(pages)。由于快闪存储器的存取过程中可能会发生数据内容的错误,所以目前在存入数据时是将原始的数据进行编码后,再储存编码后的数据至快闪存储器中,而数据读取时则将编码的数据读出,再解码所读出的编码数据来得到原先的数据。编/解码操作虽然能够进行除错,然而仅只能更正部分的比特错误。而当发生超过一定程度以上的错误时,快闪存储器控制器在执行完解码操作后将发现无法对编码数据进行有效解码。
发明内容
本发明所提供的数据储存装置以及错误校正方法可借由校正电压分布程序对目标页面外的其它页面进行读取,以产生读取干扰效应,并借由读取干扰效应校正在读取过程中发生错误的目标页面的临界电压分布。另外,电压设定程序可对目标页面进行重复读取,以根据不同的读取电压读取目标页面的数据。
本发明提供一种数据储存装置。数据储存装置包括一快闪存储器以及一控制器。控制器用以根据一主机的一读取命令对快闪存储器中相应于一第一字符线的一第一页面进行一第一次读取动作,并且当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,控制器更用以执行一校正电压分布程序,其中在校正电压分布程序中,控制器更用以对快闪存储器中相应于一第二字符线的一第二页面进行一校正读取动作,并且校正读取动作是对第二页面进行读取一既定校正次数,以借由读取干扰效应校正第一页面的临界电压的分布。
另外,控制器更用以在校正电压分布程序执行完毕后,再对第一页面进行一第二次读取动作,并且判断相应于校正读取动作已执行的次数的一校正计数是否超过一第一既定值,以当校正计数超过第一既定值时,将第一页面标记为一损坏页面。
在本发明提供的另一实施例中,当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,控制器更用以进行一电压设定程序,其中在电压设定程序中,控制器用以根据一重复读取表,对快闪存储器中的一寄存器进行一电压设定动作,以将寄存器中的数值,作为快闪存储器的读取电压。
另外,控制器更用以在电压设定程序执行完毕后,借由所设定的快闪存储器的读取电压对第一页面进行一第二次读取动作,并且判断相应于电压设定动作已执行的次数的一重复读取计数是否超过一第二既定值,以当重复读取计数超过第二既定值时,将第一页面标记为一损坏页面。在本发明的一实施例中,电压设定程序可在校正电压分布程序之后执行。在本发明的另一实施例中,电压设定程序可在校正电压分布程序之前执行。
本发明另提供一种错误校正方法,适用于一数据储存装置。错误校正方法包括根据一主机的一读取命令对数据储存装置中的快闪存储器中相应于一第一字符线的一第一页面进行一第一次读取动作;判断第一次读取动作读取第一页面时,是否发生无法借由编解码进行修复的错误;当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,执行一校正电压分布程序;以及在校正电压分布程序执行完毕后,对第一页面进行一第二次读取动作,其中校正电压分布程序包括对快闪存储器中相应于一第二字符线的一第二页面进行一校正读取动作,并且校正读取动作是对第二页面进行读取一既定校正次数,以借由读取干扰效应校正第一页面的临界电压的分布。
另外校正电压分布程序更包括判断相应于校正读取动作已执行的次数的一校正计数是否超过一第一既定值;以及当校正计数超过第一既定值时,将第一页面标记为一损坏页面。
本发明所提供的错误校正方法更包括当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,进行一电压设定程序,其中电压设定程序包括根据一重复读取表,对快闪存储器中的一寄存器进行一电压设定动作,以将寄存器中的数值,作为快闪存储器的读取电压。另外,在电压设定程序执行完毕后,借由所设定的快闪存储器的读取电压对第一页面进行一第二次读取动作。在本发明的一种错误校正方法的实施例中,电压设定程序在校正电压分布程序之前执行。在本发明的另一种错误校正方法的实施例中,或者电压设定程序在校正电压分布程序之后执行。
另外,电压设定程序更包括判断相应于电压设定动作的次数的一重复读取计数是否超过一第二既定值,其中当重复读取计数超过第二既定值时,将第一页面标记为一损坏页面。
附图说明
图1是本发明的一种实施例的电子系统的方块图。
图2是本发明的一种实施例的错误校正方法的流程图。
图3A-3B是本发明的另一种实施例的错误校正方法的流程图。
图4A-4B是本发明的另一种实施例的错误校正方法的流程图。
图5A是本发明的经由电压设定程序后对目标页面进行读取的模拟图。
图5B是本发明的经由校正电压分布程序后对目标页面进行读取的模拟图。
【附图标记说明】
100 电子系统;
120 主机;
140 数据储存装置;
160 控制器;
162 运算单元;
164 永久存储器;
180 快闪存储器;
502、504 标准线;
S200-S212、S300-S320、S400-S420 步骤。
具体实施方式
以下将详细讨论本发明各种实施例的装置及使用方法。然而值得注意的是,本发明所提供的许多可行的发明概念可实施在各种特定范围中。这些特定实施例仅用于举例说明本发明的装置及使用方法,但非用于限定本发明的范围。
图1是本发明的一种实施例的电子系统的方块图。电子系统100包括一主机120以及一数据储存装置140。数据储存装置140包括一快闪存储器180以及一控制器160,且可根据主机110所下达的命令操作。控制器160包括一运算单元162以及一永久存储器(如,只读存储器ROM)164。永久存储器164与所载的程序码、数据组成固件(firmware),由运算单元162执行,使控制器160基于该固件控制该快闪存储器180。快闪存储器180包括多个页面以及多个字符线与多个比特线,其中每一字符线用以连接至少一页面,以选择所欲读取的页面。举例而言,当快闪存储器180为单阶储存单元(Single-Level Cell,SLC)时,一条比特线用以连接至一个页面。当快闪存储器180为多阶储存单元(Multi-Level Cell,MLC)时,一条比特线用以连接至两个页面。当快闪存储器180为三阶储存单元(Triple-Level Cell,TLC)时,一条比特线用以连接至三个页面,但本发明不限于此。
根据本案所揭露的技术,固件是设计来提供主机120对快闪存储器180进行读取发生错误时,所需的错误校正方法,用以补救无法依正常程序读取的数据。本发明所揭露的错误校正方法包括一校正电压分布程序,但本发明不限于此。在本发明的另一实施例中,错误校正方法包括一校正电压分布程序以及一电压设定程序。本发明所揭露的校正电压分布程序是借由读取目标页面外的其它页面所产生的读取干扰效应(Read disturbance),校正在读取过程中发生错误的目标页面的临界电压分布。另外,本发明所揭露的电压设定程序是用以根据一重新读取表(Read Retry Table)重新设定在读取过程中发生错误的目标页面的读取电压,以对目标页面进行重复读取(Read Retry)。值得注意的是,上述的目标页面是主机120传送至数据储存装置140的读取命令,所要求读取的页面。详细动作如下所述。
在本发明的一实施例中,控制器160用以根据主机120的一读取命令对快闪存储器180中相应于一第一字符线的一第一页面进行一第一次读取动作。换言之,控制器160用以根据主机120的一读取命令对快闪存储器180中连接至第一字符线的第一页面进行第一次读取动作。当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,控制器160执行校正电压分布程序。在校正电压分布程序中,控制器160用以对快闪存储器180中相应于一第二字符线的一第二页面进行一校正读取动作,其中第一字符线与第二字符线不相同,并且第一页面与第二页面不相同。换言之,控制器160用以根据主机120的一读取命令对快闪存储器180中连接至第二字符线的第二页面进行校正读取动作。值得注意的是,校正读取动作是对第二页面进行读取一既定校正次数,以借由读取干扰效应校正第一页面的临界电压的分布。既定校正次数可为1次、5次、10次、20次、30次、50次、100次或者500次等,经由发明人根据校正程序成功率的实验数据所设计的数值,本发明不限于此。接着,控制器160更用以在校正电压分布程序执行完毕后,再对第一页面进行一第二次读取动作。当控制器160在第二次读取动作中成功读取第一页面时,控制器160将成功读取的第一页面的数据传送至主机120。
在本发明的一实施例中,控制器160更可在第二次读取动作依然无法成功读取第一页面后,重复执行校正电压分布程序,直到第一页面的数据可成功被读取,或者直到校正电压分布程序被重复执行的次数达到一第一既定值为止。举例而言,第一既定值可为1次、5次、10次、20次、50次、100次或者500次等,经由发明人根据校正程序后重读目标页面的成功率的实验数据所设计的数值,本发明不限于此。当校正电压分布程序被重复执行的次数达到第一既定值时,控制器160更用以将第一页面标记为一损坏页面。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对校正电压分布程序被重复执行的次数进行一校正计数。每当控制器160执行一次校正电压分布程序时,校正计数则加一。
在本发明的另一实施例中,当校正电压分布程序被重复执行的次数达到第一既定值时,控制器160执行电压设定程序。换言之,在本实施例中,电压设定程序在校正电压分布程序之后执行。在电压设定程序中,控制器160用以根据重复读取表,对快闪存储器180中的一寄存器(未图示)进行一电压设定动作,以将寄存器中的数值,作为快闪存储器180的读取电压。举例而言,重复读取表可储存于永久存储器164中。值得注意的是,在控制器160对第一页面进行第一次读取动作时,是根据一预设的读取电压对第一页面进行读取的。接着,控制器160更用以在电压设定程序执行完毕后,借由所设定的快闪存储器180的读取电压对第一页面进行一第二次读取动作。当控制器160在第二次读取动作中成功读取第一页面时,控制器160将成功读取的第一页面的数据传送至主机120。
在本发明的一实施例中,控制器160更可在电压设定程序后所执行的第二次读取动作依然无法成功读取第一页面后,重复执行校正电压分布程序及/或电压设定程序,直到第一页面的数据可成功被读取,或者直到电压设定程序被重复执行的次数达到一第二既定值为止。举例而言,第二既定值可为1次、5次、10次、20次、50次、100次或者500次等,经由发明人根据电压设定程序重读目标页面后的成功率的实验数据所设计的数值,本发明不限于此。当电压设定程序被重复执行的次数达到一第二既定值时,控制器160更用以将第一页面标记为一损坏页面。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对电压设定程序被重复执行的次数进行一重复读取计数。每当控制器160执行一次电压设定程序时,重复读取计数则加一。
在本发明的其它实施例中,电压设定程序在校正电压分布程序之前执行。举例而言,控制器160用以根据主机120的一读取命令对快闪存储器180中相应于一第一字符线的一第一页面进行一第一次读取动作。换言之,控制器160用以根据主机120的一读取命令对快闪存储器180中连接至第一字符线的第一页面进行第一次读取动作。当第一次读取动作读取第一页面发生无法借由编解码进行修复的错误时,控制器160执行电压设定程序。在电压设定程序中,控制器160根据重复读取表,对快闪存储器180中的一寄存器进行电压设定动作,以将寄存器中的数值,作为快闪存储器180的读取电压,其它电压设定程序的细节请参考上述说明,在此不再赘述。接着,控制器160更用以在电压设定程序执行完毕后,借由所设定的快闪存储器180的读取电压对第一页面进行一第二次读取动作。当控制器160在第二次读取动作中成功读取第一页面时,控制器160将成功读取的第一页面的数据传送至主机120。
在本发明的一实施例中,控制器160更可在电压设定程序后所执行的第二次读取动作依然无法成功读取第一页面后,重复执行电压设定程序,直到第一页面的数据可成功被读取,或者直到电压设定程序被重复执行的次数达到一第二既定值为止。当电压设定程序被重复执行的次数达到一第二既定值时,控制器160更用以将第一页面标记为一损坏页面。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对电压设定程序被重复执行的次数进行一重复读取计数。每当控制器160执行一次电压设定程序时,重复读取计数则加一。
在本发明的另一实施例中,当电压设定程序被重复执行的次数达到一第二既定值时,控制器160执行校正电压分布程序。在校正电压分布程序中,控制器160用以对快闪存储器180中相应于一第二字符线的一第二页面进行一校正读取动作,其中校正读取动作是对第二页面进行读取一既定校正次数,其它校正电压分布程序的细节请参考上述说明,在此不再赘述。接着,控制器160更用以在校正电压分布程序执行完毕后,再对第一页面进行一第二次读取动作。当控制器160在第二次读取动作中成功读取第一页面时,控制器160将成功读取的第一页面的数据传送至主机120。
在本发明的一实施例中,控制器160更可在校正电压分布程序后所执行的第二次读取动作依然无法成功读取第一页面后,重复执行电压设定程序及/或校正电压分布程序,直到第一页面的数据可成功被读取,或者直到校正电压分布程序被重复执行的次数达到一第一既定值为止。当校正电压分布程序被重复执行的次数达到一第一既定值时,控制器160更用以将第一页面标记为一损坏页面。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对校正电压分布程序被重复执行的次数进行一校正计数。每当控制器160执行一次校正电压分布程序时,重校正计数则加一
图2是本发明的一种实施例的错误校正方法的流程图。错误校正方法适用于图1所示的数据储存装置140。流程开始于步骤S200。
在步骤S200中,控制器160用以根据主机120的一读取命令对快闪存储器180中相应于一第一字符线的一第一页面进行一第一次读取动作。换言之,控制器160用以根据主机120的一读取命令对快闪存储器180中连接至第一字符线的第一页面进行一读取动作。
接着,在步骤S202中,控制器160判断读取第一页面时,是否发生无法借由编解码进行修复的错误。当没有发生无法借由编解码进行修复的错误时,流程进行至步骤S204。否则,流程进行至步骤S206。
在步骤S204中,控制器160将成功读取的第一页面的数据,传送至主机120。
在步骤S206中,控制器160判断相应于校正读取动作已执行的次数的一校正计数是否超过一第一既定值。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对校正电压分布程序被重复执行的次数进行一校正计数。当校正计数超过一第一既定值时,流程进行至步骤S208。否则,流程进行至步骤S212。
在步骤S208中,控制器160用以将第一页面标记为一损坏页面。
在步骤S210中,控制器160执行校正电压分布程序。在校正电压分布程序中,控制器160用以对快闪存储器180中相应于一第二字符线的一第二页面进行一校正读取动作,其中第一字符线与第二字符线不相同,并且第一页面与第二页面不相同。换言之,控制器160用以根据主机120的一读取命令对快闪存储器180中连接至第二字符线的第二页面进行校正读取动作。值得注意的是,校正读取动作是对第二页面进行读取一既定校正次数,以借由读取干扰效应校正第一页面的临界电压的分布。既定校正次数可为1次、5次、10次、20次、30次、50次、100次等经由发明人根据校正程序成功率的实验数据所设计的数值,本发明不限于此。
接着,在步骤S212中,控制器160将校正计数加一。举例而言,控制器160是将用以进行校正计数的存储器区块或者一寄存器中的数值加一。接着,流程回到步骤S200。
图3A-3B是本发明的一种实施例的错误校正方法的流程图。错误校正方法适用于图1所示的数据储存装置140。流程开始于步骤S300。
在步骤S300中,控制器160用以根据主机120的一读取命令对快闪存储器180中相应于一第一字符线的一第一页面进行一第一次读取动作。详细步骤请参考图2的步骤S200,在此不再赘述。
接着,在步骤S302中,控制器160判断读取第一页面时,是否发生无法借由编解码进行修复的错误。当没有发生无法借由编解码进行修复的错误时,流程进行至步骤S304。否则,流程进行至步骤S306。
在步骤S304中,控制器160将成功读取的第一页面的数据,传送至主机120。
在步骤S306中,控制器160判断相应于校正读取动作已执行的次数的一校正计数是否超过一第一既定值。详细步骤请参考图2的步骤S206,在此不再赘述。当校正计数超过一第一既定值时,流程进行至步骤S308。否则,流程进行至步骤S312。
在步骤S308中,控制器160执行校正电压分布程序。在校正电压分布程序中,控制器160用以对快闪存储器180中相应于一第二字符线的一第二页面进行一校正读取动作,其中第一字符线与第二字符线不相同,并且第一页面与第二页面不相同。详细步骤请参考图2的步骤S210,在此不再赘述。
接着,在步骤S310中,控制器160将校正计数加一。详细步骤请参考图2的步骤S212,在此不再赘述。接着,流程回到步骤S300。
在步骤S312中,控制器160判断相应于电压设定动作的次数的一重复读取计数是否超过一第二既定值。举例而言,控制器160可利用实施于快闪存储器180或者其它存储器中的一存储器区块或者一寄存器,用以对电压设定程序被重复执行的次数进行一重复读取计数。当重复读取计数超过第二既定值时,流程进行至步骤S314。否则,流程进行至步骤S316。
在步骤S314中,控制器160用以将第一页面标记为一损坏页面。
在步骤S316中,控制器160执行电压设定程序。电压设定程序中,控制器160用以根据重复读取表,对快闪存储器180中的一寄存器(未图示)进行一电压设定动作,以将寄存器中的数值,作为快闪存储器180的读取电压。举例而言,重复读取表可储存于永久存储器164中。
接着,在步骤S318中,控制器160将重复读取计数加一。举例而言,控制器160是将用以进行重复读取计数的存储器区块或者一寄存器中的数值加一。
接着,在步骤S320中,控制器160将校正计数归零。举例而言,控制器160是将用以进行校正计数的存储器区块或者一寄存器中的数值归零。流程回到步骤S300,以借由所设定的快闪存储器180的读取电压对第一页面再次进行读取。值得注意的是,在本实施例中,电压设定程序在校正电压分布程序之后进行。另外,在本实施例中控制器160将校正计数归零后,才回到步骤S300。因此,当借由所设定的快闪存储器180的读取电压仍然无法成功读取第一页面时,控制器160会接着进行校正电压分布程序相应于第一既定值的次数后,再进行第二次的电压设定程序,但本发明不限于此。
在本发明的另一实施例中,图3A-3B所示的错误校正方法亦可不包括步骤S320。换言之,在本实施例中控制器160不将校正计数归零,直接回到步骤S300。因此,当借由所设定的快闪存储器180的读取电压仍然无法成功读取第一页面时,控制器160不会再进行校正电压分布程序,而直接进行第二次的电压设定程序。
图4A-4B是本发明的一种实施例的错误校正方法的流程图。错误校正方法适用于图1所示的数据储存装置140。流程开始于步骤S400。
在步骤S400中,控制器160用以根据主机120的一读取命令对快闪存储器180中相应于一第一字符线的一第一页面进行一第一次读取动作。详细步骤请参考图2的步骤S200,在此不再赘述。
接着,在步骤S402中,控制器160判断读取第一页面时,是否发生无法借由编解码进行修复的错误。当没有发生无法借由编解码进行修复的错误时,流程进行至步骤S404。否则,流程进行至步骤S406。
在步骤S406中,控制器160判断相应于电压设定动作的次数的一重复读取计数是否超过一第二既定值。详细步骤请参考图3A-3B的步骤S312,在此不再赘述。当重复读取计数未超过第二既定值时,流程进行至步骤S408。否则,流程进行至步骤S412。
在步骤S408中,控制器160执行电压设定程序。电压设定程序中,控制器160用以根据重复读取表,对快闪存储器180中的一寄存器(未图示)进行一电压设定动作,以将寄存器中的数值,作为快闪存储器180的读取电压。详细步骤请参考图3A-3B的步骤S316,在此不再赘述。
接着,在步骤S410中,控制器160将重复读取计数加一。详细步骤请参考图3A-3B的步骤S318,在此不再赘述。接着,流程回到步骤S400,以借由所设定的快闪存储器180的读取电压对第一页面再次进行读取。
在步骤S412中,控制器160判断相应于校正读取动作已执行的次数的一校正计数是否超过一第一既定值。详细步骤请参考图2的步骤S206,在此不再赘述。当校正计数超过一第一既定值时,流程进行至步骤S414。否则,流程进行至步骤S416。
在步骤S414中,控制器160用以将第一页面标记为一损坏页面。
在步骤S416中,控制器160执行校正电压分布程序。在校正电压分布程序中,控制器160用以对快闪存储器180中相应于一第二字符线的一第二页面进行一校正读取动作,其中第一字符线与第二字符线不相同,并且第一页面与第二页面不相同。详细步骤请参考图2的步骤S210,在此不再赘述。
接着,在步骤S418中,控制器160将校正计数加一。详细步骤请参考图2的步骤S212,在此不再赘述。
接着,在步骤S420中,控制器160将重复读取计数归零。举例而言,控制器160是将用以进行重复读取计数的存储器区块或者一寄存器中的数值归零。流程回到步骤S400。值得注意的是,在本实施例中,电压设定程序在校正电压分布程序之前进行。另外,在本实施例中控制器160将重复读取计数归零后,才回到步骤S400。因此,当经由校正电压分布程序执行完毕仍然无法成功读取第一页面时,控制器160会接着电压设定程序相应于第二既定值的次数后,再进行第二次的校正电压分布程序,但本发明不限于此。
在本发明的另一实施例中,图4所示的错误校正方法亦可不包括步骤S420。换言之,在本实施例中控制器160不将重复读取计数归零,直接回到步骤S400。因此,当经由校正电压分布程序执行完毕仍然无法成功读取第一页面时,控制器160不会再进行电压设定程序,而直接进行第二次的校正电压分布程序。
图5A是本发明的经由电压设定程序后对目标页面进行读取的模拟图。在本模拟图中,控制器160使用电压设定程序后,对目标页面进行重复读取500次。由图5A可知,借由重复读取的动作对目标页面进行读取500次,虽然降低了错误比特的数量,但仍然无法将目标页面的错误比特降低至标准线502下方。
图5B是本发明的经由校正电压分布程序后对目标页面进行读取的模拟图。在本模拟图中,控制器160使用校正电压分布程序500次后,对目标页面进行读取的结果。由图5B可知,目标页面在控制器160使用校正电压分布程序对其他页面读取一次后,已将目标页面的错误比特降低至标准线504下方。
由上述可知,本发明所提供的数据储存装置140以及错误校正方法可借由校正电压分布程序对目标页面外的其它页面进行读取,以产生读取干扰效应(ReadDisturbance),并借由读取干扰效应校正在读取过程中发生错误的目标页面的临界电压分布。另外,电压设定程序可对目标页面进行重复读取(Read Retry),以根据不同的读取电压读取目标页面的数据。
本发明的方法,或特定型态或其部分,可以以程序码的型态存在。程序码可储存于实体媒体,如软碟、光碟片、硬盘、或是任何其他机器可读取(如电脑可读取)储存媒体,亦或不限于外在形式的电脑程序产品,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。程序码也可通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理单元实作时,程序码结合处理单元提供一操作类似于应用特定逻辑电路的独特装置。
惟以上所述者,仅为本发明的较佳实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明权利要求书及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。另外本发明的任一实施例或权利要求不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。

Claims (24)

1.一种数据储存装置,包括:
一快闪存储器;以及
一控制器,用以根据一主机的一读取命令对上述快闪存储器中相应于一第一字符线的一第一页面进行一第一次读取动作,并且当上述第一次读取动作读取上述第一页面发生无法借由编解码进行修复的错误时,用以执行一校正电压分布程序,其中在上述校正电压分布程序中,上述控制器用以对上述快闪存储器中相应于一第二字符线的一第二页面进行一校正读取动作,其中当上述校正电压分布程序被重复执行的次数达到一第一既定值时,上述控制器更用以进行一电压设定程序,其中在上述电压设定程序中,上述控制器用以根据一重复读取表,对上述快闪存储器中的一寄存器进行一电压设定动作,以将上述寄存器中的数值,作为上述快闪存储器的读取电压。
2.根据权利要求1所述的数据储存装置,其特征在于,上述校正读取动作是对上述第二页面进行读取一既定校正次数,以借由读取干扰效应校正上述第一页面的临界电压的分布。
3.根据权利要求2所述的数据储存装置,其特征在于,上述控制器更用以在上述校正电压分布程序执行完毕后,再对上述第一页面进行一第二次读取动作。
4.根据权利要求1所述的数据储存装置,其特征在于,上述控制器更用以判断相应于上述校正读取动作已执行的次数的一校正计数是否超过一第一既定值,并当上述校正计数超过上述第一既定值时,将上述第一页面标记为一损坏页面。
5.根据权利要求1所述的数据储存装置,其特征在于,上述控制器更用以在上述电压设定程序执行完毕后,借由所设定的上述快闪存储器的读取电压对上述第一页面进行一第二次读取动作。
6.根据权利要求1所述的数据储存装置,其特征在于,上述电压设定程序在上述校正电压分布程序之前执行。
7.根据权利要求6所述的数据储存装置,其特征在于,在上述电压设定程序中,上述控制器更用以判断相应于上述电压设定动作已执行的次数的一重复读取计数是否超过一第二既定值,并当上述重复读取计数超过上述第二既定值时,进行上述校正电压程序。
8.根据权利要求1所述的数据储存装置,其特征在于,上述电压设定程序在上述校正电压分布程序之后执行。
9.根据权利要求8所述的数据储存装置,其特征在于,在上述校正电压分布程序中,上述控制器更用以判断相应于上述校正读取动作已执行的次数的一校正计数是否超过一第一既定值,并当上述校正计数超过上述第一既定值时,进行上述电压设定程序。
10.根据权利要求8所述的数据储存装置,其特征在于,在上述电压设定程序中,上述控制器更用以判断相应于上述电压设定动作已执行的次数的一重复读取计数是否超过一第二既定值,并当上述重复读取计数超过上述第二既定值时,将上述第一页面标记为一损坏页面。
11.一种错误校正方法,适用于一数据储存装置,包括:
根据一主机的一读取命令对上述数据储存装置中的快闪存储器中相应于一第一字符线的一第一页面进行一第一次读取动作;
判断上述第一次读取动作读取上述第一页面时,是否发生无法借由编解码进行修复的错误;以及当上述第一次读取动作读取上述第一页面发生无法借由编解码进行修复的错误时,执行一校正电压分布程序,其中上述校正电压分布程序包括对上述快闪存储器中相应于一第二字符线的一第二页面进行一校正读取动作;
当上述校正电压分布程序被重复执行的次数达到一第一既定值时,进行一电压设定程序;以及
在上述电压设定程序中根据一重复读取表,对上述快闪存储器中的一寄存器进行一电压设定动作,以将上述寄存器中的数值,作为上述快闪存储器的读取电压。
12.根据权利要求11所述的错误校正方法,其特征在于,更包括在上述校正电压分布程序执行完毕后,对上述第一页面进行一第二次读取动作。
13.根据权利要求11所述的错误校正方法,其特征在于,上述校正读取动作是对上述第二页面进行读取一既定校正次数,以借由读取干扰效应校正上述第一页面的临界电压的分布。
14.根据权利要求11所述的错误校正方法,其特征在于,上述校正电压分布程序更包括:
判断相应于上述校正读取动作已执行的次数的一校正计数是否超过一第一既定值;以及
当上述校正计数超过上述第一既定值时,将上述第一页面标记为一损坏页面。
15.根据权利要求11所述的错误校正方法,其特征在于,更包括在上述电压设定程序执行完毕后,借由所设定的上述快闪存储器的读取电压对上述第一页面进行一第二次读取动作。
16.根据权利要求11所述的错误校正方法,其特征在于,上述电压设定程序在上述校正电压分布程序之前执行。
17.根据权利要求16所述的错误校正方法,其特征在于,上述电压设定程序更包括:
判断相应于上述校正读取动作已执行的次数的一校正计数是否超过一第一既定值,其中进行上述校正读取动作的步骤更包括当上述重复读取计数未超过上述第二既定值时,才进行上述校正读取动作;以及
在上述校正读取动作执行完毕后,将上述校正计数加一。
18.根据权利要求16所述的错误校正方法,其特征在于,上述电压设定程序更包括:
判断相应于上述电压设定动作的次数的一重复读取计数是否超过一第二既定值,其中设定进行上述电压设定动作的步骤更包括当上述重复读取计数未超过上述第二既定值时,才进行上述电压设定动作;以及
在上述电压设定动作执行完毕后,将上述重复读取计数加一。
19.根据权利要求18所述的错误校正方法,其特征在于,当上述重复读取计数超过上述第二既定值时,进行上述校正电压程序。
20.根据权利要求11所述的错误校正方法,其特征在于,上述电压设定程序在上述校正电压分布程序之后执行。
21.根据权利要求20所述的错误校正方法,其特征在于,上述校正电压分布程序更包括:
判断相应于上述校正读取动作已执行的次数的一校正计数是否超过一第一既定值,其中进行上述校正读取动作的步骤更包括当上述校正计数未超过上述第一既定值时,才执行上述校正读取动作;以及
当上述校正读取动作执行完毕时,将上述校正计数加一。
22.根据权利要求21所述的错误校正方法,其特征在于,当上述校正计数超过上述第一既定值时,执行上述电压设定程序。
23.根据权利要求20所述的错误校正方法,其特征在于,上述电压设定程序更包括:
判断相应于上述电压设定动作已执行的次数的一重复读取计数是否超过一第二既定值,其中进行上述电压设定动作的步骤更包括当上述重复读取计数未超过上述第二既定值时,才进行上述电压设定动作;以及
在上述电压设定动作执行完毕后,将一重复读取计数加一。
24.根据权利要求23所述的错误校正方法,其特征在于,当上述重复读取计数超过上述第二既定值时,将上述第一页面标记为一损坏页面。
CN201410073801.0A 2013-05-31 2014-02-28 数据储存装置及其错误校正方法 Active CN104217761B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201361829482P 2013-05-31 2013-05-31
US61/829,482 2013-05-31
TW102138403 2013-10-24
TW102138403A TWI515729B (zh) 2013-05-31 2013-10-24 資料儲存裝置及其錯誤校正方法

Publications (2)

Publication Number Publication Date
CN104217761A CN104217761A (zh) 2014-12-17
CN104217761B true CN104217761B (zh) 2018-12-14

Family

ID=51986568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410073801.0A Active CN104217761B (zh) 2013-05-31 2014-02-28 数据储存装置及其错误校正方法

Country Status (3)

Country Link
US (2) US9361999B2 (zh)
KR (1) KR101677531B1 (zh)
CN (1) CN104217761B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250050B (zh) * 2015-06-10 2021-02-05 恩智浦美国有限公司 用于数据传输中的实时空白页检测的方法和装置
CN106653087A (zh) * 2015-10-28 2017-05-10 光宝电子(广州)有限公司 固态存储装置及其相关读取控制方法
CN106057243B (zh) * 2016-05-27 2019-10-18 华为技术有限公司 应用读参考电压确定方法及装置
CN107705814A (zh) * 2017-09-20 2018-02-16 深圳市致存微电子企业(有限合伙) 闪存读阈值预测电平确定方法、设备及可读存储介质
CN108108265A (zh) * 2018-01-12 2018-06-01 江苏华存电子科技有限公司 一种降低快闪存储器比特错误率的方法
WO2019140074A1 (en) * 2018-01-12 2019-07-18 Micron Technology, Inc Read retry scratch space
CN111104044B (zh) * 2018-10-25 2024-04-30 上海宝存信息科技有限公司 数据储存装置及其适应性数据读取方法
US11204828B2 (en) * 2018-12-10 2021-12-21 Micron Technology, Inc. Management of corruptive read in memory systems
CN109671466B (zh) * 2018-12-24 2021-01-01 湖南国科微电子股份有限公司 一种阈值电压调试方法、装置及电子设备
CN112214172A (zh) * 2020-10-12 2021-01-12 北京泽石科技有限公司 Qlc nand的编码方法与编码装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103280239B (zh) * 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2008139441A2 (en) * 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
KR101606168B1 (ko) * 2008-04-29 2016-03-24 샌디스크 아이엘 엘티디 프로그램, 검증 및, 읽기를 위한 참조 전압 레벨들의 적응적인 세팅을 갖는 비휘발성 멀티레벨 메모리
US8174857B1 (en) * 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8661184B2 (en) * 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
JP5740296B2 (ja) * 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529522A (zh) * 2005-10-25 2009-09-09 晟碟以色列有限公司 从闪速存储器中的错误恢复的方法
US8259506B1 (en) * 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds

Also Published As

Publication number Publication date
KR101677531B1 (ko) 2016-11-18
US10157682B2 (en) 2018-12-18
CN104217761A (zh) 2014-12-17
US20160117220A1 (en) 2016-04-28
US20140359345A1 (en) 2014-12-04
KR20140141530A (ko) 2014-12-10
US9361999B2 (en) 2016-06-07

Similar Documents

Publication Publication Date Title
CN104217761B (zh) 数据储存装置及其错误校正方法
CN104217762B (zh) 数据储存装置及其错误校正方法以及数据读取方法
CN106569735B (zh) 数据储存装置及数据维护方法
US9043678B2 (en) Detecting effect of corrupting event on preloaded data in non-volatile memory
KR20160013843A (ko) 판독 전압들의 업데이트
CN104750570B (zh) 数据储存装置及其错误校正方法
US20110317488A1 (en) Data reading method and control circuit and memory controller using the same
US9063879B2 (en) Inspection of non-volatile memory for disturb effects
CN102314949B (zh) 数据读取方法、控制电路与存储器控制器
DE102008003113A1 (de) ECC-Steuereinheit, Speichersystem und Verfahren zur Korrektur eines Fehlers
CN103544073A (zh) 读取闪存中区块的数据的方法及相关的记忆装置
CN102682841A (zh) 具有存储设备的温度传感器的使用
CN108415853A (zh) 一种垃圾回收的方法、装置及存储设备
CN103530198B (zh) 数据储存装置与闪存操作方法
CN106158020A (zh) 数据储存装置及其编码方法
CN107918524A (zh) 数据储存装置及数据维护方法
CN105023613A (zh) 解码方法、存储器存储装置及存储器控制电路单元
CN111638994A (zh) 一种闪存存储器及其错误比特计数检测方法和系统
CN110570892A (zh) 控制存储器刷新的方法、装置以及控制器
CN106033395B (zh) 数据储存装置及其数据更新方法
US20220284977A1 (en) Performing memory testing using error correction code values
CN104978147B (zh) 固态储存装置及其错误更正控制方法
TWI527050B (zh) 資料儲存裝置及其錯誤校正方法以及資料讀取方法
TWI544490B (zh) 資料儲存裝置及其資料維護方法
TWI515729B (zh) 資料儲存裝置及其錯誤校正方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant