CN107608628B - 闪存控制器 - Google Patents

闪存控制器 Download PDF

Info

Publication number
CN107608628B
CN107608628B CN201710725968.4A CN201710725968A CN107608628B CN 107608628 B CN107608628 B CN 107608628B CN 201710725968 A CN201710725968 A CN 201710725968A CN 107608628 B CN107608628 B CN 107608628B
Authority
CN
China
Prior art keywords
storage space
threshold voltage
input data
flash memory
circuit
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
CN201710725968.4A
Other languages
English (en)
Other versions
CN107608628A (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 CN107608628A publication Critical patent/CN107608628A/zh
Application granted granted Critical
Publication of CN107608628B publication Critical patent/CN107608628B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Abstract

本发明公开了一种用于一闪存的更新方法与用于一闪存的内存控制器,所述更新方法包括:执行写入操作以将输入数据储存至所述闪存中的储存空间;检查储存有所述输入数据的所述储存空间的可靠度;及当所述储存空间的可靠度达到预定条件时,依据所述输入数据对所述储存空间执行更新操作。所述写入操作会通过初始程序化操作以及所述初始程序化操作之后的再程序化操作,来将所述输入数据储存至所述储存空间。所述更新操作是对所述储存空间进行的一额外再程序化操作,以将从所述储存空间所恢复的所述输入数据程序化至所述储存空间中的原始储存位置。本发明数据保持恢复机制会更新而非抹除受到数据保持干扰的记忆区块,不会增加程序化/抹除周期的数目。

Description

闪存控制器
原申请案的申请日是2013.11.29,申请号是201310631675.1,发明创造名称是”闪存更新方法以及闪存控制器”。
技术领域
本发明涉及闪存中的数据管理,尤其涉及一种闪存更新方法以及闪存控制器。
背景技术
半导体内存装置依其原理可分为挥发性(volatile)内存装置以及非挥发性内存装置。挥发性内存装置可以快速地执行读/写操作,但在失去电力时便会失去所储存的数据,反的,非挥发性内存不需要靠电力来维持所储存的数据。所谓的闪存即是非挥发性内存的一种,具有高记忆单元集成密度(integration density),因此,可以利用闪存来当作数据储存媒介,例如一固态硬盘(solid-state drive,SSD)。
随着闪存的进步,单一记忆单元能够储存一个以上的数据位,然而,在对能够储存多个数据位的快闪记忆单元进行程序化的时候,需要格外小心地控制分别对应于不同程序化数据值的临界电压分布值。具体来说,当闪存的集成密度增加时,构成闪存的记忆单元的最小特征尺寸(minimum feature size)必然会降低,同时,闪存中的记忆单元的浮动闸极(floating gate)之间的耦合效应也会增加,使得闪存的可靠度降低。
此外,由于浮动闸极的尺寸会随着闪存的集成密度增加而缩小,数据保持干扰(data-retention disturbance)已成为设计上不得不解决的问题。在现有技术的设计中,当数据保持干扰在数据写入至一记忆区块后于所述记忆区块中发生,则需要靠复杂的软式译码算法(soft decoding algorithm)并经过多次读取操作才能将数据恢复回来。在成功地恢复储存数据后,还需要在闪存中找一个替代记忆区块来存放刚才所恢复的数据,并抹除原本的记忆区块而成为空白记忆区块。不过,现有技术的数据保持恢复机制会增加程序化/抹除周期(program/erase,P/E)的数目,使闪存的寿命减少。
发明内容
本发明的目的在于提出一种闪存更新方法以及闪存控制器,以解决上述现有技术中存在的数据保持恢复机制会增加程序化/抹除周期的数目而使闪存寿命缩短的问题。
本发明提供的闪存更新方法如下:
所述更新方法包括有以下步骤:执行一写入操作以将一输入数据储存至所述闪存中的一储存空间;检查储存有所述输入数据的所述储存空间的可靠度;以及当所述储存空间的可靠度达到一预定条件时,依据所述输入数据对所述储存空间执行一更新操作。
在示范性实施例中,检查所述储存空间的可靠度的步骤包括有:侦测储存有所述输入数据的所述储存空间是否遭受数据保持干扰。
在示范性实施例中,所述储存空间是由多个N位多阶记忆单元所构成,且N是大于2的一正整数。
在示范性实施例中,所述写入操作会通过一初始程序化操作以及所述初始程序化操作之后的至少一再程序化操作,来将所述输入数据储存至所述储存空间;所述更新操作是对所述储存空间进行的一额外再程序化操作,以将从所述储存空间所恢复的所述输入数据程序化至所述储存空间中的原始储存位置。
在示范性实施例中,所述写入操作储存在所述储存空间中的所述输入数据是依据一第一参考临界电压初始设定来被读取,而所述更新操作储存在所述储存空间中的所述输入数据是依据一第二参考临界电压初始设定来被读取,且所述第一参考临界电压初始设定是不同于所述第二参考临界电压初始设定。其中所述第二参考临界电压初始设定中所定义的一最高参考临界电压值是大于所述第一参考临界电压初始设定中所定义的一最高参考临界电压值。此外,所述更新方法还包括有:在对所述储存空间执行所述更新操作之后,储存用以指示所述第二参考临界电压初始设定的一指标。
在示范性实施例中,所述储存空间是所述闪存的一记忆区块的一部分。此外,所述更新方法还包括有:当所述储存空间的可靠度达到所述预定条件时,对所述闪存的所述记忆区块的一其余部分执行一更新操作。
本发明提出一种用于一闪存的内存控制器,包括有一写入电路、一检查电路以及一更新电路。所述写入电路是耦接至所述闪存,用来将一输入数据储存至所述闪存中的一储存空间。所述检查电路是用来检查储存有所述输入数据的所述储存空间的可靠度。所述更新电路是耦接至所述检查电路以及所述闪存,用来当所述储存空间的可靠度达到一预定条件时,依据所述输入数据对所述储存空间执行一更新操作。
在示范性实施例中,所述检查电路通过侦测储存有所述输入数据的所述储存空间是否遭受数据保持干扰,来检查所述储存空间的可靠度。
在示范性实施例中,所述内存控制器所存取的所述储存空间是由多个N位多阶记忆单元所构成,且N是大于2的一正整数。
在示范性实施例中,所述写入电路会通过一初始程序化操作以及所述初始程序化操作之后的至少一再程序化操作,来将所述输入数据储存至所述储存空间。所述更新电路是对所述储存空间进行的一额外再程序化操作,以将从所述储存空间所恢复的所述输入数据程序化至所述储存空间中的原始储存位置。
在示范性实施例中,所述写入电路储存在所述储存空间中的所述输入数据是依据一第一参考临界电压初始设定来被读取,而所述更新电路储存在所述储存空间中的所述输入数据是依据一第二参考临界电压初始设定来被读取,且所述第一参考临界电压初始设定是不同于所述第二参考临界电压初始设定。其中所述第二参考临界电压初始设定中所定义的一最高参考临界电压值是大于所述第一参考临界电压初始设定中所定义的一最高参考临界电压值。此外,在更新所述储存空间之后,所述更新电路会储存用以指示所述第二参考临界电压初始设定的一指标。
在示范性实施例中,所述内存控制器所存取的所述储存空间是所述闪存的一记忆区块的一部分。此外当所述储存空间的可靠度达到所述预定条件时,所述更新电路还用来更新所述闪存的所述记忆区块的一其余部分。
相较于将受到数据保持干扰的记忆区块的内容抹除的现有技术的数据保持恢复机制,本发明数据保持恢复机制会更新而非抹除受到数据保持干扰的记忆区块,这样一来,便不会增加程序化/抹除周期的数目。除此之外,现有技术的数据保持恢复机制是将受到数据保持干扰的记忆区块内的数据搬移到其它的记忆区块,本发明数据保持恢复机制则可更新受到数据保持干扰的记忆区块而无需移动数据。
附图说明
图1为本发明一实施例中的一闪存装置的示意图。
图2为第一次程序化操作(即初始程序化操作)执行完毕后的记忆单元临界电压分布图。
图3为第二次程序化操作(即第一次再程序化操作)执行完毕后的记忆单元临界电压分布图。
图4为第三次程序化操作(即第二次再程序化操作)执行完毕后的记忆单元临界电压分布图。
图5为当数据保持干扰发生时记忆单元的临界电压分布图。
图6是更新操作执行完毕之后的记忆单元的临界电压分布图。
图7为检查电路所记录的第一列表以及第二列表的范例的示意图。
图8为检查电路所记录的第一列表以及第二列表更新后的范例的示意图。
其中,附图标记说明如下:
100 闪存装置
102 内存控制器
104 闪存
112 写入电路
114 检查电路
116 更新电路
118 其它电路
122 记忆单元
具体实施方式
在说明书及后续的权利要求当中使用了某些词汇来指称特定的组件。所属领域中具有通常知识者应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及后续的权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇说明书及后续的权利要求当中所提及的「包括」是一开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此是包括任何直接及间接的电气连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电气连接于所述第二装置,或通过其他装置或连接手段间接地电气连接至所述第二装置。
本发明的精神是在闪存中针对原本的储存位置就地执行更新操作来程序化数据,因此得以在不增加程序化/抹除周期(program/erase,P/E)的数目的情况下解决数据保持干扰(data-retention disturbance)的问题。关于数据保持恢复机制的进一步的细节将说明如下。
请参考图1,图1为本发明一实施例中的一闪存装置的示意图。闪存装置100包括有一内存控制器102以及一闪存104。内存控制器102是耦接至闪存104,用来控制闪存104的存取(即读和写)。内存控制器102具有一写入电路112、一检查电路114、一更新电路116以及其它电路118,其中其它电路118可包括一读取电路、一抹除电路、一错误检查以及更正(errorchecking and correcting,ECC)电路等。写入电路112是耦接至闪存104,用来将一输入数据D_IN储存至闪存104的一储存空间,其中所述储存空间是闪存104中一记忆区块(block)的一部分,例如一单一记忆分页(page)中的记忆单元或是位于单一字符线(word line)上的记忆单元。检查电路114是用来检查储存有输入数据D_IN的所述储存空间的可靠度。更新电路116是耦接至检查电路114以及闪存104,用来于所述储存空间的可靠度达到一预定条件时,依据输入数据D_IN对所述储存空间执行一更新操作。关于写入电路112、检查电路114以及更新电路116的操作将会在之后的段落中说明。由于本发明的特征是在于一种应用在闪存104的更新机制,因此为使说明书简洁起见,其它电路118中的组件在执行抹除操作、读取操作和错误检查以及更正译码操作的相关说明将予以省略。此外,写入电路112、检查电路114、更新电路116以及其它电路118可以是采用了一些软件码或是韧体码的硬件电路设计,且上述四组电路中至少两组可以在软件或是韧体的控制之下,共享相同的硬件来执行不同的工作任务。
关于闪存104,其具有多个记忆区块BK0、BK1、…、BKM,其中M可以视实际的设计需求而为任意正整数。每一记忆区块都具有多个记忆单元122位于不同字符线WL0、WL1、WL2、…、WLL上,其中L可以视实际的设计需求而为任意正整数,举例来说,L=86。每一字符在线的记忆单元122又分为K个记忆分页,其中K可以视实际的设计需求而为任意正整数。举例来说,K=3。
闪存104在执行资料存取的时候,可以对闪存104执行以内存分页为单位的读取操作(page-based read operation)来读取一指定记忆分页中的记忆单元122中所储存的数据;另外,可以对闪存104执行以内存分页为单位的写入操作(page-based writeoperation)来将输入数据程序化到一指定记忆分页中的记忆单元122中;又,可以对闪存104执行以记忆区块为单位的抹除操作(block-based erase operation)来抹除一指定记忆区块中的记忆单元122中所储存的数据。在此实施例中,每一记忆单元122可以是一N位多阶记忆单元(multi-level cell,MLC),其中N是大于2的一正整数,例如,每一记忆单元122可以是一3位多阶记忆单元,又名三阶记忆单元(triple-level cell,TLC)。
相邻记忆单元的浮动闸极之间的耦合效应会造成临界电压分布的位移及/或扩展,而临界电压分布的位移及/或扩展会侵害读取边际(read margin),因而导致读取数据的错误。要减轻相邻记忆单元的浮动闸极之间的耦合效应所造成的临界电压分布的位移及/或扩展,写入电路112是设置来通过一初始程序化操作以及所述初始程序化操作之后的至少一再程序化操作(reprogram operation),来执行一写入操作。
在闪存104是一三阶闪存的情况下,每一记忆单元122会被程序化在八种状态(state)的其中一种,以储存一3位数据。当写入电路112将输入数据D_IN写入至闪存104的一储存空间(例如记忆区块BK0的字符线WL0中的记忆单元122)中,会使用一种基于再程序化的方法(reprogram-based method)来对指定储存空间中的每一记忆单元122进行程序化。图2为第一次程序化操作(即初始程序化操作)执行完毕后的记忆单元临界电压分布图。就每一记忆单元122来说,所述初始程序化操作会根据所欲储存的一3位数据,直接将记忆单元122程序化至一目标状态。如图2所示,参考临界电压0和VTH1~VTH6是用来分辨记忆单元中的多个状态,尽管所述初始程序化操作已执行完毕,仍然会因为相邻记忆单元的浮动闸极间的耦合效应所造成的临界电压分布干扰,而难以清楚地分辨不同状态。具体地说,也就是仍存在有无法明确辨别的数据区域(在图中以斜线表示)。因此,需要执行一第一次再程序化操作。图3为第二次程序化操作(即第一次再程序化操作)执行完毕后的记忆单元临界电压分布图。第一次再程序化操作是用来优化所述初始程序化操作所得到的所述临界电压分布。从图3可得知,所述第二次程序化操作(即所述第一次再程序化操作)改善了每一状态的临界电压分布,缩小了无法明确辨别的数据区域的范围。尽管如此,当读取被程序化在无法明确辨别的数据区域的记忆单元时仍然有可能会发生误判,所以,需要再执行一第二次再程序化操作。图4为第三次程序化操作(即第二次再程序化操作)执行完毕后的记忆单元临界电压分布图。从图4可得知,执行完所述第二次再程序化操作之后,便可以清楚地分辨每一状态的临界电压的分布。
尽管写入电路112所采用的基于再程序化的方法能够让临界电压分布于所要的范围中变窄且较佳地被定义,以使得后续的读取操作能够轻易地分辨程序化后的记忆单元122所处的状态,然而程序化后的记忆单元122仍有可能会发生数据保持干扰,而当数据保持干扰发生时,各状态的临界电压的钟形分布会往外扩散。图5为当数据保持干扰发生时记忆单元的临界电压分布图。当数据保持干扰发生而造成临界电压分布改变时,使用原始参考临界电压可能会发生数据读取错误,换句话说,当已储存输入数据D_IN的一储存空间(例如记忆区块BK0中的字符线WL0上的记忆单元122)的可靠度降低时,内存控制器102很难从闪存104的储存空间读取出正确的数据。在此实施例中,检查电路114会检查储存有输入数据D_IN的储存空间的可靠度,且更新电路116会在所述储存空间的可靠度达到一预定条件时,依据输入数据D_IN对所述储存空间执行一更新操作。举例来说,检查电路114会侦测储存输入数据D_IN的储存空间是否遭遇数据保存干扰,若是侦测结果指示出遭遇数据保存干扰,则检查电路114评估所述储存空间的可靠度是否达到所述预定条件。在一示范性设计中,检查电路114会参考其它电路118中的所述错误检查以及更正电路所提供的信息来评估是否发生数据保存干扰。举例来说,当所述错误检查以及更正电路针对从闪存104所读取到的数据进行一译码操作(例如一硬式译码操作(hard decoding operation)或是一软式解碼操作)时,遭遇一译码失败(decoding failure)或是发现到错误位数超过一临界值,检查电路114会判断所述储存空间中的记忆单元122遭受数据保持干扰,因此,一个基于更新的数据保存恢复机制(refresh-based data-retention recovery)便会被致能以恢复所述储存空间(例如记忆区块BK0中的字符线WL0)中所储存的数据。例如,所述错误检查以及更正电路可执行一复杂的译码算法(例如软式译码算法)并经过多次读取操作来恢复所储存的数据。
一般来说,一个三阶记忆单元区块需要三个单阶记忆单元(single-level cell,SLC)区块来缓冲被恢复的数据。在一示范性设计中,内存控制器102会将一个三阶记忆单元区块的恢复数据储存到闪存104的三个单阶记忆单元区块中。在还一示范性设计中,可将一个三阶记忆单元区块的恢复数据储存到内存控制器102的内部缓冲器中。
在成功地将储存空间中经历数据保存干扰的储存数据(即输入数据D_IN)复原之后,检查电路114会控制更新电路116来针对所述储存空间(例如记忆区块BK0中的字符线WL0上的记忆单元122)执行一更新操作。在此实施例中,由于写入电路112会采用一种基于再程序化的方法来将输入数据D_IN写入至所述闪存104的所述储存空间,更新电路116所执行的更新操作是对所述储存空间所进行的一额外再程序化操作,以将从所述储存空间所恢复的输入数据D_IN程序化至所述储存空间中的原始储存位置。这样一来,图5中的临界电压分布便可通过更新电路116所执行的所述额外再程序化操作来获得改善。图6是更新操作执行完毕之后的记忆单元的临界电压分布图。在一较佳实施例中,更新电路116会参考从所述储存空间恢复回来的输入数据D_IN,来将所述储存空间中的原始储存位置的记忆单元122设为较高的临界值,因而得到具有较佳噪声边际的较窄的临界电压分布。换句话说,写入电路112储存在所述储存空间中的输入数据D_IN是依据一第一参考临界电压初始设定(即图4中所示的0和Vth1~Vth6)而被读取,而更新电路116储存在所述储存空间中的输入数据D_IN则是依据一第二参考临界电压初始设定(即图6中所示的0和Vth1’~Vth6’)而被读取,且所述第一参考临界电压初始设定是不同于所述第二参考临界电压初始设定。除此之外,所述第二参考临界电压初始设定中所定义的最高参考临界电压值(即Vth6’)是大于所述第一参考临界电压初始设定中所定义的最高参考临界电压值(即Vth6)。
如前段所述,所述更新操作执行完毕之后,第二参考临界电压初始设定(即0和Vth1’~Vth6’)会不同于第一参考临界电压初始设定(即0和Vth1~Vth6),因此,为了便于后续的读取操作,更新电路166会储存用以指示所述第二参考临界电压初始设定的一指标(indicator)IT。这样一来,其它电路118中的读取电路便可参考指针IT来设定正确的参考临界电压值0和Vth1’~Vth6’,以对更新电路116更新过的储存空间执行一读取操作。此外,可将用以指示所述第二参考临界电压初始设定的指针IT储存在内存控制器102中一相对应的表(table)中。
由于同一记忆区块中的数据可能是以连续的方式储存(例如短时间内储存的数据),因此上述更新操作可以是以记忆区块为单位的操作。举例来说,当发现储存在一记忆区块中的其中一字符线中的数据遭受数据保存干扰,更新电路116便可对整个记忆区块进行更新。举例来说,当检查电路114发现记忆区块BK0中的字符线WL0上的记忆单元112遭收数据保持干扰,更新电路116会更新记忆区块BK0中所有的字符线WL0~WLL,在较佳的设计方式中,更新字符线的顺序可以根据数据写入字符线的顺序,以达到更好的临界电压分布优化结果,例如当写入电路112采用一再程序化方法来将数据依序写入至BK0中的字符线WL0~WLL时,更新电路116便会依序地更新字符线WL0~WLL。
在一较佳实施例中,基于更新的数据保持恢复机制是以背景执行的方式来进行,以避免影响闪存104的正常数据存取。举例来说,每当快闪记忆装置100启动(power up)时,检查电路114会控制其它电路118中的读取电路以及错误检查以及更正电路来侦测记忆区块BK0~BKM中的至少一记忆区块中是否发生资料保持干扰。检查电路114会维持一第一清单L1以及一第二清单L2,其中第一清单L1是用来以写入时间的递增或是递减顺序来记录写入电路112所写入但尚未被更新电路116所更新的记忆区块的索引值,而第二清单L2则是用来以更新时间的递增或是递减顺序来记录已被更新电路116所更新的记忆区块的索引值。图7为检查电路114所记录的第一列表L1以及第二列表L2的范例的示意图。图中的示范性第一列表L1依序记录有索引值“3”、“1”和“2”,隐含代表写入电路112先将数据写入记忆区块BK3,再将数据写入记忆区块BK1,最后才将数据写入记忆区块BK2。而示范性第二列表L2依序记录有索引值“0”和“4”,隐含代表更新电路116先对记忆区块BK0进行更新,之后才更新记忆区块BK4。在第一清单L1的辅助之下,检查电路114得以了解记忆区块BK3是最早被写入数据的记忆区块,因此在记忆区块区块BK1、BK2和BK3的中是最有可能会发生数据保持干扰的记忆区块。同样的,在第二清单L2的辅助之下,检查电路114得以了解记忆区块BK0是最早被更新的记忆区块,因此在记忆区块BK0和BK4的中具有较高的机率会遭遇数据保持干扰。当快闪记忆装置100被启动时,检查电路114会控制其它电路118中的读取电路和错误检查及更正电路来读取记忆区块BK3中所储存的数据(例如一字符在线的数据),并且对从记忆区块BK3中所读取的数据执行一硬式译码操作;此外,当闪存装置100启动时(或是任何其它预定时间,又或者亦可以是当内存控制器102闲置时),检查电路114还可控制其它电路118中的读取电路和错误检查及更正电路来读取记忆区块BK0中所储存的数据(例如一字符在线的数据),并且对从记忆区块BK0中所读取的数据执行一硬式译码操作。假设对从记忆区块BK3所读取的数据执行的硬式译码失败时,会启动更新电路116来对记忆区块BK3执行上述更新操作。假设对从记忆区块BK0所读取的数据执行的硬式译码成功时,便不需对记忆区块BK0进行更进一步的数据保持恢复操作。当针对记忆区块BK3执行上述更新操作时,检查电路114会相对应地更新第一清单L1以及第二清单L2。图8为检查电路114所记录的第一列表L1以及第二清单L2更新后的范例的示意图。如图8所示,更新后的第一列表L1依序记录有索引值“1”和“2”,而更新后的第二列表L2依序记录有索引值“0”、“4”和“3”。因此,闪存装置100在下一次启动的时候,会检查储存在记忆区块BK1(依据第一列表L1中的记载,记忆区块BK1和记忆区块BK2中,记忆区块BK1较有可能会发生数据保持干扰)以及记忆区块BK0(依据第二列表L2中的记载,记忆区块BK0、记忆区块BK4和记忆区块BK3中,记忆区块BK0较有可能会发生数据保持干扰)中的数据。
假设从记忆区块BK0(依据第二列表L2中的记载,在所有被更新的记忆区块中,记忆区块BK0较有可能会发生数据保持干扰)读取的数据发生硬式译码错误,在一示范性设计中,更新电路116会被启动并再次对记忆区块BK0执行更新操作。在还一示范性设计中,可使用现有技术的数据保持恢复机制来把从记忆区块BK0恢复回来的数据程序化到一替代记忆区块中,并且抹除记忆区块BK0。
相较于将受到数据保持干扰的记忆区块的内容抹除的现有技术的数据保持恢复机制,本发明数据保持恢复机制会更新而非抹除受到数据保持干扰的记忆区块,这样一来,便不会增加程序化/抹除周期的数目。除此之外,现有技术的数据保持恢复机制是将受到数据保持干扰的记忆区块内的数据搬移到其它的记忆区块,然而本发明的数据保持恢复机制可更新受到数据保持干扰的记忆区块而无需移动数据,因此也就不需要额外地更新一逻辑-实体地址映像表(logical-to-physical address mapping table),所述逻辑-实体地址对应表可用于一记忆分页模式(page mode)或是一记忆区块模式(block mode)。具体而言,当在一记忆分页模式下使用所述逻辑-实体地址对应表时,所述逻辑-实体地址对应表是被参考来执行逻辑-实体分页转换(logical-to-physical page translation)。当在一记忆区块模式下使用所述逻辑-实体地址对应表时,所述逻辑-实体地址对应表是被参考来执行逻辑-实体记忆区块转换(logical-to-physical block translation)。
以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (6)

1.一种内存控制器,用于一闪存,其特征在于,包括:
一写入电路,耦接至所述闪存,用来执行一写入操作以将一输入数据储存至所述闪存中的一储存空间,所述写入操作包括有依序执行的一初始程序化操作、一第一次再程序化操作以及一第二次再程序化操作;
一检查电路,用来检查储存有所述输入数据的所述储存空间的可靠度,侦测已经储存有所述输入数据的所述储存空间是否遭遇数据保存干扰;以及
一更新电路,耦接至所述检查电路以及所述闪存,用来于所述储存空间遭遇到所述数据保存干扰,依据所述输入数据对所述储存空间执行一更新操作,所述更新操作包括有:
从所述储存空间恢复所述输入数据;以及
将从所述储存空间所恢复的所述输入数据程序化至所述储存空间中的原始储存位置,将从所述储存空间所恢复的所述输入数据程序化至所述储存空间中的所述原始储存位置是对所述储存空间进行的额外再程序化操作,不相同于所述初始程序化操作、所述第一次再程序化操作以及所述第二次再程序化操作;
其中,所述写入电路储存在所述储存空间中的所述输入数据是依据一第一参考临界电压初始设定来被读取,而所述更新电路储存在所述储存空间中的所述输入数据是依据一第二参考临界电压初始设定来被读取,且所述第一参考临界电压初始设定是不同于所述第二参考临界电压初始设定;以及,所述第二参考临界电压初始设定所对应的临界电压分布窄于所述第一参考临界电压初始设定所对应的临界电压分布。
2.如权利要求1所述的内存控制器,其特征在于,所述内存控制器所存取的所述储存空间是由多个N位多阶记忆单元所构成,且N是大于2的一正整数。
3.如权利要求1所述的内存控制器,其特征在于,所述第二参考临界电压初始设定中所定义的一最高参考临界电压值是大于所述第一参考临界电压初始设定中所定义的一最高参考临界电压值。
4.如权利要求1所述的内存控制器,其特征在于,在更新所述储存空间之后,所述更新电路会储存用以指示所述第二参考临界电压初始设定的一指标。
5.如权利要求1所述的内存控制器,其特征在于,所述内存控制器所存取的所述储存空间是所述闪存的一记忆区块中的一部分。
6.如权利要求5所述的内存控制器,其特征在于,当所述储存空间的可靠度达到一预定条件时,所述更新电路还用来更新所述闪存的所述记忆区块中的一其余部分。
CN201710725968.4A 2012-11-29 2013-11-29 闪存控制器 Active CN107608628B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261731459P 2012-11-29 2012-11-29
US61/731,459 2012-11-29
US13/967,371 US9627085B2 (en) 2012-11-29 2013-08-15 Refresh method for flash memory and related memory controller thereof
US13/967,371 2013-08-15
CN201310631675.1A CN103853582B (zh) 2012-11-29 2013-11-29 闪存更新方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201310631675.1A Division CN103853582B (zh) 2012-11-29 2013-11-29 闪存更新方法

Publications (2)

Publication Number Publication Date
CN107608628A CN107608628A (zh) 2018-01-19
CN107608628B true CN107608628B (zh) 2020-06-02

Family

ID=50773169

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201710725968.4A Active CN107608628B (zh) 2012-11-29 2013-11-29 闪存控制器
CN201310631675.1A Active CN103853582B (zh) 2012-11-29 2013-11-29 闪存更新方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201310631675.1A Active CN103853582B (zh) 2012-11-29 2013-11-29 闪存更新方法

Country Status (3)

Country Link
US (2) US9627085B2 (zh)
CN (2) CN107608628B (zh)
TW (1) TWI555023B (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229644B2 (en) * 2013-11-25 2016-01-05 Sandisk Technologies Inc. Targeted copy of data relocation
US10353598B2 (en) * 2014-10-06 2019-07-16 Sandisk Technologies Llc System and method for refreshing data in a memory device
US10042565B2 (en) * 2014-10-16 2018-08-07 Futurewei Technologies, Inc. All-flash-array primary storage and caching appliances implementing triple-level cell (TLC)-NAND semiconductor microchips
KR102644275B1 (ko) 2016-05-19 2024-03-06 삼성전자주식회사 리프레쉬 리드 동작을 수행하는 불휘발성 메모리 장치를 제어하는 메모리 콘트롤러의 동작 방법
CN107632902B (zh) * 2016-07-18 2021-03-30 深圳衡宇芯片科技有限公司 用于程序化失败时回复数据的方法、控制器及存储系统
US11955187B2 (en) * 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US10885991B2 (en) * 2017-04-04 2021-01-05 Sandisk Technologies Llc Data rewrite during refresh window
TWI628659B (zh) * 2017-05-04 2018-07-01 華邦電子股份有限公司 非揮發性記憶體裝置及其刷新方法
US10672742B2 (en) 2017-10-26 2020-06-02 Taiwan Semiconductor Manufacturing Co., Ltd. Semiconductor device and manufacturing method thereof
CN108804025B (zh) * 2018-03-07 2021-10-01 深圳忆联信息系统有限公司 一种降低闪存滞留错误的方法及固态硬盘
CN109144769A (zh) * 2018-07-20 2019-01-04 江苏华存电子科技有限公司 一种随机内存使用纠错码校验免去冗余储存单元的方法
US10783857B2 (en) 2018-08-02 2020-09-22 Dell Products, Lp Apparatus and method for fast memory validation in a baseboard management controller
TWI757634B (zh) * 2019-09-16 2022-03-11 旺宏電子股份有限公司 記憶體資料管理方法
US11010244B2 (en) 2019-09-16 2021-05-18 Macronix International Co., Ltd. Memory data management method
US10964402B1 (en) * 2020-02-19 2021-03-30 Sandisk Technologies Llc Reprogramming memory cells to tighten threshold voltage distributions and improve data retention
TWI777519B (zh) * 2021-04-26 2022-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
US11934696B2 (en) * 2021-05-18 2024-03-19 Microchip Technology Inc. Machine learning assisted quality of service (QoS) for solid state drives
US20220413761A1 (en) * 2021-06-25 2022-12-29 Western Digital Technologies, Inc. Data Retention-Specific Refresh Read
US11843393B2 (en) 2021-09-28 2023-12-12 Microchip Technology Inc. Method and apparatus for decoding with trapped-block management
TWI780967B (zh) * 2021-10-28 2022-10-11 旺宏電子股份有限公司 記憶體裝置及記憶體操作方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937082A (zh) * 2005-06-24 2007-03-28 旺宏电子股份有限公司 闪存的更新方法与感测放大器电路

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08147988A (ja) * 1994-11-17 1996-06-07 Sony Corp 半導体不揮発性記憶装置
KR100558339B1 (ko) * 2002-12-17 2006-03-10 주식회사 엑셀반도체 다층셀 플래시메모리의 데이터보존성 개선방법
KR100794664B1 (ko) * 2006-09-01 2008-01-14 삼성전자주식회사 플래시 메모리 장치 및 그것의 리프레쉬 방법
KR100816162B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 낸드 플래시 메모리 장치 및 셀 특성 개선 방법
US8060798B2 (en) 2007-07-19 2011-11-15 Micron Technology, Inc. Refresh of non-volatile memory cells based on fatigue conditions
KR101406279B1 (ko) * 2007-12-20 2014-06-13 삼성전자주식회사 반도체 메모리 장치 및 그것의 읽기 페일 분석 방법
US8938655B2 (en) * 2007-12-20 2015-01-20 Spansion Llc Extending flash memory data retension via rewrite refresh
US7859932B2 (en) * 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8243525B1 (en) * 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8380915B2 (en) * 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
KR101772578B1 (ko) 2011-04-19 2017-08-30 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
US9129699B2 (en) * 2011-04-28 2015-09-08 Hitachi, Ltd. Semiconductor storage apparatus and method including executing refresh in a flash memory based on a reliability period using degree of deterioration and read frequency
US20130031431A1 (en) * 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
KR20130049332A (ko) * 2011-11-04 2013-05-14 삼성전자주식회사 메모리 시스템 및 그것의 동작 방법
US9270296B1 (en) * 2013-11-13 2016-02-23 Western Digital Technologies, Inc. Method and system for soft decoding through single read

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1937082A (zh) * 2005-06-24 2007-03-28 旺宏电子股份有限公司 闪存的更新方法与感测放大器电路

Also Published As

Publication number Publication date
CN103853582B (zh) 2017-11-03
TWI555023B (zh) 2016-10-21
TW201421476A (zh) 2014-06-01
CN107608628A (zh) 2018-01-19
US9627085B2 (en) 2017-04-18
CN103853582A (zh) 2014-06-11
US20140146605A1 (en) 2014-05-29
US20170162271A1 (en) 2017-06-08

Similar Documents

Publication Publication Date Title
CN107608628B (zh) 闪存控制器
US9229644B2 (en) Targeted copy of data relocation
TWI569273B (zh) 非揮發性記憶體裝置讀取干擾管理方法
US9189313B2 (en) Memory system having NAND-type flash memory and memory controller with shift read controller and threshold voltage comparison module
US9159441B2 (en) Method of operating memory device assuring reliability and memory system
US8122295B2 (en) Memory systems and methods of detecting distribution of unstable memory cells
US9747173B2 (en) Data storage devices and data maintenance methods
KR20080069822A (ko) 멀티레벨 셀 플래시 메모리를 갖는 메모리 시스템 및그것의 프로그램 방법
KR100823170B1 (ko) 배드 블록을 싱글 레벨 셀 모드로 사용하는 메모리 시스템및 메모리 카드
US20100241929A1 (en) Semiconductor Memory Device for Performing Additional ECC Correction According to Cell Pattern and Electronic System Including the Same
KR20080035353A (ko) 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US9235509B1 (en) Write amplification reduction by delaying read access to data written during garbage collection
US20160216910A1 (en) Solving MLC NAND paired page program using reduced spatial redundancy
US10628247B2 (en) Flash memory testing according to error type pattern
CN112053733A (zh) 故障敏感存储器页面的选择性加速取样
US8924774B2 (en) Semiconductor memory device and method for operating the same
CN108154900B (zh) 一种缓解mlc闪存写干扰问题的方法
CN111290878B (zh) 用于刷新固件的副本的方法和系统及存储介质
CN115145754A (zh) 存储器装置中的错误处置流管理
CN106297881B (zh) 非挥发性存储器的健康管理
CN111475426B (zh) 管理闪存模块的方法及相关的闪存控制器与电子装置
US8885406B2 (en) Memory device, memory control device, and memory control method
CN112668062A (zh) 指示数据存储的完成的令牌
KR101653293B1 (ko) 플래시 메모리의 재생 방법 및 이에 관한 메모리 컨트롤러

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