CN104217761B - 数据储存装置及其错误校正方法 - Google Patents
数据储存装置及其错误校正方法 Download PDFInfo
- 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
Links
- 238000012937 correction Methods 0.000 title claims abstract description 115
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013500 data storage Methods 0.000 title abstract description 4
- 230000015654 memory Effects 0.000 claims abstract description 96
- 230000009471 action Effects 0.000 claims description 95
- 230000000694 effects Effects 0.000 claims description 11
- 230000005611 electricity Effects 0.000 claims description 8
- 239000004744 fabric Substances 0.000 claims description 3
- 230000008569 process Effects 0.000 description 27
- 238000003860 storage Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004088 simulation Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1405—Saving, restoring, recovering or retrying at machine instruction level
- G06F11/141—Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0727—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0411—Online error correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/14—Dummy 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所述的错误校正方法,其特征在于,当上述重复读取计数超过上述第二既定值时,将上述第一页面标记为一损坏页面。
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)
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)
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)
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 | 株式会社東芝 | 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム |
-
2014
- 2014-02-28 CN CN201410073801.0A patent/CN104217761B/zh active Active
- 2014-05-07 US US14/271,897 patent/US9361999B2/en active Active
- 2014-05-30 KR KR1020140066543A patent/KR101677531B1/ko active IP Right Grant
-
2016
- 2016-01-06 US US14/989,080 patent/US10157682B2/en active Active
Patent Citations (2)
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 |