CN111429960B - 改善闪存的读取重试的方法、控制器以及相关存储装置 - Google Patents

改善闪存的读取重试的方法、控制器以及相关存储装置 Download PDF

Info

Publication number
CN111429960B
CN111429960B CN201910111370.5A CN201910111370A CN111429960B CN 111429960 B CN111429960 B CN 111429960B CN 201910111370 A CN201910111370 A CN 201910111370A CN 111429960 B CN111429960 B CN 111429960B
Authority
CN
China
Prior art keywords
data
storage unit
memory cell
written
usage history
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
CN201910111370.5A
Other languages
English (en)
Other versions
CN111429960A (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
Priority to CN202210491505.7A priority Critical patent/CN115016962A/zh
Publication of CN111429960A publication Critical patent/CN111429960A/zh
Application granted granted Critical
Publication of CN111429960B publication Critical patent/CN111429960B/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/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/073Error 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 memory management context, e.g. virtual memory or cache management
    • 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/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/0751Error or fault detection not based on redundancy
    • 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • 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/0793Remedial or corrective actions
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种管理闪存模块的多个存储单元的方法。所述方法包括:针对每一第一存储单元的数据写入时间建立对应于所述第一存储单元的编程时戳;根据所述第一存储单元的所述编程时戳,选择相对应的读取重试表来对所述第一存储单元进行读取操作;以及根据已写入数据的第一存储单元的编程时戳,执行第一刷新操作。通过周期性地对已写入数据的第一存储单元进行刷新,并且在每个使用历程中执行前一个使用历程中有写入的存储单元,本发明能够有效地减少所需的读取重试表的数量。此外,通过周期性地选择第二存储单元的部分进行错误检查,本发明能够更好地保证读读取重试表的数量在减少后仍能有效率地进行读取重试,进而改善读取重试的效率。

Description

改善闪存的读取重试的方法、控制器以及相关存储装置
技术领域
本发明关于闪存,尤其关于一种用于改善闪存的读取重试的方法与相关控制器及相关存储装置。
背景技术
近年来,闪存的使用越来越普及,尤其在各类行动装置上。原因在于,闪存相较于其他的现有存储装置,具有高速、高密度与非挥发性等特点。然而,尽管闪存具备上述的诸多优点,但仍存在不得不正视的缺陷,那就是使用寿命与数据保存性(Data Retention)。闪存中的存储单元(如,区块),常会在一定次数的使用后,发生错误,造成无法读出正确的数据。其中,造成错误的原因主要与抹写次数(Program/Erase Cycles)与数据存储时间有关。通常来说,闪存在历经越多的抹写次数后,或者是在长时间未更新存储数据时,都有更高的错误发生机率。因此,控制器往往需要对闪存进行读取重试,通过调整读取电压,来提高正确读出数据的机会。但读取重试的过程中,可能会根据上述的抹写次数与数据存储时间等变因,尝试多种不同的读取电压组合,以正确读出数据。然而,这样的过程会增加延迟,降低读取效率。
发明内容
有鉴于上述所提到的问题,本发明公开一种闪存装置的管理机制,从而改善读取重试。其中,本发明的方法通过定期地刷新闪存中的存储单元中所存储的数据,减少数据存储时间对读取重试的影响。也就是说,存储单元中的数据的存储时间都在一个较小的范围内变动,所以可以有效地降低读取重试中读取电压的调整幅度。另一方面,本发明也加入错误检查机制,针对错误率过高的存储单元,进行有条件的刷新,如此也可以减轻读取重试操作的负担。
本发明的一实施例公开一种管理一闪存模块中的多个存储单元的方法。所述方法包括:针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;根据所述第一存储单元的所述编程时戳,选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
本发明的一实施例公开一种管理一闪存的多个存储单元的控制器。所述控制器包括:一存储单元以及一处理单元。所述存储单元用以存储一程序码。所述处理单元耦接于所述存储单元,用以从所述存储单元中读取所述程序码,以执行所述程序码,从而进行以下操作:针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;根据所述第一存储单元的所述编程时戳,选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
本发明的一实施例公开一种存储装置。所述存储装置包括:一闪存模块与一控制器。所述闪存模块包括多个存储单元。所述控制器用以对闪存模块进行存取,包括:一存储单元与一处理单元。所述存储单元用以存储一程序码。所述处理单元耦接于所述存储单元,用以从所述存储单元中读取所述程序码,以执行所述程序码,从而进行以下操作:针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;根据所述第一存储单元的所述编程时戳,选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
附图说明
图1绘示本发明实施例的相关存储装置、控制器与闪存模块的架构。
图2解释本发明如何选择读取重试表。
图3解释本发明如何针对第一存储单元进行第一刷新操作。
图4绘示本发明实施例中的读取重试表的选择与第一刷新操作的执行的相关流程图。
图5绘示本发明实施例中的第二刷新操作的流程图。
图6解释本发明实施例中的错误检查对于第二子存储单元的选择方式。
图7解释本发明实施例中的第一刷新操作与第二刷新操作的关联。
其中,附图标记说明如下:
100 存储装置
120 控制器
122 处理单元
124 存储单元
130 闪存模块
130_1~130_N 闪存芯片
UNT1~UNTM 第一存储单元
SUNT1~SUNTQ 第二存储单元
SSUNT1~SSUNTZ 第二子存储单元
410~430、510~530 步骤
200 主机
具体实施方式
在以下内文中,描述了许多具体细节以提供阅读者对本发明实施例的透彻理解。然而,本领域的技术人士将能理解,如何在缺少一个或多个具体细节的情况下,或者利用其他方法或组件等来实现本发明。在其他情况下,众所皆知的结构、材料或操作不会被示出或详细描述,从而避免模糊本发明的核心概念。
此外,说明书内文给出的任何范例或者阐释,不应被其中使用的任何词汇所限制或者定义。相反地,这些范例或阐释应当被认为是针对一个特定实施例进行描述的,并且仅作为说明。本领域的技术人员将可理解,这些范例或阐释使用的任何词汇将可涵盖在本说明书中其他地方给出的其他实施例。其中,用以指出这些非限制性范例的用词包括但不限于:“例如”、“如”、“举例来说”、“在一个实施例中”以及在“在一范例中”。
说明书内的流程图中的流程和方块示出了基于本发明的各种实施例的系统、方法和计算机软件产品所能实现的架构,功能和操作。在这方面,流程图或功能方块图中的每个方块可能代表程序码的模块,区段或者是部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。另外,功能方块图以及/或流程图中的每个方块,以及方块的组合,基本上可以由执行指定功能或动作的专用硬件系统来实现,或专用硬件和计算机程序指令的组合来实现。这些计算机程序指令还可以存储在计算机可读媒体中,所述媒体可以使计算机或其他可编程数据处理装置以特定方式工作,使得存储在计算机可读媒体中的指令,实现流程图以及/或功能方块图中的方块所指定的功能/动作。
图1为本发明实施例的示意图。如图所示,存储装置100包括一控制器120 与一闪存模块130,并且受控于一主机(host device)200(存储装置100甚至可能为主机200的一部份)。主机200可包括至少一个中央处理器(未显示),并通过运作一个操作系统与应用程序来控制主机200的运作,并与周边装置(未显示)连动。而存储装置100可用来提供存储空间给主机200,存储运作操作系统与各种应用程序所必需的程序码与数据。主控装置50的范例可包括:多功能移动电话(multifunctional mobile phone)、平板计算机(tablet)、可穿戴装置(wearable device)以及个人计算机(personal computer)例如桌面计算机或笔记本电脑。存储装置100的例子可包括(但不限于):固态硬盘(solid state drive,SSD)以及各种嵌入式(embedded)存储装置(例如符合UFS或EMMC 规格的嵌入式存储装置)。
控制器120可用来存取(access)闪存模块130。在一个实施例中,闪存模块130可能是一立体NAND型闪存(3D NAND-type flash),并可包括至少一个闪存芯片(Flash memorychip),但此非本发明的限制。每一个闪存芯片包括多个区块(Block),控制器120对闪存模块130进行数据抹除的操作是以区块为单位来进行。另外,一个区块可记录特定数量的数据页(Page),而控制器120 对闪存模块130进行数据写入的操作是以数据页为单位来进行写入。
控制器120可能包括处理电路例如微处理器122、与存储单元124,例如只读存储器(Read Only Memory,ROM),只读存储器124主要用来存储程序码与特定数据,而微处理器122则用来执行程序码以控制对闪存模块130的存取。另外,控制器120可能还包括有其他的接口逻辑、控制逻辑以及缓冲器等等,用以辅助实现下文所述的各种操作。然而,为求说明书的简洁,在此省略不提。本领域的技术人士在阅读下文后,应能知晓如何运用已知的电路与文中揭露的电路组件与架构结合,从而实现本发明实施例中所提及的各式操作与相关应用。
在本实施例中,主机200可通过传送主控命令(host command)与相应的逻辑地址给控制器120,从而间接地存取存储装置100。控制器120接收主控命令(读取或写入命令)与逻辑地址,并且将主控命令转译成存储器操作命令,再以操作命令控制闪存模块130读取、写入、编程(program)、或抹除(erase)闪存模块130当中特定物理地址的存储单元(memoryunit)或数据页(page)、或区块(block)。再者,控制器120也会执行程序码1242C,以及/或参考存储单元124内的数据,从而执行一连串的操作来实现下文中将提到的特定操作。
针对读取操作,若控制器120无法在一次读取操作中读取出正确的数据时,控制器120便会读取存储在存储单元124中的一个或多个读取重试表,根据读取重试表中记载的读取电压,控制闪存模块130以不同的读取电压来读取数据,从而正确地读出主机200所需要的数据。
在本发明中,控制器120对于读取重试表的选择与数据保存时间有关。控制器120会针对闪存模块130中每个第一存储单元的写入操作所对应的时间信息建立起对应所述第一存储单元的编程时戳。当后续主机200发出读取命令时,控制器120会根据编程时戳中的信息与系统时间来选择读取重试表。在一实施例中,所述第一存储单元可能为一超级区块(super block)。
请进一步参考图2的范例。在所述范例中,假设闪存模块130包括有第一存储单元UNT1~UNTM(此非本发明的限制),并且,在使用历程P1中有数据写入第一存储单元UNT1、在使用历程P2中有数据写入第一存储单元UNT2,以及在使用历程P3有数据写入第一存储单元UNT3。那么,如果在使用历程P1 内,当主机200发出读取命令要求读取第一存储单元UNT1中的数据时,则控制器120会使用重试表读取RTAB1进行读取。如果在使用历程P2内,当主机200 发出读取命令要求读取第一存储单元UNT1中的数据时,则控制器120会使用读取重试表读取RTAB2进行读取,以及使用历程P2内,针对第一存储单元 UNT2中的数据的读取操作会使用读取重试表RTAB1进行读取。如果在使用历程P3内,主机200发出读取命令要求读取第一存储单元UNT1、第一存储单元 UNT2与第一存储单元UNT3中的数据时,则控制器120会分别使用读取重试表 RTAB3、RTAB2与RTAB1进行读取。其中,读取重试表RTAB3、RTAB2与RTAB1 依序适于读取由长到短的数据保存时间的数据。
在一实施例中,为了减少读取重试表的数量,从而提高读取重试的效率,控制器120会针对闪存模块130中的第一存储单元对应的编程时戳进行全局性质且周期性进行的一第一刷新操作。请参考图3的范例以进一步了解本发明的第一刷新操作的运作原理以及影响。如图所示,假设闪存130包括有第一存储单元UNT1~UNTM(此非本发明的限制)。而控制器120会在存储单元124中维持一个刷新列表RLIST,记录每个第一存储单元对应的编程时戳,并根据新旧来排序,进行刷新。
假设,在使用历程P1中,第一存储单元UNT1与UNT4被写入数据;使用历程P2中,第一存储单元UNT2与UNT5中被写入数据;以及使用历程P3中,第一存储单元UNT6与UNT8中被写入数据。接着,控制器120会在当前使用历程中,对前一个使用历程中有写入数据的第一存储单元进行刷新,并且在当前使用历程结束前完成。如本实施例中,控制器120在使用历程P2中,控制器120 根据刷新列表RLIST的顺序,针对在前一个使用历程P1中被写入数据的第一存储单元UNT1与UNT4,进行刷新并在使用历程P2结束前完成刷新操作;在使用历程P3中,控制器120根据刷新列表RLIST的顺序,针对在前一个使用历程P2中被写入数据的第一存储单元UNT2与UNT5,进行刷新并在使用历程P3 结束前完成刷新操作。在使用历程P4中,控制器120根据刷新列表RLIST的顺序,针对在前一个使用历程P3中被写入数据的第一存储单元UNT6与UNT8,进行刷新并在使用历程P4结束前完成刷新操作。另外,由刷新操作新写入的第一记忆单元也会在下一个使用历程中被刷新。例如,假设在使用历程P2中,针对第一存储单元UNT1与UNT4的刷新操作,将数据搬移到了第一存储单元 UNT3与UNT7中,那么在使用历程P3中,第一存储单元UNT3与UNT7中也会被刷新,以此类推。
如此一来,闪存模块130中任何的第一存储单元的数据保存时间,最长只有两个使用历程的长度(假设刷新最迟在一个使用历程结束时才完成)。因此,控制器120的存储单元124中只需要存储两个读取重试表RTAB1与RTAB2,就可以涵盖所有因存储时间过长而造成的读取错误。举例来说,如果在使用历程P2中,打算读取第一存储单元UNT1中的数据时,若此时第一存储单元UNT1 中的数据已通过上述的刷新操作搬移到第一存储单元UNT3中时,则只需要用读取重试表RTAB1进行读取;同样在使用历程P2中,打算读取第一存储单元UNT4中的数据时,若此时第一存储单元UNT4中的数据未被刷新,则需要用读取重试表RTAB2进行读取。
以上的第一刷新操作与读取重试表的选择可归纳为图4所示的流程,包括有以下步骤:
步骤410:针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;
步骤420:根据所述第一存储单元的所述编程时戳,选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及
步骤430:根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
由于步骤410~430是由前述实施例中介绍的操作简化而来,故此处不再重复说明。
在一实施例中,为了增加数据的可靠度,以及保证读取重试的成功率,会在第一刷新操作之外,额外进行一个第二刷新操作。其中,第二刷新操作的流程如图5所示,包括有以下步骤:
步骤510:针对已写入数据的第二存储单元中每一者的至少一部份进行一错误检查;以及
步骤520:当所述错误检查的结果指出一错误位数量大于一临界值时,读取出包括所述第二存储单元的一第一存储单元所存储的数据,并将所述数据校正后写入至另一第一存储单元;以及
步骤530:建立所述另一第一存储单元的一编程时戳。
请进一步搭配图6的说明,以进一步了解本发明实施例如何进行第二刷新操作。如图所示,闪存130可能包括有多个大小相同的第二存储单元SUNT1、 SUNT2、…与SUNTQ 。而每个存储单元SUNT1~SUNTQ可能又包括有数量相同的第二子存储单元SSUNT1~SSUNTZ。
在步骤510中,控制器120会对每个第二存储单元SUNT1~SUNTQ的至少一部份进行错误检查。其中,在一实施例中,控制器120单元可能会从第二存储单元SUNT1选出第二子存储单元SSUNT1、在第二存储单元SUNT2选出第二子存储单元SSUNT2、…以及在第二存储单元SUNTQ选出第二子存储单元SSUNTQ进行错误检查。这样的选取方式是为了避免造成取样不均匀。例如,如果在每个第二存储单元中都选择子存储单元SSUNT1或子存储单元 SSUNTQ进行检查,则可能因为相同编号的子存储单元在物理结构上接近,具有相似的物理特性,而忽略了其他物理特性不同且容易造成错误的存储单元。在一实施例中,第二存储单元SUNT1~S UNTP可能为超级数据页(super pages),而第二子存储单元SSUNT1~SSUNTQ可能为数据页。
在本发明中,第二刷新操作是具有条件性,也就是只有当被选择出的第二子存储单元无法通过错误检查时,控制器120才会针对包括所述第二存储单元进行第二刷新操作。在步骤520中,控制器120是通过检查选择出的第二子存储单元的错误位数目是否超过一临界值,来决定是否通过错误检查。若当所述错误检查的结果指出一第二存储单元的至少一部份的错误位数量大于一临界值时,则控制器120读取出包括所述第二存储单元的第一存储单元中所存储的数据,并将所述数据校正后写入至另一第一存储单元。也就是说,若检查出一个超级数据页中某一个数据页的错误位数目过高,则会刷新包括所述第二超级数据页的一第一超级区块的数据。并且在步骤530中,建立所述第一存储单元的一编程时戳。此即为本发明的第二刷新操作。
在本实施例中,需要被刷新的第一存储单元会被插入至控制器120的存储单元124中所存储的刷新清单RLIST的排序中。请参考图7的说明。如图7所示,控制器120原本按照刷新清单RLIST进行第一刷新操作,针对UNT2、UNT3、 UNT4与UNT6的顺序周期性地进行。并且,也同时周期性地进行错误检查。然而,当控制器120在时间点T1中发现某个被检查的第二存储单元SUNT2无法通过检查时,则会在刷新清单RLIST中插入相应的于包括有第二存储单元SUNT2的第一存储单元UNT3的刷新操作的第二刷新操作,并在时间点T2,执行针对第一存储单元UNT3中的数据的刷新操作。
如上所述,本发明通过了周期性对已写入数据的第一存储单元(如:超级区块)进行刷新。并且在每个使用历程中,执行前一个使用历程中有写入的存储单元,从而有效地减少所需的读取重试表的数量。并且,通过周期性地选择第二存储单元的部分(如:数据页)进行错误检查,从而更好地保证读读取重试表的数量在减少后仍能有效率地进行读取重试。如此一来,便能改善读取重试的效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (18)

1.一种管理一闪存模块中的多个存储单元的方法,其特征在于,包括:
针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;
提供多个读取重试表,其中每一个读取重试表分别对应所述第一存储单元被写入或刷新之后所经过的特定时间长;
根据所述第一存储单元的所述编程时戳,从所述多个读取重试表中选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及
根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
2.如权利要求1所述的方法,其特征在于,还包括:
针对已写入数据的第二存储单元中每一者的至少一部份进行一错误检查;以及
根据所述错误检查的结果来执行一第二刷新操作。
3.如权利要求2所述的方法,其特征在于,根据所述错误检查的结果来执行所述第二刷新操作的步骤包括:
当所述错误检查的结果指出一第二存储单元中的至少一部份所包括错误位数量大于一临界值时,读取出包括所述第二存储单元的一第一存储单元中所存储的数据,并将所述数据校正后写入至另一第一存储单元;以及
建立关联所述另一第一存储单元的一编程时戳。
4.如权利要求1所述的方法,其特征在于,执行所述第一刷新操作的步骤包括:
针对在一第一使用历程中被写入数据的多个第一存储单元,在一第二使用历程中进行所述第一刷新操作,其中所述第二使用历程在所述第一使用历程之后,且所述第一刷新操作是在所述第二使用历程中完成针对所有在所述第一使用历程中被写入数据的第一存储单元的刷新。
5.如权利要求4所述的方法,其特征在于,选择相对应的所述读取重试表的步骤包括:
针对在所述第一使用历程中被写入数据的第一存储单元的读取,选择一第一读取重试表;以及
针对在所述第二使用历程中被写入数据的第一存储单元的读取,选择一第二读取重试表。
6.如权利要求1所述的方法,其特征在于,执行所述第一刷新操作的部分包括:
针对每一个第一存储单元:
读取出所述第一存储单元中所存储的数据,并将所述数据写入至另一第一存储单元;以及
建立所述另一第一存储单元的一编程时戳。
7.一种管理一闪存的多个存储单元的控制器,其特征在于,包括:
一存储单元,用以存储一程序码;以及
一处理单元,耦接于所述存储单元,用以从所述存储单元中读取所述程序码,以执行所述程序码,从而进行以下操作:
针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;
提供多个读取重试表,其中每一个读取重试表分别对应所述第一存储单元被写入或刷新之后所经过的特定时间长;
根据所述第一存储单元的所述编程时戳,从所述多个读取重试表中选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及
根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
8.如权利要求7所述的控制器,其特征在于,所述处理单元执行所述程序码,以针对已写入数据的第二存储单元中每一者的至少一部份进行一错误检查;以及根据所述错误检查的结果来执行一第二刷新操作。
9.如权利要求8所述的控制器,其特征在于,所述处理单元执行所述程序码,以当所述错误检查的结果指出一第二存储单元中的至少一部份所包括的错误位数量大于一临界值时,读取出包括所述第二存储单元的一第一存储单元中所存储的数据,并将所述数据校正后写入至另一第一存储单元;以及建立所述另一第一存储单元的一编程时戳。
10.如权利要求7所述的控制器,其特征在于,所述处理单元执行所述程序码,以针对在一第一使用历程中被写入数据的多个第一存储单元,在一第二使用历程中进行所述第一刷新操作,其中所述第二使用历程在所述第一使用历程之后,且所述第一刷新操作是在所述第二使用历程中完成针对所有在所述第一使用历程中被写入数据的第一存储单元的刷新。
11.如权利要求10所述的控制器,其特征在于,所述处理单元执行所述程序码以:
针对在所述第一使用历程中被写入数据的第一存储单元的读取,选择一第一读取重试表;以及
针对在所述第二使用历程中被写入数据的第一存储单元的读取,选择一第二读取重试表。
12.如权利要求7所述的控制器,其特征在于,所述处理单元执行所述程序码以针对每一个第一存储单元:读取出所述第一存储单元中所存储的数据,并将所述数据写入至另一第一存储单元;以及建立所述另一第一存储单元的一编程时戳。
13.一种存储装置,其特征在于,包括:
一闪存模块,包括多个存储单元;以及
一控制器,用以对闪存模块进行存取,包括:
一存储单元,用以存储一程序码;以及
一处理单元,耦接于所述存储单元,用以从所述存储单元中读取所述程序码,以执行所述程序码,从而进行以下操作:
针对每一第一存储单元的数据写入时间建立一个对应于所述第一存储单元的一编程时戳;
提供多个读取重试表,其中每一个读取重试表分别对应所述第一存储单元被写入或刷新之后所经过的特定时间长;
根据所述第一存储单元的所述编程时戳,从所述多个读取重试表中选择相对应的一读取重试表来对所述第一存储单元进行一读取操作;以及
根据已写入数据的第一存储单元的编程时戳,执行一第一刷新操作。
14.如权利要求13所述的存储装置,其特征在于,所述控制器另针对已写入数据的第二存储单元中每一者的至少一部份进行一错误检查;以及根据所述错误检查的结果来执行一第二刷新操作。
15.如权利要求14所述的存储装置,其特征在于,所述控制器当所述错误检查的结果指出一第二存储单元中的至少一部份所包括的错误位数量大于一临界值时,读取出包括所述第二存储单元的一第一存储单元中所存储的数据,并将所述数据校正后写入至另一第一存储单元;以及建立所述另一第一存储单元的一编程时戳。
16.如权利要求13所述的存储装置,其特征在于,所述控制器针对在一第一使用历程中被写入数据的多个第一存储单元,在一第二使用历程中进行所述第一刷新操作,其中所述第二使用历程在所述第一使用历程之后,且所述第一刷新操作是在所述第二使用历程中完成针对所有在所述第一使用历程中被写入数据的第一存储单元的刷新。
17.如权利要求16所述的存储装置,其特征在于,所述控制器针对在所述第一使用历程中被写入数据的第一存储单元的读取,选择一第一读取重试表;以及针对在所述第二使用历程中被写入数据的第一存储单元的读取,选择一第二读取重试表。
18.如权利要求13所述的存储装置,其特征在于,所述控制器针对每一个第一存储单元:读取出所述第一存储单元中所存储的数据,并将所述数据写入至另一第一存储单元;以及建立所述另一第一存储单元的一编程时戳,从而完成所述第一刷新操作。
CN201910111370.5A 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置 Active CN111429960B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210491505.7A CN115016962A (zh) 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW108100961 2019-01-10
TW108100961A TWI690928B (zh) 2019-01-10 2019-01-10 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210491505.7A Division CN115016962A (zh) 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置

Publications (2)

Publication Number Publication Date
CN111429960A CN111429960A (zh) 2020-07-17
CN111429960B true CN111429960B (zh) 2022-05-24

Family

ID=71134354

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201910111370.5A Active CN111429960B (zh) 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置
CN202210491505.7A Pending CN115016962A (zh) 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210491505.7A Pending CN115016962A (zh) 2019-01-10 2019-02-12 改善闪存的读取重试的方法、控制器以及相关存储装置

Country Status (3)

Country Link
US (1) US11573734B2 (zh)
CN (2) CN111429960B (zh)
TW (1) TWI690928B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020157529A1 (en) * 2019-01-29 2020-08-06 Micron Technology, Inc. Memory device and method for managing the same
KR20220028300A (ko) * 2020-08-28 2022-03-08 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
CN112558871B (zh) * 2020-12-11 2022-12-20 成都佰维存储科技有限公司 闪存数据保存分析方法、装置、可读存储介质及电子设备
CN113672178B (zh) * 2021-10-25 2022-03-18 珠海妙存科技有限公司 nand flash重读定位方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102246241A (zh) * 2008-12-18 2011-11-16 桑迪士克股份有限公司 非易失性存储器的数据刷新
CN105278866A (zh) * 2014-07-18 2016-01-27 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
CN106251903A (zh) * 2015-06-05 2016-12-21 爱思开海力士有限公司 存储系统及其操作方法
US9686051B2 (en) * 2013-12-27 2017-06-20 Lord Corporation Systems, methods, and computer readable media for lossless data transmission in a wireless network
CN107797821A (zh) * 2016-09-05 2018-03-13 上海宝存信息科技有限公司 重试读取方法以及使用该方法的装置
US9916211B2 (en) * 2016-06-16 2018-03-13 International Business Machines Corporation Relational database recovery
CN108108810A (zh) * 2016-11-24 2018-06-01 三星电子株式会社 包括非易失性存储器件的存储装置及访问方法
US10031699B1 (en) * 2017-10-18 2018-07-24 Intel Corporation Read voltage determination in a memory device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5517250A (en) * 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto
US6798418B1 (en) * 2000-05-24 2004-09-28 Advanced Micro Devices, Inc. Graphics subsystem including a RAMDAC IC with digital video storage interface for connection to a graphics bus
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7660166B2 (en) * 2007-01-31 2010-02-09 Sandisk Il Ltd. Method of improving programming precision in flash memory
US7719876B2 (en) * 2008-07-31 2010-05-18 Unity Semiconductor Corporation Preservation circuit and methods to maintain values representing data in one or more layers of memory
US8983902B2 (en) * 2010-12-10 2015-03-17 Sap Se Transparent caching of configuration data
JP5740296B2 (ja) * 2011-12-16 2015-06-24 株式会社東芝 半導体記憶装置、半導体記憶装置の制御方法、制御プログラム
US9224450B2 (en) * 2013-05-08 2015-12-29 International Business Machines Corporation Reference voltage modification in a memory device
WO2015145552A1 (ja) * 2014-03-24 2015-10-01 株式会社日立製作所 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
TWI631456B (zh) * 2016-10-07 2018-08-01 慧榮科技股份有限公司 資料儲存裝置及資料維護方法
US10163471B2 (en) * 2017-03-30 2018-12-25 Intel Corporation Time tracking with trits
JP2018195357A (ja) * 2017-05-15 2018-12-06 富士電機株式会社 メモリ装置およびセンサ装置
US10459836B2 (en) * 2017-06-22 2019-10-29 Macronix International Co., Ltd. Memory device and associated control method
US10770168B2 (en) * 2018-07-12 2020-09-08 Micron Technology, Inc. Memory sub-system with background scan and histogram statistics
US11037637B2 (en) * 2018-12-10 2021-06-15 Micron Technology, Inc. Defect detection in memories with time-varying bit error rate

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102246241A (zh) * 2008-12-18 2011-11-16 桑迪士克股份有限公司 非易失性存储器的数据刷新
US9686051B2 (en) * 2013-12-27 2017-06-20 Lord Corporation Systems, methods, and computer readable media for lossless data transmission in a wireless network
CN105278866A (zh) * 2014-07-18 2016-01-27 光宝科技股份有限公司 固态储存装置及其错误更正控制方法
CN106251903A (zh) * 2015-06-05 2016-12-21 爱思开海力士有限公司 存储系统及其操作方法
US9916211B2 (en) * 2016-06-16 2018-03-13 International Business Machines Corporation Relational database recovery
CN107797821A (zh) * 2016-09-05 2018-03-13 上海宝存信息科技有限公司 重试读取方法以及使用该方法的装置
CN108108810A (zh) * 2016-11-24 2018-06-01 三星电子株式会社 包括非易失性存储器件的存储装置及访问方法
US10031699B1 (en) * 2017-10-18 2018-07-24 Intel Corporation Read voltage determination in a memory device

Also Published As

Publication number Publication date
TWI690928B (zh) 2020-04-11
CN115016962A (zh) 2022-09-06
TW202027085A (zh) 2020-07-16
US11573734B2 (en) 2023-02-07
US20200225876A1 (en) 2020-07-16
CN111429960A (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
US9753653B2 (en) High-priority NAND operations management
US10061512B2 (en) Data storage device and data writing method thereof
CN111429960B (zh) 改善闪存的读取重试的方法、控制器以及相关存储装置
US9715939B2 (en) Low read data storage management
CN106598479B (zh) 闪速存储器的故障安全擦除的方法和装置
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20160118132A1 (en) Low Impact Read Disturb Handling
US20130346805A1 (en) Flash memory with targeted read scrub algorithm
US10241678B2 (en) Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted
CN110795270B (zh) 固态储存装置及其读取重试方法
US20170162267A1 (en) Data Storage Device and Data Maintenance Method
CN107924700B (zh) 自适应多阶段擦除
US9779823B2 (en) Secure erase of non-volatile memory
KR101468432B1 (ko) 제어된 스크럽 데이터 판독에 의해 트리거되는 플래시 메모리 리프레시 기술
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
US11068201B2 (en) Flash memory controller, method for managing flash memory module and associated electronic device
US11069409B2 (en) Method, associated memory device and controller thereof for performing programming management
CN112835514B (zh) 存储器系统
US11347433B2 (en) Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device
US10642509B2 (en) Method for designating specific world-lines of data storage device as reserved word-lines, and selecting a writing mode accordingly
US11662940B2 (en) Data storage device and data processing method for restoring MLC/TLC memory to avoid degradation of access performance of a memory device caused by word line short
CN105761754B (zh) 存储单元编程方法、存储器控制电路单元与存储装置
US10725862B2 (en) Data recovery method to error correction code in memory
TWI718889B (zh) 改善快閃記憶體之讀取重試的方法、控制器以及相關儲存裝置
US10210939B1 (en) Solid state storage device and data management method

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