闪存控制器的制作方法

文档序号:13512617阅读:125来源:国知局
原申请案的申请日是2013.11.29,申请号是201310631675.1,发明创造名称是”闪存更新方法以及闪存控制器”。本发明涉及闪存中的数据管理,尤其涉及一种闪存更新方法以及闪存控制器。
背景技术
::半导体内存装置依其原理可分为挥发性(volatile)内存装置以及非挥发性内存装置。挥发性内存装置可以快速地执行读/写操作,但在失去电力时便会失去所储存的数据,反的,非挥发性内存不需要靠电力来维持所储存的数据。所谓的闪存即是非挥发性内存的一种,具有高记忆单元集成密度(integrationdensity),因此,可以利用闪存来当作数据储存媒介,例如一固态硬盘(solid-statedrive,ssd)。随着闪存的进步,单一记忆单元能够储存一个以上的数据位,然而,在对能够储存多个数据位的快闪记忆单元进行程序化的时候,需要格外小心地控制分别对应于不同程序化数据值的临界电压分布值。具体来说,当闪存的集成密度增加时,构成闪存的记忆单元的最小特征尺寸(minimumfeaturesize)必然会降低,同时,闪存中的记忆单元的浮动闸极(floatinggate)之间的耦合效应也会增加,使得闪存的可靠度降低。此外,由于浮动闸极的尺寸会随着闪存的集成密度增加而缩小,数据保持干扰(data-retentiondisturbance)已成为设计上不得不解决的问题。在现有技术的设计中,当数据保持干扰在数据写入至一记忆区块后于所述记忆区块中发生,则需要靠复杂的软式译码算法(softdecodingalgorithm)并经过多次读取操作才能将数据恢复回来。在成功地恢复储存数据后,还需要在闪存中找一个替代记忆区块来存放刚才所恢复的数据,并抹除原本的记忆区块而成为空白记忆区块。不过,现有技术的数据保持恢复机制会增加程序化/抹除周期(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-retentiondisturbance)的问题。关于数据保持恢复机制的进一步的细节将说明如下。请参考图1,图1为本发明一实施例中的一闪存装置的示意图。闪存装置100包括有一内存控制器102以及一闪存104。内存控制器102是耦接至闪存104,用来控制闪存104的存取(即读和写)。内存控制器102具有一写入电路112、一检查电路114、一更新电路116以及其它电路118,其中其它电路118可包括一读取电路、一抹除电路、一错误检查以及更正(errorcheckingandcorrecting,ecc)电路等。写入电路112是耦接至闪存104,用来将一输入数据d_in储存至闪存104的一储存空间,其中所述储存空间是闪存104中一记忆区块(block)的一部分,例如一单一记忆分页(page)中的记忆单元或是位于单一字符线(wordline)上的记忆单元。检查电路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-basedreadoperation)来读取一指定记忆分页中的记忆单元122中所储存的数据;另外,可以对闪存104执行以内存分页为单位的写入操作(page-basedwriteoperation)来将输入数据程序化到一指定记忆分页中的记忆单元122中;又,可以对闪存104执行以记忆区块为单位的抹除操作(block-basederaseoperation)来抹除一指定记忆区块中的记忆单元122中所储存的数据。在此实施例中,每一记忆单元122可以是一n位多阶记忆单元(multi-levelcell,mlc),其中n是大于2的一正整数,例如,每一记忆单元122可以是一3位多阶记忆单元,又名三阶记忆单元(triple-levelcell,tlc)。相邻记忆单元的浮动闸极之间的耦合效应会造成临界电压分布的位移及/或扩展,而临界电压分布的位移及/或扩展会侵害读取边际(readmargin),因而导致读取数据的错误。要减轻相邻记忆单元的浮动闸极之间的耦合效应所造成的临界电压分布的位移及/或扩展,写入电路112是设置来通过一初始程序化操作以及所述初始程序化操作之后的至少一再程序化操作(reprogramoperation),来执行一写入操作。在闪存104是一三阶闪存的情况下,每一记忆单元122会被程序化在八种状态(state)的其中一种,以储存一3位数据。当写入电路112将输入数据d_in写入至闪存104的一储存空间(例如记忆区块bk0的字符线wl0中的记忆单元122)中,会使用一种基于再程序化的方法(reprogram-basedmethod)来对指定储存空间中的每一记忆单元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所读取到的数据进行一译码操作(例如一硬式译码操作(harddecodingoperation)或是一软式解碼操作)时,遭遇一译码失败(decodingfailure)或是发现到错误位数超过一临界值,检查电路114会判断所述储存空间中的记忆单元122遭受数据保持干扰,因此,一个基于更新的数据保存恢复机制(refresh-baseddata-retentionrecovery)便会被致能以恢复所述储存空间(例如记忆区块bk0中的字符线wl0)中所储存的数据。例如,所述错误检查以及更正电路可执行一复杂的译码算法(例如软式译码算法)并经过多次读取操作来恢复所储存的数据。一般来说,一个三阶记忆单元区块需要三个单阶记忆单元(single-levelcell,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启动(powerup)时,检查电路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-physicaladdressmappingtable),所述逻辑-实体地址对应表可用于一记忆分页模式(pagemode)或是一记忆区块模式(blockmode)。具体而言,当在一记忆分页模式下使用所述逻辑-实体地址对应表时,所述逻辑-实体地址对应表是被参考来执行逻辑-实体分页转换(logical-to-physicalpagetranslation)。当在一记忆区块模式下使用所述逻辑-实体地址对应表时,所述逻辑-实体地址对应表是被参考来执行逻辑-实体记忆区块转换(logical-to-physicalblocktranslation)。以上所述仅为本发明的较佳实施例,凡依本发明权利要求所做的均等变化与修饰,皆应属本发明的涵盖范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1