固态储存装置中已抹除区块的再验证方法与流程

文档序号:19179118发布日期:2019-11-20 00:49阅读:236来源:国知局
固态储存装置中已抹除区块的再验证方法与流程

本发明是有关于一种固态储存装置的控制方法,且特别是有关于一种固态储存装置中已抹除区块的再验证方法。



背景技术:

众所周知,固态储存装置(solidstatestoragedevice)已经非常广泛的应用于各种电子产品,例如sd卡、固态硬盘等等。

固态储存装置中包括一非挥发性记忆体(non-volatilememory)。当数据写入非挥发性记忆体后,一旦固态储存装置的电源被关闭,数据仍可保存在非挥发性记忆体中。快闪记忆体(flashmemory)为目前使用量最大的一种非挥发性记忆体,而快闪记忆体中又以反及闸快闪记忆体(nandflashmemory)的容量最大。

请参照图1,其所绘示为固态储存装置示意图。固态储存装置10包括:界面控制电路101以及非挥发性记忆体105。其中,非挥发性记忆体105中更包含记忆胞阵列(memorycellarray)109和阵列控制电路(arraycontrolcircuit)111。

固态储存装置10经由一外部总线12连接至主机(host)14,其中外部总线12可为usb总线、sata总线、pcie总线、m.2总线或者u.2总线等等。

再者,界面控制电路101经由一内部总线113连接至非挥发性记忆体105,用以根据主机14所发出的写入命令进一步操控阵列控制电路111,将主机14的写入数据存入记忆胞阵列109,以及根据主机14所发出的读取命令进一步操控阵列控制电路111,使得阵列控制电路111由记忆胞阵列109中取得读取数据,经由界面控制电路101传递至主机14。

基本上,界面控制电路101中有一组预设读取电压组(defaultreadvoltageset)。于读取周期(readcycle)时,界面控制电路101经由内部总线113,传送操作指令到非挥发性记忆体105内的阵列控制电路111,令其利用此预设读取电压组来读取非挥发性记忆体105中记忆胞阵列109之前所存入的数据。

再者,界面控制电路101中的错误校正码电路(简称ecc电路)104用来更正读取数据中的错误位元(errorbits),并且于更正完成后将正确的读取数据传递至主机14。详细说明如下:

根据每个记忆胞所储存的数据量,可进一步区分为每个记忆胞储存一位元的单层记忆胞(single-levelcell,简称slc记忆胞)、每个记忆胞储存二位元的多层记忆胞(multi-levelcell,简称mlc记忆胞)、每个记忆胞储存三位元的三层记忆胞(triple-levelcell,简称tlc记忆胞)以及每个记忆胞储存四位元的四层记忆胞(quad-levelcell,简称qlc记忆胞)。因此,记忆胞阵列109可为slc记忆胞阵列、mlc记忆胞阵列、tlc记忆胞阵列或者qlc记忆胞阵列。

在记忆胞阵列109里,每个记忆胞内皆包括一浮动栅极晶体管(floatinggatetransistor),而阵列控制电路111可控制热载子(hotcarrier)注入浮动栅极(floatinggate)的数量,来控制浮动栅极晶体管的储存状态。换言之,一个记忆胞内的浮动栅极晶体管可记录二种储存状态即为slc记忆胞;一个记忆胞内的浮动栅极晶体管可记录四种储存状态即为mlc记忆胞;一个记忆胞内的浮动栅极晶体管可记录八种储存状态即为tlc记忆胞;一个记忆胞内的浮动栅极晶体管可记录十六种储存状态即为qlc记忆胞。

请参照图2,其所绘示为理想状态下的tlc记忆胞储存状态示意图。tlc记忆胞可以根据热载子的注入量而呈现八个储存状态“erase”与“a”~“g”。在未注入热载子时,记忆胞可视为储存状态“erase”,而根据热载子注入浮动栅极的多寡,可再区分储存状态“a”~“g”。由图2可知,储存状态“g”的记忆胞具有较高的临限电压,储存状态“erase”的记忆胞具有较低的临限电压。

举例来说,记忆胞储存“111”的数据即视为储存状态“erase”,记忆胞储存“011”的数据即视为储存状态“a”,记忆胞储存“001”的数据即视为储存状态“b”,记忆胞储存“101”的数据即视为储存状态“c”,记忆胞储存“100”的数据即视为储存状态“d”,记忆胞储存“000”的数据即视为储存状态“e”,记忆胞储存“010”的数据即视为储存状态“f”,记忆胞储存“110”的数据即视为储存状态“g”。

一般而言,于编程周期(programcycle)时,若将多个记忆胞编程为相同的储存状态时,并非每个记忆胞的临限电压都会相同,而是会呈现一分布曲线(distributioncurve),且其分布曲线可对应至一中位临限电压。由图2可知,储存状态“erase”的中位临限电压为ver,储存状态“a”的中位临限电压为va,储存状态“b”的中位临限电压为vb,储存状态“c”的中位临限电压为vc,储存状态“e”的中位临限电压为ve,储存状态“f”的中位临限电压为vf,储存状态“g”的中位临限电压为vg。举例来说,在统计储存状态“a”的所有记忆胞的临限电压后,中位临限电压va的记忆胞数目最多。

在图2中,根据tlc记忆胞中的八个储存状态的分布曲线可决定一个预设读取电压组,此预设读取电压组中包括七个读取电压vra~vrg。也就是说,于读取周期(readcycle)时,界面控制电路101即提供预设读取电压组中的读取电压vra~vrg至阵列控制电路111,以检测记忆胞阵列109中tlc记忆胞的储存状态。

于读取周期时,阵列控制电路111至少需要进行三次读取步骤(readstep)后才能判定tlc记忆胞的储存状态。以下以读取储存状态“c”的tlc记忆胞来进行说明。

在第一读取步骤时,阵列控制电路111提供读取电压vrd至记忆胞阵列109,临限电压小于读取电压vrd而被开启的tlc记忆胞则被判定为储存状态“erase”、“a”、“b”或“c”。反之,临限电压大于读取电压vrd而无法被开启的tlc记忆胞被判定为储存状态“d”、“e”、“f”或“g”。

在第二读取步骤时,阵列控制电路111提供读取电压vrb至记忆胞阵列109,临限电压大于读取电压vrb而无法被开启的tlc记忆胞被判定为储存状态“b”或“c”。反之,临限电压小于读取电压vrb而被开启的tlc记忆胞则被判定为储存状态“erase”或“a”。

在第三读取步骤时,阵列控制电路111提供读取电压vrc至记忆胞阵列109,临限电压大于读取电压vrc而无法被开启的tlc记忆胞被判定为储存状态“c”。反之,临限电压小于读取电压vrc而被开启的tlc记忆胞则被判定为储存状态“b”。

由以上说明可知,预设读取电压组中的八个读取电压vra~vrg是用来决定tlc记忆胞储存状态的重要依据,而在读取周期的三次读取步骤中,会由八个读取电压中选择三个读取电压来决定tlc记忆胞的储存状态。

同理,针对slc记忆胞,利用预设读取电压组中的一个读取电压并进行一次读取步骤即可判断出slc记忆胞的二种储存状态。

针对mlc记忆胞,运用预设读取电压组的三个读取电压,并选择其中的二个读取电压来进行二次读取步骤即可判断出mlc记忆胞的四种储存状态。

针对qlc记忆胞,运用预设读取电压组的十五个读取电压,并选择其中的四个读取电压来进行四次读取步骤即可判断出qlc记忆胞的十六种储存状态。

另外,界面控制电路101以区块(block)为单位来抹除非挥发性记忆体105中的内容。当界面控制电路101欲抹除记忆胞阵列109中的一选定区块(selectedblock)的内容时,界面控制电路101会发出该选定区块的抹除指令(erasecommand)至非挥发性记忆体105。因此,于抹除周期(erasecycle)时,阵列控制电路111会将记忆胞阵列109中选定区块的所有记忆胞回复至未注入热载子的储存状态“erase”。其中,储存状态“erase”可称为抹除状态(erasestate)。

为了要确认选定区块中的所有记忆胞可以回复到储存状态“erase”,一种递增脉冲抹除技术(incrementalsteppulseerase,简称ispe抹除技术)被提出来,而阵列控制电路111利用ispe抹除技术来抹除选定区块。

请参照图3,其所绘示为ispe抹除技术示意图。ispe抹除技术是利用脉冲信号(pulsesignal)来将选定区块中的记忆胞回复到储存状态“erase”的技术。其中,抹除周期(erasecycle)包括多个抹除步骤(erasestep),每个抹除步骤中包括一抹除脉波区间(erasepulseperiod)以及一验证区间(verificationperiod)。

如图3所示,时间点ta至时间点tb为第一抹除步骤的抹除脉波区间(te1),阵列控制电路111提供振幅为vp1的抹除脉波至记忆胞阵列109以抹除选定区块中所有的记忆胞。

时间点tb至时间点tc为第一抹除步骤的验证区间(tv1),阵列控制电路111提供验证脉波至记忆胞阵列109,并根据选定区块所产生的输出电流来确认选定区块是否已经抹除成功。当阵列控制电路111确认抹除不成功时,则继续进行第二抹除步骤。

时间点tc至时间点td为第二抹除步骤的抹除脉波区间(te2),阵列控制电路111提供振幅为vp2的抹除脉波至记忆胞阵列109以抹除选定区块中所有的记忆胞。其中vp2>vp1。

时间点td至时间点te为第二抹除步骤的验证区间(tv2),阵列控制电路111提供验证脉波至记忆胞阵列109,并根据选定区块所产生的输出电流来确认选定区块是否已经抹除成功。当阵列控制电路111确认抹除不成功时,则继续进行第三抹除步骤。

时间点te至时间点tf为第三抹除步骤的抹除脉波区间(te3),阵列控制电路111提供振幅为vp3的抹除脉波至记忆胞阵列109以抹除选定区块中所有的记忆胞。其中vp3>vp2。

时间点tf至时间点tg为第三抹除步骤的验证区间(tv3),阵列控制电路111提供验证脉波至记忆胞阵列109,并根据选定区块所产生的输出电流来确认选定区块是否已经抹除成功。当阵列控制电路111确认抹除成功时,则结束抹除周期。

由以上的说明可知,于抹除周期时,阵列控制电路111至少执行一次抹除步骤。另外,在阵列控制电路111尚未确认选定区块已经抹除成功时,阵列控制电路111会提高抹除电压的振幅并进行下一次的抹除步骤,直到确认选定区块已经抹除成功为止。在图3中,阵列控制电路111于抹除周期中执行了三次抹除步骤后才确定选定区块已经抹除成功。

于确认选定区块已经抹除成功后,阵列控制电路111发出抹除完成信息(erasepassmessage)至界面控制电路101后,界面控制电路101即会将该选定区块记录为空白区块(blankblock)。于后续的编程周期时,该空白区块可用来储存主机14的写入数据。

然而,由于半导体制程的持续进步,记忆胞阵列109的结构越来越复杂,容量越来越高。由3维反及闸快闪记忆体(3dnandflashmemory)所构成的固态储存装置10已逐渐取代2维反及闸快闪记忆体(2dnamdflashmemory)所构成的固态储存装置10。

在实际的运用上,界面控制电路101发出抹除指令(erasecommand)至非挥发性记忆体105后,虽然阵列控制电路111确认选定区块已经成功抹除并发出抹除完成信息(erasepassmessage)至界面控制电路101。但是,选定区块中仍会有不少记忆胞仍旧未回复至储存状态“erase”。

如果该选定区块后续用来储存主机的写入数据,则在读取周期时会产生很多的错误位元(errorbit)。当该选定区块的错误位元过多时,界面控制电路101的ecc电路104无法校正这些错误位元,即会造成读取失败(readfail)。



技术实现要素:

本发明有关于一种固态储存装置中已抹除区块的再验证方法,该固态储存装置包括一界面控制电路与一非挥发性记忆体,且该非挥发性记忆体包括一阵列控制电路与一记忆胞阵列。其中,已抹除区块的再验证方法,包括下列步骤:针对一选定区块发出一抹除指令至该阵列控制电路;于收到一抹除完成信息后,判断该区块是否符合一设定条件;当该选定区块符合该设定条件时,将该选定区块记录为一好的区块;以及当该选定区块未符合该设定条件时,进行一选定区块再确认程序;其中,于该选定区块再确认程序中,读取该选定区块中的数据,并根据非抹除状态的记忆胞数目来将该选定区块记录为该好的区块或者一缺陷区块。

本发明有关于一种固态储存装置中已抹除区块的再验证方法,该固态储存装置包括一界面控制电路与一非挥发性记忆体,且该非挥发性记忆体包括一阵列控制电路与一记忆胞阵列。其中,已抹除区块的再验证方法,包括下列步骤:针对一选定区块发出一抹除指令至该阵列控制电路;于收到一抹除完成信息后,进行一选定区块再确认程序;其中,于该选定区块再确认程序中,读取该选定区块中的数据,并根据非抹除状态的记忆胞数目来将该选定区块记录为该好的区块或者一缺陷区块。

为了对本发明的上述及其他方面有更佳的了解,下文特举实施例,并配合所附图式详细说明如下。

附图说明

图1为固态储存装置示意图。

图2为理想状态下的tlc记忆胞储存状态示意图。

图3为ispe抹除技术示意图。

图4为记忆胞阵列的示意图。

图5为本发明已抹除区块的再验证方法。

图6为抹除选定区块后其储存状态“erase”的分布曲线示意图。

具体实施方式

以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。

请参照图4,其所绘示为记忆胞阵列的示意图。m×n记忆胞阵列109包括m条字元线wl(wl1~wlm)以及n条位元线bl(bl1~bln)。每一条字元线可以对应至一行的n记忆胞。再者,每一行的n个记忆胞对应至n条位元线。以字元线wl2为例,字元线wl2可以对应至一行的n个记忆胞c21~c2n。再者,记忆胞c21~c2n接对应至n条位元线bl1~bln。

再者,记忆胞阵列109中的一个区块中包括多条字元线所对应的所有记忆胞。举例来说,256条字元线所对应的所有记忆胞组成一个区块。因此,以tlc记忆胞来说,一个区块的大小即为(3×256×n)位元。

请参照图5,其所绘示为本发明已抹除区块的再验证方法。首先,界面控制电路101针对一选定区块发出一抹除指令至阵列控制电路111,并开始计算区块抹除时间(blockerasetime)(步骤s502)。

当界面控制电路111收到阵列控制电路111的抹除完成信息(步骤s504)时,判断区块抹除时间是否大于一临限时间(步骤s506)。当区块抹除时间未大于临限时间(步骤s506)时,将选定区块记录为好的区块(goodblock)(步骤s520)。反之,当判断区块抹除时间大于临限时间(步骤s506)时,则进入选定区块再确认程序。

基本上,阵列控制电路111能够在短时间内抹除完成选定区块,代表该选定区块的状态尚佳。因此,该选定区块不需要进行选定区块再确认程序,直接将该选定区块设定为好的区块,而好的区块可直接做为空白区块用以储存后续主机14输出的写入数据。

反之,当阵列控制电路111需要较长的时间抹除选定区块时,代表该选定区块的状态可能会有问题。因此,界面控制电路101会进行选定区块再确认程序。

在选定区块再确认程序中,界面控制电路101读取该选定区块中的数据,并根据非抹除状态的记忆胞数目来将该选定区块记录为好的区块或者缺陷区块。其中,界面控制电路101可以根据一条字元线中非抹除状态的记忆胞数目来将选定区块记录为好的区块或者缺陷区块。或者,界面控制电路101可以根据选定区块中非抹除状态的记忆胞总数目来决定该选定区块记录为好的区块或者缺陷区块。以tlc记忆胞为例,储存状态“erase”即为抹除状态,而储存状态“a”~“g”则为非抹除状态。

根据本发明的实施例,在选定区块再确认程序中,界面控制电路101需要逐一的确认选定区块中每一条字元线上所有记忆胞的储存状态。当选定区块中任一条字元线中的非抹除状态的记忆胞数目大于一临限数目时(thresholdnumber),将该选定区块记录为该缺陷区块。以及,当选定区块中每一条字元线中的非抹除状态的记忆胞数目皆未大于该临限数目时,将该选定区块记录为该好的区块。以下详细说明之。

于进行选定区块再确认程序时,设定x=1(步骤s508)。接着,读取选定区块第x条字元线上的所有记忆胞,并计算非抹除状态的记忆胞数目(步骤s510)。当非抹除状态的记忆胞数目大于一临限数目(步骤s512)时,将选定区块记录为缺陷区块(步骤s514)。

再者,当非抹除状态的记忆胞数目未大于一临限数目(步骤s512)且选定区块尚未全部读取完成(步骤s516)时,设定x=x+1(步骤s518)并回到步骤s510。反之,当选定区块已全部读取完成(步骤s516)时,则将选定区块记录为好的区块(步骤s520)。也就是说,选定区块的所有字元线所对应的记忆胞皆被读取并进行确认后,即可记录选定区块为好的区块。

根据本发明的实施例,当选定区块被设定为缺陷区块时,代表该缺陷区块中具有过多非抹除状态的记忆胞。因此,被界面控制电路101记录为缺陷区块后,这些区块不会再被用来储存主机14输出的写入数据,如此可以有效地防止读取失败(readfail)的发生。

在上述的实施例中,以选定区块的一条字元线中,非抹除状态的记忆胞数目来作为判断缺陷区块的依据。当然,本发明也可以适当地修改。

举例来说,在选定区块再确认程序中,也可以直接计算该选定区块中非抹除状态的记忆胞总数。如果非抹除状态的记忆胞总数大于一预设数目时,则将选定区块记录为缺陷区块。

请参照图6,其为抹除选定区块后其储存状态“erase”的分布曲线示意图。于选定区块再确认程序中,当阵列控制电路111将读取电压vra提供至记忆胞阵列109以读取选定区块中所有记忆胞的储存状态时,a区域的记忆胞会被判定为非抹除状态。如果a区域中的记忆胞数目大于预设数目时,则此选定区块会被记录为缺陷区块。

根据本发明的实施例,当固态储存装置10在制造完成尚未出厂时,可以利用本发明所揭露的技术来进行测试,并记录缺陷区块。举例来说,当固态储存装置10出厂前的测试阶段时,界面控制电路101可抹除记忆胞阵列109中的所有区块。之后,所有的区块皆进行一次选定区块再确定程序。也就是说,于出厂前的测试阶段,不论区块的特性好坏,皆进行选定区块再确认程序。此时,界面控制电路101发出抹除指令并抹除选定区块后,直接进行图5中步骤s508~s520即可。

再者,当固态储存装置10出厂之后,在使用者操作的过程,为了要让固态储存装置10有较佳的效率。界面控制电路101会根据抹除时间来选择特性较差的选定区块来进行选定区块再确认程序。亦即,固态储存装置10出厂之后,界面控制电路101即进行图5中所揭露的所有步骤。

另外,在上述图5的实施例中,以区块抹除时间作为设定条件。当然,本发明也可以根据其他设定条件来判断是否进行选定区块再确认程序。举例来说,界面控制电路101将选定区块的区块抹除次数(blockerasecount)作为设定条件,并据以决定是否进行选定区块再确认程序。当选定区块的区块抹除次数未大于一临限次数时(thresholdcount),则直接将选定区块设定为好的区块。反之,当选定区块的区块抹除次数大于临限次数时,则进行选定区块再确认程序。或者,当选定区块的区块抹除次数大于临限次数时,且此区块抹除时间大于临限时间,两条件均成立时才进入选定区块再确认程序;而两条件只要其中之一不成立时,则将选定区块设定为好的区块。

另外,当固态储存装置10的记忆胞阵列109经过多次读取、编程、抹除之后,其特性会逐渐劣化。此时,缺陷区块的数目会越来愈多。因此,在ecc电路104可以成功校正错误位元的情况下,界面控制电路101可以根据记忆胞阵列109劣化程度来动态地调整读取电压vra,例如增加读取电压vra。如此,可以有效地减少缺陷区块的数目,并使得固态储存装置10的寿命可以延长。

由以上的说明可知,本发明提出一种固态储存装置中已抹除区块的再验证方法。相较于现有固态储存装置收到抹除完成信息(erasepassmessage)后,直接将选定区块记录为空白记忆胞。在本发明的固态储存装置中,界面控制电路收到抹除完成信息后,会再根据设定条件来选择性地进行选定区块再确认程序。之后,根据判断的结果,将选定区块记录为好的区块或者缺陷区块。如此可以有效地防止读取失败(readfail)的发生。

综上所述,虽然本发明已以实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视后附的申请专利范围所界定者为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1