固态储存装置及其状态预测方法与流程

文档序号:13139397阅读:218来源:国知局
本发明涉及一种固态储存装置及其控制方法,且特别涉及一种固态储存装置及其状态预测方法。
背景技术
::众所周知,固态储存装置(solidstatedevice)已经非常广泛的应用于各种电子产品,例如sd卡、固态硬碟等等。一般来说,固态储存装置是由控制器以及非挥发性记忆体(non-volatilememory)组合而成。请参照图1,其所绘示为固态储存装置示意图。固态储存装置10经由一外部总线12连接至主机(host)14,其中外部总线12可为usb总线、sata总线、pcie总线等等。再者,固态储存装置10中包括一控制器101与一非挥发性记忆体105。其中,控制器101经由一内部总线107连接至非挥发性记忆体105,用以根据主机14所发出的命令将接收的写入数据存入非挥发性记忆体105,或者由非挥发性记忆体105中取得读取数据并传递至主机14。基本上,控制器101中有一组预设读取电压组(defaultreadvoltageset)。于读取周期(readcycle)时,控制器101利用预设读取电压组来判断非挥发性记忆体105中的读取数据。再者,控制器101中的错误校正码电路(简称ecc电路)104是用来更正读取数据中的错误位元(errorbits),并且于更正完成后将正确的读取数据传递至主机14。另外,当ecc电路104无法成功地校正读取数据中所有的错误位元时,则无法输出正确的读取数据至主机14。此时,控制器101中的重试表106将提供其他的重试读取电压组(retryreadvoltageset),使控制器101采用重试读取电压组来对非挥发性记忆体105进行读取重试(readretry)。详细说明如下:非挥发性记忆体105(例如是快闪记忆体)由多个晶胞排列成一记忆体阵列(memoryarray),而每个晶胞内包括一个浮动栅极晶体管(floatinggatetransistor)。根据每个晶胞(cell)所储存的数据量,快闪记忆体可进一步区分为每个晶胞储存一位元的单层晶胞(single-levelcell,简称slc)快闪记忆体、每个晶胞储存二位元的多层晶胞(multi-levelcell,简称mlc)快闪记忆体与每个晶胞储存三位元的三层晶胞(triple-levelcell,简称tlc)快闪记忆体。浮动栅极晶体管中的浮动栅极(floatinggate)可以储存热载子(hotcarrier),而根据热载子储存量的多寡可决定该浮动栅极晶体管的临限电压(thresholdvoltage,简称vth)。也就是说,具有较高的临限电压的浮动栅极晶体管需要较高的栅极极电压(gatevoltage)来开启(turnon)浮动栅极晶体管;反之,具有较低的临限电压的浮动栅极晶体管则可以用较低的栅极极电压来开启浮动栅极晶体管。因此,于非挥发性记忆体105的编程周期(programcycle)时,利用控制器101控制注入浮动栅极的热载子量,即可改变其临限电压。而在读取周期(readcycle)时,固态储存装置10中的控制器101提供读取电压至浮动栅极晶体管的栅极极,并根据浮动栅极晶体管是否能被开启(turnon)来判断其储存状态。请参照图2a,其所绘示为mlc快闪记忆体中的储存状态与临限电压关系示意图。基本上,mlc快闪记忆体的一个晶胞可以根据不同的热载子注入量而呈现四个储存状态e、a、b、c。在未注入热载子时,晶胞可视为储存状态e,而随着热载子注入的量的多寡,可再区分为a、b、c三种储存状态。举例来说,储存状态c的晶胞具有最高的临限电压准位,储存状态e的晶胞具有最低的临限电压准位。再者,当晶胞经过抹除周期之后,皆会回复至未注入热载子的储存状态e。再者,slc快闪记忆体的一个晶胞可以呈现二个储存状态,而tlc快闪记忆体的一个晶胞可以呈现八个储存状态。而以下皆以mlc快闪记忆体所组成的非挥发性记忆体105为例来说明读取数据的流程,当然类似的方式也可以运用至slc与tlc快闪记忆体。一般而言,于编程周期时,若将多个晶胞编程为相同的储存状态时,并非每个晶胞的临限电压都会相同,而是会呈现一分布曲线(distributioncurve),且其分布曲线可对应至一中位临限电压。由图2a可知,储存状态e的中位临限电压为vthe(例如0v),储存状态a的中位临限电压为vtha(例如10v)、储存状态b的中位临限电压为vthb(例如20v)、储存状态c的中位临限电压为vthc(例如30v)。举例来说明,在统计储存状态a的所有晶胞的临限电压后,具中位临限电压vtha(例如10v)的晶胞数目最多。如图2a所示,根据mlc快闪记忆体中各个储存状态的分布曲线即可据以产生三个读取电压vra、vrb、vrc作为一读取电压组(readvoltageset)。而于读取周期时,控制器101即可依序提供读取电压组的三个读取电压至mlc快闪记忆体,用以检测mlc快闪记忆体中晶胞的储存状态。举例来说,当提供读取电压vrb至非挥发性记忆体105后,可以决定晶胞的最高位元(mostsignificantbit,msb)。假设晶胞的临限电压小于读取电压vrb而可以被开启,则控制器101将该晶胞的msb判定为“1”;假设晶胞的临限电压大于读取电压vrb无法被开启,则控制器101将该晶胞的msb判定为“0”。相同地,提供读取电压vra与vrc至非挥发性记忆体105后,即可以决定晶胞的最低位元(leastsignificantbit,lsb)。因此,如图2a所示,控制器101以“11”来代表储存状态e、以“10”来代表储存状态a、以“00”来代表储存状态b、以“01”来代表储存状态c。同理,控制器101可以利用一个读取电压来决定slc快闪记忆体中的二个储存状态。或者,控制器101可以利用七个读取电压作为一个读取电压组,用来决定tlc快闪记忆体中的八个储存状态。由以上的说明可知,读取电压vra、vrb、vrc是用来决定晶胞储存状态的重要依据。然而,当非挥发性记忆体105使用了一段时间之后,晶胞的特性会改变,使得每个储存状态的分布曲线(distributioncurve)改变且中位临限电压也会产生偏移。在此状况下,若利用原先的读取电压vra、vrb、vrc来读取非挥发性记忆体105中的数据时,可能会产生过多的错误位元(errorbit),使得ecc电路104无法校正所有的错误位元,并且无法输出正确的读取数据至主机14。因此,现有现有的控制器101中会有一重试表106,其记录多个重试读取电压组。当控制器101确认需进行读取重试(readretry)时,控制器101于重试表106中获得另一重试读取电压组的三个读取电压vra’、vrb’、vrc’,并提供至非挥发性记忆体105以重新读取数据。请参照图2b,其所绘示为现有现有固态储存装置的错误更正流程示意图。于读取周期时,控制器101先进行解码流程(decodingprocess)a,其为利用预设读取电压组来进行硬式解码。于进行解码流程a时,控制器101提供预设读取电压组至非挥发记忆体105的一个区块(block)以获得该区块内的读取数据,并利用ecc电路104中的硬式解码法(harddecodingmethod)来校正读取数据。当读取数据中的错误位元可以被更正时,代表通过(pass)解码流程a而解码成功。因此,控制器101即可将正确的读取数据传递至主机14。反之,当读取数据中的错误位元无法被更正时,将无法获得正确的读取数据,代表解码流程a失败(fail),因此控制器101进入读取重试(readretry)。控制器101进入读取重试时,先进行解码流程b。解码流程b,其为利用重试读取电压组来进行硬式解码法。举例来说,重试表106中储存m个重试读取电压组运用于硬式解码法,而控制器106由重试表106取得第一重试读取电压组vra’、vrb’、vrc’。接着,利用ecc电路104中的硬式解码法来校正读取数据。当读取数据中的错误位元可以被更正时,代表通过(pass)解码流程b而解码成功,并可将正确的读取数据传递至主机14。反之,当读取数据中的错误位元无法被更正时,代表无法通过(fail)解码流程b。此时,控制器101须要再次由重试表106中获得第二重试读取电压组vra”、vrb”、vrc”,再次判断能否解码成功。由于重试表106中储存m个重试读取电压组。只要控制器101利用其中的一个重试读取电压组而能够解码成功时,即代表通过(pass)解码流程b。反之,如果控制电路101利用m组重试读取电压组皆无法解码成功时,即代表解码流程b失败(fail)。因此,控制器101进行解码流程c。明显地,解码流程b所需的时间大于解码流程a。控制器101进行解码流程c,其为利用重试读取电压组来进行软式解码法(softdecodingmethod)。相较于硬式解码方法,软式解码法具有更佳的错误更正能力,但是需要同时利用多笔重试读取电压组才能够获得一笔读取数据。因此,软式解码法会更耗时,意即解码流程c所需的时间大于解码流程b。举例来说,重试表106中另储存n组重试读取电压组用于软式解码法。同理,只要控制器101利用其中的一个重试读取电压组而能够解码成功时,即代表通过(pass)解码流程c。反之,如果控制电路101利用n组重试读取电压组皆无法解码成功时,即代表解码流程c失败(fail)。因此,控制器101确定无法获得正确的读取数据,并且回复主机14解码失败。根据现有固态储存装置的错误更正流程可知,当解码流程a失败后,控制器101会进入读取重试(readretry)。而读取重试时,控制器101需要先进行解码流程b。再者,于确认解码流程b失败后,控制器101继续进行解码流程c。另外,当控制器101确认解码流程c失败后,回复主机14解码失败。再者,现有重试表106中的n个重试读取电压组是由非挥发性记忆体105的制造商所提供。而固态储存装置10进入读取重试的解码流程b时,控制器101会按照n个重试读取电压组储存于重试表106中的顺序,依次提供一个重试读取电压组至非挥发性记忆体105。明显地,在进行解码流程b的过程,控制器101仅能根据重试表106的顺序来提供重试读取电压组至非挥发性记忆体105,其并无法直接得到适合的重试读取电压组,因此控制器101会耗费相当长的时间提供不适合的重试读取电压组至非挥发性记忆体105。同理,固态储存装置10进入读取重试的解码流程c时,也会有上述的情况发生,导致整个固态储存装置10的错误更正流程耗费相当长的时间,使得固态储存装置10的读取速度(readspeed)大幅度地下降。技术实现要素:本发明有关于一种固态储存装置。该固态储存装置包括:一非挥发性记忆体,包括一第一区块;以及一控制器,连接至该非挥发性记忆体,该控制器中包括一方程式储存电路,其中该方程式储存电路中储存多个预测方程式;其中,该控制器根据该第一区块所对应的多个状态参数搭配该些预测方程式中的一第一预测方程式,用以预测该第一区块的一读取电压偏移。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。附图说明图1所绘示为现有固态储存装置示意图;图2a所绘示为mlc快闪记忆体中的储存状态与临限电压关系示意图;图2b所绘示为现有固态储存装置的错误更正流程示意图;图3所绘示为本发明固态储存装置示意图;图4a所绘示为本发明的非挥发性记忆体的信息表的建立流程图;图4b所绘示为本发明的非挥发性记忆体的信息表的一个实施例;图5所绘示为本发明的非挥发性记忆体的信息表的另一个实施例。具体实施方式下面结合附图对本发明的结构原理和工作原理作具体的描述:本发明提出一种固态储存装置及其状态预测方法。于固态储存装置出厂之前,先对非挥发性记忆体搜集各种状态参数,并利用机器学习演算法(machinelearningalgorithm)找出多个关于非挥发性记忆体的预测方程式,并记录于固态储存装置中。当固态储存装置出厂之后,根据即时的状态参数搭配相关的预测方程式,即可快速地预测出非挥发性记忆体现在与未来的读取电压组以及适合的解码流程。另外,以下所述的解码流程a、解码流程b与解码流程c相同于图2b。请参照图3,其所绘示为本发明固态储存装置示意图。固态储存装置30经由一外部总线32连接至主机(host)34,其中外部总线32可为usb总线、sata总线、pcie总线等等。再者,固态储存装置30中包括一控制器301与一非挥发性记忆体305。其中,控制器301经由一内部总线307连接至非挥发性记忆体305,用以根据主机34所发出的命令将接收的写入数据存入非挥发性记忆体305,或者由非挥发性记忆体305中取得读取数据并传递至主机34。再者,控制器301中更包括一错误校正码电路(ecc电路)304与一方程式储存电路(functionstoragecircuit)306。ecc电路304可用来更正读取数据中的错误位元(errorbits),并且于更正完成后将正确的读取数据传递至主机34。另外,方程式储存电路306中储存多个预测方程式(predictionfunction)。以下介绍预测方程式的建立以及运用的方法。众所周知,固态储存装置30出厂并经过多次编程与抹除之后,非挥发性记忆体305中每个晶胞储存状态的分布曲线会改变,且中位临限电压也会产生偏移,并导致读取失败。基本上,非挥发性记忆体305有许多失败模式(failuremode)会造成读取失败,例如编程干扰(programdisturb)模式、数据维持(dataretention)模式及读取干扰(readdisturb)模式等。非挥发性记忆体305经过多次的编程与抹除之后,会影响晶胞的性能而使得晶胞中的储存状态被误判而导致读取失败,此种读取失败模式即为编程干扰模式。同理,当晶胞被编程后,读取的次数多寡也会影响晶胞的性能,并使得晶胞中的储存状态被误判而导致读取失败,此种读取失败模式即为读取干扰模式。再者,当晶胞被编程之后,随着数据储存时间的增长,晶胞中的热载子可能逐渐流失而使得晶胞中的储存状态被误判而导致读取失败,此种读取失败模式即为数据维持模式。针对非挥发性记忆体305的各种状况,固态储存装置30的设计者于出厂前搜集针对非挥发性记忆体305内各个区块(block)的多个状态参数,并形成一非挥发性记忆体的信息表(informationtable)作为数据库,而设计者可根据信息表的内容来获得多个预测方程式。其中,状态参数可为区块中所记录的编程次数(programcount)、抹除次数(erasecount)、编程时间(programtime)、抹除时间(erasetime)、错误位元(errorbit)、温度、读取次数(readcount)、直方图参数(histogramparameter)及读取电压间隔等等,其中直方图参数是指在两个读取电压之间的晶胞数目,读取电压间隔是指该两个读取电压之间的大小差异。另外,于建立非挥发性记忆体的信息表(informationtable)的同时,控制器301更针对每个区块进行读取电压组校正以及解码流程判断,其中读取电压组校正包含了用于硬式解码法的硬式读取电压、软式解码法的软式读取电压及对数概似值比(llr(log-likelihoodratio)),而每个区块校正后的读取电压组以及对应的解码流程也可作为状态参数。请参照图4a,其所绘示为本发明的非挥发性记忆体的信息表的建立流程图。非挥发性记忆体中具有n个区块,首先,设定x=1(步骤s402)。接着,读取第x区块中所记录的状态参数(步骤s404);校正第x区块,并获得校正后的状态参数(步骤s406);以及,记录第x区块中所有的状态参数(步骤s408)。当x未大于n时(步骤s410),将x增加1并回到步骤s404;当x大于n时(步骤s410),结束流程。由图4a的流程可知,非挥发性记忆体的信息表中将会记录n笔区块的状态参数。此外,在图4a的流程中是从第一区块依序递增到第n区块来获得各区块的状态参数,然而亦可从第n区块依序递减到第一区块来获得各区块的状态参数,只要能获得非挥发性记忆体中所有区块的状态参数即可。而图4a的流程步骤是在固态储存装置30闲置时才执行,避免对读取或写入数据造成干扰。请参照图4b,其所绘示为本发明的非挥发性记忆体的信息表的一个实施例。其中,状态参数仅列出编程时间(pt)、抹除时间(et)、错误位元(eb)、读取电压偏移(vrb)与解码流程(dp),但本发明不以此为限,还可以包含编程次数、抹除次数、温度、读取次数、直方图参数及读取电压间隔等状态参数。以mlc快闪记忆体所组成的非挥发性记忆体305为例,状态参数中更可以列出其他读取电压vra与vrc的偏移。于固态储存装置30出厂之前,设计者根据图4a所示之流程,对非挥发性记忆体305搜集n个区块所对应的状态参数。如图4b的非挥发性记忆体的信息表所示,共搜集了n个区块所对应的状态参数。基本上,区块数目n数字越高,可获得越高的预测结果,本发明至少搜集了上万个区块的状态参数。以第一区块(block_1)为例来做说明,第一区块(block_1)的编程时间为1894(μs)、抹除时间5615(μs)、错误位元55、读取电压偏移(vrb)为-3、利用解码流程a即可解码成功。其中,读取电压偏移(vrb)-3,代表读取电压偏移(vrb)相对于预设读取电压减少了3个电压单位,该电压单位为各个非挥发性记忆体厂商所自订,一般约为10mv~100mv。因此当电压单位为10mv时,读取电压偏移(vrb)为-3,代表读取电压偏移相对于预设读取电压减少了30mv。同理,控制器301也可以利用相同的方式来建立其他区块(block_2~block_n)的状态参数,并完成非挥发性记忆体的信息表。当非挥发性记忆体的信息表建立完成后,即可利用机器学习演算法(machinelearningalgorithm)来找出即时读取电压预测方程式(currentreadvoltagepredictionfunction)式以及即时解码流程预测方程式(currentdecodingprocesspredictionfunction),该即时读取电压预测方程式可用来预测硬式解码法或软式解码法所需要的参数,用以配合所预测的解码流程。举例来说,将编程时间(pt)、抹除时间(et)、错误位元(eb)作为输入项(inputterm),将即时读取电压偏移(vrb)作为输出项(outputterm)。而根据利用线性回归法(linearregression)来获得即时读取电压预测方程式并记录于方程式储存电路306中。再者,即时读取电压预测方程式为编程时间(pt)、抹除时间(et)与错误位元(eb)的函数。亦即,vrb(pt,et,eb)=c1·pt+c2·et+c3·eb,且c1、c2、c3为系数。当然,本发明并不限定于利用线性回归法来获得即时读取电压预测方程式。也可以利用拉索回归法(lassoregression)或者瑞吉回归法(ridgeregression)来获得即时读取电压预测方程式。相同地,将编程时间(pt)、抹除时间(et)、错误位元(eb)作为输入项(inputterm),将即时解码流程(dp)作为输出项(outputterm)。接着,利用支持向量机(supportvectormachine)即可获得即时解码流程预测方程式并记录于方程式储存电路306。同理,即时解码流程预测方程式为编程时间(pt)、抹除时间(et)与错误位元(eb)的函数。当固态储存装置30出厂之后,即可根据非挥发性记忆体305中区块内即时的状态参数,搭配预测方程式而预测出该区块即时的读取电压偏移以及适用的解码流程。举例来说,当固态储存装置30出厂后,非挥发性记忆体305的一特定区块发生读取失败时,控制电路301可将该特定区块所对应的状态参数(例如,区块编程时间、区块抹除时间、错误位元)代入即时读取电压预测方程式以及即时解码流程预测方程式,并预测该特定区块即时的读取电压偏移以及适用的解码流程。而控制器301即根据即时读取电压偏移与解码流程快速地获得正确的读取数据,并且传送至主机34。相较于现有的读取重试(readretry),可以大幅度地节省重试的时间,增加固态储存装置30的效能。举例来说,当控制器301预测该特定区块适用于解码流程c,则控制器301将不进行解码流程b,直接以解码流程c来获得正确的读取数据。本发明除了可以对非挥发性记忆体305的读取电压以及解码流程进行即时预测之外,更可以对非挥发性记忆体305未来的状态进行预测。以图4b的信息表为例来继续说明。当图4b的信息表完成后,将受测试的非挥发性记忆体305放置2个月,或者模拟放置2个月后的情境。之后,继续搜集非挥发性记忆体305各区块所对应的状态参数。请参照图5,其所绘示为本发明的非挥发性记忆体的信息表的另一个实施例。以第一区块(block_1)为例来做说明,于第一区块(block_1)受测的时间点2个月之后,对第一区块(block_1)再次进行读取电压校正以及对应的解码流程判断。经过读取电压校正后,2个月读取电压偏移(vrb’)为-5、利用解码流程a可解码成功。换言之,第一区块(block_1)受测后2个月,读取电压偏移(vbr’)更大,利用解码流程a尚可以解码成功。同理,以第四区块(block_4)受测的时间点2个月之后,对第四区块(block_4)再进行读取电压校正以及对应的解码流程判断。经过读取电压校正后,2个月读取电压偏移(vrb’)为-15、利用解码流程a-c仍无法解码成功,而被判定为解码失败。换言之,第四区块(block_4)受测后2个月,第四区块(block_4)已无法正常存取。相同的方式,根据图5之信息表,即可利用机器学习演算法来找出未来读取电压偏移预测方程式(futurereadvoltagepredictionfunction)式以及未来解码流程预测方程式(futuredecodingprocesspredictionfunction)。举例来说,将编程时间(pt)、抹除时间(et)、错误位元(eb)作为输入项(inputterm),将未来读取电压偏移(vrb’)作为输出项(outputterm)。之后,根据利用线性回归法来获得未来读取电压偏移预测方程式并记录于方程式储存电路306中。再者,未来读取电压偏移预测方程式为编程时间(pt)、抹除时间(et)与错误位元(eb)的函数。亦即,vrb(pt,et,eb)=c1·pt+c2·et+c3·eb,且d1、d2、d3为系数。当然,本发明并不限定于利用线性回归法来获得未来读取电压偏移预测方程式。也可以利用拉索回归法(lassoregression)或者瑞吉回归法(ridgeregression)来获得未来读取电压偏移预测方程式。当然,除了2个月之外,本发明也可以在受测时间点之后的任意未来时间点(例如1个月或者6个月后)进行读取电压以及解码流程的校正。相同地,将编程时间(pt)、抹除时间(et)、错误位元(eb)作为输入项(inputterm),将2个月解码流程(dp’)作为输出项(outputterm)。接着,利用支持向量机即可获得未来解码流程预测方程式并记录于方程式储存电路306。同理,未来解码流程预测方程式为编程时间(pt)、抹除时间(et)与错误位元(eb)的函数。同理,当固态储存装置30出厂之后,即可根据非挥发性记忆体305中区块内的状态参数,搭配预测方程式而预测出该区块未来的读取电压偏移以及未来适用的解码流程。运用未来读取电压偏移预测方程式或者未来解码流程预测方程式可以预测区块未来的状态,因此可以有效地提高固态储存装置30的读取速度,简单说明如下。举例来说,控制器301将一特定区块所对应的状态参数(例如,区块编程时间、区块抹除时间、错误位元)代入未来解码流程预测方程式后,预测该特定区块即将于2个月后需要利用解码流程b或者解码流程c才可以解码成功。由于解码流程b与解码流程c需要耗费较多的解码时间,而为了使固态储存装置30维持在较佳的读取速度,控制器301可预先将该特定区块中的数据搬移至状况较佳的其他区块(意即,利用解码流程a即可解码成功的区块),如此可以防止固态储存装置30的读取速度下降。或者,控制电路301将一特定区块所对应的状态参数(例如,区块编程时间、区块抹除时间、错误位元)代入未来解码流程预测方程式后,预测出2个月后该特定区块会解码失败(fail)。则控制器301可以预先将该特定区块中的数据另外储存于非挥发性记忆体305中的其他区块(例如备用区块(spareblock)),防止区块中的数据遗失。再者,本发明的信息表中更可以建立多组未来的读取电压偏移预测方程式。例如2个月读取电压偏移预测方程式、4个月读取电压偏移预测方程式、6个月读取电压偏移预测方程式、12个月读取电压偏移预测方程式。此外,在固态储存装置30关机(powerdown)前,先储存一个或多个参考区块的状态参数。之后,在固态储存装置30开机(poweron)后,先校正参考区块并获得读取电压偏移。接着,即可判断该读取电压偏移较符合上述哪一个读取电压预测方程式,进一步地判断出固态储存装置30的断电时间。举例来说,当固态储存装置30开机后,将关机前所储存的状态参数代入所有的未来读取电压偏移预测方程式,获得对应的多个读取电压偏压。假设校正参考区块后的读取电压偏移最接近6个月读取电压偏移预测方程式的结果。则可以估计该固态储存装置30的断电时间约为6个月。由以上的说明可知,本发明的优点在于提出一种固态储存装置及其状态预测方法。当固态储存装置出厂之后,可根据即时的状态参数搭配相关的预测方程式,可快速地预测出非挥发性记忆体现在与未来的读取电压组以及适合的解码流程。当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1