重读页面数据方法

文档序号:1741659 发布日期:2019-11-26 浏览:15次 >En<

阅读说明:本技术 重读页面数据方法 (Read page data method again ) 是由 洪英峻 于 2018-06-14 设计创作,主要内容包括:一种重读页面数据方法。所述重读页面数据方法可以根据有关读取目标页面的环境参数,来选择用以从适合的重试类型的多个重试表中以重新读取所述目标页面,因此降低了重复读取所述目标页面的次数,并且防止因频繁读取所造成的读取干扰。(A kind of stressed page data method.The stressed page data method can be according to the environmental parameter in relation to reading target pages, to select to retry in table from suitable the multiple of type that retry to re-read the target pages, therefore reducing repetition reads the number of the target pages, and prevents because of the reading interference caused by frequently reading.)

重读页面数据方法

技术领域

本发明涉及一种重读页面数据方法,尤其涉及一种能够根据有关读取页面的环境参数,来选择用以从适合的重试类型的多个重试表(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。

综上所述,本发明实施例所提供的重读页面数据方法,可以是只需要根据有关读取目标页面的环境参数来选择用以从适合的重试类型的多个重试表中以重新读取所述目标页面,因此,进而降低了重复读取所述目标页面的次数,并且防止因频繁读取所造成的读取干扰。此外,由于所述重读页面数据方法还可将最适合的重试表排到最优先顺位,因此本发明也就能够达到相对提升重试命中率。

以上所述仅为本发明的实施例,其并非用以局限本发明的专利范围。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种局域网下的整机锁盘方法,系统及锁盘装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类