CN110502185B - 重读页面数据方法 - Google Patents

重读页面数据方法 Download PDF

Info

Publication number
CN110502185B
CN110502185B CN201810614006.6A CN201810614006A CN110502185B CN 110502185 B CN110502185 B CN 110502185B CN 201810614006 A CN201810614006 A CN 201810614006A CN 110502185 B CN110502185 B CN 110502185B
Authority
CN
China
Prior art keywords
retry
controller
data
read
page
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
CN201810614006.6A
Other languages
English (en)
Other versions
CN110502185A (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
Application filed by Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN110502185A publication Critical patent/CN110502185A/zh
Application granted granted Critical
Publication of CN110502185B publication Critical patent/CN110502185B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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

Landscapes

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

Abstract

一种重读页面数据方法。所述重读页面数据方法可以根据有关读取目标页面的环境参数,来选择用以从适合的重试类型的多个重试表中以重新读取所述目标页面,因此降低了重复读取所述目标页面的次数,并且防止因频繁读取所造成的读取干扰。

Description

重读页面数据方法
技术领域
本发明涉及一种重读页面数据方法,尤其涉及一种能够根据有关读取页面的环境参数,来选择用以从适合的重试类型的多个重试表(retry tables)中以重新读取页面的方法。
背景技术
非易失性存储器是一种数据存储介质,其具有不需额外电力维持信息、快速数据读取及抗震等能力,因此被广泛地应用于记忆卡、固态硬盘(SSD)及便携式多媒体装置中。一般而言,非易失性存储器,例如闪存(Flash Memory)的存储阵列包括多个区块(Blocks),且每一区块又包含多个页面(Pages),而页面即通常为编程(Program)的最小单元。也就是说,页面为写入或读取数据时的最小单元。当读取某一页面的数据时,数据存储装置会根据默认的读取参数来读取所述页面的数据,并且对于所读取页面的数据进行译码操作。
然而,即使上述译码操作能够进行错误更正(Error Correction),但其更正能力却仍有上限。因此,一旦发现无法通过译码操作来对所读取页面的数据进行有效错误更正时,即译码结果超过一定程度以上的错误,数据存储装置就会依序根据多个重试表的每一者,来使用其不同的读取参数以重新读取(Re-read)所述页面的数据,并且直到可读取所述页面的数据而未发生无法更正错误(Uncorrectable Error)为止。如此一来,这对于具有越多个的重试表而言,数据存储装置就可能需要花费越多的时间来找出合适的重试表,以致于所述页面的读取次数也就相对提升,进而容易造成读取干扰(Read Disturbance)的发生。
发明内容
有鉴于此,本发明的目的在于提出一种能够根据有关读取页面的环境参数,来选择用以从适合的重试类型的多个重试表中以重新读取页面的方法,从而提高重试表的重试命中率(Retry Hit Rate),并且同时防止因频繁读取所造成的读取干扰。
为达上述目的,本发明实施例提供一种重读页面数据方法,可执行于一数据存储装置中。此数据存储装置包括非易失性存储器与控制器,非易失性存储器包括多个区块,且每一区块包含多个页面,所述重读页面数据方法则包括如下步骤。首先,令控制器读取一目标区块的一目标页面所存储的数据。其中,此目标区块为这些区块的其中之一,且此目标页面则相对为此目标区块的这些页面的其中之一。其次,令控制器判断是否能取得此目标页面所存储的数据。若判断不能取得此目标页面所存储的数据时,令控制器根据至少一环境参数而选取多个重试类型的其中之一,再从选取的重试类型的多个重试表中而选择这些重试表之一。其中,每一重试表更包括一索引值,并且记录至少一读取参数。然后,令控制器使用所选择的重试表的读取参数以重新读取此目标页面所存储的数据,并且返回到令控制器判断是否能取得此目标页面所存储的数据的步骤中。
为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与附图仅仅是用来说明本发明,而不是对本发明的权利范围作任何的限制。
附图说明
图1是本发明实施例所提供的数据存储装置的功能方块示意图。
图2是图1的数据存储装置中的非易失性存储器的示意图。
图3A是图1的数据存储装置操作于单层记忆胞模式下的临界电压的分布示意图。
图3B是图1的数据存储装置操作于多层记忆胞模式下的临界电压的分布示意图。
图4是本发明实施例所提供的重读页面数据方法的流程示意图。
图5A是图4的重读页面数据方法中的重试表在一较佳实施例下的示意图。
图5B是图4的重读页面数据方法中的重试表在另一较佳实施例下的示意图。
图5C是图4的重读页面数据方法中的重试表在另一较佳实施例下的示意图。
图5D是图4的重读页面数据方法中的重试表在另一较佳实施例下的示意图。
具体实施方式
在下文中,将通过附图说明本发明的各种实施例来详细描述本发明。然而,本发明概念可能以许多不同形式来体现,且不应解释为限于本文中所阐述的例示性实施例。此外,在附图中相同参考数字可用以表示类似的组件。
首先,请参阅图1,图1是本发明实施例所提供的数据存储装置的功能方块示意图。数据存储装置1包括非易失性存储器110与控制器120。其中,控制器120是电性耦接于非易失性存储器110,并用以控制非易失性存储器110的数据存取。在本实施例中,非易失性存储器110即可例如是以闪存来实现,但本发明并不以此为限制。另外,应当理解的是,数据存储装置1通常是会与主机2一起使用,并且根据主机2所下达的写入/读取命令,来将数据写入到非易失性存储器110中,或者从非易失性存储器110中读取数据。因此,在本实施例中,控制器120即可例如为内存控制器,且其主要包括界面逻辑122、微处理器124及控制逻辑126,但本发明也不以此为限制。微处理器124是电性耦接于界面逻辑122与控制逻辑126,并用以通过界面逻辑122来接收自主机2所下达的写入/读取命令,以及通过控制逻辑126来存取非易失性存储器110中的数据。
接着,请一并参阅图2,图2是图1的数据存储装置中的非易失性存储器的示意图。非易失性存储器110主要包括多个区块,例如区块B0到区块BZ,且每一区块又包含多个页面,例如页面P0到页面PN。在本实施例中,区块为数据抺写的最小单元,而页面为数据写入或读取的最小单元,但本发明并不以此为限。需要说明的是,上述Z及N即可例如为任意正整数,但本发明也不限制其数值的具体实现方式,本技术领域中具有通常知识者应可依据实际需求或应用来进行相关设计。
另外,任一区块,例如区块B0可为单层记忆胞(Single-Level Cell,SLC)、多层记忆胞(Multi-Level Cell,MLC)、三层记忆胞(Triple-Level Cell,TLC)或四层记忆胞(Quad-level cell,QLC)区块,且上述每一记忆胞可分别存储1、2、3或4个比特的数据。又或者是,区块B0也可按照不同的操作方式分为单层记忆胞模式或默认模式,其中,在默认模式下,区块B0即可提供最大的数据存储能力,而在单层记忆胞模式下,区块B0则可提供最佳的数据存取能力。
假设区块B0为单层记忆胞区块或操作在单层记忆胞模式下,在其临界电压的分布示意图中,信息状态301和302即分别相应于比特“1”和比特“0”,如图3A所示。因此,当要从区块B0的任一页面,例如页面P0中读取数据时,控制器120或区块B0的内部电路就需要提供读取电压Vth0来读取记忆胞所存储的比特值。倘若提供读取电压Vth0并使记忆胞导通,则判定为信息状态301,也就表示所述记忆胞所存储的是比特“1”;相反地,倘若提供读取电压Vth0但未使记忆胞导通,则判定为信息状态302,也就表示所述记忆胞所存储的是比特“0”。
类似地,假设区块B0为多层记忆胞区块,在其临界电压的分布示意图中,信息状态401、402、403和404即分别相应于比特“11”、比特“10”、比特“01”和比特“00”,如图3B所示。因此,当要从区块B0的任一页面,例如页面P0中读取数据时,控制器120或区块B0的内部电路就需要提供读取电压Vth1~Vth3来识别记忆胞所存储的比特值为“11”、“10”、“01”或“00”。需要说明的是,在其它实施例中,区块B0也可为三层记忆胞或四层记忆胞区块,且此时控制器120或区块B0的内部电路则需要提供更多种读取电压以识别记忆胞所存储的比特值。总而言之,图3A及图3B的示意图在此仅只是举例,其并非用以限制本发明。另外,由于提供读取电压而识别记忆胞所存储的比特值的运作原理已为本技术领域中具有通常知识者所习知,因此有关提供读取电压的细部内容在此就不再多加赘述。
然而,因为某些因素,例如数据久置、记忆胞耗损及高低温干扰等会导致临界电压的分布偏移,即信息状态301~302及信息状态401~404分别偏移为信息状态301’~302’及信息状态401’~404’。偏移产生后使用读取电压Vth0或读取电压Vth1~Vth3都将可能无法正确识别出记忆胞所存储的比特值。如同前面内容所述,此时控制器120会进行译码操作来尝试更正所读取页面的数据错误。一旦发现到无法对所读取页面的数据错误进行有效更正时,控制器120就会启动重新读取程序,即依序根据多个重试表的每一者,来使用不同的读取参数以重新读取所述页面的数据,直到所读取页面的数据错误可被更正为止。因此,在本实施例中,不同的读取参数即可例如是不同的读取电压,但本发明却不以此为限制。因为在其它实施例中,不同的读取参数也可例如是指不同的错误更正码(Error CorrectionCode,ECC)或不同的错误更正方式,所以本技术领域中具有通常知识者应可依据实际需求或应用来进行相关设计。
假设在本实施例的数据存储装置1内建含有50个重试表的情况下,例如重试表T(0)到重试表T(49),也就表示每一重试表T(0)~T(49)包含不同的读取电压Vth0~Vth3。而传统作法上,控制器120是会先使用重试表T(0)的读取电压Vth0(0)或读取电压Vth1(0)~Vth3(0)以重新读取所述页面的数据。如果使用重试表T(0)的读取电压Vth0(0)或读取电压Vth1(0)~Vth3(0)而仍无法有效更正所读取所述页面的数据错误时,控制器120就会继续使用重试表T(1)的读取电压Vth0(1)或读取电压Vth1(1)~Vth3(1)以重新读取所述页面的数据,以此类推,直到用了重试表T(i)的读取电压Vth0(i)或读取电压Vth1(i)~Vth3(i)可读取所述页面的数据而未发生无法更正错误为止。也就是说,因为传统作法只能按照重试表T(0)~T(49)的既定顺序而来进行重复读取,所以在这种情况下,如果重试表的数目越多,控制器120也就可能需要花费越久的时间才能正确读取(更正)所述页面的数据,即找出合适的重试表T(i)。应当理解的是,在本实施例中,i则为0到49的任整数,但本发明并不以此为限制。
为了解决上述问题,本发明将每一重试表T(0)~T(49)分类到多个重试类型的其中之一,并在启动重新读取程序时,控制器120会先依据环境参数而对重试类型进行选取,再从选取的重试类型中选择一个重试表,并且依据此重试表的读取参数重新读取所述页面的数据,从而提高重试表T(0)~T(49)的重试命中率。举例来说,假设环境参数为温度值,重试表T(0)~T(09)和重试表T(10)~T(19)则分别记录低温(例如,低于15度)和高温(例如,高于45度)环境下进行读取页面所使用的读取参数,其中,温度值可由数据存储装置1的温度传感器(未绘示)或由主机端所提供,但本发明皆不以此为限制。另外,假设环境参数为编程时间,重试表T(20)~T(29)则记录读取页面的旧数据(例如,页面数据被编程的时间或区块B0的关闭(Closed)时间已超过24小时)所使用的读取参数。再者,假设环境参数为写入/抹除次数(Program/Erase Count),重试表T(30)~T(39)则记录读取为高写入/抹除次数(例如,写入/抹除次数大于1,000)页面所使用的读取参数。最后,假设环境参数为读取次数,重试表T(40)~T(49)则记录读取为高频繁读取(例如,读取次数大于10,000)页面所使用的读取参数。
一般来说,当编程页面的数据时,控制器120可将表示编程时间的时戳(Timestamp)及目前温度等参数写到页面的闲置区(Spare Area)中,最后再将最早的时戳、最高低温度值、表示目前时间的时戳(Timestamp)记录到区块B0的关闭信息(End of BlockInformation,EOB Info)中,通常关闭信息记录在区块B0的最后一个页面。因此,从上述内容可知,本实施例将可定义出五个重试类型,并且利用控制器120来将上述重试表T(0)~T(09)、重试表T(10)~T(19)、重试表T(20)~T(29)、重试表T(30)~T(39)和重试表T(40)~T(49)分别分类到此五个重试类型中的第一、第二、第三、第四和第五重试类型,如图5A所示。
需要说明的是,上述所分类每一重试表T(0)~T(49)到多个重试类型之一的具体实现方式在此皆仅只是举例,其并非用以限制本发明。另外,在本实施例中,每一重试表T(0)~T(49)更可包括一索引值,即优先权值,且越小的索引值也就表示具有越高的优先权序,但本发明也不以此为限制。总而言之,本发明并不限制这些索引值的具体实现方式,本技术领域中具有通常知识者应可依据实际需求或应用来进行相关设计。接着,请同时参阅图4,图4则是本发明实施例所提供的重读页面数据方法的流程示意图。其中,应当理解的是,图4的重读页面数据方法是可以执行于图1的数据存储装置1中,但本发明也不限制图4的重读页面数据方法仅能够执行于图1的数据存储装置1中。
如图4所示,首先,在步骤S410中,令控制器120读取目标区块的目标页面所存储的数据。其中,目标区块即为区块B0到区块BZ的其中之一,且目标页面则相对为目标区块的页面P0到页面PN的其中之一,并且应当理解的是,目标区块或目标页面便是由数据读取指令所指定,或者依据数据读取指令及逻辑至物理地址映像表(Logical Address to PhysicalAddress Mapping Table)所决定,而数据读取指令是由主机2所传送至数据存储装置1中,且逻辑至物理地址映像表是存储于数据存储装置1中,并暂存于数据存储装置1或主机2的易失性存储器(图未示)中。
其次,在步骤S420中,令控制器120判断是否能取得目标页面所存储的数据,如果是,则执行步骤S460,即结束本实施例的重读页面数据方法;如果否,则执行步骤S430。必须了解的是,在读取(或重新读取)目标页面所存储的数据后,控制器120会自动更正所读取目标页面的数据错误,例如:控制器120利用错误更正码而更正所读取目标页面的数据错误。如果数据错误的比特数超过错误更正码所能更正的上限值,例如:120比特/1024字节,则控制器120无法利用错误更正码而更正所读取目标页面的数据错误,也就表示控制器120无法取得目标页面所存储的数据。
接着,在步骤S430中,令控制器120根据至少一环境参数而选取多个重试类型的其中之一,再从选取的重试类型的多个重试表中而选择这些重试表之一。其中,每一重试表记录至少一读取参数,且控制器120较佳依据索引值而选择其中之一重试表。另外,索引值的起始值可依重试类型而不同,例如第一重试类型的起始值为0,第二重试类型的起始值为10,以此类推,但本发明皆不以此为限制。假设环境参数分别为目前温度值为65度,编程时间距目前时间为5小时,写入/抹除次数为100,且读取次数为2000,因此,控制器120可依据温度值而选取第二重试类型,即包括重试表T(10)~T(19),并从第二重试类型的重试表T(10)~T(19)中而依序或随机地选择其中之一重试表,例如重试表T(10);或者,控制器120则依据特定索引值,例如12,而选择第二重试类型的重试表T(12)。
然后,在步骤S440中,令控制器120使用所选择的重试表的读取参数以重新读取目标页面所存储的数据。假设所选择的重试表为重试表T(12),则令控制器120使用重试表T(12)所记录的读取参数以重新读取目标页面所存储的数据,并且返回到步骤S420,令控制器120判断是否能取得目标页面所存储的数据。
在另一实施例中,步骤S430更包括:记录所选择的重试表的索引值。例如,假设控制器120从第二重试类型的重试表T(10)~T(19)中选择重试表T(13),则将重试表T(13)的索引值记录下来。如此一来,在控制器120使用重试表T(13)的读取参数而能取得此时目标页面所存储的数据后,当换成读取其他目标页面(或其他目标区块的其他目标页面)而又执行到步骤S430时,控制器120将能依据所记录的此特定索引值来进行重试表T(13)的选取,或者依序或随机地选取另一重试表,再执行步骤S440。
此外,在本实施例中,重读页面数据方法更可包括步骤S450。在步骤S450中,当控制器120是使用所选择的重试表的读取参数而能取得目标页面所存储的数据时,即有经过步骤S430~S440而返回的步骤S420的判断结果为是时,则令控制器120重新排序选取的重试类型中的这些重试表的这些索引值。例如,假设控制器120从第二重试类型的重试表T(10)~T(19)中选择重试表T(13),且当控制器120使用重试表T(13)的读取参数而能取得目标页面所存储的数据时,则将重试表T(13)的索引值设定为目前第二重试类型中的索引值的最高优先顺位,即起始值10,并将重试表T(13)之前的重试表T(10)~T(12)的索引值重新排序,例如:依序将重试表T(10)~T(12)的索引值变更为11~13。如此一来,当换成读取其他目标页面(或其他目标区块的其他目标页面)而又执行到步骤S430时,重试表T(13)将能被第一优先选取。
也就是说,在本实施例中,控制器120较佳按照重试表T(10)~T(19)的索引值(或重新排序后的索引值)而依序使用每一重试表T(10)~T(19)所记录的读取参数以重新读取目标页面所存储的数据。以图5A为例,如果使用重试表T(10)的读取参数而仍无法取得目标页面所存储的数据(或无法更正所读取目标页面的数据错误)时,控制器120就会继续使用其索引值为目前第二重试类型中次小的重试表,即重试表T(11),的读取参数以重新读取目标页面所存储的数据,以此类推,直到第二重试类型的每一重试表的读取参数皆使用过为止。假如控制器120使用重试表T(15)的读取参数而成功取得目标页面所存储的数据时,控制器120则将重试表T(15)的索引值调整为这些重试表T(10)~T(19)的索引值的最高优先顺位,即起始值10,并且对应地调整了其他重试表T(10)~T(19)的索引值,如图5B所示。
根据以上内容可知,假设控制器120需使用重试表T(15)的读取参数才能成功取得目标页面所存储的数据,相较于传统作法只能从重试表T(0)来逐一试到重试表T(15),需对目标页面进行16次的读取动作,但本实施例却只需要从重试表T(10)来逐一试到重试表T(15),即仅需对目标页面进行6次的读取动作,因此,本发明大大减少了取得目标页面所存储的数据所需的时间,也降低了读取动作的重复次数,并进而降低因频繁读取所造成的读取干扰。除此之外,因为在相同工作环境下,任一区块的所有页面的临界电压分布偏移则很可能相同或相似,所以本实施例将此时最适合的重试表T(15)的索引值调整为这些重试表T(10)~T(19)的索引值的最高优先顺位,以借此有效提高重试表T(10)~T(19)的重试命中率。
举例来说,当控制器120读取其他目标页面(或其他目标区块的其他目标页面)而又发生无法取得其所存储的数据时,假设此时环境参数分别为目前温度值为66度,编程时间距目前时间为5小时,写入/抹除次数为100,读取次数为2500,因此,控制器120可再次依据温度值而选择第二重试类型的其中之一重试表,接着,控制器120便使用前次最适合且其索引值为目前第二重试类型中最小的重试表T(15)的读取参数以重新读取此时目标页面所存储的数据。然而,如果使用重试表T(15)的读取参数仍无法取得此时目标页面所存储的数据时,控制器120就会继续使用其索引值为目前第二重试类型中次小的重试表,即重试表T(10),的读取参数以重新读取此时目标页面所存储的数据,以此类推。假如控制器120使用重试表T(16)的读取参数而成功取得此时目标页面所存储的数据时,控制器120则将重试表T(16)的索引值调整为这些重试表T(10)~T(19)的索引值的最高优先顺位,即起始值10,并且对应地调整了这些重试表T(10)~T(19)的其它索引值,如图5C所示。
另外,假如环境参数分别为目前温度值为40度,编程时间距目前时间为12小时,写入/抹除次数为1200,读取次数为5000,当发生无法取得此时目标页面所存储的数据时,在步骤S430中,控制器120则可依据写入/抹除次数而选择第四重试类型的这些重试表T(30)~T(39)之一,例如重试表(30)。在步骤S440中,控制器120便使用重试表(30)的读取参数以重新读取目标页面所存储的数据。假设使用重试表(30)的读取参数仍无法成功取得目标页面所存储的数据,步骤S420~步骤S440便会被重复地执行,直到使用重试表T(32)的读取参数后可成功取得目标页面所存储的数据时,控制器120则将重试表T(32)的索引值调整为这些重试表T(30)~T(39)的索引值的最高优先顺位,即起始值30,并且对应地调整了其他重试表T(30)~T(39)的其它索引值,如图5D所示。
类似地,假如环境参数分别为目前温度值为45度,编程时间距目前时间为36小时,写入/抹除次数为600,读取次数为25000,当发生无法取得目标页面所存储的数据时,在步骤S430中,控制器120则可依据编程时间而选择第三重试类型的这些重试表T(20)~T(29)之一,例如重试表(20);或者依据读取次数而选择第五重试类型的这些重试表T(40)~T(49)之一,例如重试表T(40),并依据重试表T(20)或T(40)的读取参数以重新读取目标页面所存储的数据。由于详尽细节也如同前述实施例所述,所以在此就不再多加冗述。总而言之,因为本实施例可根据环境参数来使用不同重试表的读取参数,并依据读取结果来重新排序重试表的顺序,所以本发明能够提升重试命中率,以及降低重读目标页面数据所需的时间。
总而言之,假如一开始控制器120除了可以根据环境参数而选择其中之一重试类型的其中之一重试表外,控制器120也可选择其中之一重试类型的另一重试表;或者,当控制器120无法根据环境参数而选择其中之一重试类型的其中之一重试表,例如,温度值降到45度,此时,控制器120也可根据索引值而选择其中之一重试表。接着,再执行步骤S440。
综上所述,本发明实施例所提供的重读页面数据方法,可以是只需要根据有关读取目标页面的环境参数来选择用以从适合的重试类型的多个重试表中以重新读取所述目标页面,因此,进而降低了重复读取所述目标页面的次数,并且防止因频繁读取所造成的读取干扰。此外,由于所述重读页面数据方法还可将最适合的重试表排到最优先顺位,因此本发明也就能够达到相对提升重试命中率。
以上所述仅为本发明的实施例,其并非用以局限本发明的专利范围。

Claims (8)

1.一种重读页面数据方法,执行于一数据存储装置中,其特征在于,所述数据存储装置包括一非易失性存储器与一控制器,所述非易失性存储器包括多个区块(Blocks),且每一所述区块包含多个页面(Pages),所述重读页面数据方法包括:
令所述控制器读取一目标区块的一目标页面所存储的数据,其中所述目标区块为所述区块的其中之一,且所述目标页面则相对为所述目标区块的所述页面的其中之一;
令所述控制器判断是否能取得所述目标页面所存储的数据;
若判断不能取得所述目标页面所存储的数据时,令所述控制器根据至少一环境参数而选取多个重试类型的其中之一,再从选取的所述重试类型的多个重试表中而选择所述重试表之一,其中每一所述重试表更包括一索引值,并且记录至少一读取参数;以及
令所述控制器使用所选择的所述重试表的所述读取参数以重新读取所述目标页面所存储的数据,并且返回到令所述控制器判断是否能取得所述目标页面所存储的数据的步骤中;
其中,所述数据存储装置是利用所述控制器,分别将每一所述重试表,分类至所述重试类型的其中之一,且所述至少一环境参数则是指一温度值、一编程时间、一写入/抹除次数与/或一读取次数。
2.如权利要求1所述的重读页面数据方法,其特征在于,更包括:
若判断能取得所述目标页面所存储的数据时,令所述控制器结束所述重读页面数据方法。
3.如权利要求2所述的重读页面数据方法,其特征在于,更包括:
当所述控制器是使用所选择的所述重试表的所述读取参数而能取得所述目标页面所存储的数据时,则令所述控制器重新排序选取的所述重试类型中的所述重试表的所述索引值。
4.如权利要求2所述的重读页面数据方法,其特征在于,在从选取的所述重试类型的所述重试表中而选择所述重试表之一的步骤中,更包括记录所选择的所述重试表的所述索引值。
5.如权利要求1所述的重读页面数据方法,其特征在于,在从选取的所述重试类型的所述重试表中而选择所述重试表之一的步骤中,所述控制器是依据所述重试表的所述索引值而依序选择所述重试表之一,或者所述控制器是随机地选择所述重试表之一。
6.如权利要求4所述的重读页面数据方法,其特征在于,在从选取的所述重试类型的所述重试表中而选择所述重试表之一的步骤中,所述控制器是依据所记录的所述索引值而选择所述重试表之一。
7.如权利要求1所述的重读页面数据方法,其特征在于,所述目标区块或所述目标页面是由一数据读取指令所指定,或依据所述数据读取指令及一逻辑至物理地址映像表所决定,其中所述数据读取指令是由一主机所传送至所述数据存储装置中,且所述逻辑至物理地址映像表是存储于所述数据存储装置中,并暂存于所述数据存储装置或所述主机的一易失性存储器中。
8.如权利要求1所述的重读页面数据方法,其特征在于,在令所述控制器读取所述目标页面所存储的数据的步骤中,所述控制器是利用一错误更正码而更正所读取的所述目标页面的数据错误,并且在判断不能取得所述目标页面所存储的数据时,则表示所述数据错误的比特数超过所述错误更正码所能更正的上限值。
CN201810614006.6A 2018-05-17 2018-06-14 重读页面数据方法 Active CN110502185B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW107116796 2018-05-17
TW107116796A TWI663512B (zh) 2018-05-17 2018-05-17 重讀頁面資料方法

Publications (2)

Publication Number Publication Date
CN110502185A CN110502185A (zh) 2019-11-26
CN110502185B true CN110502185B (zh) 2022-11-25

Family

ID=67764625

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810614006.6A Active CN110502185B (zh) 2018-05-17 2018-06-14 重读页面数据方法

Country Status (3)

Country Link
US (1) US10656875B2 (zh)
CN (1) CN110502185B (zh)
TW (1) TWI663512B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI696074B (zh) 2019-01-24 2020-06-11 慧榮科技股份有限公司 管理快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111400099B (zh) * 2020-03-16 2024-04-02 深圳佰维存储科技股份有限公司 闪存的数据重读方法、装置、设备及计算机可读存储介质
TWI720852B (zh) * 2020-03-20 2021-03-01 慧榮科技股份有限公司 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置
CN111581010B (zh) * 2020-04-30 2022-10-14 江苏芯盛智能科技有限公司 一种读操作处理方法、装置、设备及可读存储介质
CN111625194B (zh) * 2020-05-26 2023-03-24 合肥康芯威存储技术有限公司 一种存储介质的数据读取方法、存储系统及存储设备
CN111863097B (zh) * 2020-06-29 2022-06-17 联芸科技(杭州)有限公司 快闪存储器的读取控制方法及装置
US11573720B2 (en) * 2020-08-19 2023-02-07 Micron Technology, Inc. Open block family duration limited by time and temperature
KR20220067282A (ko) 2020-11-17 2022-05-24 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 서버 장치 및 스토리지 장치의 구동 방법
CN112631515B (zh) * 2020-12-17 2023-11-14 珠海妙存科技有限公司 自适应的闪存数据重读方法、装置及介质
CN113707211B (zh) * 2021-07-21 2024-05-10 深圳市宏旺微电子有限公司 一种闪存Read Retry纠错的方法及装置
CN114708898A (zh) 2022-04-07 2022-07-05 合肥兆芯电子有限公司 表格管理方法、存储器存储装置及存储器控制电路单元
CN115295048A (zh) * 2022-07-28 2022-11-04 山东华芯半导体有限公司 一种nand flash的最优固定电压轴的筛选方法
US20240061606A1 (en) * 2022-08-16 2024-02-22 Yangtze Memory Technologies Co., Ltd. Read retry method for enhancing read performance and stability of 3d nand memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978147A (zh) * 2014-04-03 2015-10-14 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
CN106251903A (zh) * 2015-06-05 2016-12-21 爱思开海力士有限公司 存储系统及其操作方法
US9905289B1 (en) * 2017-04-28 2018-02-27 EMC IP Holding Company LLC Method and system for systematic read retry flow in solid state memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9001587B2 (en) * 2011-09-16 2015-04-07 Samsung Electronics Co., Ltd. Flash memory and reading method of flash memory
KR20130034522A (ko) * 2011-09-28 2013-04-05 삼성전자주식회사 비휘발성 메모리 장치의 데이터 리드 방법, 및 이를 수행하는 장치
US20130185612A1 (en) * 2012-01-18 2013-07-18 Samsung Electronics Co., Ltd. Flash memory system and read method of flash memory system
TWI541819B (zh) * 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
KR20160102740A (ko) * 2015-02-23 2016-08-31 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
CN106158038B (zh) * 2015-04-14 2021-03-09 恩智浦美国有限公司 从非易失性存储器读取数据的方法
TWI686697B (zh) * 2018-07-26 2020-03-01 大陸商深圳大心電子科技有限公司 記憶體管理方法以及儲存控制器

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104978147A (zh) * 2014-04-03 2015-10-14 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
CN106251903A (zh) * 2015-06-05 2016-12-21 爱思开海力士有限公司 存储系统及其操作方法
US9905289B1 (en) * 2017-04-28 2018-02-27 EMC IP Holding Company LLC Method and system for systematic read retry flow in solid state memory

Also Published As

Publication number Publication date
CN110502185A (zh) 2019-11-26
US10656875B2 (en) 2020-05-19
TW201947404A (zh) 2019-12-16
US20190354314A1 (en) 2019-11-21
TWI663512B (zh) 2019-06-21

Similar Documents

Publication Publication Date Title
CN110502185B (zh) 重读页面数据方法
KR101891378B1 (ko) 메모리 블록에 대한 프로그래밍 단계 사이즈를 조정하는 시스템 및 방법
US8984373B2 (en) Method for accessing flash memory and associated flash memory controller
US9627085B2 (en) Refresh method for flash memory and related memory controller thereof
US9665481B2 (en) Wear leveling method based on timestamps and erase counts, memory storage device and memory control circuit unit
US11288019B2 (en) Memory management method and storage controller
US10115468B2 (en) Solid state storage device and read control method thereof
CN108595345B (zh) 管理闪存中所储存的数据的方法及相关记忆装置与控制器
US7979737B2 (en) Method for accessing a Flash memory, and associated memory device and controller thereof
CN110795270B (zh) 固态储存装置及其读取重试方法
US9530509B2 (en) Data programming method, memory storage device and memory control circuit unit
US9141530B2 (en) Data writing method, memory controller and memory storage device
US20120278535A1 (en) Data writing method, memory controller, and memory storage apparatus
US9361024B1 (en) Memory cell programming method, memory control circuit unit and memory storage apparatus
US10503433B2 (en) Memory management method, memory control circuit unit and memory storage device
US20190391914A1 (en) Memory management method and storage controller
US10832784B2 (en) Pre-program read to counter wordline failures
US8301981B2 (en) Data access method for flash memory and storage system and controller thereof
US9430325B2 (en) Method for programming data, memory storage device and memory control circuit unit
CN110389716B (zh) 数据存储装置及应用其的预防数据错误方法
CN105761754B (zh) 存储单元编程方法、存储器控制电路单元与存储装置
JP6267497B2 (ja) 半導体メモリの制御装置及び不安定メモリ領域の検出方法
CN114327265B (zh) 读取干扰检查方法、存储器存储装置及控制电路单元
CN110795025B (zh) 存储器管理方法以及存储控制器
CN106326131B (zh) 存储器管理方法、存储器控制电路单元及存储器存储装置

Legal Events

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