CN104750571B - 用以进行错误纠正的方法、存储装置与存储装置的控制器 - Google Patents

用以进行错误纠正的方法、存储装置与存储装置的控制器 Download PDF

Info

Publication number
CN104750571B
CN104750571B CN201410530858.9A CN201410530858A CN104750571B CN 104750571 B CN104750571 B CN 104750571B CN 201410530858 A CN201410530858 A CN 201410530858A CN 104750571 B CN104750571 B CN 104750571B
Authority
CN
China
Prior art keywords
parameter
data
controller
physical address
read
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
CN201410530858.9A
Other languages
English (en)
Other versions
CN104750571A (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 CN104750571A publication Critical patent/CN104750571A/zh
Application granted granted Critical
Publication of CN104750571B publication Critical patent/CN104750571B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • 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/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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • 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

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)

Abstract

本发明公开了一种用以进行错误纠正的方法、存储装置与控制器。所述方法包含有:在闪速存储器的特定物理地址进行读取操作;在侦测到所述读取操作的无法纠正错误之后,通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,并且将所述第一数据暂时地保存在易失性存储器,再对所述第一数据进行第一硬解码操作;以及在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器中读取的所述第一数据,进行软解码操作以进行对应所述特定物理地址的错误纠正。

Description

用以进行错误纠正的方法、存储装置与存储装置的控制器
技术领域
本发明涉及一种闪速存储器(Flash Memory)的数据读取,特别有关一种用以进行错误纠正的方法以及相关的存储装置与控制器。
背景技术
近年来由于闪速存储器的技术不断地发展,各种便携式存储装置(例如:符合SD/MMC、CF、MS、XD标准的闪存卡)或具备闪速存储器的便携式多媒体播放器(例如:MP3播放器或便携式影音播放器)被广泛地实施于诸多应用中。因此,这些便携式装置中的闪速存储器的存取控制便成为相当热门的研究方向。
以常用的NAND型闪速存储器而言,其主要可区分为单层单元(Single LevelCell,SLC)与多层单元(Multiple Level Cell,MLC)两大类的闪速存储器。单层单元的闪速存储器中的每个记忆单元内的晶体管只有两种电荷值,分别用来表示逻辑值0与逻辑值1。另外,多层单元的闪速存储器中的每个记忆单元内的晶体管的储存能力则被充分利用,被较高的电压驱动,从而通过不同级别的电压在一个晶体管中记录多个位的资讯(例如:00、01、11、10);理论上,多层单元的闪速存储器的记录密度可以达到单层单元的闪速存储器的记录密度的两倍以上,这对于在发展过程中遇到瓶颈的NAND型闪速存储器的相关产业而言,是非常好的消息。
相较于单层单元的闪速存储器,由于多层单元的闪速存储器的价格较便宜,并且在有限的空间里可提供较大的容量,所以多层单元的闪速存储器很快地成为市面上便携式记忆装置采用的主流。然而,多层单元的闪速存储器的不稳定性所导致的问题也一一浮现。针对这些问题,虽然现有技术中提供了一些解决方式,却总是无法兼顾操作效能与系统资源使用控管。于是,不论采取哪个解决方式,往往会有对应的副作用。因此,需要一种新颖的方法来加强控管闪速存储器的数据存取,以兼顾操作效能与系统资源使用控管。
发明内容
本发明提供一种用来进行错误纠正的方法以及相关的存储装置与控制器,以解决上述问题。
本发明的一个实施例公开一种用来进行错误纠正的方法,所述方法应用在一存储装置中的控制器,所述存储装置包含闪速存储器(Flash Memory)。所述方法包含有下列步骤:在所述闪速存储器的特定物理地址进行读取操作;在侦测到所述读取操作的无法纠正错误之后,通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,且将所述第一数据暂时地保存在易失性存储器(Volatile Memory),并且对所述第一数据进行第一硬解码操作;以及在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据进行软解码(Soft Decoding)操作,以进行对应所述特定物理地址的错误纠正。
本发明的一个实施例公开一种存储装置,包含有:闪速存储器,所述闪速存储器包含多个区块;以及控制器,所述控制器用以存取所述闪速存储器。尤其是,所述控制器在所述闪速存储器的特定物理地址进行读取操作。另外,在侦测到所述读取操作的无法纠正错误之后,所述控制器通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,并且将所述第一数据暂时地保存在易失性存储器,并且对所述第一数据进行第一硬解码操作。此外,在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据进行软解码操作,以进行对应所述特定物理地址的错误纠正。
本发明的一个实施例公开一种存储装置的控制器,所述控制器用以存取闪速存储器,所述闪速存储器包含多个区块,所述控制器包含有:微处理器,用以运行程序代码以控制所述闪速存储器的存取,其中所述程序代码读取自所述控制器的外部或内部;以及错误纠正码引擎(Error Correction Code Engine,ECC Engine),用以进行错误纠正。尤其是,所述控制器在所述闪速存储器的特定物理地址进行读取操作。另外,在侦测到所述读取操作的无法纠正错误之后,所述控制器通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,且将所述第一数据暂时地保存在易失性存储器,并且利用所述错误纠正码引擎对所述第一数据进行第一硬解码操作。此外,在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据,所述控制器利用所述错误纠正码引擎进行软解码操作,以进行对应所述特定物理地址的错误纠正。
本发明的好处之一是,本发明方法与相关的存储装置与控制器可大幅地提升错误纠正效能。特别是本发明所公开的方法与相关的存储装置与控制器可将硬解码过程中所使用到的数据中的至少一部分(例如一部分或全部)保留下来,以供软解码使用。于是,本发明方法与相关的存储装置与控制器可快速地依据从所述易失性存储器读取的数据来进行软解码,而非浪费时间在等待所述闪速存储器的读取结果,其中本发明的方法与相关的存储装置与控制器不需要在软解码过程中设定重试参数给所述闪速存储器,从而可进一步节省时间,并且提升整体效能。另外,本发明方法与相关的存储装置与控制器可动态地切换在硬解码与软解码之间,使得错误纠正效能得以优化。
附图说明
图1是本发明存储装置的实施例的示意图。
图2是本发明用来进行错误纠正的方法的实施例的流程图。
图3展示图2所示的方法在一个实施例中所涉及的静态随机存取存储器与相应的数据流。
图4展示图2所示的方法在另一个实施例中所涉及的动态随机存取存储器与相应的数据流。
图5是图2所示的方法在一个实施例中所涉及的工作流程。
图6是图5所示的读取重试及硬解码流程在一个实施例中的实行细节。
图7是图5所示的软资讯读取及软解码流程在图6所示的实施例中的实行细节。
图8展示图7中依据软模式从易失性存储器载入数据的操作的实行细节。
其中,附图标记说明如下:
100 存储装置
110 存储器控制器
112 微处理器
112C 程序代码
112M 只读存储器
114 控制逻辑
116 缓冲器
118 接口逻辑
120 闪速存储器
200 进行错误纠正的方法
210,220,230 步骤
310 错误纠正码引擎
320 静态随机存取存储器
420 动态随机存取存储器
500 工作流程
510,520 步骤
530 读取重试及硬解码流程
540 软资讯读取及软解码流程
610,620,625,630,640,650,660 步骤
710,710-1,710-2,710-3
715,720,730,740,750,760 步骤
具体实施方式
请参考图1,图1是本发明存储装置的实施例的示意图。存储装置100包含一个电子装置的至少一部分,其中这个电子装置可能是便携式电子装置,像是MP3播放器或者便携式影音播放器。然而,这并非本发明的限制。依据本发明其他实施例,存储装置100可被用户连接至所述电子装置,其中存储装置100可能是闪存卡,而所述电子装置可能是配置有读卡器的各种装置,例如:个人电脑(PC)、掌上电脑(PDA)、智能电话、平板电脑。在本实施例中,存储装置100可设置在电子装置中,其中存储装置100可能是固态硬盘(Solid State Drive,SSD),而电子装置可能是个人电脑,如:笔记本电脑或桌上型电脑。
如图1所示,存储装置100包含:闪速存储器(Flash Memory)120,用来保存数据,例如各种文件(例如多媒体文件);以及控制器,用以访问(access)闪速存储器120,其中所述控制器可能是存储器控制器110。依据本实施例,存储器控制器110包含微处理器112、只读存储器(Read Only Memory,ROM)112M、控制逻辑114、至少一个缓冲器116、与接口逻辑118。另外,只读存储器112M用以保存程序代码112C,而微处理器112则用来运行程序代码112C,控制存储装置100的操作。例如:运行程序代码112C的微处理器112,可控制存储装置100的操作,例如读取或修改闪速存储器120中的文件以及播放多媒体文件。然而,这只是说明,并非本发明的限制。请注意,程序代码112C也可保存在缓冲器116或任何形式的存储器内。
在典型状况下,闪速存储器120包含多个区块(Block),而存储器控制器110(例如:通过微处理器112运行程序代码112C的存储器控制器110)对闪速存储器120进行抹除数据的操作,是以区块为单位来进行。另外,一个区块中可记录特定数量的分页(Page),其中存储器控制器110可对闪速存储器120进行写入操作,例如写入一个分页或多个分页的数据。
通过微处理器112运行程序代码112C的存储器控制器110可利用本身内部的元件来进行多种控制,例如:利用控制逻辑114来控制闪速存储器120的访问操作(尤其是对至少一个区块或至少一个分页的访问操作)、利用缓冲器116进行所需的缓冲处理、以及利用接口逻辑118来与一个主机装置(HostDevice)沟通。
依据本实施例,存储器控制器110包含错误纠正码引擎(Error Correction CodeEngine,ECC Engine;未显示在图1),用以进行错误纠正。例如:所述错误纠正码引擎可设置在接口逻辑118中。请注意,这并非本发明的限制。在本实施例中,运行程序代码112C的存储器控制器110可妥善利用存储装置100或者上述的电子装置的硬件资源来提升所述错误纠正码引擎的错误纠正效能。相关细节请参考图2的说明。
图2是本发明进行错误纠正的方法200的实施例的流程图。所述方法可应用在图1所示的存储装置100,尤其是上述的控制器(例如:通过微处理器112运行程序代码112C的存储器控制器110)。所述方法说明如下:
在步骤210中,所述控制器在闪速存储器的特定物理地址进行读取操作。尤其是,依据主机指令(Host Command),所述控制器在所述特定物理地址进行所述读取操作,其中主机指令包含有对应所述特定物理地址的逻辑地址。
在步骤220中,在侦测到所述读取操作的无法纠正(Uncorrectable)错误之后,所述控制器通过设定第一重试参数(Retry Parameter)给闪速存储器120,在所述特定物理地址进行第一重新读取(Re-read)操作,取得对应所述第一重试参数的第一数据,且将所述第一数据暂时地保存在易失性存储器(Volatile Memory),例如随机存取存储器(RandomAccess Memory,RAM)之中,并且对所述第一数据进行第一硬解码(Hard Decoding)操作。例如:所述无法纠正错误指出所述读取操作的读取结果的错误量大于所述错误纠正码引擎在所述读取结果中所能纠正的最大错误量。
在步骤230中,在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据,所述控制器利用所述错误纠正码引擎进行软解码(SoftDecoding)操作,以进行对应所述特定物理地址的错误纠正。例如:在进行对应所述特定物理地址的错误纠正期间,所述控制器避免为了取得对应所述第一重试参数的所述第一数据,而在所述特定物理地址进行另一个重新读取操作,尤其是避免为了取得对应所述第一重试参数的所述第一数据,而重新设定所述第一重试参数给闪速存储器120。
为了简单起见,在流程图中,把步骤230放在步骤220之后,但这只是为了说明,而非对本发明限制。所述控制器可在步骤220与230之间进行其它操作。另外,所述控制器可进行低密度奇偶校验码(Low Density Parity Check Code,LDPC Code)编码/解码,尤其是可进行硬解码与软解码,相关解码方法为本领域技术人士所熟知,在此不进行解释。
依据本实施例,在侦测到所述第一硬解码操作的解码失败之后,所述控制器可依据分别对应一组重试参数的一组数据进行所述软解码操作,以进行对应所述特定物理地址的错误纠正,其中该组重试参数包含所述第一重试参数,并且该组数据包含从所述易失性存储器读取的所述第一数据。尤其是,所述软解码操作是在侦测到多个硬解码操作的解码失败之后进行。所述多个硬解码操作包含所述第一硬解码操作。例如:该组重试参数可另包含第二重试参数;在侦测到所述无法纠正错误之后,所述控制器可通过设定所述第二重试参数给闪速存储器120,在所述特定物理地址进行第二重新读取操作,取得对应所述第二重试参数的第二数据,且将所述第二数据暂时地保存在所述易失性存储器,并且对所述第二数据进行第二硬解码操作,其中所述多个硬解码操作另包含所述第二硬解码操作。另外,该组重试参数可另包含第三重试参数;在侦测到所述无法纠正错误之后,所述控制器可通过设定所述第三重试参数给闪速存储器120,在所述特定物理地址进行第三重新读取操作,取得对应所述第三重试参数的第三数据,并且将所述第三数据暂时地保存在所述易失性存储器,再对所述第三数据进行第三硬解码操作,其中所述多个硬解码操作另包含所述第三硬解码操作。
实际上,所述读取操作是基于原始参数来进行。例如:该组重试参数中的任何一个都不同于该组重试参数中的任何其它重试参数。该组重试参数中的每一个也不同于所述原始参数。尤其是,该组重试参数中的任何一个与该组重试参数中的任何其它重试参数分别对应闪速存储器120的不同的电压位准门槛值,且该组重试参数中的任何一个与所述原始参数分别对应闪速存储器120的不同的电压位准门槛值,其中闪速存储器120内的控制电路可依据所述控制器所设定的电压位准门槛值来判定闪速存储器120的某(些)位是否为逻辑值0或逻辑值1,并将判定出的逻辑值回复给所述控制器。
基于图2所示的进行错误纠正的方法200,图1所示架构可大幅地提升错误纠正效能,其中硬解码过程中所使用到的数据中的至少一部分可保留下来供软解码使用,使得图1所示架构可快速地依据从所述易失性存储器读取的数据来进行软解码,而不用浪费时间在等待闪速存储器120的读取结果。由于在软解码过程中不需要设定重试参数给闪速存储器120,所以本发明可进一步节省时间且提升整体效能。
图3展示图2的方法在一个实施例中所涉及的静态随机存取存储器(Static RAM,SRAM)320与相应的数据流,其中静态随机存取存储器320可能是上述的随机存取存储器的范例,而错误纠正码引擎310可能是上述的错误纠正码引擎的范例。如图3所示,闪速存储器120包含多个闪速存储器芯片。在所述控制器的控制下,硬解码数据可被保存在静态随机存取存储器320中,并在进行软解码期间被读出,作为软解码数据。基于图2所示的进行错误纠正的方法200,错误纠正码引擎310产生纠正数据。本实施例与前述实施例相似之处不再重复说明。
图4展示图2的方法在另一个实施例中所涉及的动态随机存取存储器(DynamicRAM,DRAM)420与相应的数据流,其中动态随机存取存储器420可能是上述的随机存取存储器的范例。在所述控制器的控制下,硬解码数据可被保存在动态随机存取存储器420中,并在进行软解码期间被读出,作为软解码数据。基于图2所示的进行错误纠正的方法200,错误纠正码引擎310产生纠正数据。本实施例与前述实施例相似之处不再重复说明。
图5为图2所示的方法在一个实施例中所涉及的工作流程500。基于图2所示的进行错误纠正的方法200,图1的架构可动态地切换在硬解码与软解码之间,使得错误纠正效能得以优化。工作流程500中的操作是针对同一地址(如上述的特定物理地址)来进行。
在步骤510中,所述控制器在闪速存储器120进行所述读取操作。尤其是,错误纠正码引擎310尝试对读出数据进行错误纠正。
在步骤520中,所述控制器检查是否出现无法纠正错误。当侦测到无法纠正错误时,进入读取重试及硬解码流程530,并且可能进入软资讯读取及软解码流程540;否则,工作流程500结束,结果为读取完成。
在本实施例中,当有需要时,所述控制器可动态地切换在读取重试及硬解码流程530与软资讯读取及软解码流程540之间。例如:工作流程500可在执行读取重试及硬解码流程530中的某一个步骤之后结束,其结果为读取完成。又例如:工作流程500可在执行软资讯读取及软解码流程540中的某一个步骤之后结束,其结果为读取完成。又例如:工作流程500可在执行软资讯读取及软解码流程540中的另一个步骤之后结束,其结果为读取数据失败。本实施例与前述实施例相似之处不再重复说明。
图6为图5所示的读取重试及硬解码流程530在一个实施例中的实施细节。
在步骤610中,所述控制器设定一个重试参数,如特定重试参数给闪速存储器120。在本实施例中,所述控制器可在该组重试参数中选择针对上述同一地址在读取重试及硬解码流程530当中,尚未使用的任何一个重试参数,作为所述特定重试参数。例如:所述特定重试参数可能是所述第一重试参数、所述第二重试参数、或所述第三重试参数,或是该组重试参数中的第四重试参数、第五重试参数、或第六重试参数。
在步骤620中,所述控制器进行重新读取操作,其对应所述特定重试参数。例如:所述重新读取操作可能是所述第一重新读取操作、所述第二重新读取操作、或所述第三重新读取操作,或是对应所述第四重试参数、所述第五重试参数、与所述第六重试参数中的某一个的重新读取操作。
在本实施例中,所述控制器在上述同一地址进行所述重新读取操作,取得对应所述特定重试参数的特定数据,且将所述特定数据暂时地保存在所述易失性存储器。例如:特定数据可能是所述第一数据、所述第二数据、或所述第三数据,或是对应所述第四重试参数、所述第五重试参数、与所述第六重试参数中的某一个的数据。实际上,所述控制器在步骤620中可依据预定规则将对应所述特定重试参数的所述特定数据,暂时地保存在所述易失性存储器。例如:所述特定数据的地址可对应所述预定规则。
在步骤625中,所述控制器进行硬解码,其对应所述特定重试参数。例如:步骤625的硬解码可能是所述第一硬解码操作、所述第二硬解码操作、或所述第三硬解码操作,或是对应所述第四重试参数、所述第五重试参数、与所述第六重试参数中的某一个的硬解码操作。
在步骤630中,所述控制器检查是否出现无法纠正错误。当侦测到无法纠正错误时,进入步骤640;否则,进入步骤650,且工作流程500结束,其结果为读取完成。
在步骤640中,所述控制器检查是否满足软状况(即可进入软资讯读取及软解码流程540的状况)。例如:在多次运行步骤620之后,当所述易失性存储器中对应不同重试参数的数据已累积到足以进行软解码的时候,尤其是针对上述同一地址在软资讯读取及软解码流程540中尚未尝试过的软解码,则所述控制器判定满足软状况,并且可动态地切换至软资讯读取及软解码流程540。当侦测到满足软状况,进入步骤710;否则,进入步骤660。
在步骤660中,所述控制器设定新的重试表,以供重新进入步骤610之后判断是否在该组重试参数中选择某一个作为所述特定重试参数使用。例如:所述控制器可在最新的重试表记录针对上述同一地址已使用过的重试参数。又例如:所述控制器可在最新的重试表记录针对上述同一地址尚未使用过的重试参数。
图7为图5所示的软资讯读取及软解码流程540在图6所示实施例中的实行细节。
在步骤710中,所述控制器依据软模式,例如目前软模式,从所述易失性存储器中载入数据,其中所述控制器可利用软模式索引来代表所述软模式,而所述软模式索引的各个可能数值分别代表多个软模式。例如:所述目前软模式可对应特定数量的重试参数,且所述控制器可从所述易失性存储器中载入对应所述多个重试参数的数据。又例如:所述目前软模式可对应该组重试参数中的某些重试参数,且所述控制器可从所述易失性存储器中载入对应所述多个重试参数的数据。
在步骤715中,所述控制器进行软解码,尤其是至少依据步骤710中所载入的数据来进行软解码。步骤715中的软解码可能是步骤230中的所述软解码操作的范例。
在步骤720中,所述控制器检查是否出现无法纠正错误。当侦测到无法纠正错误时,进入步骤730;否则,进入步骤750,且工作流程500结束,其结果为读取完成。
在步骤730中,所述控制器检查是否已达到最末软模式。当侦测到已达到最末软模式(即针对上述同一地址,已使用过所述多个软模式的全部),进入步骤740,且工作流程500结束,其结果为读取数据失败;否则,进入步骤760。
在步骤760中,所述控制器改变软模式,尤其是改变所述软模式索引。接着,所述控制器可动态地切换至读取重试及硬解码流程530。
图8展示图7所示的步骤710的实行细节。依据本实施例,所述控制器可依据所述软模式索引所指出的目前软模式,来判断应该载入哪些数据。例如:在步骤710-1中,所述控制器从所述易失性存储器载入数据S(1);在步骤710-2中,所述控制器从所述易失性存储器载入数据S(2);在步骤710-3中,所述控制器从所述易失性存储器载入数据S(3)。然而,这并非是本发明的限制。随着软模式的改变(尤其是所述软模式索引的改变),所述控制器从所述易失性存储器载入的数据也会不同。例如:在步骤710-3之后,所述控制器可进一步从该易失性存储器载入其它数据。本实施例与前述实施例相似之处不再重复说明。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (20)

1.一种用以进行错误纠正的方法,所述方法应用在存储装置中的控制器,所述存储装置包含闪速存储器,所述方法包含有下列步骤:
在所述闪速存储器的特定物理地址进行读取操作;
在侦测到所述读取操作的无法纠正错误之后,通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作以取得对应所述第一重试参数的第一数据,且将所述第一数据暂时地保存在易失性存储器,并且对所述第一数据进行第一硬解码操作;以及
在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据,进行软解码操作,以进行对应所述特定物理地址的错误纠正。
2.如权利要求1所述的方法,其特征在于,所述无法纠正错误指出所述读取操作的读取结果中的错误量大于所述存储装置的错误纠正码引擎在所述读取结果中所能纠正的最大错误量。
3.如权利要求1所述的方法,其特征在于,所述方法中在所述特定物理地址进行所述读取操作的步骤另包含有:
依据一主机指令,在所述特定物理地址进行所述读取操作,所述主机指令包含有对应所述特定物理地址的逻辑地址。
4.如权利要求1所述的方法,其特征在于,所述读取操作基于原始参数来运行;以及所述第一重试参数与所述原始参数不同。
5.如权利要求4所述的方法,其特征在于,所述第一重试参数与所述原始参数分别对应所述闪速存储器的不同电压位准门槛值。
6.如权利要求1所述的方法,其特征在于,所述方法中至少依据从所述易失性存储器读取的所述第一数据,进行所述软解码操作以进行对应所述特定物理地址的错误纠正的步骤另包含:
在进行对应所述特定物理地址的错误纠正期间,避免为了取得对应所述第一重试参数的所述第一数据,而在所述特定物理地址进行另一个重新读取操作。
7.如权利要求6所述的方法,其特征在于,所述方法中至少依据从所述易失性存储器读取的所述第一数据,进行所述软解码操作以进行对应所述特定物理地址的错误纠正的步骤另包含:
在进行对应所述特定物理地址的错误纠正期间,避免为了取得对应于所述第一重试参数的所述第一数据,重新设定所述第一重试参数给所述闪速存储器。
8.如权利要求1所述的方法,其特征在于,所述方法中至少依据从所述易失性存储器读取的所述第一数据,进行所述软解码操作以进行对应所述特定物理地址的错误纠正的步骤另包含:
在侦测到所述第一硬解码操作的解码失败之后,依据分别对应一组重试参数的一组数据进行所述软解码操作,以进行对应所述特定物理地址的错误纠正,其中该组重试参数包含所述第一重试参数,且该组数据包含从所述易失性存储器读取的所述第一数据。
9.如权利要求8所述的方法,其特征在于,所述软解码操作在侦测到多个硬解码操作的解码失败之后进行,并且所述多个硬解码操作包含所述第一硬解码操作。
10.如权利要求9所述的方法,其特征在于,该组重试参数另包含第二重试参数,所述方法另包含:
在侦测到所述无法纠正错误之后,通过设定所述第二重试参数给所述闪速存储器,在所述特定物理地址进行第二重新读取操作,取得对应所述第二重试参数的第二数据,并且将所述第二数据暂时地储存在所述易失性存储器,并且对所述第二数据进行第二硬解码操作,其中所述多个硬解码操作另包含所述第二硬解码操作。
11.如权利要求10所述的方法,其特征在于,该组重试参数另包含第三重试参数,所述方法另包含:
在侦测到所述无法纠正错误之后,通过设定所述第三重试参数给所述闪速存储器,在所述特定物理地址进行第三重新读取操作,以取得对应所述第三重试参数的第三数据,并且将所述第三数据暂时地储存在所述易失性存储器,并且对所述第三数据进行第三硬解码操作,其中所述多个硬解码操作另包含所述第三硬解码操作。
12.如权利要求8所述的方法,其特征在于,所述读取操作基于原始参数来进行;以及该组重试参数中的任何一个不同于该组重试参数中的任何其它重试参数,并且该组重试参数中的每一个不同于所述原始参数。
13.一种存储装置,包含有:
一闪速存储器,包含多个区块;以及
一控制器,用以存取所述闪速存储器,其中所述控制器在所述闪速存储器的特定物理地址进行读取操作,以及在侦测到所述读取操作的无法纠正错误之后,所述控制器通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,并且将所述第一数据暂时地保存在易失性存储器,并且对所述第一数据进行第一硬解码操作;
其中在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据进行软解码操作,以进行对应所述特定物理地址的错误纠正。
14.如权利要求13所述的存储装置,其特征在于,所述无法纠正错误指出所述读取操作的读取结果中的错误量大于所述控制器的错误纠正码引擎在所述读取结果中所能纠正的最大错误量。
15.如权利要求13所述的存储装置,其特征在于,所述控制器根据一主机指令,在所述特定物理地址进行所述读取操作,其中所述主机指令包含有对应所述特定物理地址的逻辑位址。
16.如权利要求13所述的存储装置,其特征在于,所述读取操作基于原始参数来进行;以及所述第一重试参数与所述原始参数不同。
17.一种存储装置的控制器,所述控制器用以访问闪速存储器,所述闪速存储器包含多个区块,所述控制器包含有:
微处理器,用以运行程序代码,控制对所述闪速存储器的访问,其中所述程序代码是读取自所述控制器的外部或内部;以及
错误纠正码引擎,用以进行错误纠正;
其中所述控制器在所述闪速存储器的特定物理地址进行读取操作;
在侦测到所述读取操作的无法纠正错误之后,所述控制器通过设定第一重试参数给所述闪速存储器,在所述特定物理地址进行第一重新读取操作,取得对应所述第一重试参数的第一数据,并且将所述第一数据暂时地保存在易失性存储器,并且利用所述错误纠正码引擎对所述第一数据进行第一硬解码操作;以及
在侦测到所述第一硬解码操作的解码失败之后,至少依据从所述易失性存储器读取的所述第一数据,所述控制器利用所述错误纠正码引擎进行软解码操作,以进行对应所述特定物理地址的错误纠正。
18.如权利要求17所述的控制器,其特征在于,所述无法纠正错误指出所述读取操作的读取结果中的错误量大于所述错误纠正码引擎在所述读取结果中所能纠正的最大错误量。
19.如权利要求17所述的控制器,其特征在于,所述控制器依据一主机指令,在所述特定物理地址进行所述读取操作,其中所述主机指令包含有对应所述特定物理地址的逻辑位址。
20.如权利要求17所述的控制器,其特征在于,所述读取操作基于原始参数来进行;以及所述第一重试参数与所述原始参数不同。
CN201410530858.9A 2013-12-30 2014-10-10 用以进行错误纠正的方法、存储装置与存储装置的控制器 Active CN104750571B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW102149100 2013-12-30
TW102149100A TWI541819B (zh) 2013-12-30 2013-12-30 用來進行錯誤更正之方法、記憶裝置、與控制器

Publications (2)

Publication Number Publication Date
CN104750571A CN104750571A (zh) 2015-07-01
CN104750571B true CN104750571B (zh) 2017-10-31

Family

ID=53481873

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410530858.9A Active CN104750571B (zh) 2013-12-30 2014-10-10 用以进行错误纠正的方法、存储装置与存储装置的控制器

Country Status (3)

Country Link
US (1) US9405619B2 (zh)
CN (1) CN104750571B (zh)
TW (1) TWI541819B (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106816179B (zh) 2015-11-30 2020-12-25 华为技术有限公司 一种闪存纠错方法和装置
CN105898295A (zh) * 2015-12-01 2016-08-24 乐视致新电子科技(天津)有限公司 一种播放器解码方法和装置
KR20170068681A (ko) * 2015-12-09 2017-06-20 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
TWI588834B (zh) * 2016-02-23 2017-06-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9954558B1 (en) * 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
CN105893167A (zh) * 2016-03-28 2016-08-24 联想(北京)有限公司 一种信息处理方法及装置、电子设备
CN107391026B (zh) 2016-04-27 2020-06-02 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
US10289487B2 (en) 2016-04-27 2019-05-14 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US10110255B2 (en) * 2016-04-27 2018-10-23 Silicon Motion Inc. Method for accessing flash memory module and associated flash memory controller and memory device
US10133664B2 (en) 2016-04-27 2018-11-20 Silicon Motion Inc. Method, flash memory controller, memory device for accessing 3D flash memory having multiple memory chips
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
KR20180089104A (ko) * 2017-01-31 2018-08-08 에스케이하이닉스 주식회사 메모리 모듈, 이를 포함하는 메모리 시스템 및 이의 에러 정정 방법
KR20190092937A (ko) * 2018-01-31 2019-08-08 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
TWI663512B (zh) * 2018-05-17 2019-06-21 慧榮科技股份有限公司 重讀頁面資料方法
TWI664634B (zh) * 2018-08-17 2019-07-01 慧榮科技股份有限公司 快閃記憶體控制器、管理快閃記憶體模組的方法及相關的電子裝置
CN110046059A (zh) * 2019-04-15 2019-07-23 联芸科技(杭州)有限公司 用于存储器的读取控制装置、读取控制方法和控制器
US11531590B2 (en) 2019-09-17 2022-12-20 Western Digital Technologies, Inc. Method and system for host-assisted data recovery assurance for data center storage device architectures
CN111190764A (zh) * 2020-01-13 2020-05-22 山东华芯半导体有限公司 一种获得nand闪存ldpc码软信息的方法
CN111798902A (zh) * 2020-06-28 2020-10-20 山东华芯半导体有限公司 一种获得电荷俘获型3d nand闪存软信息的方法
CN114121127A (zh) * 2020-08-27 2022-03-01 成都忆芯科技有限公司 动态调整读重做序列以优化读命令处理
CN113612484A (zh) * 2021-07-27 2021-11-05 深圳市德明利技术股份有限公司 一种硬判决和软判决相结合的高效ldpc纠错算法的实现方法
CN113626091A (zh) * 2021-08-19 2021-11-09 深圳忆联信息系统有限公司 固态硬盘的启动优化方法、装置、计算机设备及存储介质
US11630590B1 (en) * 2022-01-11 2023-04-18 Silicon Motion, Inc. Method and apparatus for performing access control of memory device with aid of aggressor bit information

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101258471A (zh) * 2005-07-15 2008-09-03 Gsip有限责任公司 闪存纠错
TW200905692A (en) * 2007-03-31 2009-02-01 Sandisk Corp Non-volatile memory system with soft bit data transmission for error correction control and method of reading the same
CN102566937A (zh) * 2010-12-30 2012-07-11 慧荣科技股份有限公司 快闪存储装置及其运作方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7746602B2 (en) 2006-06-21 2010-06-29 Hitachi Global Storage Technologies Netherlands B.V. Magnetic read head with reduced shunting
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
KR100850509B1 (ko) 2007-01-10 2008-08-05 삼성전자주식회사 프로그램 에러를 감소시킬 수 있는 멀티 비트 플래시메모리 장치의 프로그램 방법
US8335977B2 (en) 2007-12-05 2012-12-18 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated BCH codes and/or designation of “first below” cells
US7746692B2 (en) 2008-01-31 2010-06-29 Agere Systems Inc. Multiple-level memory with analog read
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8504884B2 (en) * 2009-10-29 2013-08-06 Freescale Semiconductor, Inc. Threshold voltage techniques for detecting an imminent read failure in a memory array
TWI633557B (zh) 2010-04-19 2018-08-21 慧榮科技股份有限公司 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US8812939B2 (en) 2011-01-28 2014-08-19 Marvell World Trade Ltd. Soft decoding systems and methods for flash based memory systems
US8938658B2 (en) * 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8656257B1 (en) * 2012-01-11 2014-02-18 Pmc-Sierra Us, Inc. Nonvolatile memory controller with concatenated error correction codes
US9177664B2 (en) * 2012-02-22 2015-11-03 Silicon Motion, Inc. Method, memory controller and system for reading data stored in flash memory
US8943384B2 (en) 2012-04-12 2015-01-27 Seagate Technology Llc Using a soft decoder with hard data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101258471A (zh) * 2005-07-15 2008-09-03 Gsip有限责任公司 闪存纠错
TW200905692A (en) * 2007-03-31 2009-02-01 Sandisk Corp Non-volatile memory system with soft bit data transmission for error correction control and method of reading the same
CN102566937A (zh) * 2010-12-30 2012-07-11 慧荣科技股份有限公司 快闪存储装置及其运作方法

Also Published As

Publication number Publication date
TW201526010A (zh) 2015-07-01
US20150186210A1 (en) 2015-07-02
CN104750571A (zh) 2015-07-01
TWI541819B (zh) 2016-07-11
US9405619B2 (en) 2016-08-02

Similar Documents

Publication Publication Date Title
CN104750571B (zh) 用以进行错误纠正的方法、存储装置与存储装置的控制器
US8560926B2 (en) Data writing method, memory controller and memory storage apparatus
US10698809B2 (en) Method, associated flash controller and electronic device for accessing flash module with data validity verification
TWI455144B (zh) 使用於快閃記憶體的控制方法與控制器
CN110008136A (zh) 管理闪存模块的方法及相关的闪存控制器及电子装置
US9690490B2 (en) Method for writing data, memory storage device and memory control circuit unit
US9336081B2 (en) Data writing and reading method, and memory controller and memory storage apparatus using the same for improving reliability of data access
US9141530B2 (en) Data writing method, memory controller and memory storage device
US10013187B2 (en) Mapping table accessing method, memory control circuit unit and memory storage device
US10606744B2 (en) Method for accessing flash memory module and associated flash memory controller and electronic device
US8429339B2 (en) Storage device utilizing free pages in compressed blocks
TWI608350B (zh) 儲存裝置及其控制單元、可用於儲存裝置的資料搬移方 法
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US20190065361A1 (en) Method for writing data into flash memory module and associated flash memory controller and electronic device
CN104866429A (zh) 存储器管理方法、存储器控制电路单元与存储器存储装置
US9304907B2 (en) Data management method, memory control circuit unit and memory storage apparatus
US9430327B2 (en) Data access method, memory control circuit unit and memory storage apparatus
US11176033B2 (en) Data storage devices and data processing methods
US20200192810A1 (en) Data Storage Devices and Data Processing Methods
CN105868046B (zh) 存储装置中管理、写入及加载固件代码的方法
CN108664350B (zh) 数据保护方法、存储器存储装置及存储器控制电路单元
CN106406746A (zh) 映射表存取方法、存储器控制电路单元及存储器存储装置
CN102456400B (zh) 使用于闪存的控制方法与控制器
CN107924350A (zh) 电子设备及其数据压缩方法
US11055231B2 (en) Data storage devices and data processing methods of skipping editing of fields in H2F table when consecutive addresses are present in F2H table

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